コード例 #1
0
 def get_item_menu(self, item_id, item_name):
     buttons = []
     item = self.get_item_object(item_id, item_name=item_name)
     table_row = item.table_row
     actions = self.get_item_actions(item, item_id)
     for action in actions:
         buttons.append(
             keyboards.DungeonButton(action[0],
                                     self.member,
                                     'item',
                                     action[1],
                                     item_id,
                                     item_name,
                                     named=True))
     buttons.append(
         keyboards.DungeonButton('Назад',
                                 self.member,
                                 'item',
                                 'menu',
                                 named=True))
     keyboard = keyboards.form_keyboard(*buttons)
     text = LangTuple(table_row, 'name').translate(self.member.lang) + '\n' \
            + LangTuple(table_row, 'desc').translate(self.member.lang)
     self.member.edit_message(text, reply_markup=keyboard)
     self.member.menu.update()
コード例 #2
0
ファイル: worm.py プロジェクト: egor5q/Veganwars
 def info_string(self, lang=None):
     lang = self.lang if lang is None else lang
     ability_list = ', '.join([LangTuple('abilities_' + ability.name, 'name').translate(lang)
                               for ability in self.abilities if 'tech' not in ability.types])
     item_list = ', '.join([LangTuple('items_' + item.name, 'button').translate(lang)
                            for item in self.items])
     return LangTuple('utils', 'full_info', format_dict={'actor': self.name,
                                                         'hp': self.hp,
                                                         'energy': self.energy,
                                                         'abilities': ability_list,
                                                         'items': item_list})
コード例 #3
0
 def member_string(self):
     inventory = self.inventory.get_inventory_string(self.lang)
     inventory_fill = LangTuple('utils',
                                'empty') if not inventory else LangTuple(
                                    'utils', 'inventory')
     return LangTuple('unit_' + self['unit_name'],
                      'dungeon_menu',
                      format_dict=units.units_dict[
                          self['unit_name']].get_dungeon_format_dict(
                              self, inventory,
                              inventory_fill)).translate(self.lang)
コード例 #4
0
ファイル: units.py プロジェクト: Jus-ti-car/Veganwars
 def add_armor_string(self):
     for key in self.act_armor_dict:
         armor_string = LangTuple('fight',
                                  'armor',
                                  format_dict={
                                      'actor': self.name,
                                      'damage_blocked':
                                      self.act_armor_dict[key],
                                      'armor': LangTuple('armor', key)
                                  })
         standart_actions.AddString(armor_string, 22, self)
     self.act_armor_dict = {}
コード例 #5
0
 def get_item_name(self, item, lang):
     if isinstance(item, str):
         return LangTuple(self.get_item_tuple(item), 'name').translate(lang)
     elif isinstance(item, dict):
         return LangTuple(self.get_item_tuple(item['name']),
                          'name').translate(lang)
     else:
         name = LangTuple(self.get_item_tuple(item[0]['name']),
                          'name').translate(lang)
         if 'improved' in item[0].keys():
             if item[0]['improved'] > 0:
                 name += ' +' + str(item['improved'])
         return name
コード例 #6
0
 def menu_string(self):
     return LangTuple('unit_' + self.unit_name,
                      'player_menu',
                      format_dict={
                          'actor':
                          self.name,
                          'hp':
                          self.hp,
                          'energy':
                          self.energy,
                          'weapon':
                          LangTuple('weapon_' + self.weapon.name, 'name'),
                          'statuses':
                          self.get_status_string()
                      })
コード例 #7
0
ファイル: units.py プロジェクト: Jus-ti-car/Veganwars
 def dies(self):
     if not self.alive() and self not in self.fight.dead:
         self.add_death_effect()
         self.fight.string_tuple.row(
             LangTuple('fight', 'death', format_dict={'actor': self.name}))
         return True
     return False
コード例 #8
0
 def update_menu(self):
     buttons = self.inventory_buttons()
     keyboard = form_keyboard(*buttons)
     self.member.edit_message(LangTuple('utils_inventory',
                                        'name').translate(self.member.lang),
                              reply_markup=keyboard)
     self.member.menu.update()
コード例 #9
0
    def grab(self, target):
        if 'dodge' in target.action or 'back' in target.action:
            self.string('skill_8',
                        format_dict={
                            'actor': self.name,
                            'target': target.name
                        })

        else:
            self.string('skill_1',
                        format_dict={
                            'actor': self.name,
                            'target': target.name
                        })
            statuses.CustomStatus(target,
                                  21,
                                  70,
                                  self.tighten,
                                  name='branch-grabbed',
                                  additional_buttons_actions=[
                                      ('free', self.force_free,
                                       LangTuple('unit_' + self.unit_name,
                                                 'button_1'))
                                  ])
            self.move_forward()
            target.rooted.append(self)
            self.state = 'grabbed'
コード例 #10
0
 def dies(self):
     if not self.alive() and self not in self.fight.dead:
         if self.death_lang_tuple is None:
             self.fight.string_tuple.row(
                 LangTuple('fight',
                           'death',
                           format_dict={'actor': self.name}))
         else:
             death_tuple = self.get_death_effect_tuple(
                 self.death_lang_tuple)
             if death_tuple is not None:
                 self.fight.string_tuple.row(death_tuple)
             else:
                 self.fight.string_tuple.row(
                     LangTuple('fight',
                               'death',
                               format_dict={'actor': self.name}))
         return True
     return False
コード例 #11
0
 def distribute_loot(self, loot_container):
     loot_receivers = list(self.members)
     random.shuffle(loot_receivers)
     if not loot_container.empty():
         player_containers = loot_container.random_split(
             len(loot_receivers))
         loot_list = dict(zip(loot_receivers, player_containers))
         for member in loot_receivers:
             message = LangTuple('dungeon', 'loot').translate(member.lang)
             if not loot_list[member].empty():
                 item_list = loot_list[member].to_string(member.lang)
                 message += '\n' + LangTuple('dungeon',
                                             'found', format_dict={'name': member.name,
                                                                   'item': item_list}). \
                     translate(member.lang) if loot_list[member] else \
                     '\n' + LangTuple('dungeon', 'full-inv', format_dict={'name': member}). \
                         translate(member.lang)
                 self.member_dict[
                     member.chat_id].inventory += loot_list[member]
             bot_methods.send_message(member.chat_id, message)
コード例 #12
0
 def form_message(*rgs, sh_m_ui=False, memb=None):
     if sh_m_ui:
         rgs = [
             *rgs,
             LangTuple(
                 'dungeon_short-member',
                 'name',
                 format_dict=units.units_dict[
                     memb['unit_name']].get_dungeon_format_dict(memb))
         ]
     msg = '\n'.join([arg.translate(self.leader.lang) for arg in rgs])
     return msg
コード例 #13
0
ファイル: user_menu.py プロジェクト: egor5q/Veganwars
 def get_menu_string(self):
     abilities = self.user.get_abilities()
     ability_names = [
         ability().name_lang_tuple().translate('rus')
         for ability in [ability_dict[abl['name']] for abl in abilities]
     ]
     ability_names = ', '.join(ability_names)
     return LangTuple('chatmanagement',
                      'player_menu',
                      format_dict={
                          'experience': self.user.experience,
                          'abilities': ability_names
                      }).translate('rus')
コード例 #14
0
 def menu_string(self):
     return LangTuple('unit_' + self.unit_name,
                      'player_menu',
                      format_dict={
                          'actor':
                          self.name,
                          'bones':
                          self.wounds,
                          'head':
                          emote_dict['check_em' if self.
                                     bone_dict['head'] else 'cross_em'],
                          'arm':
                          emote_dict['check_em' if self.
                                     bone_dict['arms'] else 'cross_em'],
                          'leg':
                          emote_dict['check_em' if self.
                                     bone_dict['legs'] else 'cross_em'],
                          'weapon':
                          LangTuple('weapon_' + self.weapon.name, 'name'),
                          'statuses':
                          self.get_status_string()
                      })
コード例 #15
0
 def show_chat_stats(self, lang):
     receipts = self.get_receipts()
     message = ''
     for key in receipts:
         name = standart_actions.get_name(key, 'rus')
         if receipts[key] == 'inf':
             value = 'Много'
         else:
             value = str(receipts[key])
         message += name + ' - ' + value + '\n'
     used_items = engine.ChatContainer(base_dict=self.get_free_armory())
     lang_tuple = LangTuple('chatmanagement',
                            'chat_stats',
                            format_dict={
                                'resources':
                                str(self.resources),
                                'items':
                                used_items.to_string(lang,
                                                     marked=True,
                                                     emoted=True)
                            })
     self.send_message(lang_tuple.translate(lang))
コード例 #16
0
ファイル: units.py プロジェクト: Jus-ti-car/Veganwars
 def menu_string(self):
     if len(self.weapon.targets()) != 1 or self.weapon.special_types:
         return LangTuple('unit_' + self.unit_name,
                          'player_menu',
                          format_dict={
                              'actor':
                              self.name,
                              'hp':
                              self.hp,
                              'energy':
                              self.energy,
                              'weapon':
                              LangTuple('weapon_' + self.weapon.name,
                                        'name'),
                              'statuses':
                              self.get_status_string()
                          })
     else:
         menu_string = LangTuple('unit_' + self.unit_name,
                                 'player_menu',
                                 format_dict={
                                     'actor':
                                     self.name,
                                     'hp':
                                     self.hp,
                                     'energy':
                                     self.energy,
                                     'weapon':
                                     LangTuple('weapon_' + self.weapon.name,
                                               'name'),
                                     'statuses':
                                     self.get_status_string()
                                 }).translate(self.controller.lang)
         menu_string += '\n'
         # menu_string += self.weapon.get_menu_string(short_menu=False, target=self.weapon.targets()[0].name).translate(self.controller.lang)
         return menu_string
コード例 #17
0
ファイル: map_engine.py プロジェクト: egor5q/Veganwars
 def get_button_tuples(self, lang):
     button_tuples = json.loads(LangTuple(self.table_row, 'buttons').translate(lang))
     return button_tuples
コード例 #18
0
ファイル: map_engine.py プロジェクト: egor5q/Veganwars
 def greetings_message(self):
     for member in self.dungeon.party.members:
         message = LangTuple(self.table_row, 'greeting').translate(member.lang)
         bot_methods.send_message(member.chat_id, message)
コード例 #19
0
 def get_string(self, string_action, format_dict=None):
     return LangTuple('buildings_' + self.name, string_action, format_dict=format_dict)
コード例 #20
0
 def get_lang_tuple(self, string, format_dict=None):
     return LangTuple(self.table_row, string, format_dict=format_dict)
コード例 #21
0
ファイル: map_engine.py プロジェクト: egor5q/Veganwars
 def get_greet_tuple(self):
     return LangTuple(self.table_row, 'greeting')
コード例 #22
0
ファイル: map_engine.py プロジェクト: egor5q/Veganwars
 def victory(self):
     self.dungeon.party.send_message(LangTuple('dungeon', 'victory'), image=self.image,
                                     reply_markup_func=self.get_action_keyboard)
コード例 #23
0
ファイル: map_engine.py プロジェクト: egor5q/Veganwars
 def get_lang_tuple(self, string):
     return LangTuple(self.table_row, string)