--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<conversation>
+ <dialogue id="1">
+ <speech>Hello, Butaba. I hope you don't mind my asking you this again, but are you sure you aren't able to draw some water for me? I am not feeling all that well and I hoped you could help me out this one time!</speech>
+ <response id="15" nextdialogue="2">Oh, no problem. I will do it!</response>
+ <response id="16" nextdialogue="3">Sorry, Bulisa. I am unable to do it...</response>
+ </dialogue>
+
+ <dialogue id="2">
+ <speech>That is so kind of you, Butaba. There is an empty bucket somewhere in the garden. Take that, go to the well behind the house, draw water and bring it back to me.</speech>
+ <response id="17" nextdialogue="0">Right. I'll go at once.</response>
+ </dialogue>
+
+ <dialogue id="3">
+ <speech>Never mind. If you change your mind, do let me know!</speech>
+ <response id="18" nextdialogue="0">Bye!</response>
+ </dialogue>
+</conversation>
\ No newline at end of file
import gameobjects
import constants
import npcs
+import gamestate
class MainGame:
potion3 = gameobjects.HealthPotion (5, 2, self.img_redpotion)
npc_bulisa = npcs.Bulisa (4, 3, self.img_bulisa, self.img_bulisa_portrait,
- [ os.path.join ("dialogues", "bulisa1.dlg") ])
+ [ os.path.join ("dialogues", "bulisa1.dlg"),
+ os.path.join ("dialogues", "bulisa2.dlg"),
+ os.path.join ("dialogues", "bulisa3.dlg") ] )
chest1.objects = [ gold50, gold25, potion2, potion3, key2, gold10 ]
# interaction with npcs
def interact_npc (self, npc):
# interact with NPC and get the response ID
- resp_id = utility.dialogue_play (self.screen, self.img_dialogue, npc, self.img_butaba_portrait, 0, 90)
-
- # if none
- if resp_id is None:
+ # if the NPC is Bulisa
+ if isinstance (npc, npcs.Bulisa):
+ self.interact_npc_bulisa (npc)
+
+ # interact with NPC Bulisa
+ def interact_npc_bulisa (self, npc):
+ # set initial response ID to none
+ resp_id = None
+ print (gamestate.mission_bulisa_water_from_well, gamestate.mission_bulisa_water_from_well_complete)
+ # not yet started mission drawing water from well and not refused it
+ if (gamestate.mission_bulisa_water_from_well is False
+ and gamestate.mission_bulisa_water_from_well_refused is False):
+ # set the current dialogue
+ npc.currentdialog = 0
+ # get the response ID
+ resp_id = utility.dialogue_play (self.screen, self.img_dialogue, npc, self.img_butaba_portrait, 0, 90)
+ if (gamestate.mission_bulisa_water_from_well_refused is True and
+ gamestate.mission_bulisa_water_from_well is False):
+ # set the current dialog
+ npc.currentdialog = 2
+ resp_id = utility.dialogue_play (self.screen, self.img_dialogue, npc, self.img_butaba_portrait, 0, 90)
+ # mission accepted but not completed
+ elif (gamestate.mission_bulisa_water_from_well is True
+ and gamestate.mission_bulisa_water_from_well_complete is False):
+ npc.currentdialog = 1
+ # get the response ID
+ resp_id = utility.dialogue_play (self.screen, self.img_dialogue, npc, self.img_butaba_portrait, 0, 90)
+
+ print resp_id
+ # if response ID is 12, then drawing water from well mission is refused
+ if resp_id == "12" or resp_id == "18":
+ gamestate.mission_bulisa_water_from_well_refused = True
+ # if response ID is 13: that is accepted the drawing water from well mission begins
+ if resp_id == "13" or resp_id == "17":
+ gamestate.mission_bulisa_water_from_well = True
+ # if response ID is none
+ elif resp_id is None:
self.status_message = "You cannot initiate a conversation with %s" % npc.charname
# interaction with objects