[WIP] hasTypeUnlocked function

Somebody Else

Well-Known Member
Nov 12, 2018
87
96
30
What is this?: A utility function meant to streamline updates to certain transformation lists, by making it so that an edit to the hasTypeUnlocked function will automatically update the lists of goo male and female genitals, the Dong Designer, the vagina variant if that ever makes it in, and potentially Thebiologist's Parasitic Cock functionality.

Basically, if a new type of genital is added to the game, updating this function would add it to all of the above's lists, potentially getting a 5 for 1 deal on updating functions. Would also be a huge help if I end up doing that goo options update I've been thinking about.

Why does a function need an event WIP thread?: Because there are a ton of different types in-game already, and I'm not sure how all of them are used and what appropriate unlock conditions for all of them would be.

So, let's get to it.
These are the starter races, so I figure they're unlocked by default.
GLOBAL.TYPE_HUMAN:
GLOBAL.TYPE_CANINE:
GLOBAL.TYPE_FELINE:
GLOBAL.TYPE_KUITAN:
GLOBAL.TYPE_HUMANMASKED:
GLOBAL.TYPE_LEITHAN:
GLOBAL.TYPE_NAGA:
GLOBAL.TYPE_GRYVAIN:
GLOBAL.TYPE_SIREN:

These are the ones that have a direct codex entry; if you unlock the entry in your codex, you unlock it for other things too. This is generally my preferred method, as I feel it encourages exploration and the drive to fill in all the entries, something I figure is relatively common among gamers.

GLOBAL.TYPE_BEE: (Zil)
GLOBAL.TYPE_SMALLBEE: (Zil)
GLOBAL.TYPE_BOTHRIOC:
GLOBAL.TYPE_DAYNAR:
GLOBAL.TYPE_DRACONIC: (Fanfir)
GLOBAL.TYPE_SMALLDRACONIC: (Fanfir)
GLOBAL.TYPE_FLOWER:
Unlocked by viewing the Cockvine or Venus Pitcher codex entry. Took it from the goo code.
GLOBAL.TYPE_FROG:
GLOBAL.TYPE_FROSTWYRM:
GLOBAL.TYPE_GABILANI:
GLOBAL.TYPE_GOOEY:
GLOBAL.TYPE_KORGONNE:
GLOBAL.TYPE_LAPINARA:
GLOBAL.TYPE_MILODAN:
GLOBAL.TYPE_MOTHRINE:
GLOBAL.TYPE_MOUSE: (Rodenians)
GLOBAL.TYPE_MOUSEMAN: (Rodenians)
GLOBAL.TYPE_MOUTHGINA:
GLOBAL.TYPE_MYR:
GLOBAL.TYPE_NALEEN_FACE:
GLOBAL.TYPE_NYREA:
GLOBAL.TYPE_OVIR:
GLOBAL.TYPE_RAHN:
GLOBAL.TYPE_RASKVEL:
GLOBAL.TYPE_ROEHM:
GLOBAL.TYPE_SAURMORIAN:
GLOBAL.TYPE_SIMII:
GLOBAL.TYPE_SYDIAN:
GLOBAL.TYPE_TENTACLE:
GLOBAL.TYPE_THRAGGEN:
GLOBAL.TYPE_VANAE:
GLOBAL.TYPE_VANAE_HUNTRESS:
GLOBAL.TYPE_VANAE_MAIDEN:
GLOBAL.TYPE_VENUSPITCHER:
GLOBAL.TYPE_XHELARFOG:

These are ones unlocked by meeting or interacting with certain NPCs.

GLOBAL.TYPE_DEMONIC:
GLOBAL.TYPE_SMALLDEMONIC:
GLOBAL.TYPE_SUCCUBUS:
These three are unlocked by meeting Sera. Same unlock as in the existing goo code.
GLOBAL.TYPE_HRAD:
This one's from meeting Liriel.
GLOBAL.TYPE_MLP
Unlocked if silly mode is active.
GLOBAL.TYPE_SYLVAN:
GLOBAL.TYPE_DARK_SYLVAN:
These two from meeting Ceria.
GLOBAL.TYPE_WATERQUEEN:
This one from meeting the Queen of the Deeps on Myrellion.

This category is for types that would be inappropriate for things like the Dong Designer to shift to, or for things that have their own subsystem for dealing with, like parasites.
GLOBAL.TYPE_SYNTHETIC:
GLOBAL.TYPE_SANDWORM:
GLOBAL.TYPE_SANDWORM_PARASITE:
GLOBAL.TYPE_MIMBRANE:
GLOBAL.TYPE_COCKVINE:
GLOBAL.TYPE_CUNTSNAKE:

Which brings us to the types I'm still considering what to do with. I have these in two different categories: Land animals (and sharks, because shark bytes exist) and miscellaneous. If any of them are associated with a specific alien species, please let me know.
These ones I think would make sense to also be default unlocks, given Steele was raised on Terra, but I'm open to suggestions.
GLOBAL.TYPE_AVIAN:
GLOBAL.TYPE_BADGER:
GLOBAL.TYPE_BOVINE:
GLOBAL.TYPE_DEER:
GLOBAL.TYPE_DOGGIE:
GLOBAL.TYPE_DOVE:
GLOBAL.TYPE_EQUINE:
GLOBAL.TYPE_GOAT:
GLOBAL.TYPE_HYENA:
GLOBAL.TYPE_KANGAROO:
GLOBAL.TYPE_LAPINE:
GLOBAL.TYPE_QUAD_LAPINE:
GLOBAL.TYPE_LUPINE:
GLOBAL.TYPE_PANDA:
GLOBAL.TYPE_REDPANDA:
GLOBAL.TYPE_RHINO:
GLOBAL.TYPE_SAURIAN:
GLOBAL.TYPE_SHARK:
GLOBAL.TYPE_SHEEP:
GLOBAL.TYPE_SWINE:
GLOBAL.TYPE_VULPINE:

These ones are marine life/bugs, aren't existing animals, or are aliens of any sort that I know of, and I have no idea what appropriate unlock conditions would be.
GLOBAL.TYPE_ADREMMALEX:
GLOBAL.TYPE_ANEMONE:
GLOBAL.TYPE_ARACHNID:
GLOBAL.TYPE_DRAGONFLY:
GLOBAL.TYPE_DRIDER:
GLOBAL.TYPE_DRYAD:
GLOBAL.TYPE_INHUMAN:
GLOBAL.TYPE_JANERIA:
GLOBAL.TYPE_LIZAN:
GLOBAL.TYPE_NARWHAL:
GLOBAL.TYPE_WORG:

Github project link
 
Last edited:

Thebiologist

Well-Known Member
Jun 24, 2017
585
641
31
The nova dick got axed, but I've added that functionality to the parasitic dick I've been writing. So, if this work like you've said it'd be cool.
 

Somebody Else

Well-Known Member
Nov 12, 2018
87
96
30
Update: Decided to place the mouse/mouseman types behind unlocking the Rodenian codex entry, MLP behind silly mode, and sylvan/dark sylvan behind meeting Ceria. Placed the function and related functions just above the shiftVagina/Cock functions in the creature file, since AFAIK those functions are always updated when a valid new type for the associated body part is added. Got the groundwork functions added; once I edit the dong designer, goo transforms, and do some testing I'll post the github project.

The nova dick got axed, but I've added that functionality to the parasitic dick I've been writing. So, if this work like you've said it'd be cool.
It is contingent on the person that does the implementation using the code, but I've set it up so that they can call one function to get their type list rather than manually building it themselves. If there's one human trait I'll put my trust in, it's laziness.
 

Somebody Else

Well-Known Member
Nov 12, 2018
87
96
30
Update: Got all the code complete, github project is here. Tentacle type is unlocked by the Tentatool codex entry, naga type is moved to default unlocks since apparently that's what leithan penis type is, shark and quad lapine I moved to earth animals, and the rest of the oddities I moved to misc.

Probably leave this up for another week or two, then submit the pull request. As it stands, earth animals will be unlocked by default, and misc. won't have any unlock condition yet, unless anyone has better ideas.