def character_info_action(self, user_name): character = self.online_users[user_name].character team_name = character.team_name if not team_name: team_name = "" locale = self.online_users[user_name].locale character_info = [ character.name, smarty.get_race_name(character.race_id, locale), smarty.get_class_name(character.class_id, locale), str(character.level), str(character.health), str(character.mana), str(character.strength), str(character.dexterity), str(character.intellect), str(character.wisdom), str(character.constitution), str(character.attack), str(character.defence), str(character.magic_attack), str(character.magic_defence), str(character.armor), str(character.experience), str(smarty.level_up_experiences[character.level]), str(character.gold), team_name, str(character.rank_in_team) ] # if there is battle character - use it if self.online_users[user_name].battle_character: battle_character = self.online_users[user_name].battle_character else: # use common character battle_character = self.online_users[user_name].character battle_character_info = [ str(battle_character.health), str(battle_character.mana), str(battle_character.strength), str(battle_character.dexterity), str(battle_character.intellect), str(battle_character.wisdom), str(battle_character.constitution), str(battle_character.attack), str(battle_character.defence), str(battle_character.magic_attack), str(battle_character.magic_defence), str(battle_character.armor), str(battle_character.experience), str(battle_character.gold) ] return Action(200, {"character_info" : ":".join(character_info), "battle_character_info" : ":".join(battle_character_info)})
def post(self, *args, **kwargs): if self.get_argument("action") == 'drop': self.db_manager.remove_character(self.current_user) elif self.get_argument("action") == 'change_location': self.battle_manager.user_leave(self.current_user) self.users_manager.change_location(self.current_user, int(self.get_argument("location"))) self.write(self.render_div_users()) elif self.get_argument("action") == 'put_on': if not self.characters_manager.put_on_item(self.current_user, self.get_argument("item_id")): self.write("false") elif self.get_argument("action") == 'take_off': self.characters_manager.take_off_item(self.current_user, self.get_argument("item_id")) elif self.get_argument("action") == "create_team": self.write(self.characters_manager.create_team(self.current_user, self.get_argument("team_name"))) elif self.get_argument("action") == "promote_team": self.characters_manager.promote_user(self.current_user, self.get_argument("user_name")) elif self.get_argument("action") == "demote_team": self.characters_manager.demote_user(self.current_user, self.get_argument("user_name")) elif self.get_argument("action") == "remove_team": self.characters_manager.remove_user_from_team(self.current_user, self.get_argument("user_name")) elif self.get_argument("action") == "invite_team": self.write(self.characters_manager.invite_user_to_team(self.current_user, self.get_argument("user_name"))) elif self.get_argument("action") == "confirm_team": self.characters_manager.user_join_team(self.current_user, self.get_argument("user_name"), self.get_argument("team_name")) elif self.get_argument("action") == "decline_team": pass elif self.get_argument("action") == "leave_team": self.characters_manager.user_leave_team(self.current_user) elif self.get_argument("action") == "learn_spell": self.characters_manager.learn_spell(self.current_user, self.get_argument("spell_id")) elif self.get_argument("action") == 'join': self.battle_manager.user_join(self.current_user) elif self.get_argument("action") == 'leave': self.battle_manager.user_leave(self.current_user) elif self.get_argument("action") == 'turn_do': self.battle_manager.user_turn(self.current_user, self.get_argument("turn_info")) elif self.get_argument("action") == 'turn_cancel': self.battle_manager.user_turn_cancel(self.current_user) elif self.get_argument("action") == 'new_message': message = { "from": self.current_user, "message_type": self.get_argument("message_type"), "body": self.get_argument("body") } if self.get_argument("message_type") == "private": message["to"] = self.get_argument("to") self.messager.new_message(self.current_user, message) elif self.get_argument("action") == 'shop_get_item': item_id = int(self.get_argument("item_id")) self.write(self.render_item_description(item_id, True)) elif self.get_argument("action") == 'db_get_item': item_id = int(self.get_argument("item_id")) if item_id >= items_manager.build_id(10, 0) and item_id < items_manager.build_id(18, 0): spell = spells_manager.get_spell(item_id, self.locale) self.write(self.render_string("spell_description.html", spell=spell, class_name=smarty.get_class_name(spell.class_id, self.locale), substance_name=smarty.get_substance_name(spell.class_id, self.locale))) else: self.write(self.render_item_description(item_id, False)) elif self.get_argument("action") == 'buy_item': self.characters_manager.buy_item(self.current_user, self.get_argument("item_id")) elif self.get_argument("action") == 'open_chat': self.users_manager.open_chat(self.current_user, self.get_argument("user_name"), self.get_argument("message", "")) elif self.get_argument("action") == 'close_chat': self.users_manager.close_chat(self.current_user, self.get_argument("user_name")) elif self.get_argument("action") == 'change_gold_tax': self.characters_manager.change_gold_tax(self.current_user, self.get_argument("strategy")) elif self.get_argument("action") == 'change_gold_sharing': self.characters_manager.change_gold_sharing(self.current_user, self.get_argument("strategy")) elif self.get_argument("action") == 'change_experience_sharing': self.characters_manager.change_experience_sharing(self.current_user, self.get_argument("strategy"))