Feature - Implemented Underwater familiars don’t affect the Underwater Familiar modifier

Saklad5

Member
Familiars that can breathe underwater do not affect the “Underwater Familiar” Boolean modifier. This means that maximizing with “+sea” or “Underwater Familiar” causes items like “das boot” to be equipped when it isn’t necessary, which comes with serious penalties. It also means that the Modifier Maximizer cannot switch to an underwater familiar when it would be helpful to do so.

KoLmafia already tracks whether a familiar can breathe underwater: it should not be difficult to make those familiars apply the “Underwater Familiar” modifier when equipped, along with whatever numeric modifiers they apply.
 

Veracity

Developer
Staff member
it should not be difficult to make those familiars apply the “Underwater Familiar” modifier when equipped, along with whatever numeric modifiers they apply.
Love it when people tell me "It should not be difficult" to change the code in "such-and-such a way".
Whether or not "such-and-such a way" is the best solution for the issue.
 

Saklad5

Member
Love it when people tell me "It should not be difficult" to change the code in "such-and-such a way".
Whether or not "such-and-such a way" is the best solution for the issue.
Sorry, I meant “not difficult for me to do if everyone agrees it is a good idea”.

On that note, do you see any issues with implementing this that way?
 

Veracity

Developer
Staff member
If you mean "ignore Underwater Familiar (on any slot) if your familiar has that ability", ok.
Presumably also don't consider the item-carrying familiars in that case, since a hatrack with das boot is not interesting - and is already rejected for that reason.

Teaching the maximizer to "apply numeric modifiers" granted by familiars is brand new functionality.

In fact, the whole premise of this thread is new functionality. If you specify that you want to equip an item with the Underwater Familiar modifier, it is emphatically not a Bug that KoLmafia follows your instruction and finds such an item for your familiar. Changing this to a Feature.
 

Saklad5

Member
If you mean "ignore Underwater Familiar (on any slot) if your familiar has that ability", ok.
Presumably also don't consider the item-carrying familiars in that case, since a hatrack with das boot is not interesting - and is already rejected for that reason.

Teaching the maximizer to "apply numeric modifiers" granted by familiars is brand new functionality.

In fact, the whole premise of this thread is new functionality. If you specify that you want to equip an item with the Underwater Familiar modifier, it is emphatically not a Bug that KoLmafia follows your instruction and finds such an item for your familiar. Changing this to a Feature.
I’m not sure I follow your logic. When I give the Modifier Maximizer parameters, I am expecting it to satisfy them. I am not expecting it to specifically equip items to do so.

Underwater Familiar is a Boolean modifier. It represents whether I can adventure in underwater environments with my current familiar. When the Maximizer is finished, I want it to be true. If I cared how that was achieved, I would tell it so. I am not asking for any changes to that.

The “das boot” item has the “Underwater Familiar” modifier, so equipping it means that “Underwater Familiar” is true. I’m saying that all familiars intrinsically capable of adventuring underwater should also have the “Underwater Familiar” modifier, since equipping them has the same effect. This is independent of whatever the familiar is carrying, which also has modifiers.

For example, assuming nothing else is giving this modifier:
  • Baby Gravy Fairy (no modifier) = false
  • Baby Gravy Fairy (no modifier) + das boot (modifier) = true
  • Grouper Groupie (modifier) = true
  • Grouper Groupie (modifier) + das boot (modifier) = true

That is the current behavior. This is because the “familiars” section of modifiers.txt gives the Grouper Groupie the right modifier. The bug is that a few familiars are missing from that section, causing inconsistent behavior. The one that made me notice this is the God Lobster.

You could just add the God Lobster, but that leaves me wondering what the purpose of the “underwater” attribute is at all. Most of the attributes in familiars.txt get converted to modifiers by KoLmafia, and those modifiers don’t have to be repeated in modifiers.txt. Long-term, I think the best way to fix this bug is to do the same with the “underwater” attribute.
 
Last edited:

Saklad5

Member
When I created this thread, I didn’t realize that a lot of familiars already had the “Underwater Familiar” modifier explicitly applied. Now that I know KoLmafia is basically already doing this, albeit with hardcoding, I think it is safe to submit a patch along these lines.
 
Top