Bug fixes

* Fixed parcel icon references
* Fixed character studio pose reference
* Fixed and updated expression editor to work with new paths, and disabled editor initialization until it is explicitly executed
* Fixed common wardrobe functions initialization offset
* Fixed typos
This commit is contained in:
LoafyLemon 2023-03-09 21:55:55 +00:00
parent 300c26f336
commit fcd56f4516
5 changed files with 31 additions and 24 deletions

View File

@ -53,7 +53,11 @@ init python:
def get_caption(self):
if len(self.contents) == 1:
item, quantity = self.contents[0]
if isinstance(item, Item):
icon = item.get_image()
else:
icon = item.image
if quantity == 1:
text = "You have received one {}.".format(item.name)

View File

@ -185,7 +185,7 @@ label deck_builder_guide:
show screen deck_builder_tutorial
with dissolve
">The goal of Wizard cards is to own the most cards on the playing field once all 9 slots are filled."
">The goal of Wizard cards is to own the most cards on the playing field until all 9 slots are filled."
">To win the game you have to pay attention to your deck but also enemy deck."
# Sides guide

View File

@ -255,24 +255,29 @@ init python:
# Some things are required to be hardcoded.
# Define expressions for Doll type characters.
filters = ("_mask", "_skin")
all_files = renpy.list_files()
d = _dict()
for name in CHARACTERS:
key = name[:3]
for charname in CHARACTERS:
charobj = get_character_object(charname)
extensions = charobj.extensions
d[key] = OrderedDict()
for part in sorted(charobj.face._face.keys()):
for expr in ("mouth", "eyes", "eyebrows", "pupils", "cheeks", "tears"):
path = "characters/{}/face/{}/".format(name, expr)
files = [x for x in all_files if path in x]
path = posixpath.join("characters", charname, "poses", charobj.pose, "face", part)
d[key][expr] = [x.split(path)[1].split(".webp")[0] for x in files if x.endswith(".webp") and not any(f in x for f in filters)]
for f in renpy.list_files():
fp, fn = os.path.split(f)
fn, ext = os.path.splitext(fn)
expression = os.path.split(fp)[1]
if expr in ("cheeks", "tears"):
# For cheeks, tears and hair None is a valid option, and chosen by default.
d[key][expr].insert(0, None)
if not fp.startswith(path) or not ext in extensions:
continue
expressions = d.setdefault(charname[:3], OrderedDict()).setdefault(part, _list((None,)))
if not expression in expressions:
expressions.append(expression)
# Define additional Tonks' hair choices.
d["ton"]["hair"] = [None, "neutral", "angry", "annoyed", "happy", "disgusted", "sad", "purple", "scared", "horny"]
@ -408,12 +413,18 @@ init python:
return self.read_history(file, line)
@renpy.pure
class ToggleEditor(Action, NoRollback):
def __call__(self):
if not config.developer:
return
if not hasattr(store, "e"):
global e
e = Editor()
e.expressions = e.define_expressions()
#config.all_character_callbacks.append(e.catch) # This is more efficient.
config.start_interact_callbacks.append(e.catch) # This allows to catch more statements and reset them if node types don't match.
if renpy.get_screen("editor", layer="interface"):
e.active = False
renpy.hide_screen("editor", layer="interface")
@ -425,14 +436,6 @@ init python:
renpy.game.context().force_checkpoint = True
renpy.checkpoint(hard=True)
if config.developer:
e = Editor()
#config.all_character_callbacks.append(e.catch) # This is more efficient.
config.start_interact_callbacks.append(e.catch) # This allows to catch more statements and reset them if node types don't match.
else:
e = dict() # Hotkey crashes on release otherwise.
screen editor():
zorder 50
style_prefix "editor"

View File

@ -1,4 +1,4 @@
init python:
init -1 python:
def get_character_progression(key):
if not key in CHARACTERS:
raise KeyError("'{}' character is undefined.".format(key))

View File

@ -25,7 +25,7 @@ init python in studio:
for part in charobj.face._face.keys():
path = posixpath.join("characters", charname, charobj.pose, "face", part)
path = posixpath.join("characters", charname, "poses", charobj.pose, "face", part)
for f in renpy.list_files():
fp, fn = os.path.split(f)