Moar lint

This commit is contained in:
Gouvernathor 2024-04-03 01:03:46 +02:00
parent 2525bea67d
commit ae5ff121d9

View File

@ -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)