Wardrobe 2.0 Prototype

This commit is contained in:
LoafyLemon 2024-10-13 09:38:11 +01:00
parent 52929e9695
commit 15bc242d2b
18 changed files with 153 additions and 922 deletions

BIN
game/gui/creamy_pumpkin_pie/icons/accessories.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/bottoms.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/clothes.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/dyes.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/exit.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/headgear.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/noicon.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/options.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/schedule.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/studio.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/tops.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/icons/underwear.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/gui/creamy_pumpkin_pie/side_frame.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -191,7 +191,7 @@ init python:
sprites.sort(key=itemgetter(2)) sprites.sort(key=itemgetter(2))
wmax, hmax = self.sizes wmax, hmax = self.sizes
wmin = hmin = 96 wmin = hmin = 256
x, y, w, h = crop_whitespace(bounds) x, y, w, h = crop_whitespace(bounds)
xoffset, yoffset = w/2, h/2 xoffset, yoffset = w/2, h/2
@ -216,7 +216,7 @@ init python:
return self.build_icon(self._hash) return self.build_icon(self._hash)
def _build_button(self, _hash): def _build_button(self, _hash):
style = "wardrobe_button" style = "wardrobe_item_button"
is_seen = self.seen is_seen = self.seen
is_equipped = self.char.is_equipped_item(self) is_equipped = self.char.is_equipped_item(self)
is_inadequate = bool(get_character_progression(self.char.name) < self.level) is_inadequate = bool(get_character_progression(self.char.name) < self.level)
@ -230,14 +230,12 @@ init python:
blacklister = self.char.get_blacklister(self.type) # Victim (List clothing types blacklisting this item ) blacklister = self.char.get_blacklister(self.type) # Victim (List clothing types blacklisting this item )
warnings.append("Incompatible with:{size=-4}\n" + "\n".join(set(blacklisted + blacklister)) + "{/size}") warnings.append("Incompatible with:{size=-4}\n" + "\n".join(set(blacklisted + blacklister)) + "{/size}")
child = Frame(gui.format("interface/frames/{}/iconframe.webp"), 6, 6) child = AlphaMask(Transform(self.icon, xysize=(96, 96)), Transform("wheelmenu_button_opaque", xysize=(96, 96)))
hbox = [] hbox = []
overlay = [] overlay = []
action = [Return(["equip", self]), self.build_button] action = [Return(["equip", self]), self.build_button]
unhovered = None unhovered = None
foreground = None
hover_foreground = "#ffffff80"
if is_inadequate: if is_inadequate:
warnings.append("Character level too low") warnings.append("Character level too low")
@ -260,8 +258,8 @@ init python:
unhovered = [Function(self.mark_as_seen), self.clear_button_cache, self.build_button] unhovered = [Function(self.mark_as_seen), self.clear_button_cache, self.build_button]
overlay.append(Text("NEW", align=(1.0, 1.0), offset=(-6, -6), style="wardrobe_button_text")) overlay.append(Text("NEW", align=(1.0, 1.0), offset=(-6, -6), style="wardrobe_button_text"))
if is_equipped: # if is_equipped:
overlay.append(Transform("interface/topbar/icon_check.webp", align=(1.0, 1.0), offset=(-6, -6), size=(24, 24))) # overlay.append(Transform("interface/topbar/icon_check.webp", align=(1.0, 1.0), offset=(-6, -6), size=(24, 24)))
if hbox: if hbox:
overlay.append(HBox(*hbox, offset=(6, 6))) overlay.append(HBox(*hbox, offset=(6, 6)))
@ -270,10 +268,9 @@ init python:
child = Fixed(child, *overlay, fit_first=True) child = Fixed(child, *overlay, fit_first=True)
if is_inadequate: if is_inadequate:
foreground = "#b2000040" style = wardrobe_item_button_inadequate
hover_foreground = "#CD5C5C40"
return Button(child=child, focus_mask=None, xysize=(96, 96), background=Transform(self.icon, xysize=(96, 96)), action=action, tooltip=("\n".join(warnings)), foreground=foreground, hover_foreground=hover_foreground, unhovered=unhovered, style=style) return Button(child=child, focus_mask=None, xysize=(96, 96), action=action, tooltip=("\n".join(warnings)), unhovered=unhovered, style=style, selected=is_equipped)
@functools.cache @functools.cache
def build_button(self, _=None): def build_button(self, _=None):

View File

@ -100,8 +100,6 @@ init python:
return self.build_icon(self._hash) return self.build_icon(self._hash)
def _build_button(self, _hash, subcat): def _build_button(self, _hash, subcat):
global wardrobe_outfit_schedule
style = "wardrobe_button" style = "wardrobe_button"
# is_equipped = self.char.is_equipped_item(self) # is_equipped = self.char.is_equipped_item(self)
is_modded = self.is_modded() is_modded = self.is_modded()
@ -159,7 +157,7 @@ init python:
# selected_foreground = "#CD5C5C40" # selected_foreground = "#CD5C5C40"
if has_schedule: if has_schedule:
for i in wardrobe_outfit_schedule: for i in wardrobe.outfit_schedule: # Wardrobe store var
if self.schedule[i]: if self.schedule[i]:
vbox.append(Transform(f"interface/wardrobe/icons/outfits/{i}.webp", size=(16, 16), offset=(6, 6))) vbox.append(Transform(f"interface/wardrobe/icons/outfits/{i}.webp", size=(16, 16), offset=(6, 6)))

View File

@ -16,7 +16,7 @@ label gift_menu(inter_pause=True):
hide screen blktone hide screen blktone
with d3 with d3
else: else:
$ renpy.call(get_character_gift_label(states.active_girl), _return) $ renpy.call(f"give_{states.active_girl[:3]}_gift", _return)
elif _return.type == "potion": elif _return.type == "potion":
if not states.active_girl in _return.usable_on: if not states.active_girl in _return.usable_on:
show screen blktone show screen blktone

View File

@ -54,14 +54,6 @@ init -1 python:
__check_exists(key) __check_exists(key)
return f"{key}_main" return f"{key}_main"
def get_character_sayer(key):
__check_exists(key)
return getattr(store, key[:3])
def get_character_gift_label(key):
__check_exists(key)
return f"give_{key[:3]}_gift"
def get_character_unlock(key): def get_character_unlock(key):
__check_exists(key) __check_exists(key)
return getattr(states, key[:3]).unlocked return getattr(states, key[:3]).unlocked

File diff suppressed because it is too large Load Diff