source: trunk/game/scripts/dialoguecontroller.py @ 653

Revision 653, 2.4 KB checked in by beliar, 9 years ago (diff)

Patch by Beliar.

  • Added a class for the action box at the bottom of the screen and replaced the sections in hud.py to use this instead. Currently it does the same as before but this may change.
  • Fixed svn eol_style properties of sever python scripts
  • Property svn:eol-style set to native
Line 
1#!/usr/bin/env python
2
3#   This file is part of PARPG.
4
5#   PARPG is free software: you can redistribute it and/or modify
6#   it under the terms of the GNU General Public License as published by
7#   the Free Software Foundation, either version 3 of the License, or
8#   (at your option) any later version.
9
10#   PARPG is distributed in the hope that it will be useful,
11#   but WITHOUT ANY WARRANTY; without even the implied warranty of
12#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13#   GNU General Public License for more details.
14
15#   You should have received a copy of the GNU General Public License
16#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>.
17from controllerbase import ControllerBase
18
19class DialogueController(ControllerBase):
20    """Controller that takes over when a dialogue is started"""
21    def __init__(self, 
22                 engine, 
23                 view, 
24                 model, 
25                 application):
26        """
27        Constructor
28        @param engine: Instance of the active fife engine
29        @type engine: fife.Engine
30        @param view: Instance of a GameSceneView
31        @param type: scripts.GameSceneView
32        @param model: The model that has the current gamestate
33        @type model: scripts.GameModel
34        @param application: The application that created this controller
35        @type application: scripts.PARPGApplication
36        @param settings: The current settings of the application
37        @type settings: fife.extensions.fife_settings.Setting
38        """
39        super(DialogueController, self).__init__(engine,
40                                                  view,
41                                                  model,
42                                                  application)
43        self.dialogue = None
44        self.view = view
45       
46    def startTalk(self, npc):
47        if npc.dialogue is not None:
48            self.model.active_map.centerCameraOnPlayer()           
49            npc.talk(self.model.game_state.player_character)
50            self.dialogue = self.view.hud.showDialogue(npc)
51            self.dialogue.initiateDialogue()
52            self.model.pause(True)
53            self.view.hud.enabled = False
54
55           
56    def pump(self):
57        if self.dialogue and not self.dialogue.active:
58            self.application.popController()
59            self.model.pause(False)
60            self.view.hud.enabled = True
61           
Note: See TracBrowser for help on using the repository browser.