I'd way prefer a 'Flippable' flag for skirt hiking and fucking content way before a 'functionally nude' flag. With the latter, you can at least just take your clothes off and walk around.
Doing {if (IsOneOf(pc.armor, MaidOutfit, SchoolgirlOutfit, LibrarianOutfit, NurseOutfit, FemaleDoctorOutfit, CheerleaderUniform, WaitressUniform, LittleBlackDress)) every time is not super futureproof.
Yea, definitely--it can be extra flags added onto the item like how bow weapons are marked with the GLOBAL.ITEM_FLAG_BOW_WEAPON flag. There is already a GLOBAL.ITEM_FLAG_AIRTIGHT for a couple armors already implemented, which can be checked like if(armor.hasFlag(GLOBAL.ITEM_FLAG_AIRTIGHT)).
Adding onto the flag idea, we can have something like:
- ITEM_FLAG_AIRTIGHT - For airtight armor/outfits--already implemented, these prevent getting dosed with ooze and drowning in water
- ITEM_FLAG_CHASTITY - For sex restraining armor/outfits/garments--might have an impact on lust/libido or even genital detection (heavy tweaking needed, if so)
- ITEM_FLAG_FLIPPABLE - For things like ties, skirts, aprons (ara! ara!), trench coats/dusters--these will probably be used for scene-specific things, like for JimThermic's waifus
- ITEM_FLAG_COVERED - For covering everything, like sweaters, uniforms, etc.--similar to airtight, but without the perks of blocking liquids/gas
- ITEM_FLAG_REVEALING - For those skimpy armor/outfits/garments like thongs, sling bikinis, low-cut dresses, etc.
- ITEM_FLAG_NUDITY - For armor/outfits/garments that show off bits of sex organs, including transparent zipsuits, underbust corsets, assless chaps, and all that stuff
Like the sexiness score, the outfit/armor flag may contribute to a "nudity" score to go along with the exhibition checking. So something like: Covered is -2, Revealing is -1, and Nudity is +1; where nudityScore() is 3 by default when nude and each piece of clothes added will affect the score. So if:
- pc.nudityScore() is at 3 or more, exhibitionism may have a bonus multiplier that magnifies gains
- pc.nudityScore() is between 0 and 3, exhibitionism gain/loss may remain the same (default)
- pc.nudityScore() is at 0 or less, exhibitionism may have a negative multiplier that magnifies losses
Then there can be supplemental functions to utilize these flags, like pc.armor.isFlippable(), or just use the pc.armor.hasflag() function. Whatever the case, it can be added on top up of without having to build a library of "these are all the flippable items" and parse through each. All the previous items will need to be retrofitted with these flags though, but that should be simple enough.
The thing about having a system like this though, is that while it may be great conceptually, it needs to be implemented with content. If no one is willing to make content that works off these variables, then the system is useless, no matter how intricate and flexible it can be. Without the content to justify it, it will forever be a dream concept and nothing more!
Also, I noticed that this seems way excessive for exhibitionism balancing--again, if it's not all going to be used, it'll inevitably go to waste. So if the individual flags are never asked for in scenes, then it may be better off just adding only one numerical variable to each item accounting for its "nudity rating" and base the calculations from there. Keeping it simple to cause less headaches and stuff.