source: branches/active/character_customization/game/parpg/dialoguecontroller.py @ 766

Revision 736, 2.4 KB checked in by aspidites, 8 years ago (diff)

Patch by Aspidites:

  • renamed scripts package to parpg
  • renamed parpg module to application
  • removed packaging and other related files (kept locally for reference, will reintroduce similar scripts to resolve bug #275
  • updated all import statements to respect changes above
  • 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: parpg.GameSceneView
32        @param model: The model that has the current gamestate
33        @type model: parpg.GameModel
34        @param application: The application that created this controller
35        @type application: parpg.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.