- Implement a GenericApparel and the different layers/coverage/slots, with the actual functionality stubbed out. - We need to define fem levels and how to check the fem status of a character. - Create a selection of test clothing using the specification. - Implement wearing and removing these items, with autoremove. - Reimplement new printing through and partially obscured desc code. Thin, Tight, Sheer. - Partially implement locations, stubbing out fem/lewd levels. - Implement inventory actions on general objects. - Implement worn apparel actions. - Implement outfit saving - Implement stats. - Implement locations and allowed fem/lewd levels. NOTES: ------ Class inheritance of apparel defines *functionality*, not gender-appropriateness. To determine the gender-appropriateness of an article of apparel, we'll give it a femininity stat, as follows: 2 - The apparel is obviously feminine, and anyone male wearing it is obviously crossdressing (most women's clothes). 1 - The apparel is vaguely feminine, but can be worn by men although it may raise some eyebrows (skinny jeans, for example). 0 - The apparel is unisex, and can be worn by either gender without raising any eyebrows. -1 - The apparel is vaguely masculine, but can be worn by women although it may raise some eyebrows (men's suit pants, ties, or suspenders for example. -2 - The apparel is obviously masculine, and anyone female wearing it is obviously crossdressing (men's underwear is all I can think of here, although that wouldn't be worn in public for anyone to see anyway). Apparel will have a getFem() function that will return this value, as well as a getMasc() function that will return the opposite, just to help make the meaning of code that is using it more clear. We'll also have some values for clothing: 'daring' - aka "slutty", but would also include speedos for men etc. 'cute' - only for womens' apparel. Attractive but in a more wholesome way than 'daring'. 'conservative' - professional-like. These can be combined. Business-slutty, for example. We'll determine some sort of fixed range for these values from 0 to complete-ho or whatever. A person's overall score in each will be determined by averaging the values of all visible apparel, plus maybe some kind of bonus for showing indecent bits. These values will be used to gate off clothing choices for increasing-corruption type games, and for determining peoples' reaction to the character. --------------- Implementation notes: Add nipples coverage slot. Implement some more shirt types. Over-shirts. tank tops. crop tops. off-shoulder tops. generic Top (CLOTHING layer) + low-cut +off-shoulder t-shirt - +low-cut +off-shoulder Tank Top - via t-shirt +low-cut Crop Top - via t-shirt +low-cut +off-shoulder Bodysuit - via t-shirt +low-cut +off-shoulder button-up top (actions to decide how many buttons to fasten- open, show cleavage, closed) button-up top long sleeve sweater/sweatshirt hoodie jacket w/ hood ---- It looks like we need to implement some utility methods to do common things to apparel subclasses: makeCropped() (remove all tummy and lower back layers) makeOffShoulder() (remove all shoulder layers) makeLowCut() (make all cleavage layers partial) makeButtonable/Zippable() (add button/zip function and appropriate states depending on slots in default state) makeHooded() (add a hood, for a jacket or hoodie) makeLowRise() (remove all upper hips layers) (for pants) makeLongSleeve() (look at existing shoulder or torso areas and make sleeves on that layer) Add getCoverage() to WornApparel such that it looks at the whole outfit and returns the coverage on that body part. Add getIndecent() to WornApparel to return coverage slots that are indecent.