Package scripts :: Script dialoguecontroller
[hide private]
[frames] | no frames]

Source Code for Script scripts.dialoguecontroller

 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/>. 
17  from controllerbase import ControllerBase 
18   
19 -class 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