5 import pygame.locals as pgl
7 from naja.constants import KEYS
8 from naja.events import SceneChangeEvent, LoadGameEvent
9 from naja.gamestate import GameState
10 from naja.scenes.scene import Scene
11 from naja.widgets.selector import SelectorWidget
12 from naja.widgets.text import TextWidget
15 class NewGameScene(Scene):
16 def __init__(self, state):
17 super(NewGameScene, self).__init__(state)
18 selector = SelectorWidget()
21 title = TextWidget((100, 50), 'Select difficulty', colour='white')
24 easy = TextWidget((200, 150), 'Easy', fontsize=32, colour='white')
25 easy.add_callback('click', self.easy_game)
28 standard = TextWidget(
29 (200, 200), 'Standard', fontsize=32, colour='white')
30 standard.add_callback('click', self.standard_game)
31 selector.add(standard)
33 hard = TextWidget((200, 250), 'Hard', fontsize=32, colour='white')
34 hard.add_callback('click', self.hard_game)
37 puzzle = TextWidget((200, 300), 'Puzzle', fontsize=32, colour='white')
38 puzzle.add_callback('click', self.puzzle_game)
41 def easy_game(self, event):
42 self.start_game(GameState.new(max_health=5, wins_required=3))
44 def standard_game(self, event):
45 self.start_game(GameState.new(max_health=4, wins_required=4))
47 def hard_game(self, event):
48 self.start_game(GameState.new(max_health=3, wins_required=5))
50 def puzzle_game(self, event):
51 self.start_game(GameState.new(
52 deck='test_puzzle', max_health=4, wins_required=4))
54 def start_game(self, state):
55 from naja.scenes.game import GameScene
56 LoadGameEvent.post(state=state)
57 SceneChangeEvent.post(GameScene)
59 def handle_scene_event(self, ev):
60 if ev.type == pgl.KEYDOWN and ev.key in KEYS.QUIT:
61 from naja.scenes.menu import MenuScene
62 SceneChangeEvent.post(MenuScene)