New Content Tiny Stillsuit

It looks like the packaged and unpackaged versions of the item are already in!

Here's what we know so far:
- Having the stillsuit equipped in combat (including freeruns) allows you to accumulate sweat. This sweat is different from designer sweatpants sweat.
- Sweat is measured in "drams". You get 3 drams per fight when it's equipped to your active familiar, and 1 dram per fight when it's equipped to a familiar in the terrarium
- There is no known cap on the number of drams of sweat you can have. It does not reset on rollover, but does reset on ascension.
- If you have at least 10 drams of sweat, you can follow the distill link (inventory.php?action=distill&pwd), and from there consume the sweat as booze
- Doing so grants 1 drunkness, and resets your drams of sweat
- Sweat-booze is not an actual item, and as such it bypasses a lot of in-game things associated with booze, such as Ode and the mime army shotglass
- Sweat-booze grants round(drams^0.4) adventures when consumed
- Sweat-booze grants min(100, drams / 5) adventures of the buff "Buzzed on Distillate"
- The modifiers granted by Buzzed on Distillate are related to the pokefam/mummingtrunk tags of the familiars used to feed it. This will require a LOT more spading, but is largely unnecessary for mafia implementation.
- Spading sheet here
- There are a lot more familiar tags than the ones we know about from pokefam and mumming trunk. A lot.
- The modifiers are not deterministic and cannot be predictively tracked. We can anticipate what it'll be before drinking through the distill page
- I am extremely bad at bullet points

I am unlikely to have time to work on any implementation for this (I started a new job !), but the main things we should need are adding the effect, adding tracking (and a pref name) for drams of familiar-sweat, and maybe adding cli commands to check the buff and to drink the booze from the stillsuit.

There may very well be details I've missed, I just wanted to make sure there was a new content post here
 

ckb

Well-known member
Also, you can still [distill] using URL injection when the stillsuit is equipped on a familiar in your terrarium. No need to unequip it.
 

Tokoeka

Member
further spading from the ASS discord (and in particular Phillammon): every dram of sweat obtained by the stillsuit randomly choose a tag from the familiar twice, and assigns the enchantment(s) associated with those tag(s) 1 (sub)point each. the "level" of the enchantment is then round(subpoints^0.4).

Not certain any of this is necessary for the implementation in mafia, but figured worth mentioning
 
Code:
Took choice 1476/1: Drink the Distillate (1 Drunkeness)
choice.php?pwd&whichchoice=1476&option=1
--------------------
2720    Buzzed on Distillate    chinsweat.gif    d64eab33f648e1a77da23ae516353fb2    neutral    none
Effect    Buzzed on Distillate    Experience (Muscle): +7, Experience (Mysticality): +11, Experience (Moxie): +11, Item Drop: +110, Damage Reduction: 18, Initiative: +70
--------------------
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
further spading from the ASS discord (and in particular Phillammon): every dram of sweat obtained by the stillsuit randomly choose a tag from the familiar twice, and assigns the enchantment(s) associated with those tag(s) 1 (sub)point each. the "level" of the enchantment is then round(subpoints^0.4).

Not certain any of this is necessary for the implementation in mafia, but figured worth mentioning
For further support I am thinking

  • familiarSweat pref for tracking drams of familiar sweat
  • Some sort of preference or set of preference that tracks the afore-mentioned subpoints. This could verbosely be stillSuitMuscleExp, stillSuitMystExp, stillSuitItemDrop etc etc. That probably works better than combining into a single pref because we could use Item Drop: [round(pref(stillSuitItemDrop)^0.4)*10] etc in the modifiers.txt line for Buzzed on Distillate
    • Questions remain on how often we check in to see what these values are - they are not indicated in the post combat text block. I've asked CDM if they could be made available without having to hammer the choice after each combat
  • Make the distillate into a pseudodrink so it can be consumed via drink tiny stillsuit distillate or something. As well as from the booze GUI panel of course.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
Ah it's more complicated, the next effect and the current effect are different. Hmm. I suppose we can (for now, at least) have a pref like nextStillSuitEffect as a modifier list string. Thoughts?
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
Ok I've also looked into adding it as a Concoction but it's not clear how I do it. @Veracity what do you think?

I can make it sort of like sushi in that it is a pseudo item but with no ingredients.
I can make it sort of like VIP hot dogs in that it is a weird ad-hoc concoction
I could do it another way?
 

Ryo_Sangnoir

Developer
Staff member
It's kind of not a drink in that ode / shotglass don't work on it. Rather than more spaghetti I'd rather just have a "stillsuit drink" command.

Can it be consumed in places you can't normally drink (e.g. Oxygenarian / Dark Gyffte)?
 
Last edited:

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
I'd like to add it to the Booze ItemPanel so you can preview the adventure gain and (eventually) the effect details fluently in the GUI. I think doing that means we need a drink or at least create command for it.

I know it can't be consumed in Grey You. I imagine oxy doesn't work because you have zero liver? I imagine dark gyffte works.
 

Veracity

Developer
Staff member
"spaghetti"? I've seen a couple of you use that to refer to KoLmafia recently, and it rankles a bit.
Maybe I'm just Old School and learned a different definition, but we don't use goto statements...

Perhaps you'd be interested in adding something like AutoUseCreateItemRequest extends CreateItemRequest for concoction methods which may or may not have ingredients, create HotDogRequest and HOTDOG creation method, create SpeakeasyRequest and SPEAKEASY creation method, create StillSuitRequest and STILLSUIT creation method, make those requests and SushiRequest extend the new class, and, well, make this kind of thing better supported. concoctions.txt would also have to support items with no ingredients.

Something like that.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
Yeah I also find the term spaghetti annoying. Mafia is hard to write and has been around for a long time. And we all put a lot of work into adding new code and improving old.

Yeah that sounds like a great idea. I can do it but if you would be up for starting with a model implementation I could convert everything over and that would also work.

Also concoctions does support no-ingredient creations! c.f. BARREL
 

Veracity

Developer
Staff member
I'm still sort of focused on doing the last little bits of can_adventure().

In particular, I want to add some more LimitModes and make sure that those work exactly as desired for things like Batfellow, Spelunky, Shape of Mole, and Astral. Darzil invented to concept for Batfellow, Spelunky, and Ed in the Underworld. validate1 supports them for the first two - but I'd still like some tests for those zones.

And I wrote the support for astral mushrooms a long time ago. It was not easy and might be kludgy; the goal was for you to select an Astral place to adventure and then, after eating an astral mushroom, we select that zone in the intro choice adventure (at which point you are conceptually in a LimitMode restricted to exactly that location).

Been a LONG time since I used astral mushrooms. Might be time for a refactor.
 

Erosion

Member
26632 doesn't seem to be incrementing familiarSweat after combats regardless of whether it's equipped to your current fam or an inactive fam. familiarSweat updates properly when visiting action=distill.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
26632 doesn't seem to be incrementing familiarSweat after combats regardless of whether it's equipped to your current fam or an inactive fam. familiarSweat updates properly when visiting action=distill.
Identified a fix for this and will merge it when the tests pass in CI
 

ckb

Well-known member
It would be nice to support equipping an item onto a familiar without having to switch familiars. This can be done from the 'Manage your Familiar' Terrarium page. The URL for this is:
Code:
familiar.php?action=equip&pwd=&whichfam=72&whichitem=10932

The above puts the tiny stillsuit on the Exotic Parrot

As a weird twist, you can even access the Terrarium and equip the stillsuit in Avatar of Sneaky Pete. I happen to be in a AoSP run right now. I am not sure how this works in other no-familiar paths. I'll have to check if it acquires familiar sweat and allows for drinking tomorrow.
Using visit_url() with the above URL also results in a DEBUG log because Mafia believes you have no familiars in AoSP. Also, have_familiar() returns false, and familiar_equipped_equipment() returns $item[none], so this complicates things if we want to support having familiars in paths that don't use familiars.
 

Attachments

  • DEBUG_20220809.txt
    4 KB · Views: 0

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
You can already do this! equip(familiar, item)
 
Top