Feature Familiar Tags

Ignoooooose

New member
Not really a new feature; what's the rule on familiar tags?

We have loads of familiars for whom we know some but not all tags, where no tags are documented in mafia. Is it worth adding to mafia the tags we do know?
 
"Worth"/"worth it" is always subjective. As someone who has a lot of familiars, being able to better sort them by tags would be helpful. But I'm not very technically-minded, so I wouldn't be able to tackle such a task. I could do what research I'm able to and report that. But whether or not that info makes it into Mafia is beyond my control.
 
I have a quick tangentially related question relating to how tags are currently implemented. Most things I know about tags come from @SSBBHax 's stillsuit spading spreadsheet, a lot of information in which is playerdev-confirmed.

Right now, there are 45 currently used familiar tags in the attributes proxy record of familiars:
Code:
> js Array.from(new Set(Familiar.all().flatMap((f) => f.attributes.split("; ").filter(Boolean))))

Returned: aggregate string [45]
0 => animal
1 => insect
2 => haseyes
3 => haswings
4 => fast
5 => bite
6 => flies
7 => hashands
8 => wearsclothes
9 => organic
10 => vegetable
11 => hovers
12 => edible
13 => food
14 => sentient
15 => cute
16 => mineral
17 => polygonal
18 => object
19 => undead
20 => cantalk
21 => evil
22 => orb
23 => spooky
24 => sleaze
25 => aquatic
26 => swims
27 => isclothes
28 => phallic
29 => stench
30 => hot
31 => hasbeak
32 => haslegs
33 => robot
34 => technological
35 => hard
36 => cold
37 => hasbones
38 => hasclaws
39 => reallyevil
40 => good
41 => person
42 => humanoid
43 => animatedart
44 => pokefam

All of these are actual attribute tags in KoL except for "pokefam"--being a pokefam-only familiar doesn't seem to be implemented in KoL as a familiar tag the way that "swims" or "isclothes" is. We know this because there are 6 special tags that are tags and are used in pokefam to denote ult moves: ult_bearhug, ult_sticktreats, etc. When the stillsuit rolls one of those tags, you end up with no enchantment in the distillate from that tag. So if pokefam itself was implemented as a familiar tag, we would expect the 45 path-only pokefam familiars (which are currently tagged as pokefam in mafia) to occasionally produce the same result.

What's the best solution here? I can think of a few:
- Leave it as-is in mafia and, when writing code to handle familiar tags, manually filter out "pokefam" from the attributes field (or, to be more futureproof, manually check the field for all familiar tags).
- Remove "pokefam" from attributes and make a proxy record that denotes whether something is or isn't a pokefam. Moving forward, treat attributes as precisely meaning these familiar tags. This is a breaking change for any script that currently checks attributes for "pokefam"
- Leave it as-is, but make a separate proxy record that exclusively contains familiar tags and can be treated as a source of truth
EDITOR'S NOTE:
Currently, the tags "hasshell" and "hasstinger" are not present in any familiar tags present in mafia. I can work with SSBBHax in the future to put all confirmed data about familiar tags into mafia.

TL;DR: "pokefam" is not actually a familiar tag in the way that "robot" is, but is treated as such in mafia's attributes field on familiars. This is undesirable because it's good to mirror the way things work in-game.
 
How often are these tags being used by KOL Mafia at the moment? I think the warbear foil hat interacts with the 'robot' tag with the maximizer, but that's the only one I can think of off the top of my head.
 
Exactly that (anything in modifiers.txt using "famattr"), and that's actually incorrect (unless CDM has changed it since): the warbear foil hat uses a hardcoded list of familiars instead of the robot tag.

I would be in favour of making pokefam a type instead of a tag, like underwater already is.
 
The only use for these tags I can think of is the relay for the Mumming Trunk. I'm not sure if anything else in the game other than the Trunk actually uses these tags at the moment. (The Jury is still out on if or how the Tiny Stillsuit interacts with them).
 
I would be in favour of making pokefam a type instead of a tag, like underwater already is.
This is also my preferred solution, my one concern that this would be a breaking change. But also, a tentative search through autoscend's code shows nothing that checks familiar.attributes for that, so maybe it isn't
(The Jury is still out on if or how the Tiny Stillsuit interacts with them).
The jury is actually back!
 
Back
Top