09/20/09 23:51:51 (10 years ago)

Ticket #74: Patch by or1andov, Integrate dialogue GUI and engine into game.

It should now be possible to engage in a conversation with NPC characters by
selecting talk from their context menu. fixes[s:trac, t:74]

Known Issues:

  • the GUI is terrible. instead of a dialog window, we could use a better looking background image and fixed position widgets
  • requires PyYAML to be installed sudo apt-get install python-yaml easy_install PyYAML
  • we have to create a simple state model for the PC can remember tasks
  • need to make NPC's be able to remember things - need a model in NPCs for this
  • no way currently to give or take items from npc's; again, more model work. this could be done by adding another callback similar to start_quest. may be necessary for npc's to have an inventory for this
  • The dialogue engine is not hooked up to specific NPC's... it currently always loads dialogue/sample.yaml - need to have the dialogue looked up from some XML attribute
  • dialogue is not broken off if the PC moves away from the NPC
  • npc image is hardcoded, it should use the image specified in the yaml file
1 edited


  • trunk/game/scripts/hud.py

    r277 r287  
    1818import shutil, fife, pychan 
     19import pychan.widgets as widgets 
    1920from pychan.tools import callbackWithArguments as cbwa 
    2021from scripts.parpgfilebrowser import PARPGFileBrowser 
    2223from scripts import inventory 
    2324from scripts.popups import ExaminePopup, ContainerGUI 
     25from scripts.dialoguegui import DialogueGUI 
    2527class Hud(object): 
    171173        self.main_menu.hide() 
    172174        self.menu_displayed = False 
    174177    def initializeHelpMenu(self): 
    534537        self.examine_box = ExaminePopup(self.engine, title, desc) 
    535538        self.examine_box.showPopUp() 
     540    def showDialogue(self, npc): 
     541        """Show the NPC dialogue window 
     542           @type npc: ??? 
     543           @param npc: the npc that we are having a dialogue with""" 
     544        dialogue = DialogueGUI(npc) 
     545        dialogue.initiateDialogue() 
Note: See TracChangeset for help on using the changeset viewer.