Moar lint
This commit is contained in:
parent
2525bea67d
commit
ae5ff121d9
@ -91,6 +91,8 @@ python early hide:
|
||||
chibi = eval(f"{who}_chibi")
|
||||
except Exception:
|
||||
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):
|
||||
who, action = self
|
||||
@ -142,6 +144,23 @@ python early hide:
|
||||
|
||||
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):
|
||||
blocks = [(block, weight) for block, weight, condition in self["blocks"] if eval(condition)]
|
||||
total_weight = sum(weight for _, weight in blocks)
|
||||
|
Loading…
Reference in New Issue
Block a user