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: