changeset 338:0da3d9af277f

Better change sequence.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 06 Sep 2013 12:42:18 +0200
parents 004e3dd38336
children 9137e792307b
files nagslang/protagonist.py
diffstat 1 files changed, 13 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/protagonist.py	Fri Sep 06 12:25:53 2013 +0200
+++ b/nagslang/protagonist.py	Fri Sep 06 12:42:18 2013 +0200
@@ -36,6 +36,16 @@
         return self.game_object.form
 
 
+def _make_change_sequence(old, new):
+    return (
+        new, new, old, old, old, old,
+        new, new, old, old, old,
+        new, new, old, old,
+        new, new, new, old, old,
+        new, new, new, new, old, old,
+        new)
+
+
 class Protagonist(GameObject):
     """Representation of our fearless protagonist.
 
@@ -47,20 +57,8 @@
 
     CHANGING_SEQUENCE = {
         # The key is the form we're changing *from*.
-        HUMAN_FORM: (
-            WOLF_FORM, HUMAN_FORM, HUMAN_FORM,
-            WOLF_FORM, HUMAN_FORM, WOLF_FORM,
-            HUMAN_FORM, WOLF_FORM, HUMAN_FORM,
-            WOLF_FORM, HUMAN_FORM, WOLF_FORM,
-            HUMAN_FORM, WOLF_FORM, WOLF_FORM,
-        ),
-        WOLF_FORM: (
-            HUMAN_FORM, WOLF_FORM, WOLF_FORM,
-            HUMAN_FORM, WOLF_FORM, HUMAN_FORM,
-            WOLF_FORM, HUMAN_FORM, WOLF_FORM,
-            HUMAN_FORM, WOLF_FORM, HUMAN_FORM,
-            WOLF_FORM, HUMAN_FORM, HUMAN_FORM,
-        ),
+        HUMAN_FORM: _make_change_sequence(HUMAN_FORM, WOLF_FORM),
+        WOLF_FORM: _make_change_sequence(WOLF_FORM, HUMAN_FORM),
     }
 
     zorder = ZORDER_MID
@@ -252,8 +250,7 @@
         self.inventory = old_protagonist.inventory
 
     def toggle_form(self):
-        for form in self.CHANGING_SEQUENCE[self.form]:
-            self.changing_sequence.extend([form] * 3)
+        self.changing_sequence.extend(self.CHANGING_SEQUENCE[self.form])
 
     def _go_to_next_form(self):
         if self.changing_sequence.pop(0) == self.WOLF_FORM: