X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml%2Fparser.py;h=8bc23c0be3334f3471b046a5ef13512f6dda380b;hp=2075ac961ae06715a4ffe899541667053fa8e563;hb=67aa3f0b15d5f8122a8f99f5903ec2e2029937c4;hpb=2af7a59592e4774c3fc9be7202285c44ba9a5c6f diff --git a/bulletml/parser.py b/bulletml/parser.py index 2075ac9..8bc23c0 100644 --- a/bulletml/parser.py +++ b/bulletml/parser.py @@ -367,9 +367,7 @@ class Repeat(object): def __call__(self, owner, action, params, rank, created): repeat = self.times(params, rank) - actions, params = self.action(params, rank) - child = action.__class__( - owner, action, actions, params, rank, repeat) + child = action.Child(self.action, params, rank, repeat) owner.replace(action, child) child.step(owner, created) return True @@ -423,11 +421,18 @@ class If(object): branch = self.else_ if branch: - actions, params = branch(params, rank) - child = action.__class__(owner, action, actions, params, rank) + child = action.Child(branch, params, rank) owner.replace(action, child) child.step(owner, created) return True + + def __repr__(self): + if self.else_: + return "%s(%r, then=%r, else_=%r)" % ( + type(self).__name__, self.cond, self.then, self.else_) + else: + return "%s(%r, then=%r)" % ( + type(self).__name__, self.cond, self.then) class Accel(object): """Accelerate over some time.""" @@ -856,10 +861,13 @@ class FireDef(object): if appearance is None: appearance = owner.appearance + Action = action.__class__ + actions = [Action(None, action, params, rank) + for action, params in actions] bullet = owner.__class__( x=x, y=y, direction=direction, speed=speed, target=owner.target, actions=actions, rank=rank, - appearance=appearance, tags=tags, Action=action.__class__) + appearance=appearance, tags=tags) created.append(bullet) def __repr__(self):