From: Joe Wreschnig Date: Tue, 16 Mar 2010 05:44:39 +0000 (-0700) Subject: Direction, Speed: Better call return data. X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=commitdiff_plain;h=9104092535823794c1b00f3c0fb16f5181992a00;hp=069c6c9090ffe4bbe1ea5fcd456f3057e2b452f5;ds=inline Direction, Speed: Better call return data. --- diff --git a/bulletml/parser.py b/bulletml/parser.py index 10459cc..0af6694 100644 --- a/bulletml/parser.py +++ b/bulletml/parser.py @@ -52,7 +52,7 @@ class Direction(object): self.value = NumberDef(element.text) def __call__(self, params, rank): - return self.value(params, rank) + return (self.value(params, rank), self.type) def __repr__(self): return "%s(%r, type=%r)" % ( @@ -88,11 +88,10 @@ class Speed(object): self.value = NumberDef(element.text) def __call__(self, params, rank): - return self.value(params, rank) + return (self.value(params, rank), self.type) def __repr__(self): - return "%s(%r, type=%r)" % ( - type(self).__name__, self.value, self.type) + return "%s(%r, type=%r)" % (type(self).__name__, self.value, self.type) class ChangeSpeed(object): """Speed change over time.""" @@ -182,8 +181,10 @@ class Accel(object): def __call__(self, params, rank): frames = self.term(params, rank) - horizontal = self.horizontal and self.horizontal(params, rank) - vertical = self.vertical and self.vertical(params, rank) + horizontal = self.horizontal and ( + self.horizontal(params, rank), self.horizontal.type) + vertical = self.vertical and ( + self.vertical(params, rank), self.vertical.type) return frames, horizontal, vertical def __repr__(self): @@ -213,13 +214,11 @@ class BulletDef(object): def __call__(self, params, rank): actions = [] for action in self.actions: - try: - actions.append((action.params(params), action.action)) - except AttributeError: - actions.append((params, action)) - return (self.direction and self.direction(params, rank), - self.speed and self.speed(params, rank), - actions) + actions.append(action(params, rank)) + return ( + self.direction and self.direction(params, rank), + self.speed and self.speed(params, rank), + actions) def __repr__(self): return "%s(direction=%r, speed=%r, actions=%r)" % (