diff gamelib/engine.py @ 389:463802281182

Add basic level support (level choosing needs work)
author Neil Muller <drnlmuller@gmail.com>
date Thu, 29 Oct 2009 20:55:37 +0000
parents 25f7d4824250
children 2bcfccb8288e
line wrap: on
line diff
--- a/gamelib/engine.py	Thu Oct 29 20:54:32 2009 +0000
+++ b/gamelib/engine.py	Thu Oct 29 20:55:37 2009 +0000
@@ -9,15 +9,17 @@
 import constants
 import mainmenu
 import helpscreen
+import level
 from misc import check_exit
 
 class Engine(Game):
-    def __init__(self, main_app):
+    def __init__(self, main_app, level_name):
         self.main_app = main_app
+        self.level = level.Level(level_name)
         self.clock = pygame.time.Clock()
-        self.main_menu = mainmenu.make_main_menu()
+        self.main_menu = mainmenu.make_main_menu(self.level)
         self._open_window = None
-        self.scoreboard = gameover.ScoreTable()
+        self.scoreboard = gameover.ScoreTable(self.level)
         self.gameboard = None
 
     def tick(self):
@@ -33,11 +35,8 @@
 
     def create_game_board(self):
         """Create and open a gameboard window."""
-        self.mode = self.main_menu.get_mode()
-        if not self.mode:
-            self.mode = constants.DEFAULT_MODE
         self.gameboard = gameboard.GameBoard(self.main_app,
-                constants.TURN_LIMITS[self.mode])
+                self.level)
         self.open_window(self.gameboard.get_top_widget())
 
     def set_main_menu(self):
@@ -52,7 +51,7 @@
     def create_game_over(self):
         """Create and open the Game Over window"""
         game_over = gameover.create_game_over(self.gameboard,
-                self.scoreboard[self.mode], self.mode)
+                self.scoreboard[self.level.level_name], self.level)
         self.gameboard = None
         self.open_window(game_over)