X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml%2Fimpl.py;h=8f94d5569e02e5d91b5b3e3f751cf881b96491a7;hp=358aae1a1c192a60d8c4567aa5ddf63b6821a321;hb=8c89bcae073f0e3c7e58a880512c8accb863bb07;hpb=62bfd556a69becf6b23715a150accac703af9058 diff --git a/bulletml/impl.py b/bulletml/impl.py index 358aae1..8f94d55 100644 --- a/bulletml/impl.py +++ b/bulletml/impl.py @@ -224,6 +224,15 @@ class Action(object): elif type == "relative": self.my = my / frames + elif isinstance(action, parser.Tag): + owner.tags.add(action.tag) + + elif isinstance(action, parser.Untag): + try: + owner.tags.remove(action.tag) + except KeyError: + pass + elif isinstance(action, parser.Wait): self.wait_frames = action(self.params, rank) break @@ -246,6 +255,7 @@ class Bullet(object): target - object with .x and .y fields for "aim" directions vanished - set to true by a action rank - game difficulty, 0 to 1, default 0.5 + tags - string tags set by the running actions Contructor Arguments: x, y, direction, speed, target, rank - same as the attributes @@ -266,6 +276,7 @@ class Bullet(object): self.vanished = False self.target = target self.rank = rank + self.tags = set() # New bullets reset the parent hierarchy. self._actions = [Action(self, None, action, params, rank) for action, params in actions]