You can deal with comlications in untroduction.
authorDavid Sharpe <decoydavid@gmail.com>
Sat, 17 May 2014 22:15:06 +0000 (00:15 +0200)
committerDavid Sharpe <decoydavid@gmail.com>
Sat, 17 May 2014 22:15:06 +0000 (00:15 +0200)
naja/scenes/dummygame.py
naja/scenes/introduction.py

index 5111d058fc83e125e98adc1f73d053400260566c..077c07bfa478f65d6e608875b7cf241b41721146 100644 (file)
@@ -22,7 +22,7 @@ class DummyGameScene(Scene):
         if not state:
             game_state = GameState.new(max_health=4, wins_required=4)
         else:
-            game_state = state
+            game_state = GameState.load(state['data'])
         game = GameScene(game_state, play_sound=False)
         game_surface = pygame.surface.Surface(SCREEN)
         game.render(game_surface)
@@ -38,3 +38,4 @@ class DummyGameScene(Scene):
             LoadGameEvent.post(None)
             SceneChangeEvent.post(MenuScene)
             return
+
index 95defaa76d6837e3c9b359c7829d0db2ac0efbff..40811877808423b6958d0512871110963c290e25 100644 (file)
@@ -3,8 +3,9 @@ Load and save scenes.
 """
 
 import pygame.locals as pgl
+import pygame
 
-from naja.constants import KEYS
+from naja.constants import KEYS, SCREEN
 from naja.events import SceneChangeEvent, LoadGameEvent
 from naja.gamestate import GameState
 from naja.scenes.scene import Scene
@@ -12,7 +13,10 @@ from naja.scenes.howto import HowtoScene
 from naja.widgets.image_box import ImageBox
 from naja.widgets.selector import SelectorWidget
 from naja.widgets.text import TextWidget
-
+from naja.widgets.text import TextBoxWidget
+from naja.resources import resources
+from naja.scenes.dummygame import DummyGameScene
+from naja.widgets.image_box import PreRenderedImageBox
 
 class IntroductionScene(Scene):
     def __init__(self, state):
@@ -44,7 +48,7 @@ class IntroductionScene(Scene):
         intro = TextWidget(
             (x_offset, y_offset), 'Introductory Level', colour='white',
             centre=True)
-        intro.add_callback('click', self.introduction_level)
+        intro.add_callback('click', self.introduction_to_screen_1)
         selector.add(intro)
 
         y_offset += 2*y_diff
@@ -61,6 +65,57 @@ class IntroductionScene(Scene):
         LoadGameEvent.post(state=GameState.new(deck='introduction'))
         SceneChangeEvent.post(GameScene)
 
+    def introduction_to_screen_1(self, event):
+        self.container.widgets = []
+        state = resources.get_json('tutorial/tutorial_screen_1.json')
+        dummy_game = DummyGameScene(state)
+        game_surface = pygame.surface.Surface(SCREEN)
+        dummy_game.render(game_surface)
+        self.add(PreRenderedImageBox((0, 0), game_surface))
+
+        # self.add(TextBoxWidget(
+        #     (10, 50), '\n'.join([
+        #         "You are a robot, frantically trying to set the correct "
+        #         "bits to gain points for reasons that are unlikely ever "
+        #         "to become clear.",
+        #         "",
+        #         "You have 8 bits. Four bits control the directions "
+        #         "you can move in {NORTH,SOUTH,EAST,WEST}, 3 allow you "
+        #         "to unlock actions {RED,GREEN,BLUE} and the "
+        #         "last, the Most Significant Bit {MSB}, makes everything "
+        #         "work better.",
+        #         "",
+        #         "MOVEMENT",
+        #         "",
+        #         "During Movement, you can explore the board and learn about "
+        #         "the available tiles. Tiles you can legally move onto are "
+        #         "highlighted. It's always possible to stay in place.",
+        #         "",
+        #         "ACTIONS",
+        #         "",
+        #         "After moving, you must select an action. Some actions "
+        #         "require the correct bits to be set before they can be "
+        #         "selected. After the action, the tile will be replaced "
+        #         "(except in puzzle mode).",
+        #         "",
+        #         "Some actions cost health {HEALTH}. If you run out of "
+        #         "health {HEALTH}, you lose.",
+        #         "",
+        #         "Some actions gain you points {WINTOKEN}. Once you have "
+        #         "enough points, you win the game.",
+        #         "",
+        #         "Some tiles have a countdown timer {COUNTDOWN}. This "
+        #         "indicates the number of turns left before something "
+        #         "happens. The timer moves faster as the deadline approaches.",
+        #         "",
+        #         "Press ESC to return to the menu.",
+        #     ]), fontsize=32,
+        #     colour='white', padding=1, border=1,
+        #     bg_colour='black', border_colour='black',
+        #     box_width=740, view_port=(780, 540)))
+
+
+
     def handle_scene_event(self, ev):
         if ev.type == pgl.KEYDOWN and ev.key in KEYS.QUIT:
             from naja.scenes.menu import MenuScene