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)
2023-07-22 13:37:48 +00:00
default lun_glasses_hearts = DollCloth("luna", ("head", "glasses"), "glasses", "sunglasses_2", ["#6799C999", "#F395A9FF"], unlocked=True)
2023-02-08 21:40:28 +00:00
default lun_glasses_spectrespecs = DollCloth("luna", ("head", "glasses"), "glasses", "spectrespecs", ["#e36682ff", "#3d6e8cff"], unlocked=True)
default lun_accessory_pin_radish = DollCloth("luna", ("misc", "accessory"), "accessory", "pin_radish", ["#b61710ff", "#e8bebcff"], zorder=213, unlocked=True)
2023-03-07 18:05:42 +00:00
default lun_accessory_hair_bug = DollCloth("luna", ("misc", "accessory"), "accessory", "hair_bug", ["#ffffffff"], unlocked = True, zorder=252)
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_top_school1 = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_1", ["#b7b7b8ff", "#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_school2 = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_2", ["#b7b7b8ff", "#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_school3 = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_3", ["#b7b7b8ff", "#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_school4 = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_4", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_top_vest = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_vest", ["#6d6979ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=4)
default lun_top_school5 = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_5", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=4)
default lun_top_school6 = DollCloth("luna", ("upper body", "shirts"), "top", "top_school_6", ["#b7b7b8ff", "#5974c2ff", "#d8a30aff"], unlocked=True, level=5)
default lun_top_crop = DollCloth("luna", ("upper body", "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
2023-02-08 21:40:28 +00:00
default lun_bottom_school1 = DollCloth("luna", ("lower body", "skirts"), "bottom", "school_skirt_1", ["#675a6cff", "#e8b10dff"], unlocked=True)
default lun_bottom_school2 = DollCloth("luna", ("lower body", "skirts"), "bottom", "school_skirt_2", ["#675a6cff", "#e8b10dff"], unlocked=True)
default lun_bottom_school3 = DollCloth("luna", ("lower body", "skirts"), "bottom", "school_skirt_3", ["#675a6cff", "#e8b10dff"], unlocked=True, level=4)
default lun_bottom_school4 = DollCloth("luna", ("lower body", "skirts"), "bottom", "school_skirt_4", ["#675a6cff", "#e8b10dff"], unlocked=True, level=6)
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_stockings_school = DollCloth("luna", ("legwear", "stockings"), "stockings", "short_school_1", ["#5974c2ff", "#d8a30aff"], unlocked=True)
default lun_stockings_school2 = DollCloth("luna", ("legwear", "stockings"), "stockings", "short_school_2", ["#5974c2ff"], unlocked=True)
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_bra_base1 = DollCloth("luna", ("upper undergarment", "bras"), "bra", "basic_bra_1", ["#525c6bff", "#003280ff", "#003280ff"], unlocked=True)
default lun_panties_base1 = DollCloth("luna", ("lower undergarment", "panties"), "panties", "basic_panties_1", ["#525c6bff", "#003280ff", "#003280ff"], unlocked=True)
default lun_panties_lace2 = DollCloth("luna", ("lower undergarment", "panties"), "panties", "lace_panties_2", ["#1f5bb0ff", "#fff1edff", "#fff1edff"], level=7, unlocked=True)
2023-02-07 16:13:30 +00:00
2023-02-08 21:40:28 +00:00
default lun_robe_school_1 = DollCloth("luna", ("upper body", "robes"), "robe", "robe_school_1", ["#606060ff", "#5974c2ff"], unlocked=True, level=0)
default lun_robe_school_2 = DollCloth("luna", ("upper body", "robes"), "robe", "robe_school_2", ["#606060ff", "#5974c2ff"], unlocked=True, level=4)
default lun_robe_school_3 = DollCloth("luna", ("upper body", "robes"), "robe", "robe_school_3", ["#606060ff", "#5974c2ff"], unlocked=True, level=5)
default lun_robe_school_4 = DollCloth("luna", ("upper body", "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
2023-02-08 21:40:28 +00:00
default lun_bra_bikini3 = DollCloth("luna", ("upper undergarment", "bikini bras"), "bra", "bikini_bra_3", ["#0052c6ff", "#ad987eff"], level=7)
default lun_panties_bikini3 = DollCloth("luna", ("lower undergarment", "bikini panties"), "panties", "bikini_panties_3", ["#0052c6ff", "#ad987eff"], level=7)
2023-02-07 16:13:30 +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.")
###########################
## Lace Underwear Outfit ##
###########################
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_bra_lace1 = DollCloth("luna", ("upper undergarment", "bras"), "bra", "lace_bra_1", ["#717171ff", "#343434ff"], level=7)
default lun_panties_lace1 = DollCloth("luna", ("lower undergarment", "panties"), "panties", "lace_panties_1", ["#717171ff", "#343434ff"], level=7)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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
2023-02-08 21:40:28 +00:00
default lun_top_swimsuit1 = DollCloth("luna", ("upper body", "one-piece suits"), "top", "swimsuit_1", ["#ffacb8d7", "#ee7572ff"], blacklist=["panties", "bra"], zorder=183, level=6)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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
###################
2023-02-08 21:40:28 +00:00
default lun_top_pajama = DollCloth("luna", ("upper body", "shirts"), "top", "pajama_1", ["#f97ec5ff", "#b61710ff"])
default lun_bottom_pajama = DollCloth("luna", ("lower body", "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 ##
######################
2023-02-08 21:40:28 +00:00
default lun_top_flight_attendant_1 = DollCloth("luna", ("upper body", "dresses"), "top", "flight_attendant_1", ["#525282ff", "#e14010ff"])
default lun_top_flight_attendant_2 = DollCloth("luna", ("upper body", "dresses"), "top", "flight_attendant_2", ["#525282ff", "#e14010ff"], level=6)
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")
default lun_panties_flight_attendant_1 = DollCloth("luna", ("lower undergarment", "bikini panties"), "panties", "flight_attendant_thongs_1", ["#e14010ff"], level=7)
default lun_panties_flight_attendant_2 = DollCloth("luna", ("lower undergarment", "bikini panties"), "panties", "flight_attendant_thongs_2", ["#e14010ff", "#e8b77bff"], level=9)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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.")
###################
## Muggle Outfit ##
###################
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_top_muggle_top = DollCloth("luna", ("upper body", "shirts"), "top", "muggle_top", ["#7f6d8cff", "#e783baff"])
2023-07-22 13:37:48 +00:00
default lun_robe_muggle_jacket = DollCloth("luna", ("upper body", "robes"), "robe", "muggle_jacket", ["#f7bec4ff", "#863c4aff"])
2023-02-08 21:40:28 +00:00
default lun_bottom_muggle_skirt = DollCloth("luna", ("lower body", "skirts"), "bottom", "muggle_skirt", ["#2b2b2bff", "#3d8ec2ff", "#53a996ff", "#f3f3f3ff", "#e29496ff", "#f5d284ff"])
default lun_stockings_muggle_knee_socks = DollCloth("luna", ("legwear", "stockings"), "stockings", "muggle_knee_socks", ["#025792ff", "#00767fff", "#000f2bff"])
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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.")
###################
## Summer Outfit ##
###################
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_top_summer_top1 = DollCloth("luna", ("upper body", "shirts"), "top", "summer_top_1", ["#ff9acdff"])
default lun_top_summer_top2 = DollCloth("luna", ("upper body", "shirts"), "top", "summer_top_2", ["#ff9acdff"], level=7)
default lun_bottom_summer_shorts = DollCloth("luna", ("lower body", "shorts"), "bottom", "summer_shorts", ["#2f9688ff", "#afdcbfff", "#f79826ff"])
default lun_accessory_bracelets = DollCloth("luna", ("misc", "accessory"), "accessory", "bracelets", ["#24b82dff", "#3ab0d4ff", "#c2310fff"], zorder=225)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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.")
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
######################
2023-02-08 21:40:28 +00:00
default lun_top_bunny2 = DollCloth("luna", ("upper body", "one-piece suits"), "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"])
2023-02-08 21:40:28 +00:00
default lun_earring_bauble = DollCloth("luna", ("head", "earrings"), "earrings", "bauble_earring", ["#a30000ff"], level=4)
default lun_hat_antlers = DollClothDynamic("luna", ("head", "headgear"), "headgear", "antlers", ["#8e4a0aff", "#ffffffff", "#dbc095ff"], tracking="?hair")
default lun_accessory_mistletoe = DollCloth("luna", ("misc", "accessory"), "accessory", "mistletoe", ["#bfbf56ff"], zorder=213, level=7)
default lun_stockings_pantyhose_meshed = DollCloth("luna", ("legwear", "pantyhose"), "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")
default lun_top_bunny1 = DollCloth("luna", ("upper body", "one-piece suits"), "top", "bunny_top_1", ["#000000ff"], blacklist=["panties", "bra"], zorder=183, level=7)
2022-12-14 17:32:54 +00:00
2022-12-15 20:07:32 +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
2023-02-08 21:40:28 +00:00
default lun_top_party_dress = DollCloth("luna", ("upper body", "dresses"), "top", "party_dress", ["#f8a800ff", "#ac5e1bff"])
2022-05-16 23:48:22 +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.")
2023-02-07 16:13:30 +00:00
####################
## Nightie Outfit ##
####################
2022-05-16 23:48:22 +00:00
2023-02-08 21:40:28 +00:00
default lun_top_nightie1 = DollCloth("luna", ("upper body", "shirts"), "top", "nightie_1", ["#ffffffd7"], level=5)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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
2023-02-08 21:40:28 +00:00
default lun_top_nightie2 = DollCloth("luna", ("upper body", "shirts"), "top", "nightie_2", ["#ffacb8d7"], level=6)
2022-05-16 23:48:22 +00:00
2023-02-07 16:13:30 +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 ##
#####################
default lun_top_short_tanktop = DollCloth("luna", ("upper body", "shirts"), "top", "short_tanktop", ["#86CB7CFF", "#3B6E34FF"])
default lun_bottom_shorts = DollCloth("luna", ("lower body", "shorts"), "bottom", "shorts",["#86CB7Cff", "#3B6E34ff", "#FFFFFFFF"])
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.")
##################
## Bimbo Outfit ##
##################
default lun_top_torn = DollCloth("luna", ("upper body", "shirts"), "top", "top_torn", ["#FFFFFFFF", "#C3C9E5FF"], level=10)
default lun_skirt_plaid = DollCloth("luna", ("lower body", "skirts"), "bottom", "skirt_plaid", ["#B35155ff", "#523E5Eff", "#767986ff", "#C3C9E5ff"], level=6)
default lun_stockings_bimbo_leggings = DollCloth("luna", ("legwear", "stockings"), "stockings", "leggings_bimbo", ["#FFFFFFff", "#C2C8E499", "#B35155ff", "#523E5Eff"])
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-26 23:52:08 +00:00
####################
## Cumslut Outfit ##
####################
default lun_neckwear_choker_1 = DollCloth("luna", ("head", "neckwear"), "neckwear", "choker_1", ["#39373FFF"])
default lun_top_cumslut = DollCloth("luna", ("upper body", "shirts"), "top", "top_cumslut", ["#39373FFF", "#473A63FF"], level=10)
default lun_panties_cumslut = DollCloth("luna", ("lower undergarment", "panties"), "panties", "panties_cumslut", ["#39373FFF", "#473A63FF"], level=10)
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.")
##################
## Latex Outfit ##
##################
default lun_top_latex = DollCloth("luna", ("upper body", "shirts"), "top", "top_latex", ["#35373CFF", "#35373CFF"], level=10)
default lun_bottom_trousers_latex = DollCloth("luna", ("lower body", "trousers"), "bottom", "trousers_latex", ["#35373CFF", "#35373CFF"])
default lun_bottom_shorts_latex = DollCloth("luna", ("lower body", "shorts"), "bottom", "shorts_latex",["#35373CFF", "#35373CFF"])
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!")
####################
## 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"])
default lun_accessory_leash = DollCloth("luna", ("misc", "accessory"), "accessory", "leash", ["#F12E2EFF"], level=7, zorder=214)
default lun_accessory_onepiece_harness = DollCloth("luna", ("misc", "accessory"), "accessory", "onepiece_harness", ["#565656", "#eaeaea"], zorder=215, level=10)
default lun_robe_coat_flasher = DollCloth("luna", ("upper body", "robes"), "robe", "coat_flasher", ["#dba55f", "#fdd299", "#493a31"], level=7, zorder=145, blacklist=["top", "bottom", "gloves"])
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.")
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
###########################
2023-02-08 21:40:28 +00:00
default lun_stockings_police = DollCloth("luna", ("legwear", "stockings"), "stockings", "police_thigh_highs", ["#2b2b55ff", "#8e8eb3ff"])
default lun_bottom_police_skirt = DollCloth("luna", ("lower body", "skirts"), "bottom", "police_skirt", ["#2e47abff"], level=5)
default lun_top_police_shirt = DollCloth("luna", ("upper body", "shirts"), "top", "police_shirt", ["#2e47abff", "#bbbbd2ff"], level=5)
2023-03-07 18:05:42 +00:00
default lun_accessory_police_belt = DollCloth("luna", ("misc", "accessory"), "accessory", "police_belt", ["#26265bff", "#bbbbd2ff"], zorder=212)
2023-02-08 21:40:28 +00:00
default lun_accessory_police_badge = DollCloth("luna", ("misc", "accessory"), "accessory", "police_badge", ["#192655ff", "#fcf16dff"], zorder=213)
default lun_accessory_police_cuffs = DollCloth("luna", ("misc", "accessory"), "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"])
default lun_pantyhose_harley_quinn = DollCloth("luna", ("legwear", "pantyhose"), "stockings", "harley_quinn", ["#ae3512ff"])
default lun_top_harley_quinn = DollCloth("luna", ("upper body", "one-piece suits"), "top", "harley_quinn", ["#326280ff", "#8c9fb4ff", "#e43612ff", "#1264e4ff"])
default lun_robe_harley_quinn = DollCloth("luna", ("upper body", "robes"), "robe", "harley_quinn", ["#d8fcffff", "#8c9fb4ff", "#58d532ff", "#e44e14ff", "#ea48c0ff"])
default lun_gloves_harley_quinn = DollCloth("luna", ("upper body", "gloves"), "gloves", "harley_quinn", ["#1f3349ff"])
default lun_accessory_harley_quinn_strap = DollCloth("luna", ("misc", "accessory"), "accessory", "harley_quinn_strap", ["#1f3349ff"], zorder=183)
2022-05-16 23:48:22 +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.")
#################
2023-02-07 16:13:30 +00:00
## Lion Outfit ## (Event only)
2022-05-16 23:48:22 +00:00
#################
2023-05-03 14:27:19 +00:00
default lun_bottom_casual_jeans = DollCloth("luna", ("lower body", "trousers"), "bottom", "casual_jeans", ["#8027bfff"])
2023-02-08 21:40:28 +00:00
default lun_top_casual_sweater = DollCloth("luna", ("upper body", "shirts"), "top", "casual_sweater", ["#382088ff", "#382088ff"])
2023-03-03 00:50:50 +00:00
default lun_accessory_lionhead = DollCloth("luna", ("misc", "accessory"), "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
2023-02-08 21:40:28 +00:00
default lun_bra_base2 = DollCloth("luna", ("upper undergarment", "bras"), "bra", "basic_bra_2", ["#d8e1e6ff", "#5974c2ff"], unlocked=True)
default lun_panties_base2 = DollCloth("luna", ("lower undergarment", "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
2023-02-08 21:40:28 +00:00
default lun_accessory_wand_mouth = DollCloth("luna", ("misc", "accessory"), "accessory", "wand_mouth", ["#ffffffff"], unlocked = True, zorder=213)
2023-03-07 18:05:42 +00:00
default lun_accessory_wand_hand = DollCloth("luna", ("misc", "accessory"), "accessory", "wand_hand", ["#ffffffff"], unlocked = True, zorder=222)
2023-02-08 21:40:28 +00:00
default lun_accessory_wand_breasts = DollCloth("luna", ("misc", "accessory"), "accessory", "wand_breasts", ["#ffffffff"], unlocked = True, zorder=213)
default lun_accessory_wand_pussy = DollCloth("luna", ("misc", "accessory"), "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
default lun_makeup_nail_polish = DollCloth("luna", ("head", "makeup"), "makeup", "nail_polish", ["#FFAEB2ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
################
## Pubic Hair ##
################
2023-02-08 21:40:28 +00:00
default lun_pubes_arrow = DollCloth("luna", ("lower undergarment", "pubes"), "pubes", "arrow", ["#e4c991ff"], unlocked=True)
default lun_pubes_beaver = DollCloth("luna", ("lower undergarment", "pubes"), "pubes", "beaver", ["#e4c991ff"], unlocked=True)
default lun_pubes_stuble = DollCloth("luna", ("lower undergarment", "pubes"), "pubes", "stuble", ["#9b8558ff"], unlocked=True)
default lin_pubes_unshaved = DollCloth("luna", ("lower undergarment", "pubes"), "pubes", "unshaved", ["#9b8558ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2023-07-22 13:37:48 +00:00
###############
## Piercings ##
###############
default lun_earring_moon = DollCloth("luna", ("head", "earrings"), "earrings", "earring_moon", ["#D2DFEEff", "#FFE973ff", "#BA6755ff"], unlocked=True)
default lun_ear_studs = DollCloth("luna", ("head", "earrings"), "earrings", "ear_studs", ["#F6C54Fff"], unlocked=True)
default lun_piercing_eyebrow_ring = DollMakeup("luna", ("piercings & tattoos", "piercings"), "piercing", "eyebrow_ring", ["#CDDAE8ff"], unlocked=True, tracking="eyebrows")
default lun_piercing_nose_ring = DollCloth("luna", ("piercings & tattoos", "piercings"), "piercing", "nose_ring", ["#F8DC5Dff"], unlocked=True)
default lun_piercing_mouth_stud = DollMakeup("luna", ("piercings & tattoos", "piercings"), "piercing", "mouth_stud", ["#D2E0F0ff"], unlocked=True, tracking="mouth")
default lun_piercing_nipple_studs = DollCloth("luna", ("piercings & tattoos", "piercings"), "piercing", "nipple_studs", ["#D2DFEEff"], unlocked=True)
default lun_piercing_nipple_rings = DollCloth("luna", ("piercings & tattoos", "piercings"), "piercing", "nipple_rings", ["#D2DFEEff"], unlocked=True)
default lun_piercing_clit_stud = DollCloth("luna", ("piercings & tattoos", "piercings"), "piercing", "clit_stud", ["#B8C6D7ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
#############
## Tattoos ##
#############
2023-02-08 21:40:28 +00:00
default lun_tattoo_measure = DollCloth("luna", ("piercings & tattoos", "tattoos"), "tattoo", "measure", ["#000000ff", "#db492cff"], unlocked=True)
default lun_tattoo_spurt_here = DollCloth("luna", ("piercings & tattoos", "tattoos"), "tattoo", "spurt_here", ["#000000ff"], unlocked=True)
default lun_tattoo_loony = DollCloth("luna", ("piercings & tattoos", "tattoos"), "tattoo", "loony", ["#000000ff"], unlocked=True)
default lun_tattoo_baby_oven = DollCloth("luna", ("piercings & tattoos", "tattoos"), "tattoo", "baby_oven", ["#000000ff", "#db492cff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2023-02-08 21:40:28 +00:00
default lun_tattoo_lab_rat = DollCloth("luna", ("piercings & tattoos", "tattoos"), "tattoo", "lab_rat", ["#000000ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
2023-02-08 21:40:28 +00:00
default lun_tattoo_cumdump = DollCloth("luna", ("piercings & tattoos", "tattoos"), "tattoo", "cumdump", ["#000000ff"], unlocked=True)
2023-02-07 16:13:30 +00:00
##########
## Misc ##
##########
2023-02-08 21:40:28 +00:00
default lun_stockings_pantyhose = DollCloth("luna", ("legwear", "pantyhose"), "stockings", "pantyhose_1", ["#b19083ff"], unlocked=True)
2023-02-07 16:13:30 +00:00