Mercurial > parpg-core
comparison src/parpg/objects/action.py @ 69:ad75fa042b99
Changes to make PARPG "runable" with grease. (With the correct modified assets)
author | KarstenBock@gmx.net |
---|---|
date | Tue, 06 Sep 2011 15:22:51 +0200 |
parents | 8b3890f17f94 |
children | c25c734bd2a7 |
comparison
equal
deleted
inserted
replaced
68:d7286cba42df | 69:ad75fa042b99 |
---|---|
287 self.npc = npc | 287 self.npc = npc |
288 | 288 |
289 def execute(self): | 289 def execute(self): |
290 """Talk with the NPC when close enough, otherwise move closer. | 290 """Talk with the NPC when close enough, otherwise move closer. |
291 @return: None""" | 291 @return: None""" |
292 player_char = self.model.game_state.player_character | 292 player_char = self.model.game_state.getObjectById("PlayerCharacter").fifeagent |
293 npc_coordinates = self.npc.getLocation().getLayerCoordinates() | 293 npc_coordinates = self.npc.getLocation().getLayerCoordinates() |
294 pc_coordinates = player_char.behaviour.agent.\ | 294 pc_coordinates = player_char.behaviour.agent.\ |
295 getLocation().getLayerCoordinates() | 295 getLocation().getLayerCoordinates() |
296 | 296 |
297 distance_squared = (npc_coordinates.x - pc_coordinates.x) *\ | 297 distance_squared = (npc_coordinates.x - pc_coordinates.x) *\ |
318 self.controller.application.manager.push_mode(dialogue_controller) | 318 self.controller.application.manager.push_mode(dialogue_controller) |
319 dialogue_controller.startTalk(self.npc) | 319 dialogue_controller.startTalk(self.npc) |
320 else: | 320 else: |
321 self.npc.behaviour.agent.say("Leave me alone!", 1000) | 321 self.npc.behaviour.agent.say("Leave me alone!", 1000) |
322 | 322 |
323 self.model.game_state.player_character.behaviour.idle() | 323 self.model.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.idle() |
324 self.model.game_state.player_character.nextAction = None | 324 self.model.game_state.getObjectById("PlayerCharacter").fifeagent.nextAction = None |
325 super(TalkAction, self).execute() | 325 super(TalkAction, self).execute() |
326 | 326 |
327 class UseAction(Action): | 327 class UseAction(Action): |
328 """Action for carryable items. It executes special commands that can be only | 328 """Action for carryable items. It executes special commands that can be only |
329 used on carryable utens""" | 329 used on carryable utens""" |
367 self.view = controller.view | 367 self.view = controller.view |
368 | 368 |
369 def execute(self): | 369 def execute(self): |
370 real_item = self.map_item.item | 370 real_item = self.map_item.item |
371 self.model.deleteObject(self.map_item.ID) | 371 self.model.deleteObject(self.map_item.ID) |
372 self.model.game_state.player_character.\ | 372 self.model.game_state.getObjectById("PlayerCharacter").fifeagent.\ |
373 inventory.placeItem(real_item) | 373 inventory.placeItem(real_item) |
374 self.view.hud.inventory.updateInventoryButtons() | 374 self.view.hud.inventory.updateInventoryButtons() |
375 super(PickUpAction, self).execute() | 375 super(PickUpAction, self).execute() |
376 | 376 |
377 class DropItemAction(Action): | 377 class DropItemAction(Action): |
385 map_item_values = {} | 385 map_item_values = {} |
386 map_item_values["ViewName"] = self.item.name | 386 map_item_values["ViewName"] = self.item.name |
387 map_item_values["ObjectType"] = "MapItem" | 387 map_item_values["ObjectType"] = "MapItem" |
388 map_item_values["ItemType"] = self.item.item_type | 388 map_item_values["ItemType"] = self.item.item_type |
389 map_item_values["Map"] = map_name | 389 map_item_values["Map"] = map_name |
390 coords = self.model.game_state.player_character.\ | 390 coords = self.model.game_state.getObjectById("PlayerCharacter").fifeagent.\ |
391 getLocation().getExactLayerCoordinates() | 391 getLocation().getExactLayerCoordinates() |
392 map_item_values["Position"] = (coords.x, coords.y) | 392 map_item_values["Position"] = (coords.x, coords.y) |
393 map_item_values["Rotation"] = 0 | 393 map_item_values["Rotation"] = 0 |
394 map_item_values["item"] = self.item | 394 map_item_values["item"] = self.item |
395 agent = {} | 395 agent = {} |
422 has_water = False | 422 has_water = False |
423 has_yeast = False | 423 has_yeast = False |
424 has_fruit = False | 424 has_fruit = False |
425 has_wood = False | 425 has_wood = False |
426 has_bottle = False | 426 has_bottle = False |
427 player_character = self.model.game_state.player_character | 427 player_character = self.model.game_state.getObjectById("PlayerCharacter").fifeagent |
428 for item in self.pot.items.itervalues(): | 428 for item in self.pot.items.itervalues(): |
429 if item.item_type == "Questionable water": | 429 if item.item_type == "Questionable water": |
430 if has_water: | 430 if has_water: |
431 self.view.hud.addAction(unicode(\ | 431 self.view.hud.addAction(unicode(\ |
432 "Please put only 1 water in the pot")) | 432 "Please put only 1 water in the pot")) |