diff nagslang/protagonist.py @ 357:d2c7e17299a7

Moonlight tiles force wolf form.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 06 Sep 2013 19:14:04 +0200
parents 582a96e5fdac
children 534eac55a178
line wrap: on
line diff
--- a/nagslang/protagonist.py	Fri Sep 06 18:41:29 2013 +0200
+++ b/nagslang/protagonist.py	Fri Sep 06 19:14:04 2013 +0200
@@ -76,6 +76,7 @@
         self.angle = 0
         self.is_moving = False
         self.changing_sequence = []
+        self.change_delay = 0
 
         self.go_human()
 
@@ -252,6 +253,8 @@
         self.inventory = old_protagonist.inventory
 
     def toggle_form(self):
+        if self.change_delay:
+            return
         self.changing_sequence.extend(self.CHANGING_SEQUENCE[self.form])
 
     def _go_to_next_form(self):
@@ -343,9 +346,16 @@
             self.health_level = PROTAGONIST_HEALTH_MAX_LEVEL
 
     def update(self, dt):
+        if self.change_delay > 0:
+            self.change_delay -= 1
         if self.changing_sequence:
             self._go_to_next_form()
         if int(self.lifetime + dt) > int(self.lifetime):
             if self.in_wolf_form():
                 self.gain_health(1)
         super(Protagonist, self).update(dt)
+
+    def force_wolf_form(self):
+        if self.in_human_form() and not self.changing_sequence:
+            self.toggle_form()
+        self.change_delay = 2