New Content - Implemented FotY 2015

Darzil

Developer
Telling everything internally that you have no skills is probably the most straightforward general fix to this type of thing. And then there's ignoring the overdrunk check in Spelunky mode.
I'll probably just abort all those relay browser checks if limitmode != null. Simple enough and doesn't require changing what skills you think you have before and after.

I suspect the tricky bit may be how best to handle logging out and in again with limitmode active. We'll see, though, I've not seen much issue so far.
Edit - Familiars aren't known til Terrarium visited if you've logged in during limitmode = spelunky
Edit - Concoctions didn't include things needing skills either in Item Manager
Edit - Plus inventory out of sync, equipment not worn, probably just refresh from api and don't worry I guess?
 
Last edited:
doesn't require changing what skills you think you have before and after.

This is very speculative, but it seems like it'd be a good idea to set up a framework for having a different set of { skills/items/uh other stuff } available while within a limitmode.
KoL definitely seems to regard you as not having those skills (hence getting overdrunk when you 'lose' liver of steel).

Just dropping this in here if people aren't aware, from 23 minutes into the 01/01/15 podcast:
Jick: <Spelunky content> is very distinct from the game but it uses the rules of the game. And there's some pretty powerful technology behind it, that I really only started working with today ...
Riff: Unless I'm mistaken, the technology that was built for this is also being used for parts of the next Avatar path, correct?
It goes on without much more interesting info, but the implication is limitmode support will be pretty important during the next path.
 

Darzil

Developer
Well, when we see what shape it is we can re-write fairly easily. A text search for limitmode will show only this new code, and if necessary we can change some of it. I'd rather that that try to set up a framework when we don't know what it is we'll be supporting in the future.
 

Veracity

Developer
Staff member
Yeah. We can refactor into a framework when we have a better idea of what we need to model in KoL's framework.

I hope the next Avatar path is "Avatar of the Naughty Sorceress". I've wanted that for a long time. ;)
 

Darzil

Developer
r15238 adds what I've done so far. Loads still needed.
Detect Spelunky limit mode from character pane and API and do not do recovery, moods or mana burning. Provide limit_mode() function that returns (currently) null or spelunky. Detect upgrade perks and report in preference spelunkyUpgrades. Detect (some) unlocks and status and report in preference spelunkyStatus. Log shop transactions. Log upgrades when obtained. More items, locations and monsters.

Among the next things planned :
Work out which queen bee is being fought.
Detect other locations from map (and add adventure areas).
Detect location unlocks when adventuring.
Log gold/bomb/rope/key gains.
Exit limitmode gracefully, updating familiars, equipment, concoctions and anything else needed.
Possibly when api.php status is called for, if limit mode in effect, request character pane instead. Not sure on that one, haven't looked yet, but api will probably never hold the data character pane does in limitmode. Will be needed for automation.

The Tales are a little rich for my blood, so will take a few days, but then with the code changes it probably would anyway!
 

Bale

Minion
I hope the next Avatar path is "Avatar of the Naughty Sorceress". I've wanted that for a long time. ;)

Everyone has wanted that for a long time. It's the only avatar path which is more desired than the Avatar of Susie. I have no idea why Susie is so popular. I hope that is what they're working on, but I've got a feeling that it will actually be Avatar of Frank.
 

Bale

Minion
Provide limit_mode() function that returns (currently) null or spelunky.

I was thinking...

If limit mode is a thing that KoL is moving towards, then perhaps instead of limit_mode() returning a string, we should create a $mode[] data type. There are times I wished that my_path() returned a data type and it would be nice not to start off on the wrong foot with limit modes.

lostcalpolydude? Do you think that mafia would benefit from having a $mode[] data type?
 
Last edited:

lostcalpolydude

Developer
Staff member
I was thinking...

If limit mode is a thing that KoL is moving towards, then perhaps instead of limit_mode() returning a string, we should create a $mode[] data type. There are times I wished that my_path() returned a data type and it would be nice not to start off on the wrong foot with limit modes.

lostcalpolydude? Do you think that mafia would benefit from having a $mode[] data type?

I don't understand what you're suggesting. I also don't know enough about the future plans for limitmode to have useful ideas for how it should be implemented more generally in mafia.
 
Last edited by a moderator:

Bale

Minion
I figured you had some idea how it was being implemented in the coming Avatar path from what you said previously.

I like the idea of implementing it as a data type mostly because it adds a level of error checking to ensure that valid values are being used. When I type something like if(my_path() == "Class Act II: A Class For Pigs") I always worry that some small typo will render the comparison into garbage. I'd feel a lot safer if there was a $path[] datatype, but I fear it is too late to implement that. It isn't too late to do such a thing for limit modes.
 

Bale

Minion
There's a monster missing from The Temple Ruins

cultist: attack & defense: 60, hp: 60, dude, no element, never wins initiative, img: spelunkhawk.gif
 
Last edited:

Bale

Minion
I noticed mafia kept giving me this complaint in the CLI while playing Spelunky:
Found unknown equipped item: "spelunking fedora" descid = 717110827

So I unequipped my fedora:
Code:
unequip hat
--------------------
8044	spelunking fedora	717110827	hobofedora.gif	hat	q	0
spelunking fedora	0	none
spelunking fedora	Muscle: +5, Mysticality: +5, Moxie: +5
--------------------

I'm guessing mafia didn't know about it since I started the Spelunky game with it on my head. That's why I never saw that error before.


As long as I'm at it, here are two more...
Code:
--------------------
8045	sturdy machete	993613711	machetito.gif	weapon	q	0
sturdy machete	30	Mus: 0	1-handed sword
sturdy machete	Weapon Damage: +5
--------------------

--------------------
8060	The Joke Book of the Dead	806963834	spelbook.gif	offhand	q	0
The Joke Book of the Dead	0	none
# The Joke Book of the Dead: -6 Luck
The Joke Book of the Dead	Damage Reduction: 5, Weapon Damage: +5
--------------------
 

Darzil

Developer
The Joke Book actually isn't in there yet. One of the other things to put on the list is to work out why the others aren't recognised properly. Probably an html thing, there is quite a few bits of odd html. In particular it seem to struggle with some items gained after combat. Probably some more regex to tweak like I had to tweak the regex recognising choices. Edit - Or maybe just some bad items.txt data! (because it was manually entered because the information didn't appear in GCLI for some of these).

We probably need to recognise equipment equipped from the side panel too.
 
Last edited:

Crowther

Active member
I haven't the slightest clue how it could be implemented, but when you are spelunking, every three fights you win, you get a free non-combat. You can tell it's about to happen, because the ghost will be animated. The non-combats rotate through a series of three choices. I seem to be unable to count to three and keep getting confuse about which non-combat will come up next. As I said, I don't know how mafia could monitor this or how to present it to the user, but it would be a very nice feature if mafia could keep count for me.
 

Bale

Minion
I think this post was missed? If it has just been a bad time to add this, then I apologize.

There's a monster missing from The Temple Ruins

cultist: atk: 60, def: 60, hp: 60, dude, no element, never wins initiative, img: spelunkhawk.gif
 
Last edited:

Darzil

Developer
No, it's just that my Spelunky handling is now rather complex, and I'm waiting til done to update it. I could add just some stuff that isn't problematical, maybe I'll do that.
 

Darzil

Developer
r15261

The updates, when they come, increase the tracking/logging/inventory, and make some changes to how mafia handles limitmode. During limitmode (eg Spelunky) it'll use charpane rather than api (api isn't reliable during limitmode), inventory will be just what is limited (adding an inventory manager section, unlimited, which shows anything else in your inventory, though you can't do anything with it), equipment manager will show only spelunky equipment, and lock slots you can't use. Skills available are only Spelunky ones. If I can get that reliable I'll probably launch at that stage. (At the moment I have an infinite loop bug when going from limitmode->normal, which I can test only once per Spelunky).

The following stage will be to lock out NPC stores, Coinmasters, Mall, Meat, effects from Moon sign, non Spelunky zones during limitmode.

I'm putting in the effort now because it sounds like limitmode may reoccur, and I'm trying to make it pretty general.
 

Bale

Minion
I didn't mean to push you. I just wanted to make sure that the monster wasn't overlooked. Please take all the time you need.
 

Darzil

Developer
I haven't the slightest clue how it could be implemented, but when you are spelunking, every three fights you win, you get a free non-combat. You can tell it's about to happen, because the ghost will be animated. The non-combats rotate through a series of three choices. I seem to be unable to count to three and keep getting confuse about which non-combat will come up next. As I said, I don't know how mafia could monitor this or how to present it to the user, but it would be a very nice feature if mafia could keep count for me.
I'll work out something. I'm already tracking that a non-combat is due with the ghost, starting at 1 and counting up to 3 then resetting would be pretty simple. I'd probably leave it to scripters to add an override to display the options under the spelunky map though, once I've got all the tracking there.
 

Darzil

Developer
Saying a prayer, I committed r15263.

Recognise limitmode ("spelunky"), and use CharPaneRequest rather than API.
In limitmode, inventory and skills are restricted to spelunky ones.
Unavailable Inventory can be seen in a new "unlimited" category so you know it isn't lost!
Only spelunky equipment can be seen in gear changer, and only spelunky valid slots are active.
A number of spelunky tracking preferences added, including number of kills since last non-combat, expected phase of next non-combat, number of sacrifices.
Transitions from normal play to limitmode and visa versa should be handled, login during limitmode should work.
Spoilers added for Spelunky.
In Gear Changer, weapons, hats, pants and offhands that cannot yet be equipped do now appear in dropdowns, but greyed out.

Edit - oh, and more action logging in Spelunky, parsing of Mus, Mox, HP added.
 
Top