New Content Spring Challenge Path: Z is for Zootomist

Crowther

Active member
The path number is 53.
The class is: Zootomist
The class number is 32.

You can add familiars to your body which gives you passive, active, or combat skills and is the only way to gain stats and levels. Each familiar added needs to be a pound heavier than the last. Two devices in the campground, one does fusing and one adds familiar weight. The second gets a bonus for ascending. There are 11 new tradable familiars and each player gets one of them for beating the NS.

Mafia doesn't recognized standard restrictions. It gets confused because stats and levels don't match at all. Council text is changed as well.
 
Of course these effects depend on what familiars you graft. The first two mafia recognized only when I had the buffs active, but not from the skill page. Yes, grafting a +combat rate skill was a big mistake.

--------------------
2965 Milk of Frozen Gravy Fairy Kindness familiar35.gif 49aaf365d871570cbdead2dc7e35ff26 neutral none
Effect Milk of Frozen Gravy Fairy Kindness Mysticality Percent: +50, Sleaze Resistance: +2, Damage vs. Skeletons: +50, Combat Rate: +5, Initiative: +50, Moxie: +20, Moxie Percent: +25, Hot Resistance: +4, Familiar Weight: +10
--------------------
--------------------
2966 Milk of Killer Bee Cruelty familiar20.gif ddf36c8e65632ba327f2a6e756a963c0 neutral none
Effect Milk of Killer Bee Cruelty Familiar Weight: +5, Experience (familiar): +1, Mysticality: +20, Initiative: 75, Item Drop: +30, Weapon Damage: +10, Spooky Damage: +10, HP Regen Min: 20, HP Regen Max: 30
--------------------
--------------------
2964 Grafted zootomist.gif 003e2e2d7de4a3fb2982c7615b1cbcdc neutral none
Effect Grafted Weapon Damage: +10, Cold Damage: +10, Hot Damage: +20, Sleaze Damage: +10, Spooky Damage: +10, Stench Damage: +10, Cold Resistance: +3, Sleaze Resistance: +3, Spooky Resistance: +1, Stench Resistance: +1, Damage Reduction: 25, Avoid Attack: 1, Initiative: +200, Item Drop: +80, Maximum HP: +60, Meat Drop: +110, Mana Cost: -1, Never Fumble
--------------------
 
So much better already! Recognizing standard restrictions really helped. The stats and level still going up and down. I remember that happening in another path when the character pane and the api don't show the same things. I think that was why.
 
There's a familiar weight issue "Familiar weight: KoL = 11 KoLmafia = 6", but I think I saw on Discord that it might be a KoL bug.

I figured out how to fix the stats thing. Here's the fix that worked for me:
 

Attachments

I figured out how to fix the stats thing. Here's the fix that worked for me:
Thank you, that makes it stable and much more usable! but Mafia is still seeing a different idea of my level compared to KoL. This path uses "how many familiars have you grafted" rather than whether your mainstat is at a certain point to determine what your level is.

My current stats are:
Muscle: 237 (142)
Mysticality: 328 (175)
Moxie: 266 (134)

and while you get one level per graft for the first ten familiars, there is a special case for the 11th familiar grafted which gives two levels instead of one, so my level is 13, per the charpane:

sepos
Level 13
Zootomist

but Mafia is reporting my level as 12.

I don't know for sure if Mafia is guessing my mainstat is Muscle or Moxie (either of which falls in the range for level 12 - 125-147 mainstat, per the wiki; I ascended under Mongoose, fwiw.) KoL seems to be treating my mainstat as "sort of Myst", if I go to my profile, where it says:

Advancement:
You must gain -2 Stats to advance to level 14.
 
It might be the highest of the three, or it might just be myst: I picked muscle because the Tavern adventure was Seal Clubber.

But as you can't gain stats without grafting and your level is independent of your stats, I don't really know what mainstat is used for.

The fix to level is that we have to read it from the charpane instead of trying to calculate it from stats, and we have to store how many grafts you've done somewhere.
 
The fix to level is that we have to read it from the charpane instead of trying to calculate it from stats, and we have to store how many grafts you've done somewhere.
We'll likely want to track which familiars are grafted where.

Level (number of grafts) determines which council quests you are on. I suspect it determines which food and booze you can use, but I haven't verified that.

I assume stats determines which equipment you can wear, but I haven't checked that either.
 
I suspect it determines which food and booze you can use, but I haven't verified that.
I can confirm from my experience that level determines food and booze usability, as expected. (RIP my turngen on day 1, accidentally making a bunch of drinks I couldn't actually drink because Mafia was extra confused about my level.) I did not test or specifically notice equipment availability.
 
I can confirm from my experience that level determines food and booze usability, as expected. (RIP my turngen on day 1, accidentally making a bunch of drinks I couldn't actually drink because Mafia was extra confused about my level.) I did not test or specifically notice equipment availability.
Yup. I just saw that too. Also, astral pilsners are by displayed level, not the level mafia sees from your stats.
 
When you graft a familiar, the familiar is removed from your terrarium and the familiar equipment is returned to your inventory, which of course mafia doesn't know yet.
 
Last edited:
We've fully spaded the correlation between familiars and the Grafted intrinisic, so we wouldn't even necessarily need to track that separately.
 
FYI, the PR that I did for stats fixes the stats only so eg maximizer works, and everything at level 13 seems to work. But since levels are now semi-independent of stats, player level can still come out wrong
 
Minor issue that might not have been seen yet - removing the Milk of Magnesium active preference doesn't seem to work in this path.

Code:
> use milk of mag

Using 1 milk of magnesium...
Preference _milkOfMagnesiumUsed changed from false to true
Preference milkOfMagnesiumActive changed from false to true
Familiar weight: KoL = 19 KoLmafia = 14
Preference _concoctionDatabaseRefreshes changed from 105 to 106
Finished using 1 milk of magnesium.

> use kiwi aioli

Using 1 mini kiwi aioli...
Preference miniKiwiAiolisUsed changed from 0 to 1
Familiar weight: KoL = 19 KoLmafia = 14
Preference _concoctionDatabaseRefreshes changed from 106 to 107
Finished using 1 mini kiwi aioli.

> eat grue egg omelette

Eating 1 grue egg omelette...
You gain 53 Adventures
You gain 8 Fullness
You gain 4 Adventures
You used a mini kiwi aioli charge with your food
Preference miniKiwiAiolisUsed changed from 1 to 0
Familiar weight: KoL = 19 KoLmafia = 14
Preference _concoctionDatabaseRefreshes changed from 107 to 108
Finished eating 1 grue egg omelette.

> prefref magnesium

Name                      Value               Default               Scope
_milkOfMagnesiumUsed      true                false                 user
milkOfMagnesiumActive     true                false                 user
 
Ryo asked me what I wanted to make autoscend work in the path, here's the list I wrote. Many of these are important to non-automated play.

  1. Level being properly coded as independent from stats. My PR fixed the stats, but there are times Mafia still calculates level off the stats rather than the KoL reported level, and they don't match in Zoot.
  2. Inclusion of boosts from nipple/grafted effects in modifiers.
  3. Variables for specimen boosts (how many total, how many used)
  4. Properly detecting that we have the skills (eg `use_skill()` currently returns false)
  5. Variables/functions for inspecting which familiars we have grafted.
  6. Properly recognising that a grafted familiar disappears, and its equipment is back in our inventory (at them moment Mafia can lose track of your cupid bow when the familiar with it gets grafted, and `refresh all` doesn't seem to fix it).
  7. Preferably the ability to calculate familiar effects in each slot from the properties (we can do this ourselves, but other people will probably want it in mafia)
 
Actually, I see that I am wrong about that. I was thinking about "refresh status", which is what you get when you click the button at the bottom of the side pain in the GUI.

If the familiar equipment really does go back into inventory, I can't understand why it doesn't appear when we ask KoL to update our inventory via api.php.

Code:
api.php?what=status&for=KoLmafia
main.php
topmenu.php
charsheet.php
api.php?what=inventory&for=KoLmafia
closet.php?which=1
api.php?what=closet&for=KoLmafia
account_manageoutfits.php
questlog.php?which=3
questlog.php?which=2
questlog.php?which=1
familiar.php
campground.php?action=inspectdwelling
campground.php?action=inspectkitchen
campground.php?action=workshed
peevpee.php?place=fight
storage.php?which=5
api.php?what=storage&for=KoLmafia
desc_effect.php?whicheffect=297ee9fadfb5560e5142e0b3a88456db
showplayer.php?who=xxxxx
account_contactlist.php
standard.php?date=2023-01-02&pwd
place.php?whichplace=forestvillage&action=fv_friar
 
When you try to equip it, you get:

Code:
> ash print(my_familiar())

Jill-of-All-Trades
Returned: void

> equip toy cupid bow

Stealing toy Cupid bow from Stoginald the Baby Z-Rex...
Unequipping Stoginald the Baby Z-Rex...
Familiar request unsuccessful.
Familiar weight: KoL = 18 KoLmafia = 13
Putting on toy Cupid bow...
You don't have the item you're trying to equip.
Familiar weight: KoL = 18 KoLmafia = 13

This is after a refresh.
 
Back
Top