From 1d84b77ac1bc6b9d6f2bcc493ab329acd6d277ac Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Sun, 10 Nov 2024 15:23:13 +0000 Subject: [PATCH] Clothing Store, Bug fixes, Translation strings --- game/scripts/characters/hermione/wardrobe.rpy | 36 ++--- game/scripts/interface/wheelmenu.rpy | 2 +- game/scripts/shops/dress/menu.rpy | 146 ++++++++++++++++++ game/scripts/shops/dress/room.rpy | 4 +- game/scripts/utility/image_crop.rpy | 2 +- game/scripts/wardrobe/wardrobe.rpy | 10 +- 6 files changed, 174 insertions(+), 26 deletions(-) diff --git a/game/scripts/characters/hermione/wardrobe.rpy b/game/scripts/characters/hermione/wardrobe.rpy index d8866e0f..e76020e8 100644 --- a/game/scripts/characters/hermione/wardrobe.rpy +++ b/game/scripts/characters/hermione/wardrobe.rpy @@ -30,7 +30,7 @@ default her_bottom_school2 = DollCloth("hermione", ("bottoms", "skirts"), "botto default her_bottom_school3 = DollCloth("hermione", ("bottoms", "skirts"), "bottom", "school_skirt_3", ["#675a6cff", "#e8b10dff"], unlocked=True, level=10) default her_bottom_school4 = DollCloth("hermione", ("bottoms", "skirts"), "bottom", "school_skirt_4", ["#675a6cff", "#e8b10dff"], unlocked=True, level=19) -default her_stockings_base1 = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "stockings_1", ["#dba50dff", "#923f1eff"], unlocked=True) +default her_stockings_base1 = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "stockings_1", ["#dba50dff", "#923f1eff"], unlocked=True) default her_panties_base1 = DollCloth("hermione", ("underwear", "panties"), "panties", "basic_panties_1", ["#e8e8e8ff", "#ca3c01ff"], unlocked=True) default her_bra_base1 = DollCloth("hermione", ("underwear", "bras"), "bra", "basic_bra_1", ["#e8e8e8ff", "#ca3c01ff"], unlocked=True) @@ -51,7 +51,7 @@ default her_outfit_last = DollOutfit([her_hair_base], hidden=True) default her_top_slutty1 = DollCloth("hermione", ("tops", "knitwear"), "top", "open_top_1", ["#b7b7b8ff", "#6d6979ff", "#a74d2aff", "#edb30eff"], level=19) default her_bottom_slutty1 = DollCloth("hermione", ("bottoms", "skirts"), "bottom", "open_skirt_1", ["#675a6cff"], level=19) -default her_stockings_slutty = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "stockings_2", ["#aaaaaaff"], level=4) +default her_stockings_slutty = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "stockings_2", ["#aaaaaaff"], level=4) default her_outfit_slutty_schoolgirl = DollOutfit([her_hair_base, her_top_slutty1, her_bottom_slutty1, her_stockings_slutty], price=500, name=_("Slutty Schoolgirl Outfit"), desc=_("An arguably better version of the regular school outfit.")) @@ -86,7 +86,7 @@ default her_outfit_bikini3 = DollOutfit([her_hair_base, her_panties_bikini3, her ################# default her_top_maid1 = DollCloth("hermione", ("tops", "dresses"), "top", "maid_dress_1", ["#28333dff", "#ecf3f4ff", "#353f54ff"], level=4) -default her_stockings_maid1 = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "maid_stockings_1", ["#35211eff"], level=4) +default her_stockings_maid1 = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "maid_stockings_1", ["#35211eff"], level=4) default her_hat_maid1 = DollClothDynamic("hermione", ("head", "headgear"), "headgear", "maid_hat_1", ["#ecf3f4ff"], level=4, tracking="?hair") default her_neckwear_maid1 = DollCloth("hermione", ("head", "neckwear"), "neckwear", "maid_choker_1", ["#28333dff", "#ecf3f4ff"], level=4) default her_neckwear_maid2 = DollCloth("hermione", ("head", "neckwear"), "neckwear", "maid_choker_2", ["#ecf3f4ff"], level=4) @@ -101,8 +101,8 @@ default her_outfit_maid = DollOutfit([her_hair_base, her_top_maid1, her_stocking default her_hat_poker1 = DollClothDynamic("hermione", ("head", "headgear"), "headgear", "poker_hat_1", ["#1a1a23ff", "#e8e8e8ff", "#99160aff"], level=4, tracking="?hair") default her_hat_poker2 = DollClothDynamic("hermione", ("head", "headgear"), "headgear", "poker_hat_2", ["#1a1a23ff", "#e8e8e8ff", "#99160aff"], level=4, tracking="?hair") default her_neckwear_poker1 = DollCloth("hermione", ("head", "neckwear"), "neckwear", "poker_bowtie_1", ["#e8e8e8ff", "#99160aff", "#ffb303ff"], level=4) -default her_stockings_poker1 = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "poker_stockings_1", ["#1a1a23ff", "#99160aff"], level=13) -default her_stockings_poker2 = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "poker_stockings_2", ["#1a1a23ff", "#99160aff"], level=13) +default her_stockings_poker1 = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "poker_stockings_1", ["#1a1a23ff", "#99160aff"], level=13) +default her_stockings_poker2 = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "poker_stockings_2", ["#1a1a23ff", "#99160aff"], level=13) default her_panties_poker1 = DollCloth("hermione", ("underwear", "panties"), "panties", "poker_panties_1", ["#1a1a23ff", "#99160aff", "#ffb303ff"], level=19) default her_bra_poker1 = DollCloth("hermione", ("underwear", "other"), "bra", "poker_bra_1", ["#1a1a23ff", "#e8e8e8ff", "#99160aff", "#ffb303ff"], blacklist=["panties", "top", "bottom"], level=19) default her_gloves_poker1 = DollCloth("hermione", ("accessories", "gloves"), "gloves", "poker_gloves_1", ["#e8e8e8ff", "#ffb303ff"], level=4) @@ -117,7 +117,7 @@ default her_outfit_poker = DollOutfit([her_hair_base, her_hat_poker1, her_hat_po default her_top_bunny1 = DollCloth("hermione", ("tops", "one-pieces"), "top", "bunny_top_1", ["#303030ff"], blacklist=["panties", "bra"], zorder=183, level=19) default her_top_bunny2 = DollCloth("hermione", ("tops", "one-pieces"), "top", "bunny_top_2", ["#000000ff"], blacklist=["panties", "bra"], zorder=183, level=19) -default her_stockings_bunny1 = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "bunny_stockings_1", ["#515151ff"], level=19) +default her_stockings_bunny1 = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "bunny_stockings_1", ["#515151ff"], level=19) default her_tattoo_bunny1 = DollCloth("hermione", ("body art", "tattoos"), "tattoo", "bunny_tattoo", ["#000001ff"]) default her_hat_bunny1 = DollClothDynamic("hermione", ("head", "headgear"), "headgear", "bunny_hat_1", ["#303030ff", "#e8e8e8ff"], level=13, tracking="?hair") default her_hat_bunny2 = DollClothDynamic("hermione", ("head", "headgear"), "headgear", "bunny_hat_2", ["#b7a873ff", "#dba18cff", "#fdfdfdff"], level=13, tracking="?hair") @@ -155,7 +155,7 @@ default her_outfit_ball = DollOutfit([her_hair_updo, her_neckwear_pearls1, her_t default her_top_yen1 = DollCloth("hermione", ("tops", "knitwear"), "top", "yen_top", ["#09202fff"], level=10) default her_bottom_yen_skirt1 = DollCloth("hermione", ("bottoms", "skirts"), "bottom", "yen_skirt", ["#1a1a1aff"], level=4) -default her_stockings_yen1 = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "yen_stockings", ["#4c4c4cff"], level=10) +default her_stockings_yen1 = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "yen_stockings", ["#4c4c4cff"], level=10) default her_accessory_yen_sash1 = DollCloth("hermione", ("accessories", "miscellaneous"), "accessory", "yen_sash", ["#191919ff", "#333333ff"], zorder=213, level=10) default her_accessory_yen_belt1 = DollCloth("hermione", ("accessories", "miscellaneous"), "accessory", "yen_belt", ["#34251fff", "#928e89ff"], zorder=214, level=4) default her_accessory_yen_feathers1 = DollCloth("hermione", ("accessories", "miscellaneous"), "accessory", "yen_feathers", ["#2abec7ff"], zorder=215, level=4) @@ -260,7 +260,7 @@ default her_outfit_tifa = DollOutfit([her_hair_base, her_top_tifa, her_accessory default her_top_msmarv = DollCloth("hermione", ("tops", "one-pieces"), "top", "msmarv_suit", ["#404663ff", "#7b88b5ff", "#ffec86ff"], zorder=183, blacklist=["panties", "bra"], level=10) default her_accessory_msmarv_ribbon = DollCloth("hermione", ("accessories", "miscellaneous"), "accessory", "msmarv_ribbon", ["#ce2916ff"], zorder=212, level=4) default her_gloves_msmarv = DollCloth("hermione", ("accessories", "gloves"), "gloves", "msmarv_gloves", ["#404663ff", "#7b88b5ff"], level=4) -default her_stockings_msmarv = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "msmarv_stockings", ["#404663ff", "#7b88b5ff"], level=10) +default her_stockings_msmarv = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "msmarv_stockings", ["#404663ff", "#7b88b5ff"], level=10) default her_outfit_msmarv = DollOutfit([her_hair_base, her_top_msmarv, her_accessory_msmarv_ribbon, her_gloves_msmarv, her_stockings_msmarv], price=400, name=_("Miss Marvel Costume"), desc=_("For the girl that likes the lightning bolt better on her chest than her forehead.")) @@ -272,10 +272,10 @@ default her_earring_hslut = DollCloth("hermione", ("body art", "earrings"), "ear default her_neckwear_hslut = DollCloth("hermione", ("head", "neckwear"), "neckwear", "hslut_choker", ["#f2f2f2ff", "#e25f5fff"], level=10) default her_top_hslut = DollCloth("hermione", ("tops", "other"), "top", "hslut_top", ["#e25f5fff", "#f2f2f2ff"], level=19) default her_gloves_hslut = DollCloth("hermione", ("accessories", "gloves"), "gloves", "hslut_gloves", ["#f2f2f2ff"], level=10) -default her_stockings_hslut = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "hslut_socks", ["#f2f2f2ff"], level=10) +default her_stockings_hslut = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "hslut_socks", ["#f2f2f2ff"], level=10) default her_bra_hslut = DollCloth("hermione", ("underwear", "other"), "bra", "hslut_pasties", ["#e25f5fff", "#e25f5fff"], level=19) default her_panties_hslut = DollCloth("hermione", ("underwear", "other"), "panties", "hslut_panties", ["#e25f5fff"], level=19) -default her_garterbelt_hslut = DollCloth("hermione", ("underwear", "hoisery"), "garterbelt", "hslut_garter", ["#e25f5fff", "#f99494ff"], level=10) +default her_garterbelt_hslut = DollCloth("hermione", ("underwear", "hosiery"), "garterbelt", "hslut_garter", ["#e25f5fff", "#f99494ff"], level=10) default her_outfit_hslut = DollOutfit([her_hair_base, her_top_hslut, her_gloves_hslut, her_stockings_hslut, her_panties_hslut, her_bra_hslut, her_earring_hslut, her_neckwear_hslut, her_garterbelt_hslut], price=450, name=_("Hearty Harlot"), desc=_("A sexy dancers outfit with heart-shaped nipple tassels.")) @@ -296,7 +296,7 @@ default her_outfit_croft = DollOutfit([her_hair_base, her_top_croft, her_bottom_ ################## default her_top_witch = DollCloth("hermione", ("tops", "one-pieces"), "top", "witch_top", ["#473366ff", "#fcb470ff"], blacklist=["panties"], level=10) -default her_stockings_witch = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "witch_stockings", ["#473366ff", "#fcb470ff"], level=4) +default her_stockings_witch = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "witch_stockings", ["#473366ff", "#fcb470ff"], level=4) default her_robe_witch = DollCloth("hermione", ("outer wear", "capes"), "robe", "witch_cape", ["#473366ff", "#fcb470ff", "#24703aff"], level=4) default her_outfit_witch = DollOutfit([her_hair_base, her_top_witch, her_stockings_witch, her_robe_witch], price=400, name=_("16th Century Witch Costume"), desc=_("An ancient witch costume coming straight from 16th century. Stay away from the burning stakes!")) @@ -308,7 +308,7 @@ default her_outfit_witch = DollOutfit([her_hair_base, her_top_witch, her_stockin default her_top_latex = DollCloth("hermione", ("tops", "shirts"), "top", "latex_top", ["#373737ff"], level=19) default her_neckwear_latex = DollCloth("hermione", ("head", "neckwear"), "neckwear", "latex_choker", ["#373737ff"], level=13) default her_gloves_latex = DollCloth("hermione", ("accessories", "gloves"), "gloves", "latex_gloves", ["#373737ff"], level=13) -default her_stockings_latex = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "latex_stockings", ["#373737ff"], level=13) +default her_stockings_latex = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "latex_stockings", ["#373737ff"], level=13) default her_panties_latex = DollCloth("hermione", ("underwear", "panties"), "panties", "latex_panties", ["#373737ff"], level=19) default her_outfit_latex = DollOutfit([her_hair_base, her_top_latex, her_gloves_latex, her_stockings_latex, her_panties_latex, her_neckwear_latex], price=350, name=_("Latex Set"), desc=_("A tight fitting outfit that takes approximately twenty minutes to put on properly.")) @@ -327,7 +327,7 @@ default her_outfit_fishnet = DollOutfit([her_hair_base, her_top_fishnet, her_pan ############################## default her_top_fishnet_onepiece = DollCloth("hermione", ("tops", "one-pieces"), "top", "fishnet_onepiece", ["#000000ff", "#000000ff"], blacklist=["panties", "bra"], zorder=183, level=19) -default her_stockings_short_meshed = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "short_meshed", ["#000000ff", "#000000ff"], level=13) +default her_stockings_short_meshed = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "short_meshed", ["#000000ff", "#000000ff"], level=13) default her_outfit_fishnet_onepiece = DollOutfit([her_hair_base, her_top_fishnet_onepiece, her_stockings_short_meshed], price=350, name=_("Fishnet One-piece"), desc=_("Perfect for containing your daily catch.")) @@ -338,9 +338,9 @@ default her_outfit_fishnet_onepiece = DollOutfit([her_hair_base, her_top_fishnet default her_top_pullover_1 = DollCloth("hermione", ("tops", "knitwear"), "top", "pullover_1", ["#ff7bcfff"], unlocked=True) default her_top_pullover_2 = DollCloth("hermione", ("tops", "knitwear"), "top", "pullover_2", ["#ff7bcfff"], unlocked=True, level=8) default her_top_pullover_3 = DollCloth("hermione", ("tops", "knitwear"), "top", "pullover_3", ["#ff7bcfff"], unlocked=True, level=16) -default her_stockings_pantyhose_1= DollCloth("hermione", ("underwear", "hoisery"), "stockings", "pantyhose_1", ["#b19083ff"], unlocked=True, level=4) -default her_stockings_pantyhose_2= DollCloth("hermione", ("underwear", "hoisery"), "stockings", "pantyhose_2", ["#b19083ff"], unlocked=True, level=10) -default her_stockings_pantyhose_3= DollCloth("hermione", ("underwear", "hoisery"), "stockings", "pantyhose_3", ["#b19083ff"], unlocked=True, level=19) +default her_stockings_pantyhose_1= DollCloth("hermione", ("underwear", "hosiery"), "stockings", "pantyhose_1", ["#b19083ff"], unlocked=True, level=4) +default her_stockings_pantyhose_2= DollCloth("hermione", ("underwear", "hosiery"), "stockings", "pantyhose_2", ["#b19083ff"], unlocked=True, level=10) +default her_stockings_pantyhose_3= DollCloth("hermione", ("underwear", "hosiery"), "stockings", "pantyhose_3", ["#b19083ff"], unlocked=True, level=19) ################### ## Spring Outfit ## @@ -386,7 +386,7 @@ default her_panties_ribbon = DollCloth("hermione", ("underwear", "other"), "pant default her_top_xmas = DollCloth("hermione", ("tops", "other"), "top", "xmas",["#e5000aff", "#ffeff8ff", "#6dc265ff"], level=13) default her_bottom_xmas = DollCloth("hermione", ("bottoms", "shorts"), "bottom", "xmas",["#e5000aff", "#ffeff8ff"], level=13) default her_gloves_xmas = DollCloth("hermione", ("accessories", "gloves"), "gloves", "xmas", ["#ffeff8ff"]) -default her_stockings_xmas = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "xmas",["#ffffffff", "#ffffffff"], level=10) +default her_stockings_xmas = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "xmas",["#ffffffff", "#ffffffff"], level=10) default her_outfit_ribbon = DollOutfit([her_hair_base, her_neckwear_choker1, her_bra_ribbon, her_panties_ribbon]) default her_outfit_xmas = DollOutfit([her_hair_base, her_hat_antlers, her_neckwear_bell1, her_top_xmas, her_bottom_xmas, her_gloves_xmas, her_stockings_xmas, her_panties_base1], addons=[her_hat_elf]) @@ -546,7 +546,7 @@ default her_hips_ass3 = DollBodypart("hermione", ("hidden", "hips"), "hips", "bi # Catgirl default her_cat_ears = DollClothDynamic("hermione", ("head", "headgear"), "headgear", "cat_ears", ["#d17b43ff", "#e8e8e8ff"], tracking="?hair") -default her_cat_legs = DollCloth("hermione", ("underwear", "hoisery"), "stockings", "cat_legs",["#d17b43ff"]) +default her_cat_legs = DollCloth("hermione", ("underwear", "hosiery"), "stockings", "cat_legs",["#d17b43ff"]) default her_cat_arms = DollCloth("hermione", ("accessories", "gloves"), "gloves", "cat_arms", ["#d17b43ff", "#d67a7aff", "#252525ff"]) default her_cat_tail = DollCloth("hermione", ("accessories", "miscellaneous"), "accessory", "cat_tail", ["#d17b43ff"], zorder=-1) default her_cat_muzzle = DollCloth("hermione", ("body art", "makeup"), "makeup", "cat_muzzle", ["#d67a7aff"]) diff --git a/game/scripts/interface/wheelmenu.rpy b/game/scripts/interface/wheelmenu.rpy index a64dfd98..29c9a4a8 100644 --- a/game/scripts/interface/wheelmenu.rpy +++ b/game/scripts/interface/wheelmenu.rpy @@ -24,7 +24,7 @@ init python in wheelmenu: if condition: if action is None or disabled: - return renpy.store.Button(renpy.store.Transform(displayable, matrixcolor=renpy.store.SaturationMatrix(0)*renpy.store.BrightnessMatrix(-0.25)*renpy.store.OpacityMatrix(0.5)), action=action, style="wheelmenu_disabled_button", **kwargs) + return renpy.store.Button(renpy.store.Transform(displayable, matrixcolor=renpy.store.SaturationMatrix(0)*renpy.store.BrightnessMatrix(-0.15)), action=action, style="wheelmenu_disabled_button", **kwargs) return renpy.store.Button(displayable, action=action, style="wheelmenu_button", **kwargs) else: return None diff --git a/game/scripts/shops/dress/menu.rpy b/game/scripts/shops/dress/menu.rpy index 26536503..19ffed24 100644 --- a/game/scripts/shops/dress/menu.rpy +++ b/game/scripts/shops/dress/menu.rpy @@ -283,3 +283,149 @@ style shop_outfit_button_text is default: style shop_outfit_text: size 20 + +# Functions (Initialised after wardrobe) +init 5 python in clothing_store: + + get_icon = renpy.store.wardrobe.get_icon # Simple Proxy since both interfaces share the same code + + def buy(): + renpy.play("sounds/money.ogg") + pass + + def change_section(section): + scope = renpy.get_screen("clothing_store_interface").scope + scope["selected_section"] = section + scope["selected_item"] = None + scope["character"] = get_character_object(section) + + def add_remove_outfit(outfit): + scope = renpy.get_screen("clothing_store_interface").scope + cart = scope["cart"] + + if outfit in cart: + # Remove the outfit from the cart if it's already there and there are more than one item + cart ^= {outfit} + elif len(cart) < 5: + # Add the outfit to the cart if it's not already there and there are less than five items + cart |= {outfit} + else: + renpy.notify("You can only have five items in your cart.") + renpy.sound.play("sounds/fail.ogg") + + def select(outfit): + scope = renpy.get_screen("clothing_store_interface").scope + scope["selected_item"] = outfit + + renpy.restart_interaction() + + def exit(): + scope = renpy.get_screen("clothing_store_interface").scope + + renpy.play("sounds/curtain_close.ogg") + + # Handle exit animation + scope["navigation_last_frame_atl"] = renpy.store.navigation_last_frame_hide + scope["navigation_atl"] = renpy.store.wardrobe_hide + scope["character_atl"] = renpy.store.wardrobe_character_hide + scope["navigation_exit"] = True + + # Reset states + renpy.restart_interaction() + +# Context +label clothing_store_interface(inter_pause=True): + $ disable_game_menu() + play sound "sounds/curtain_open.ogg" + if inter_pause: + # Ensures all irrelevant screens are hidden before capturing the surface tree + with Pause(0.2) + call screen clothing_store_interface + $ enable_game_menu() + + # jump expression f"{states.active_girl}_requests" + jump main_room_menu + +# Interface +screen clothing_store_interface(): + layer "interface" + zorder 0 + style_prefix "wardrobe" + + default navigation_atl = wardrobe_show + default character_atl = wardrobe_character_show + default last_frame = (screenshot.capture() or screenshot.image) + default navigation_last_frame_atl = navigation_last_frame_show + default navigation_exit = False + + default character = get_character_object("tonks") + default selected_section = "tonks" + default selected_item = None + default cart = set() + + add last_frame at navigation_last_frame_atl + + add "gui_fade_both" at gui_fade + + if navigation_exit: + timer 0.4 action Return() + + if selected_item: + add selected_item.image align (1.0, 1.0) zoom 0.6 at character_atl + + frame: + style "empty" + + at navigation_atl + + vbox: + style_prefix "navigation_tabs" + pos (540, 470) + + at navigation_tabs_show + + textbutton (_("Remove from cart") if selected_item in cart else _("Add to cart")) action Function(clothing_store.add_remove_outfit, selected_item) sensitive selected_item at navigation_tabs + textbutton _("Checkout") action clothing_store.buy at navigation_tabs + null height 35 + textbutton _("Exit") action clothing_store.exit keysym "K_ESCAPE" at navigation_tabs + + frame: + at navigation_atl + + vbox: + # Sections + hbox: + spacing 0 + + button: + add clothing_store.get_icon("tonks") xysize (64, 64) + tooltip _("tonks") + action Function(clothing_store.change_section, "tonks") selected (selected_section == "tonks") + + null height 3 + add "frame_spacer" xsize 500 xalign 0.5 + null height 3 + + # Outfit List + vpgrid: + cols 5 + spacing 4 + mousewheel True + scrollbars "vertical" + + for outfit in (x for x in reversed(character.outfits) if (not x.unlocked and x.price > 0)): + button: + style "store_item_rectangular_button" + add outfit.button.child + if outfit in cart: + add Transform(Text("🛒"), align=(1.0, 1.0), size=(24, 24)) + action Function(clothing_store.select, outfit) + selected (selected_item == outfit) + + +style store_item_rectangular_button is wardrobe_item_button: + background Transform("wheelmenu_frame_vertical", xysize=(96,168)) + hover_background At(Transform("wheelmenu_frame_opaque_vertical", xysize=(96,168)), wheelmenu_hover_anim) + selected_background Fixed(Transform("wheelmenu_frame_vertical", xysize=(96,168)), At(Transform("interface/achievements/glow.webp", align=(0.5, 0.5), size=(96, 96), alpha=0.5), rotate_circular)) + selected_hover_background Fixed(At(Transform("wheelmenu_frame_vertical", xysize=(96,168)), wheelmenu_hover_anim), At(Transform("interface/achievements/glow.webp", align=(0.5, 0.5), size=(96, 96), alpha=0.5), rotate_circular)) + selected_foreground None \ No newline at end of file diff --git a/game/scripts/shops/dress/room.rpy b/game/scripts/shops/dress/room.rpy index 41fc94d1..dd3856a5 100644 --- a/game/scripts/shops/dress/room.rpy +++ b/game/scripts/shops/dress/room.rpy @@ -30,7 +30,9 @@ label clothing_store: else: maf "What can I get you today?" - call shop_dress + jump clothing_store_interface + + label .exit: gen "Thank you very much." ("base", xpos="far_left", ypos="head") maf "You're welcome, sir. Come back any time." diff --git a/game/scripts/utility/image_crop.rpy b/game/scripts/utility/image_crop.rpy index 206ad7ae..a7c99b4a 100644 --- a/game/scripts/utility/image_crop.rpy +++ b/game/scripts/utility/image_crop.rpy @@ -42,7 +42,7 @@ init python: def crop_image_zoom(path, xsize, ysize, grayscale=False): x, y, w, h = crop_whitespace(path) - matrix = SaturationMatrix(0)*BrightnessMatrix(-0.25)*OpacityMatrix(0.5) if grayscale else None + matrix = SaturationMatrix(0)*BrightnessMatrix(-0.15) if grayscale else None sprite = Image(path) return Transform(sprite, crop=(x, y, w, h), xsize=xsize, ysize=ysize, fit="contain", matrixcolor=matrix, subpixel=True) diff --git a/game/scripts/wardrobe/wardrobe.rpy b/game/scripts/wardrobe/wardrobe.rpy index b2004525..92bda718 100644 --- a/game/scripts/wardrobe/wardrobe.rpy +++ b/game/scripts/wardrobe/wardrobe.rpy @@ -333,7 +333,7 @@ init python in wardrobe: if character.is_worn(item.type): return renpy.store.Transform(item.icon, xysize=(48, 48)) - return renpy.store.Transform(item.icon, matrixcolor=renpy.store.SaturationMatrix(0)*renpy.store.BrightnessMatrix(-0.25)*renpy.store.OpacityMatrix(0.5)) + return renpy.store.Transform(item.icon, matrixcolor=renpy.store.SaturationMatrix(0)*renpy.store.BrightnessMatrix(-0.15)) def easteregg(character_name): scope = renpy.get_screen("wardrobe").scope @@ -456,6 +456,8 @@ screen wardrobe(): if navigation_exit: timer 0.4 action Return() + add character.image align (1.0, 1.0) zoom 0.6 at character_atl + frame: style "empty" @@ -467,9 +469,9 @@ screen wardrobe(): at navigation_tabs_show - textbutton "Strip" action wardrobe.strip at navigation_tabs + textbutton _("Strip") action wardrobe.strip at navigation_tabs null height 35 - textbutton "Exit" action wardrobe.exit keysym "K_ESCAPE" at navigation_tabs + textbutton _("Exit") action wardrobe.exit keysym "K_ESCAPE" at navigation_tabs frame: at navigation_atl @@ -710,8 +712,6 @@ screen wardrobe(): textbutton _("Global Colours") action Function(wardrobe.toggle_setting, "global_color") selected wardrobe.global_color style "wardrobe_checkbox_button" textbutton _("Allow Opacity Slider") action Function(wardrobe.toggle_setting, "allow_opacity") selected wardrobe.allow_opacity style "wardrobe_checkbox_button" - add character.image align (1.0, 1.0) zoom 0.6 at character_atl - for i, j in wardrobe.easteregg(character.name): add i pos j