Exemple #1
0
 def throw(ability, action):
     self = action.unit
     damage = 3
     statuses.Prone(self.grabbed_target)
     self.grabbed_target.receive_damage(damage)
     self.grabbed_target.disabled.remove(self)
     self.grabbed_target.move_back()
     if len(self.targets()) > 1:
         target = random.choice([
             trgt for trgt in self.targets() if trgt != self.grabbed_target
         ])
         if 'dodge' not in self.target.action:
             self.string('skill_7',
                         format_dict={
                             'target_1': self.grabbed_target.name,
                             'target_2': target.name,
                             'damage': damage
                         })
             target.receive_damage(damage)
             target.move_back()
             statuses.Prone(target)
             self.grabbed_target = None
             return
     self.string('skill_8',
                 format_dict={
                     'target_1': self.grabbed_target.name,
                     'damage': damage
                 })
     self.grabbed_target = None
Exemple #2
0
 def wing_clap(ability, action):
     unit = action.unit
     unit.waste_energy(2)
     targets = unit.melee_targets
     for target in targets:
         target.move_back()
         statuses.Prone(target)
     unit.string('skill_2', format_dict={'actor': unit.name})
Exemple #3
0
 def free(self):
     self.release()
     if self.state == 'lift':
         self.string('skill_6',
                     format_dict={
                         'actor': self.name,
                         'target': self.target.name
                     })
         statuses.Prone(self.victim)
Exemple #4
0
 def fling(self):
     damage = 4
     self.target.receive_damage(damage)
     self.target.move_back()
     self.string('skill_10',
                 format_dict={
                     'actor': self.name,
                     'target': self.target.name,
                     'damage': damage
                 })
     statuses.Prone(self.victim)
     self.free()
Exemple #5
0
 def free(self):
     self.release()
     if self.state == 'lift':
         self.string('skill_6',
                     format_dict={
                         'actor': self.name,
                         'target': self.target.name
                     })
         statuses.Prone(self.victim)
     self.victim = None
     self.target = None
     self.controller.find_target()
Exemple #6
0
 def dies(self):
     self.wounds -= self.dmg_received
     if self.wounds <= 0 and self not in self.fight.dead:
         print(self.name)
         if self.state == 'lift':
             self.string('died_message_1',
                         format_dict={
                             'actor': self.name,
                             'target': self.victim.name
                         })
             statuses.Prone(self.victim)
         else:
             self.string('died_message', format_dict={'actor': self.name})
         self.release()
         self.owner.branch_spawned = False
         return True
     elif self.dmg_received:
         self.string('fire_out', format_dict={'actor': self.name})
     return False
Exemple #7
0
 def activate(self, action):
     self.on_cd()
     if 'massive' in action.target.types:
         self.string('impossible',
                     format_dict={
                         'target': action.target.name,
                         'actor': self.unit.name
                     })
     elif 'move' in action.target.action:
         self.string('use',
                     format_dict={
                         'actor': self.unit.name,
                         'target': action.target.name
                     })
         statuses.Prone(action.target)
         action.target.receive_damage(3)
     else:
         self.string('fail',
                     format_dict={
                         'actor': self.unit.name,
                         'target': action.target.name
                     })
Exemple #8
0
 def activate(self, action):
     self.on_cd()
     if 'massive' in action.target.types:
         self.string('impossible',
                     format_dict={
                         'target': action.target.name,
                         'actor': self.unit.name
                     })
     elif action.target.energy < action.unit.energy + random.randint(0, 1):
         self.string('use',
                     format_dict={
                         'actor': action.unit.name,
                         'target': action.target.name
                     })
         statuses.Buff(action.target, 'melee_accuracy', -6, 1)
         statuses.Buff(action.target, 'range_accuracy', -6, 1)
         print(action.target.melee_accuracy)
         statuses.Prone(action.target)
     else:
         self.string('fail',
                     format_dict={
                         'actor': action.unit.name,
                         'target': action.target.name
                     })
Exemple #9
0
 def effect_resolve(self, attack_action):
     self.effect_chance -= 10 * attack_action.dmg_blocked
     statuses.Prone(attack_action.target)
     attack_action.to_emotes(emoji_utils.emote_dict['prone_em'])