コード例 #1
0
    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)
コード例 #2
0
ファイル: bot.py プロジェクト: egor5q/Veganwars
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)
コード例 #3
0
ファイル: bot.py プロジェクト: Jus-ti-car/Veganwars
def start(message):
    user = chat_main.get_user(message.from_user.id)
    user_menu.user_action_dict['main'](user, message.from_user.id).func()
コード例 #4
0
ファイル: user_menu.py プロジェクト: Jus-ti-car/Veganwars
 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()
コード例 #5
0
ファイル: bot.py プロジェクト: egor5q/Veganwars
def start(message):
    user = chat_main.get_user(message.from_user.id)
    user.reset_abilities()