Stricter PEP-8 conformance.
[python-bulletml.git] / bulletml / impl.py
index f7edd5a..0c40f1e 100644 (file)
@@ -131,9 +131,11 @@ class Bullet(object):
     rank - game difficulty, 0 to 1, default 0.5
     tags - string tags set by the running actions
     appearance - string used to set bullet appearance
+    radius - radius for collision
+    finished - true if all actions are finished and the bullet vanished
 
     Contructor Arguments:
-    x, y, direction, speed, target, rank, tags, appearance
+    x, y, direction, speed, target, rank, tags, appearance, radius
         - same as the above attributes
     actions - internal action list
     Action - custom Action constructor
@@ -141,14 +143,17 @@ class Bullet(object):
     """
 
     def __init__(self, x=0, y=0, direction=0, speed=0, target=None,
-                 actions=(), rank=0.5, tags=(), appearance=None):
+                 actions=(), rank=0.5, tags=(), appearance=None,
+                 radius=0.5):
         self.x = self.px = x
         self.y = self.py = y
+        self.radius = radius
         self.mx = 0
         self.my = 0
         self.direction = direction
         self.speed = speed
         self.vanished = False
+        self.finished = False
         self.target = target
         self.rank = rank
         self.tags = set(tags)
@@ -185,24 +190,6 @@ class Bullet(object):
         else:
             return atan2(target_x - self.x, target_y - self.y)
 
-    @property
-    def finished(self):
-        """Check if this bullet is finished running.
-
-        A bullet is finished when it has vanished, and all its
-        actions have finished.
-
-        If this is true, the bullet should be removed from the screen.
-        (You will probably want to cull it under other circumstances
-        as well).
-        """
-        if not self.vanished:
-            return False
-        for action in self.actions:
-            if not action.finished:
-                return False
-        return True
-
     def vanish(self):
         """Vanish this bullet and stop all actions."""
         self.vanished = True
@@ -232,8 +219,14 @@ class Bullet(object):
         """
         created = []
 
+        finished = self.vanished
         for action in self.actions:
             action.step(self, created)
+            finished = finished and action.finished
+        if finished:
+            for action in self.actions:
+                finished = finished and action.finished
+        self.finished = finished
 
         speed = self.speed
         direction = self.direction