Compare commits
2 Commits
2525bea67d
...
00eda2aae5
Author | SHA1 | Date | |
---|---|---|---|
00eda2aae5 | |||
ae5ff121d9 |
@ -91,6 +91,8 @@ python early hide:
|
|||||||
chibi = eval(f"{who}_chibi")
|
chibi = eval(f"{who}_chibi")
|
||||||
except Exception:
|
except Exception:
|
||||||
renpy.error(f"Character chibi not defined: {who}")
|
renpy.error(f"Character chibi not defined: {who}")
|
||||||
|
if not hasattr(chibi, action):
|
||||||
|
renpy.error(f"Chibi action not defined: {who} {action}")
|
||||||
|
|
||||||
def predict(self):
|
def predict(self):
|
||||||
who, action = self
|
who, action = self
|
||||||
@ -142,6 +144,23 @@ python early hide:
|
|||||||
|
|
||||||
return {"blocks": blocks}
|
return {"blocks": blocks}
|
||||||
|
|
||||||
|
def lint(self):
|
||||||
|
any_true = False
|
||||||
|
for block, weight, condition in self["blocks"]:
|
||||||
|
if not isinstance(weight, (int, float)):
|
||||||
|
renpy.error(f"Weight must be a number, not {weight!r}")
|
||||||
|
|
||||||
|
if condition == "True":
|
||||||
|
any_true = True
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
eval(condition)
|
||||||
|
except Exception:
|
||||||
|
renpy.error(f"Condition could not be evaluated: {condition!r}")
|
||||||
|
|
||||||
|
if not any_true:
|
||||||
|
renpy.error("All blocks have a condition, which will raise an exception if all conditions are False at the same time at runtime")
|
||||||
|
|
||||||
def next(self):
|
def next(self):
|
||||||
blocks = [(block, weight) for block, weight, condition in self["blocks"] if eval(condition)]
|
blocks = [(block, weight) for block, weight, condition in self["blocks"] if eval(condition)]
|
||||||
total_weight = sum(weight for _, weight in blocks)
|
total_weight = sum(weight for _, weight in blocks)
|
||||||
|
@ -113,7 +113,7 @@ init -1 python:
|
|||||||
|
|
||||||
# Use a tuple/list to specify the order of layers in a dict
|
# Use a tuple/list to specify the order of layers in a dict
|
||||||
self.layers_order = layers
|
self.layers_order = layers
|
||||||
self.layers = dict([(k, None) for k in layers])
|
self.layers = dict.fromkeys(layers)
|
||||||
|
|
||||||
self.update_callback = update_callback
|
self.update_callback = update_callback
|
||||||
|
|
||||||
@ -124,8 +124,7 @@ init -1 python:
|
|||||||
|
|
||||||
if actions:
|
if actions:
|
||||||
# Override class variable for this instance
|
# Override class variable for this instance
|
||||||
self.actions = dict(Chibi.actions)
|
self.actions = Chibi.actions | actions
|
||||||
self.actions.update(actions)
|
|
||||||
|
|
||||||
self.zorder = zorder
|
self.zorder = zorder
|
||||||
self.speed = speed # pixels/sec
|
self.speed = speed # pixels/sec
|
||||||
|
Loading…
Reference in New Issue
Block a user