diff gamelib/gameboard.py @ 139:1d73de63bd71

Add basic game over screen
author Neil Muller <drnlmuller@gmail.com>
date Wed, 02 Sep 2009 22:48:39 +0000
parents 149822fbebeb
children a9b800b4175e
line wrap: on
line diff
--- a/gamelib/gameboard.py	Wed Sep 02 22:45:58 2009 +0000
+++ b/gamelib/gameboard.py	Wed Sep 02 22:48:39 2009 +0000
@@ -39,9 +39,11 @@
         self.cash_counter = mklabel()
         self.chicken_counter = mklabel()
         self.egg_counter = mklabel()
+        self.day_counter = mklabel()
         self.killed_foxes = mklabel()
         self.rifle_counter = mklabel()
 
+        self.add_counter(mklabel("Day:"), self.day_counter)
         self.add_counter(mklabel("Groats:"), self.cash_counter)
         self.add_counter(mklabel("Eggs:"), self.egg_counter)
         self.add_counter(icons.CHKN_ICON, self.chicken_counter)
@@ -68,6 +70,7 @@
     update_fox_counter = mkcountupdate('killed_foxes')
     update_chicken_counter = mkcountupdate('chicken_counter')
     update_egg_counter = mkcountupdate('egg_counter')
+    update_day_counter = mkcountupdate('day_counter')
 
     def add_spacer(self, height=30):
         self.tr()
@@ -141,6 +144,7 @@
         self.buildings = []
         self.cash = 0
         self.eggs = 0
+        self.days = 0
         self.killed_foxes = 0
         self.add_cash(constants.STARTING_CASH)
 
@@ -395,6 +399,10 @@
         else:
             self.disp.event(e)
 
+    def advance_day(self):
+        self.days += 1
+        self.toolbar.update_day_counter(self.days)
+
     def clear_foxes(self):
         for fox in self.foxes.copy():
             # Any foxes that didn't make it to the woods are automatically
@@ -600,3 +608,10 @@
                 building.remove(self.tv)
                 building.place(self.tv)
                 self.add_building(building)
+
+    def is_game_over(self):
+        """Return true if we're complete"""
+        if self.days > constants.TURN_LIMIT:
+            return True
+        if len(self.chickens) == 0:
+            return True