def load_player(self,files): player_data = {} for file_name in files: f = open(file_name) data = yaml.load(f) f.close() yamlhelp.merge(data,player_data) player_name = player_data.keys()[0] player_data = player_data[player_name] if 'abilities' in player_data: starting_abilities = player_data['abilities'] del player_data['abilities'] else: starting_abilities = [] player_creature = Golem(self,player_name,**player_data) player_creature.raw_color = yamlhelp.load_color(player_creature.raw_color) for ability in starting_abilities: player_creature.add_ability(ability) for bp_name in player_creature.body_parts: bp = player_creature.body_parts[bp_name] bp = BodyPart(player_creature,bp_name,**bp) player_creature.body_parts[bp_name] = bp starting_trait_ids = bp.traits bp.traits = [] for trait_id in starting_trait_ids: bp.add_trait(self.traits[trait_id],force=True) self.player = Player(self, self.next_id(), 0, 0, 0, False, True, input_handler = InputHandler(), creature = player_creature) self.add_entity(self.player) for name in self.materials: self.player.materials[self.materials[name]] = 0 for ability in self.abilities.values(): self.player.add_observer(ability) ability.add_observer(self.player.input_handler) for word_id in self.words: self.player.words.append(self.words[word_id])