Feature - Implemented Additional familiar categories

Veracity

Developer
Staff member
I recently changed the familiar types in familiars.txt to replace "combat" with a bunch of different things that a familiar could do during or after combat:

combat0 - physical damage
combat1 - elemental damage
block
delevel
hp0 - hp gain during combat
hp1 - hp gain after combat
mp0 - mp gain during combat
mp1 - mp gain after combat

I also defined "other" to mean "familiar does something else during or after combat" and "none" to mean "familiar does nothing, ever"

I suggest that instead we have

other0 - familiar does something else during combat (steals Meat, for example)
other1 - familiar does something else after combat (explores Black Forest, for example)

... leaving "none" for Pet Rock-type familiars

(what about Doppelshifter, Comma Chameleon, Hatrack, PantsRack?)

We should add the corresponding boolean fields to the $familiar proxy record

.other_action_during_combat
.other_action_after_combat

We should change the menus in the compact side pane to add "other during combat" to the "combat menu", add "other after combat", to the toplevel menu, and change the toplevel "other" menu to "none".

Heck, perhaps "hp restore after combat" and "mp restore after combat" should also migrate out of the "combat" menu and we have a new toplevel menu - "after combat", say - which has submenus for hp1, mp1, and other1.

Given the above, we should carefully examine all familiars and make sure that their categories are complete and correct.
 

heeheehee

Developer
Staff member
Disembodied hand can also provide +mp/hp regen, or +meat, or what have you. Pretty niche, though.

One comment -- it seems like you're using (for the most part) 0 to mean during combat and 1 to mean after combat. What about stat gains during combat? There you have 0 to mean volley, 1 to mean sombrero, but there are other cases where you get stats in combat according to some other formula (e.g. hipster, fist turkey)
 

Veracity

Developer
Staff member
stat0, stat1, meat0, and item0 are all "after combat" categories - Volleyball, Sombrero, Leprechaun, Fairy. I decided not to rename them. Additional formulae for stats, items, and meat were added, but we never added categories for them. Instead, some of them are in modifiers as "Fairy: .5", for example. That's a different project, in my opinion.

I will mark the disembodied hand as combat0,variable - it attacks for physical damage, but otherwise is configurable.

The Nemesis Quest familiars are also variable, since they gain additional abilities if you equip them with their normal equipment. I may mark those "variable" as will - although in some sense, given Generic familiar equipment, ALL familiars are configurable.

I'm also adding "passive" for things that give you a passive boon to initiative, elemental resistances, monster level and "underwater" for familiars that can breath underwater. Yes, I know you can get that one from modifers, but this might be easier internally.
 

Veracity

Developer
Staff member
Revision 16087 basically does this.

other0 = other actions during combat; combat/other actions in familiar picker; .other_action_during_combat proxy field
other1 = other actions after combat; after combat/other actions in familiar picker; .other_action_during_combat proxy field
passive = passive boost to init, resists, ML; passive in familiar picker; .passive proxy field
variable = abilities configurable with equipment; configurable in familiar picker; .variable proxy field
underwater = breathes underwater; underwater in familiar picker; .underwater proxy field

I put the Doppelshifter under "configurable", although you can't really control it.
I put the Reassembled Blackbird and Reconstituted Crow under "other actions after combat"

The only familiars left in "other" are the pet rock variants, the homemade robot, and the O.A.F. and Black Cat. Those last two actually do things during combat, but, like the pet rocks, their usage is, how you say, "specialized".

Tell me how it looks. And tell me if the types are wrong for any familiar.
 

lostcalpolydude

Developer
Staff member
Would any of this make it possible for the modifier maximizer to suggest familiars too?

Those are excluded for performance reasons. Maybe Darzil can find a way to include those without significantly slowing things down (as he has done for other things), but all the extra things that need checking (familiar weight in every slot, which has diminishing returns as you use more of it) make that seem unlikely.
 

Veracity

Developer
Staff member
I'm going to declare this done. We could do things to improve KoLmafia's internal handling meat drop, item drop, and xp familiars, perhaps, but that's a whole different project which is, at best, tangentially related to this Feature, which is for the benefit of the Familiar Picker in the compact side pane.
 
Top