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
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})
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)
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()
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()
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
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 })
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 })
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'])