Mercurial > parpg-source
diff gamemodel.py @ 150:80672955ab70
PARPG now works with, and needs Fife 0.3.3.
author | KarstenBock@gmx.net |
---|---|
date | Tue, 11 Oct 2011 14:47:37 +0200 |
parents | 53faff63037f |
children | 4dc7951c3bfc |
line wrap: on
line diff
--- a/gamemodel.py Mon Oct 10 15:12:33 2011 +0200 +++ b/gamemodel.py Tue Oct 11 14:47:37 2011 +0200 @@ -94,12 +94,7 @@ self.dialogue_directory = settings.parpg.DialoguesPath self.dialogues = {} self.agent_import_files = {} - self.obj_loader = XMLObjectLoader( - self.engine.getImagePool(), - self.engine.getAnimationPool(), - self.engine.getModel(), - self.engine.getVFS() - ) + self.obj_loader = XMLObjectLoader(self.engine) def checkAttributes(self, attributes, template): """Checks for attributes that where not given in the map file @@ -134,7 +129,9 @@ id_number += 1 if id_number > self.MAX_ID_NUMBER: raise ValueError( - "Number exceeds MAX_ID_NUMBER:" + str(self.MAX_ID_NUMBER)) + "Number exceeds MAX_ID_NUMBER:" + + str(self.MAX_ID_NUMBER) + ) ID = ID + "_" + str(id_number) return ID @@ -207,7 +204,8 @@ def teleport(self, agent, position): """Called when a an agent is moved instantly to a new position. - The setting of position may wan to be created as its own method down the road. + The setting of position may wan to be created as its own method down + the road. @type position: String Tuple @param position: X,Y coordinates passed from engine.changeMap @return: fife.Location""" @@ -303,7 +301,8 @@ and agent_values["Entity"]["graphics"].has_key("gfx"): object_model = agent_values["Entity"]["graphics"]["gfx"] elif agent_values.has_key("Template"): - object_model = self.object_db[agent_values["Template"]]["graphics"]["gfx"] + template = self.object_db[agent_values["Template"]] + object_model = template["graphics"]["gfx"] else: object_model = self.GENERIC_ITEM_GFX import_file = self.agent_import_files[object_model] @@ -427,7 +426,8 @@ entity_data["containable"]["item_type"] = template - obj = self.createMapObject(self.active_map.agent_layer, entity_data, inst_id, world) + obj = self.createMapObject(self.active_map.agent_layer, + entity_data, inst_id, world) if agent.has_key("Inventory"): inv = agent["Inventory"] @@ -440,12 +440,16 @@ item_type = data["type"] item_data = {} item_data = self.checkAttributes(item_data, item_type) - if item_data.has_key("containable") and item_data.has_key("equipable"): + if (item_data.has_key("containable") and + item_data.has_key("equipable")): item = self.createItem( self.createUniqueID(data["ID"]), item_data, world, item_type) else: - raise Exception("Item %s is not containable or equipable." % item_type) + raise Exception( + "Item %s is not containable or equipable." % + item_type + ) else: identifier = data["ID"] if self.game_state.hasObject(identifier): @@ -533,7 +537,8 @@ self.active_map.addPC() #self.game_state.getObjectById("PlayerCharacter").fifeagent.start() if agent.has_key("PeopleKnown"): - self.game_state.getObjectById("PlayerCharacter").fifeagent.people_i_know = agent["PeopleKnown"] + player = self.game_state.getObjectById("PlayerCharacter") + player.fifeagent.people_i_know = agent["PeopleKnown"] def changeMap(self, map_name, target_position = None): """Registers for a map change on the next pump(). @@ -607,9 +612,10 @@ # For now we copy the PlayerCharacter, # in the future we will need to copy # PlayerCharacter specifics between the different PlayerCharacter's - self.game_state.getObjectById("PlayerCharacter").fifeagent = player_char - self.game_state.getObjectById("PlayerCharacter").fifeagent.setup() - self.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.speed = self.settings.parpg.PCSpeed + player = self.game_state.getObjectById("PlayerCharacter") + player.fifeagent = player_char + player.fifeagent.setup() + player.fifeagent.behaviour.speed = self.settings.parpg.PCSpeed def addObject(self, layer, obj): @@ -625,7 +631,8 @@ self.game_state.current_map_name) if ref is None: # no, add it to the game state - self.game_state.addObject(obj.general.identifier, self.game_state.current_map_name, obj) + self.game_state.addObject(obj.general.identifier, + self.game_state.current_map_name, obj) else: # yes, use the current game state data obj.fifeagent.pos.X = ref.X @@ -667,10 +674,11 @@ @type position: fife.ScreenPoint @param position: Screen position to move to @return: None""" + player = self.game_state.getObjectById("PlayerCharacter") if(self.pc_run == 1): - self.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.run(position) + player.fifeagent.behaviour.run(position) else: - self.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.walk(position) + player.fifeagent.behaviour.walk(position) def teleportAgent(self, agent, position): """Code called when an agent should teleport to another location