2022-05-16 23:48:22 +00:00
###############
## Character ##
###############
IO Overhaul, Refactoring, and more
* Refactored DollFace
* Refactored DollBody
* Refactored DollCum
* Refactored DollCloth
* Refactored Doll
* Refactored clothing item zorders
* Refactored implementation of body, face, cum, clothing layers
* Refactored function calls
* Removed DollLipstick
* Added DollMakeup class, allowing adding dynamic clothes tracking face states
* Added DollClothDynamic, allowing dynamic clothes tracking other cloth states with bangs support
* Added cache to frequently called functions, drastically reducing the overhead
* Added hash system, reducing clone redundancy
* Added layer modifiers support for all types (face, body, cum, clothes etc.)
* Added support for an arbitrary number of equipped multislot clothing items (makeup, tattoos, piercings, etc.)
* Simplified initialization for clothing items and dolls
* Simplified class function calls
* Reduced the number of image creation calls
* Added hue support for additional skin layers
* Added displayable support to image cropping function
* Replaced store cache with built-in functools cache for _list_files function
* Refactored all character files
* and more...
2023-01-14 23:04:54 +00:00
default luna = Doll(name="luna")
2022-05-16 23:48:22 +00:00
2023-02-07 19:22:05 +00:00
default lun_frame_default = DollBodypart("luna", ("hidden", "frame"), "frame", "default")
default lun_body_default = DollOutfit([lun_frame_default], hidden=True)
2023-02-07 16:13:30 +00:00
##########
## Hair ##
##########
2023-02-08 21:40:28 +00:00
default lun_hair_base = DollCloth("luna", ("head", "hair"), "hair", "base", ["#ede0c3ff", "#bfa46bff", "#309087ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2022-05-16 23:48:22 +00:00
#######################
## Schoolgirl Outfit ##
#######################
2023-02-08 21:40:28 +00:00
default lun_hair_wand = DollCloth("luna", ("head", "hair"), "hair", "wand", ["#ede0c3ff", "#bfa46bff", "#309087ff"], unlocked=True)
2024-11-10 17:12:37 +00:00
default lun_glasses_hearts = DollCloth("luna", ("accessories", "glasses"), "glasses", "sunglasses_2", ["#6799C999", "#F395A9FF"], unlocked=True)
default lun_glasses_spectrespecs = DollCloth("luna", ("accessories", "glasses"), "glasses", "spectrespecs", ["#e36682ff", "#3d6e8cff"], unlocked=True)
default lun_accessory_pin_radish = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "pin_radish", ["#b61710ff", "#e8bebcff"], zorder=213, unlocked=True)
default lun_accessory_hair_bug = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "hair_bug", ["#ffffffff"], unlocked = True, zorder=252)
default lun_top_school1 = DollCloth("luna", ("tops", "shirts"), "top", "top_school_1", ["#b7b7b8ff", "#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_school2 = DollCloth("luna", ("tops", "shirts"), "top", "top_school_2", ["#b7b7b8ff", "#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_school3 = DollCloth("luna", ("tops", "shirts"), "top", "top_school_3", ["#b7b7b8ff", "#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_school4 = DollCloth("luna", ("tops", "shirts"), "top", "top_school_4", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_vest = DollCloth("luna", ("tops", "shirts"), "top", "top_school_vest", ["#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=4)
default lun_top_school5 = DollCloth("luna", ("tops", "shirts"), "top", "top_school_5", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=4)
default lun_top_school6 = DollCloth("luna", ("tops", "shirts"), "top", "top_school_6", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=5)
default lun_top_crop = DollCloth("luna", ("tops", "shirts"), "top", "top_school_crop", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=7)
2023-02-07 16:13:30 +00:00
2023-02-08 21:40:28 +00:00
default lun_neckwear_tie = DollCloth("luna", ("head", "neckwear"), "neckwear", "tie", ["#5974c2ff", "#d8a30aff"], unlocked = True, zorder=213) # Tie Only
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_bottom_school1 = DollCloth("luna", ("bottoms", "skirts"), "bottom", "school_skirt_1", ["#675a6cff", "#e8b10dff"], unlocked=True)
default lun_bottom_school2 = DollCloth("luna", ("bottoms", "skirts"), "bottom", "school_skirt_2", ["#675a6cff", "#e8b10dff"], unlocked=True)
default lun_bottom_school3 = DollCloth("luna", ("bottoms", "skirts"), "bottom", "school_skirt_3", ["#675a6cff", "#e8b10dff"], unlocked=True, level=4)
default lun_bottom_school4 = DollCloth("luna", ("bottoms", "skirts"), "bottom", "school_skirt_4", ["#675a6cff", "#e8b10dff"], unlocked=True, level=6)
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_stockings_school = DollCloth("luna", ("underwear", "hosiery"), "stockings", "short_school_1", ["#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_stockings_school2 = DollCloth("luna", ("underwear", "hosiery"), "stockings", "short_school_2", ["#5974c2ff"], unlocked=True)
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_bra_base1 = DollCloth("luna", ("underwear", "bras"), "bra", "basic_bra_1", ["#525c6bff", "#003280ff", "#003280ff"], unlocked=True)
default lun_panties_base1 = DollCloth("luna", ("underwear", "panties"), "panties", "basic_panties_1", ["#525c6bff", "#003280ff", "#003280ff"], unlocked=True)
default lun_panties_lace2 = DollCloth("luna", ("underwear", "panties"), "panties", "lace_panties_2", ["#1f5bb0ff", "#fff1edff", "#fff1edff"], level=7, unlocked=True)
2023-02-07 16:13:30 +00:00
2024-11-10 17:12:37 +00:00
default lun_robe_school_1 = DollCloth("luna", ("outer wear", "robes"), "robe", "robe_school_1", ["#606060ff", "#5974c2ff"], unlocked=True, level=0)
default lun_robe_school_2 = DollCloth("luna", ("outer wear", "robes"), "robe", "robe_school_2", ["#606060ff", "#5974c2ff"], unlocked=True, level=4)
default lun_robe_school_3 = DollCloth("luna", ("outer wear", "robes"), "robe", "robe_school_3", ["#606060ff", "#5974c2ff"], unlocked=True, level=5)
default lun_robe_school_4 = DollCloth("luna", ("outer wear", "robes"), "robe", "robe_school_4", ["#606060ff", "#5974c2ff"], unlocked=True, level=7)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +00:00
default lun_outfit_default = DollOutfit([lun_hair_base, lun_top_school1, lun_bottom_school2, lun_bra_base1, lun_panties_base1, lun_stockings_school], unlocked=True)
default lun_outfit_default_quirky = DollOutfit([lun_hair_wand, lun_accessory_hair_bug, lun_glasses_spectrespecs, lun_accessory_pin_radish, lun_neckwear_tie, lun_top_school3, lun_bottom_school2, lun_bra_base1, lun_panties_base1, lun_stockings_school], unlocked=True)
default lun_outfit_default_no_vest = DollOutfit([lun_hair_base, lun_top_school4, lun_bottom_school2, lun_bra_base1, lun_panties_base1, lun_stockings_school], hidden=True)
default lun_outfit_school_slut = DollOutfit([lun_hair_base, lun_glasses_hearts, lun_top_crop, lun_bottom_school4, lun_panties_lace2, lun_stockings_school])#, hidden=True)
default lun_outfit_last = DollOutfit([lun_hair_base], hidden=True)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +00:00
###################
## Bikini Outfit ##
###################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_bra_bikini3 = DollCloth("luna", ("underwear", "bras"), "bra", "bikini_bra_3", ["#0052c6ff", "#ad987eff"], level=7)
default lun_panties_bikini3 = DollCloth("luna", ("underwear", "panties"), "panties", "bikini_panties_3", ["#0052c6ff", "#ad987eff"], level=7)
2023-02-07 16:13:30 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_bikini3 = DollOutfit([lun_hair_base, lun_bra_bikini3, lun_panties_bikini3], price=350, name=_("Rave Bikini Set"), desc=_("Skilfully assembled from scrapped materials."))
2023-02-07 16:13:30 +00:00
###########################
## Lace Underwear Outfit ##
###########################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_bra_lace1 = DollCloth("luna", ("underwear", "bras"), "bra", "lace_bra_1", ["#717171ff", "#343434ff"], level=7)
default lun_panties_lace1 = DollCloth("luna", ("underwear", "panties"), "panties", "lace_panties_1", ["#717171ff", "#343434ff"], level=7)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_lace1 = DollOutfit([lun_hair_base, lun_bra_lace1, lun_panties_lace1], price=250, name=_("Lace Lingerie"), desc=_("For a girl that's feeling a bit lacy."))
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +00:00
#####################
## Swimsuit Outfit ##
#####################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_top_swimsuit1 = DollCloth("luna", ("tops", "one-pieces"), "top", "swimsuit_1", ["#ffacb8d7", "#ee7572ff"], blacklist=["panties", "bra"], zorder=183, level=6)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_swimsuit = DollOutfit([lun_hair_base, lun_top_swimsuit1], price=350, name=_("One-piece Swimsuit"), desc=_("Buy this outfit and everything will work out swimmingly."))
2022-05-16 23:48:22 +00:00
###################
2023-02-07 16:13:30 +00:00
## Pajama Outfit ## #Unlocked in Luna Intro
2022-05-16 23:48:22 +00:00
###################
2024-11-10 17:12:37 +00:00
default lun_top_pajama = DollCloth("luna", ("tops", "shirts"), "top", "pajama_1", ["#f97ec5ff", "#b61710ff"])
default lun_bottom_pajama = DollCloth("luna", ("bottoms", "trousers"), "bottom", "pajama_1", ["#ffc5d3ff", "#b61710ff"])
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +00:00
default lun_outfit_pajama = DollOutfit([lun_hair_base, lun_accessory_pin_radish, lun_top_pajama, lun_bottom_pajama, lun_bra_base1, lun_panties_base1], unlocked=True)
2022-05-16 23:48:22 +00:00
######################
## Flight Attendant ##
######################
2024-11-10 17:12:37 +00:00
default lun_top_flight_attendant_1 = DollCloth("luna", ("tops", "dresses"), "top", "flight_attendant_1", ["#525282ff", "#e14010ff"])
default lun_top_flight_attendant_2 = DollCloth("luna", ("tops", "dresses"), "top", "flight_attendant_2", ["#525282ff", "#e14010ff"], level=6)
2023-02-08 21:40:28 +00:00
default lun_neckwear_neckerchief = DollCloth("luna", ("head", "neckwear"), "neckwear", "neckerchief", ["#525282ff"])
default lun_headgear_flight_attendant = DollClothDynamic("luna", ("head", "headgear"), "headgear", "flight_attendant", ["#e14010ff"], tracking="?hair")
2024-11-10 17:12:37 +00:00
default lun_panties_flight_attendant_1 = DollCloth("luna", ("underwear", "panties"), "panties", "flight_attendant_thongs_1", ["#e14010ff"], level=7)
default lun_panties_flight_attendant_2 = DollCloth("luna", ("underwear", "panties"), "panties", "flight_attendant_thongs_2", ["#e14010ff", "#e8b77bff"], level=9)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_flight_attendant = DollOutfit([lun_hair_base, lun_top_flight_attendant_1, lun_neckwear_neckerchief, lun_headgear_flight_attendant, lun_panties_flight_attendant_1], addons=[lun_top_flight_attendant_2, lun_panties_flight_attendant_2], price=350, name=_("Flight Attendant Costume"), desc=_("An outfit attendants wear in those flying metal things."))
2023-02-07 16:13:30 +00:00
###################
## Muggle Outfit ##
###################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_top_muggle_top = DollCloth("luna", ("tops", "shirts"), "top", "muggle_top", ["#7f6d8cff", "#e783baff"])
default lun_robe_muggle_jacket = DollCloth("luna", ("outer wear", "jackets"), "robe", "muggle_jacket", ["#f7bec4ff", "#863c4aff"])
default lun_bottom_muggle_skirt = DollCloth("luna", ("bottoms", "skirts"), "bottom", "muggle_skirt", ["#2b2b2bff", "#3d8ec2ff", "#53a996ff", "#f3f3f3ff", "#e29496ff", "#f5d284ff"])
default lun_stockings_muggle_knee_socks = DollCloth("luna", ("underwear", "hosiery"), "stockings", "muggle_knee_socks", ["#025792ff", "#00767fff", "#000f2bff"])
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_muggle = DollOutfit([lun_hair_base, lun_top_muggle_top, lun_robe_muggle_jacket, lun_bottom_muggle_skirt, lun_stockings_muggle_knee_socks, lun_bra_base1, lun_panties_base1], price=300, name=_("Muggle Outfit"), desc=_("An outfit that probably at least one muggle somewhere would wear."))
2023-02-07 16:13:30 +00:00
###################
## Summer Outfit ##
###################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_top_summer_top1 = DollCloth("luna", ("tops", "shirts"), "top", "summer_top_1", ["#ff9acdff"])
default lun_top_summer_top2 = DollCloth("luna", ("tops", "shirts"), "top", "summer_top_2", ["#ff9acdff"], level=7)
default lun_bottom_summer_shorts = DollCloth("luna", ("bottoms", "shorts"), "bottom", "summer_shorts", ["#2f9688ff", "#afdcbfff", "#f79826ff"])
default lun_accessory_bracelets = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "bracelets", ["#24b82dff", "#3ab0d4ff", "#c2310fff"], zorder=225)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_summer = DollOutfit([lun_hair_base, lun_top_summer_top1, lun_bottom_summer_shorts, lun_panties_base1, lun_accessory_bracelets], addons=[lun_top_summer_top2], price=350, name=_("Summer Set"), desc=_("It's pretty hot."))
2023-02-07 16:13:30 +00:00
2022-12-14 17:32:54 +00:00
######################
2023-02-07 16:13:30 +00:00
## Reindeer Costume ## #unlocked in genies_christmas_wish mirror story
2022-12-14 17:32:54 +00:00
######################
2024-11-10 17:12:37 +00:00
default lun_top_bunny2 = DollCloth("luna", ("tops", "one-pieces"), "top", "bunny_top_2", ["#8e4a0aff"], blacklist=["panties", "bra"], zorder=183, level=7)
2023-02-18 23:19:32 +00:00
default lun_neckwear_chocolate_frog = DollCloth("luna", ("head", "neckwear"), "neckwear", "chocolate_frog", ["#ffffffff"])
2024-11-10 17:12:37 +00:00
default lun_earring_bauble = DollCloth("luna", ("body art", "earrings"), "earrings", "bauble_earring", ["#a30000ff"], level=4)
2023-02-08 21:40:28 +00:00
default lun_hat_antlers = DollClothDynamic("luna", ("head", "headgear"), "headgear", "antlers", ["#8e4a0aff", "#ffffffff", "#dbc095ff"], tracking="?hair")
2024-11-10 17:12:37 +00:00
default lun_accessory_mistletoe = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "mistletoe", ["#bfbf56ff"], zorder=213, level=7)
default lun_stockings_pantyhose_meshed = DollCloth("luna", ("underwear", "hosiery"), "stockings", "pantyhose_meshed", ["#000000ff"], unlocked=True)
2022-12-14 17:32:54 +00:00
2023-02-18 23:19:32 +00:00
default lun_outfit_reindeer = DollOutfit([lun_hair_base, lun_top_bunny2, lun_neckwear_chocolate_frog, lun_earring_bauble, lun_hat_antlers, lun_stockings_pantyhose_meshed, lun_accessory_mistletoe])
2022-12-14 17:32:54 +00:00
2023-02-07 16:13:30 +00:00
##################
## Bunny Outfit ##
##################
2022-12-14 17:32:54 +00:00
2023-02-08 21:40:28 +00:00
default lun_hat_bunny1 = DollClothDynamic("luna", ("head", "headgear"), "headgear", "bunny_hat_1", ["#dba18cff", "#fde3abff"], tracking="?hair")
2024-11-10 17:12:37 +00:00
default lun_top_bunny1 = DollCloth("luna", ("tops", "one-pieces"), "top", "bunny_top_1", ["#000000ff"], blacklist=["panties", "bra"], zorder=183, level=7)
2022-12-14 17:32:54 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_bunny = DollOutfit([lun_hair_base, lun_top_bunny1, lun_stockings_pantyhose_meshed, lun_hat_bunny1], price=250, name=_("Sexy Bunny Costume"), desc=_("A bunny costume for when you're hopping mad."))
2022-12-14 17:32:54 +00:00
2023-02-07 16:13:30 +00:00
########################
## Party Dress Outfit ##
########################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_top_party_dress = DollCloth("luna", ("tops", "dresses"), "top", "party_dress", ["#f8a800ff", "#ac5e1bff"])
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_party = DollOutfit([lun_hair_base, lun_top_party_dress, lun_panties_base1], price=350, name=_("Party Dress"), desc=_("A weird dress for a weird girl."))
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +00:00
####################
## Nightie Outfit ##
####################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_top_nightie1 = DollCloth("luna", ("tops", "shirts"), "top", "nightie_1", ["#ffffffd7"], level=5)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_nightie1 = DollOutfit([lun_hair_base, lun_top_nightie1], price=350, name=_("Loose-fitting Nightie"), desc=_("The prefect nightie for a girl with her screws loose."))
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +00:00
##########################
## Loose Nightie Outfit ##
##########################
2022-05-16 23:48:22 +00:00
2024-11-10 17:12:37 +00:00
default lun_top_nightie2 = DollCloth("luna", ("tops", "shirts"), "top", "nightie_2", ["#ffacb8d7"], level=6)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_nightie2 = DollOutfit([lun_hair_base, lun_top_nightie2], price=350, name=_("Nightie"), desc=_("The perfect garment if you're tired of wearing a pyjamas."))
2022-05-16 23:48:22 +00:00
2023-07-22 13:37:48 +00:00
#####################
## Tank top Outfit ##
#####################
2024-11-10 17:12:37 +00:00
default lun_top_short_tanktop = DollCloth("luna", ("tops", "shirts"), "top", "short_tanktop", ["#86CB7CFF", "#3B6E34FF"])
default lun_bottom_shorts = DollCloth("luna", ("bottoms", "shorts"), "bottom", "shorts",["#86CB7Cff", "#3B6E34ff", "#FFFFFFFF"])
2023-07-22 13:37:48 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_tanktop = DollOutfit([lun_hair_base, lun_panties_base1, lun_top_short_tanktop, lun_bottom_shorts], price=200, name=_("Short shorts Outfit"), desc=_("If you're not short on cash, then these short shorts and tank top are a great summer gift."))
2023-07-22 13:37:48 +00:00
##################
## Bimbo Outfit ##
##################
2024-11-10 17:12:37 +00:00
default lun_top_torn = DollCloth("luna", ("tops", "shirts"), "top", "top_torn", ["#FFFFFFFF", "#C3C9E5FF"], level=10)
default lun_skirt_plaid = DollCloth("luna", ("bottoms", "skirts"), "bottom", "skirt_plaid", ["#B35155ff", "#523E5Eff", "#767986ff", "#C3C9E5ff"], level=6)
default lun_stockings_bimbo_leggings = DollCloth("luna", ("underwear", "hosiery"), "stockings", "leggings_bimbo", ["#FFFFFFff", "#C2C8E499", "#B35155ff", "#523E5Eff"])
2023-07-22 13:37:48 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_bimbo = DollOutfit([lun_hair_base, lun_top_torn, lun_skirt_plaid, lun_stockings_bimbo_leggings], price=350, name=_("Bimbo Outfit"), desc=_("An outfit for someone that's either aware, or unaware that they're a bimbo."))
2023-07-22 13:37:48 +00:00
2023-07-26 23:52:08 +00:00
####################
## Cumslut Outfit ##
####################
default lun_neckwear_choker_1 = DollCloth("luna", ("head", "neckwear"), "neckwear", "choker_1", ["#39373FFF"])
2024-11-10 17:12:37 +00:00
default lun_top_cumslut = DollCloth("luna", ("tops", "shirts"), "top", "top_cumslut", ["#39373FFF", "#473A63FF"], level=10)
default lun_panties_cumslut = DollCloth("luna", ("underwear", "panties"), "panties", "panties_cumslut", ["#39373FFF", "#473A63FF"], level=10)
2023-07-26 23:52:08 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_cumslut = DollOutfit([lun_hair_base, lun_neckwear_choker_1, lun_top_cumslut, lun_panties_cumslut], price=350, name=_("Cumslut Outfit"), desc=_("Shit's fire yo."))
2023-07-26 23:52:08 +00:00
##################
## Latex Outfit ##
##################
2024-11-10 17:12:37 +00:00
default lun_top_latex = DollCloth("luna", ("tops", "shirts"), "top", "top_latex", ["#35373CFF", "#35373CFF"], level=10)
default lun_bottom_trousers_latex = DollCloth("luna", ("bottoms", "trousers"), "bottom", "trousers_latex", ["#35373CFF", "#35373CFF"])
default lun_bottom_shorts_latex = DollCloth("luna", ("bottoms", "shorts"), "bottom", "shorts_latex",["#35373CFF", "#35373CFF"])
2023-07-26 23:52:08 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_latex = DollOutfit([lun_hair_base, lun_top_latex, lun_bottom_trousers_latex], addons=[lun_bottom_shorts_latex], price=300, name=_("Latex Outfit"), desc=_("Rubber up and show off your bouncy personality with this latex outfit!"))
2023-07-26 23:52:08 +00:00
####################
## Flasher Outfit ##
####################
default lun_neckwear_collar = DollCloth("luna", ("head", "neckwear"), "neckwear", "collar", ["#565656", "#eaeaea"])
default lun_neckwear_collar_1 = DollCloth("luna", ("head", "neckwear"), "neckwear", "collar_1", ["#F12E2EFF"])
2024-11-11 14:54:36 +00:00
default lun_accessory_leash = DollCloth("luna", ("head", "neckwear"), "accessory", "leash", ["#F12E2EFF"], level=7, zorder=214)
2024-11-10 17:12:37 +00:00
default lun_accessory_onepiece_harness = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "onepiece_harness", ["#565656", "#eaeaea"], zorder=215, level=10)
2024-11-11 14:54:36 +00:00
default lun_robe_coat_flasher = DollCloth("luna", ("outer wear", "coats"), "robe", "coat_flasher", ["#dba55f", "#fdd299", "#493a31"], level=7, zorder=145, blacklist=["top", "bottom", "gloves"])
2023-07-26 23:52:08 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_flasher = DollOutfit([lun_hair_base, lun_accessory_leash, lun_accessory_onepiece_harness, lun_robe_coat_flasher], addons=[lun_neckwear_collar, lun_neckwear_collar_1], price=350, name=_("Flasher Outfit"), desc=_("Show them what you got."))
2023-07-26 23:52:08 +00:00
2022-05-16 23:48:22 +00:00
###########################
2023-02-07 16:13:30 +00:00
## Police Officer Outfit ## #unlocked in not_so_great_escape mirror story
2022-05-16 23:48:22 +00:00
###########################
2024-11-10 17:12:37 +00:00
default lun_stockings_police = DollCloth("luna", ("underwear", "hosiery"), "stockings", "police_thigh_highs", ["#2b2b55ff", "#8e8eb3ff"])
default lun_bottom_police_skirt = DollCloth("luna", ("bottoms", "skirts"), "bottom", "police_skirt", ["#2e47abff"], level=5)
default lun_top_police_shirt = DollCloth("luna", ("tops", "shirts"), "top", "police_shirt", ["#2e47abff", "#bbbbd2ff"], level=5)
default lun_accessory_police_belt = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "police_belt", ["#26265bff", "#bbbbd2ff"], zorder=212)
default lun_accessory_police_badge = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "police_badge", ["#192655ff", "#fcf16dff"], zorder=213)
default lun_accessory_police_cuffs = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "police_cuffs", ["#bbbbd2ff"], zorder=225)
2022-05-16 23:48:22 +00:00
2022-05-20 18:34:30 +00:00
default lun_outfit_police = DollOutfit([lun_hair_base, lun_stockings_police, lun_bottom_police_skirt, lun_top_police_shirt, lun_panties_base1, lun_accessory_police_badge, lun_accessory_police_belt], addons=[lun_accessory_police_cuffs])
2022-05-16 23:48:22 +00:00
#########################
## Harley Quinn Outfit ##
#########################
2023-02-08 21:40:28 +00:00
default lun_hair_harley_quinn = DollCloth("luna", ("head", "hair"), "hair", "harley_quinn", ["#ede0c3ff", "#bfa46bff", "#e43713ff", "#1365e4ff", "#ff5bf8ff"])
2024-11-10 17:12:37 +00:00
default lun_pantyhose_harley_quinn = DollCloth("luna", ("underwear", "hosiery"), "stockings", "harley_quinn", ["#ae3512ff"])
default lun_top_harley_quinn = DollCloth("luna", ("tops", "one-pieces"), "top", "harley_quinn", ["#326280ff", "#8c9fb4ff", "#e43612ff", "#1264e4ff"])
default lun_robe_harley_quinn = DollCloth("luna", ("outer wear", "jackets"), "robe", "harley_quinn", ["#d8fcffff", "#8c9fb4ff", "#58d532ff", "#e44e14ff", "#ea48c0ff"])
default lun_gloves_harley_quinn = DollCloth("luna", ("accessories", "gloves"), "gloves", "harley_quinn", ["#1f3349ff"])
default lun_accessory_harley_quinn_strap = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "harley_quinn_strap", ["#1f3349ff"], zorder=183)
2022-05-16 23:48:22 +00:00
2024-05-01 18:28:56 +00:00
default lun_outfit_harley_quinn = DollOutfit([lun_hair_harley_quinn, lun_pantyhose_harley_quinn, lun_top_harley_quinn, lun_robe_harley_quinn, lun_gloves_harley_quinn, lun_accessory_harley_quinn_strap], price=500, name=_("Harley Quinn Outfit"), desc=_("Attractively crazy."))
2022-05-16 23:48:22 +00:00
#################
2023-02-07 16:13:30 +00:00
## Lion Outfit ## (Event only)
2022-05-16 23:48:22 +00:00
#################
2024-11-10 17:12:37 +00:00
default lun_bottom_casual_jeans = DollCloth("luna", ("bottoms", "trousers"), "bottom", "casual_jeans", ["#8027bfff"])
2024-11-11 14:54:36 +00:00
default lun_top_casual_sweater = DollCloth("luna", ("tops", "knitwear"), "top", "casual_sweater", ["#382088ff", "#382088ff"])
2024-11-10 17:12:37 +00:00
default lun_accessory_lionhead = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "lionhead", None)
2022-05-16 23:48:22 +00:00
2022-05-20 18:34:30 +00:00
default lun_outfit_casual= DollOutfit([lun_hair_base, lun_panties_base1, lun_bra_base1, lun_bottom_casual_jeans, lun_top_casual_sweater], unlocked=True)
2022-05-16 23:48:22 +00:00
default lun_outfit_lion_event = DollOutfit([lun_panties_base1, lun_bra_base1, lun_accessory_lionhead, lun_bottom_casual_jeans, lun_top_casual_sweater], hidden=True)
2023-02-07 16:13:30 +00:00
###############
## Underwear ##
###############
# Plain Underwear
2024-11-10 17:12:37 +00:00
default lun_bra_base2 = DollCloth("luna", ("underwear", "bras"), "bra", "basic_bra_2", ["#d8e1e6ff", "#5974c2ff"], unlocked=True)
default lun_panties_base2 = DollCloth("luna", ("underwear", "panties"), "panties", "basic_panties_2", ["#d8e1e6ff", "#5974c2ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
#################
## Accessories ##
#################
2023-02-12 23:00:24 +00:00
default lun_neckwear_cork = DollCloth("luna", ("head", "neckwear"), "neckwear", "cork", ["#E98E2AFF", "#CECECEFF"], unlocked = True, zorder=213)
2023-02-07 16:13:30 +00:00
2024-11-10 17:12:37 +00:00
default lun_accessory_wand_mouth = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "wand_mouth", ["#ffffffff"], unlocked = True, zorder=213)
default lun_accessory_wand_hand = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "wand_hand", ["#ffffffff"], unlocked = True, zorder=222)
default lun_accessory_wand_breasts = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "wand_breasts", ["#ffffffff"], unlocked = True, zorder=213)
default lun_accessory_wand_pussy = DollCloth("luna", ("accessories", "miscellaneous"), "accessory", "wand_pussy", ["#ffffffff"], unlocked = True, zorder=183)
2023-02-07 16:13:30 +00:00
2023-07-22 13:37:48 +00:00
############
## Makeup ##
############
# Nails
2024-11-10 17:12:37 +00:00
default lun_makeup_nail_polish = DollCloth("luna", ("body art", "makeup"), "makeup", "nail_polish", ["#FFAEB2ff"], unlocked=True)
2023-07-22 13:37:48 +00:00
2023-02-07 16:13:30 +00:00
################
## Pubic Hair ##
################
2024-11-10 17:12:37 +00:00
default lun_pubes_arrow = DollCloth("luna", ("body art", "pubic hair"), "pubes", "arrow", ["#e4c991ff"], unlocked=True)
default lun_pubes_beaver = DollCloth("luna", ("body art", "pubic hair"), "pubes", "beaver", ["#e4c991ff"], unlocked=True)
default lun_pubes_stuble = DollCloth("luna", ("body art", "pubic hair"), "pubes", "stuble", ["#9b8558ff"], unlocked=True)
default lin_pubes_unshaved = DollCloth("luna", ("body art", "pubic hair"), "pubes", "unshaved", ["#9b8558ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2023-07-22 13:37:48 +00:00
###############
## Piercings ##
###############
2024-11-10 17:12:37 +00:00
default lun_earring_moon = DollCloth("luna", ("body art", "earrings"), "earrings", "earring_moon", ["#D2DFEEff", "#FFE973ff", "#BA6755ff"], unlocked=True)
default lun_ear_studs = DollCloth("luna", ("body art", "earrings"), "earrings", "ear_studs", ["#F6C54Fff"], unlocked=True)
2023-07-22 13:37:48 +00:00
2024-11-10 17:12:37 +00:00
default lun_piercing_eyebrow_ring = DollMakeup("luna", ("body art", "piercings"), "piercing", "eyebrow_ring", ["#CDDAE8ff"], unlocked=True, tracking="eyebrows")
default lun_piercing_nose_ring = DollCloth("luna", ("body art", "piercings"), "piercing", "nose_ring", ["#F8DC5Dff"], unlocked=True)
default lun_piercing_mouth_stud = DollMakeup("luna", ("body art", "piercings"), "piercing", "mouth_stud", ["#D2E0F0ff"], unlocked=True, tracking="mouth")
default lun_piercing_nipple_studs = DollCloth("luna", ("body art", "piercings"), "piercing", "nipple_studs", ["#D2DFEEff"], unlocked=True)
default lun_piercing_nipple_rings = DollCloth("luna", ("body art", "piercings"), "piercing", "nipple_rings", ["#D2DFEEff"], unlocked=True)
default lun_piercing_clit_stud = DollCloth("luna", ("body art", "piercings"), "piercing", "clit_stud", ["#B8C6D7ff"], unlocked=True)
2023-07-22 13:37:48 +00:00
2023-02-07 16:13:30 +00:00
#############
## Tattoos ##
#############
2024-11-10 17:12:37 +00:00
default lun_tattoo_measure = DollCloth("luna", ("body art", "tattoos"), "tattoo", "measure", ["#000000ff", "#db492cff"], unlocked=True)
default lun_tattoo_spurt_here = DollCloth("luna", ("body art", "tattoos"), "tattoo", "spurt_here", ["#000000ff"], unlocked=True)
default lun_tattoo_loony = DollCloth("luna", ("body art", "tattoos"), "tattoo", "loony", ["#000000ff"], unlocked=True)
default lun_tattoo_baby_oven = DollCloth("luna", ("body art", "tattoos"), "tattoo", "baby_oven", ["#000000ff", "#db492cff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2024-11-10 17:12:37 +00:00
default lun_tattoo_lab_rat = DollCloth("luna", ("body art", "tattoos"), "tattoo", "lab_rat", ["#000000ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2024-11-10 17:12:37 +00:00
default lun_tattoo_cumdump = DollCloth("luna", ("body art", "tattoos"), "tattoo", "cumdump", ["#000000ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
##########
## Misc ##
##########
2024-11-10 17:12:37 +00:00
default lun_stockings_pantyhose = DollCloth("luna", ("underwear", "hosiery"), "stockings", "pantyhose_1", ["#b19083ff"], unlocked=True)
2023-02-07 16:13:30 +00:00