+ notblock = self.interact_objects (level, objs)
+
+ # get npc at current location
+ current_npc = None
+ for npc in level.npcs:
+ if npc.row == row and npc.col == col:
+ current_npc = npc
+ break
+
+ # npcs always block the tile. So return false if there is an NPC
+ # at the location
+ if current_npc is not None:
+ self.interact_npc (current_npc)
+ return False
+
+ return notblock
+
+ # interaction with npcs
+ def interact_npc (self, npc):
+ # interact with NPC and get the response ID
+ # 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
+ def interact_objects (self, container, objs):