Mercurial > parpg-source
comparison gui/dialoguegui.py @ 80:d0b600d7136c
Added pc_has and npc_has as functions to the dialogue engine. These replace calls to pc.has_item and ncp.has_item.
author | KarstenBock@gmx.net |
---|---|
date | Fri, 23 Sep 2011 14:11:49 +0200 |
parents | 535801aec63e |
children | dd7655eee67d |
comparison
equal
deleted
inserted
replaced
79:e719bf53c25a | 80:d0b600d7136c |
---|---|
25 | 25 |
26 class DialogueGUI(object): | 26 class DialogueGUI(object): |
27 """Window that handles the dialogues.""" | 27 """Window that handles the dialogues.""" |
28 _logger = logging.getLogger('dialoguegui.DialogueGUI') | 28 _logger = logging.getLogger('dialoguegui.DialogueGUI') |
29 | 29 |
30 def __init__(self, controller, npc, quest_engine, met_fnc, meet_fnc, player_character): | 30 def __init__(self, controller, npc, quest_engine, met_fnc, meet_fnc, has_fnc, player_character): |
31 self.active = False | 31 self.active = False |
32 self.controller = controller | 32 self.controller = controller |
33 xml_file = vfs.VFS.open('gui/dialogue.xml') | 33 xml_file = vfs.VFS.open('gui/dialogue.xml') |
34 self.dialogue_gui = pychan.loadXML(xml_file) | 34 self.dialogue_gui = pychan.loadXML(xml_file) |
35 self.npc = npc | 35 self.npc = npc |
38 # handling. | 38 # handling. |
39 self.quest_engine = quest_engine | 39 self.quest_engine = quest_engine |
40 self.player_character = player_character | 40 self.player_character = player_character |
41 self.met_fnc = met_fnc | 41 self.met_fnc = met_fnc |
42 self.meet_fnc = meet_fnc | 42 self.meet_fnc = meet_fnc |
43 self.pc_has_fnc = lambda slot_or_type:\ | |
44 has_fnc(player_character.container, slot_or_type) | |
45 self.npc_has_fnc = lambda slot_or_type:\ | |
46 has_fnc(npc.container, slot_or_type) | |
43 | 47 |
44 def initiateDialogue(self): | 48 def initiateDialogue(self): |
45 """Callback for starting a quest""" | 49 """Callback for starting a quest""" |
46 self.active = True | 50 self.active = True |
47 stats_label = self.dialogue_gui.findChild(name='stats_label') | 51 stats_label = self.dialogue_gui.findChild(name='stats_label') |
53 self.dialogue_gui.show() | 57 self.dialogue_gui.show() |
54 self.setNpcName(self.npc.description.view_name) | 58 self.setNpcName(self.npc.description.view_name) |
55 self.setAvatarImage(self.npc.dialogue.dialogue.avatar_path) | 59 self.setAvatarImage(self.npc.dialogue.dialogue.avatar_path) |
56 | 60 |
57 game_state = {'npc': self.npc, 'pc': self.player_character, | 61 game_state = {'npc': self.npc, 'pc': self.player_character, |
58 'quest': self.quest_engine, 'met': self.met_fnc, 'meet': self.meet_fnc} | 62 'quest': self.quest_engine, |
63 'met': self.met_fnc, 'meet': self.meet_fnc, | |
64 'pc_has': self.pc_has_fnc, 'npc_has': self.npc_has_fnc, | |
65 } | |
59 try: | 66 try: |
60 self.dialogue_processor = DialogueProcessor(self.npc.dialogue.dialogue, | 67 self.dialogue_processor = DialogueProcessor(self.npc.dialogue.dialogue, |
61 game_state) | 68 game_state) |
62 self.dialogue_processor.initiateDialogue() | 69 self.dialogue_processor.initiateDialogue() |
63 except (TypeError) as error: | 70 except (TypeError) as error: |