def handle(call): call_data = call.data.split('_') action = call_data[2] try: lobby = dynamic_dicts.lobby_list[call_data[1]] except: return False if action == 'startlobby': dynamic_dicts.lobby_list[call_data[1]].start() elif action == 'equipment': user_id = call.from_user.id unit_dict = lobby[user_id]['unit_dict'] user = get_user(call.from_user.id) chat = get_chat(lobby.chat_id) item_type = call_data[3] item_name = call_data[-1] item = standart_actions.object_dict[item_name]() if item_name not in ['reset', 'ready'] else None if item_name == 'reset': if item_type == 'armor': for armor in unit_dict['armor']: chat.delete_used_item(armor['name']) unit_dict['armor'] = [] elif item_type == 'item': for item_unit in unit_dict['inventory'].values(): chat.delete_used_item(item_unit[0]['name'], value=item_unit[1]) unit_dict['inventory'] = {} user.send_equipment_choice(call_data[1], chat.chat_id, item_type, message_id=call.message.message_id) elif item_name == 'ready': lobby[user_id]['equipment_choice'].pop() lobby.run_next_step(user_id, message_id=call.message.message_id) elif item_name not in chat.get_free_armory(): bot_methods.answer_callback_query(call, 'Этого предмета уже нет на складе') user.send_equipment_choice(call_data[1], chat.chat_id, item_type, message_id=call.message.message_id) elif not item.try_placement(unit_dict): bot_methods.answer_callback_query(call, 'Вы не можете это экипировать.') elif item_type == 'weapon': chat.use_item(item_name) unit_dict['weapon'] = item.to_dict() lobby[user_id]['equipment_choice'].pop() lobby.run_next_step(user_id, message_id=call.message.message_id) elif item_type == 'armor': chat.use_item(item_name) unit_dict['armor'].append(item.to_dict()) user.send_equipment_choice(call_data[1], chat.chat_id, item_type, message_id=call.message.message_id) elif item_type == 'item': chat.use_item(item_name) test = list(k for k, v in unit_dict['inventory'].items() if v[0]['name'] == item['name']) if test: unit_dict['inventory'][test[0]][1] += 1 else: unit_dict['inventory'][engine.rand_id()] = [item.to_dict(), 1] user.send_equipment_choice(call_data[1], chat.chat_id, item_type, message_id=call.message.message_id)
def start(message): from fight.unit_files import human, red_oak, bloodbug, ogre, goblin_shaman, goblin, dragon, worm from fight import ai, items import engine dct = chat_main.get_user(message.from_user.id).get_fight_unit_dict( name=message.from_user.first_name) player = human.Human(unit_dict=dct) dct = player.to_dict() enemy_3_class = goblin.Goblin enemy_3 = enemy_3_class() enemy_3.armor = [armors.Cuirass()] team_1 = {message.from_user.id: dct} team_2 = {(enemy_3_class, 1): enemy_3.to_dict()} fight_main.thread_fight([team_1, team_2], chat_id=message.chat.id)
def start(message): user = chat_main.get_user(message.from_user.id) user_menu.user_action_dict['main'](user, message.from_user.id).func()
def handle(call): call_data = call.data.split('_') user_id = call.from_user.id user = get_user(user_id) action = call_data[1] user_action_dict[action](user, user_id, call).func()
def start(message): user = chat_main.get_user(message.from_user.id) user.reset_abilities()