def build(self): """ Build character :returns: character :rtype: Character """ character = Character(self.model) if self.player_character: self.model.player = character character.name = self.name character.hit_points = self.hit_points character.max_hp = self.max_hp character.spirit = self.spirit character.max_spirit = self.max_spirit character.mind = self.mind character.body = self.body character.finesse = self.finesse character.size = self.size character.attack = self.attack character.speed = self.speed character.tick = self.tick character.level = self.level character.location = self.location character.inventory.weapon = self.weapon for item in self.items: character.inventory.append(item) for handle in self.effect_handles: character.add_effect_handle(handle) for effect in self.effects: character.add_effect(effect) for listener in self.listeners: character.register_event_listener(listener) for listener in self.update_listeners: character.register_for_updates(listener) for domain, level in self.domains.items(): character.add_domain_level(domain, level) for entry in self.spell_entries: character.add_spell_entry(entry) for skill, limit in self.cooldowns.items(): cooldown(character, skill, limit) return character