Add won level check
authorNeil <neil@dip.sun.ac.za>
Sat, 10 Sep 2016 14:28:32 +0000 (16:28 +0200)
committerNeil <neil@dip.sun.ac.za>
Sat, 10 Sep 2016 14:51:28 +0000 (16:51 +0200)
data/stations/01-tutorial.json
data/stations/station-alpha.json
tabakrolletjie/gamestate.py
tabakrolletjie/scenes/day.py

index 83a0f2022c2af67b120ec628f4f60408eb901672..b233378288d810640cdd1b721a337f4ba092583c 100644 (file)
@@ -3,7 +3,8 @@
     "name": "Fusarium",
     "power": 100,
     "spawn positions": [[25, 400], [1000, 410]],
-    "seeds": 100
+    "seeds": 100,
+    "turnip target": 10
   },
   "battery": {
     "current": 200,
index 5e4fbb092a3e8e76971a008a3fd77fdb3bffd84d..1c38934e35cd4dea654b28b5859182506028c47d 100644 (file)
@@ -3,7 +3,8 @@
     "name": "Station Alpha",
     "power": 100,
     "spawn positions": [[275, 300]],
-    "seeds": 10
+    "seeds": 10,
+    "turnip target": 10
   },
   "battery": {
     "current": 200,
index 4ce92e832007db534b6af5422b7be2cc4d799d9d..8d74d8106fcfc39e6199512903d09dc452a99744 100644 (file)
@@ -42,3 +42,6 @@ class GameState(object):
 
     def get_spawn_positions(self):
         return self._state["station"]["config"]["spawn positions"]
+
+    def get_target(self):
+        return self._state["station"]["config"]["turnip target"]
index 017675432ce71828a012c7e015cd1f10c6125978..f4265652f65901ba49e365a5e782548ea603aa72 100644 (file)
@@ -52,9 +52,11 @@ class DayScene(BaseScene):
         # Check if we've lost
         self._game_over_text = []
         if self._seeds == 0 and len(self._turnips) == 0:
-            self._draw_game_over_text()
+            self._draw_you_lose()
+        elif self._harvested >= gamestate.get_target():
+            self._draw_you_win()
 
-    def _draw_game_over_text(self):
+    def _draw_you_lose(self):
         overlay = pygame.surface.Surface(
             (SCREEN_SIZE[0], 240), pgl.SWSURFACE).convert_alpha()
         overlay.fill((0, 0, 0, 128))
@@ -63,10 +65,26 @@ class DayScene(BaseScene):
             (shadowed_text("You Lost", FONTS["bold"], 48), (400, 280)))
         self._game_over_text.append(
             (shadowed_text("You have no seeds and no turnips growing",
-                           FONTS["sans"], 24), (250, 350)))
+                           FONTS["sans"], 24), (300, 350)))
         self._game_over_text.append(
             (shadowed_text("Press a key to return to the menu",
-                           FONTS["sans"], 24), (250, 400)))
+                           FONTS["sans"], 24), (350, 400)))
+
+    def _draw_you_win(self):
+        overlay = pygame.surface.Surface(
+            (SCREEN_SIZE[0], 240), pgl.SWSURFACE).convert_alpha()
+        overlay.fill((0, 0, 0, 128))
+        self._game_over_text.append((overlay, (0, 250)))
+        self._game_over_text.append(
+            (shadowed_text("You Win", FONTS["bold"], 48), (400, 280)))
+        self._game_over_text.append(
+            (shadowed_text(
+                "You have Successfully Harvested %d turnips" % self._harvested,
+                FONTS["sans"], 24),
+             (300, 350)))
+        self._game_over_text.append(
+            (shadowed_text("Press a key to return to the menu",
+                           FONTS["sans"], 24), (350, 400)))
 
     def grow_turnips(self, gamestate):
         for turnip_data in gamestate.turnips: