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 'dodge' in action.target.action: self.string('fail', format_dict={ 'target': action.target.name, 'actor': self.unit.name }) elif 'shield' in action.target.action: self.string('special', format_dict={ 'target': action.target.name, 'actor': self.unit.name }) else: self.string('use', format_dict={ 'target': action.target.name, 'actor': self.unit.name }) statuses.Buff(action.target, 'melee_accuracy', -6, 1) statuses.Buff(action.target, 'range_accuracy', -6, 1) action.target.move_back()
def activate(self, action): self.unit.waste_energy(3) statuses.Buff(unit=action.target, attr='range_accuracy', value=4, length=2) statuses.Buff(unit=action.target, attr='melee_accuracy', value=4, length=2) self.string('use', format_dict={ 'actor': self.unit.name, 'target': action.target.name })
def activate(self, action=None): # Определяет разницу между максимальным и текущим хп. bonus_energy - число этой разницы bonus_energy = self.unit.max_hp - self.unit.hp if bonus_energy > self.bonus_energy: # Если прошлый бонус меньше этого - добавляет строку с разницей бонусов и увеличивает количество энергии # и максимум запаса энергии. plus = bonus_energy - self.bonus_energy self.string('use', format_dict={ 'actor': self.unit.name, 'plus': plus }) self.unit.max_energy += plus self.unit.energy += plus self.unit.speed += plus elif bonus_energy < self.bonus_energy: # Если прошлый бонус больше этого - уменьшает только максимум запаса энергии minus = self.bonus_energy - bonus_energy self.unit.max_energy -= minus self.unit.speed -= minus self.bonus_energy = bonus_energy # Увеличивает урон на 2 при одной жизни. if self.unit.hp == 1: statuses.Buff(self.unit, 'damage', 2, 2, emoji=emoji_utils.emote_dict['berserk_em']) if not self.bonus_damage: self.string('special', format_dict={'actor': self.unit.name}) self.bonus_damage = True elif self.bonus_damage: self.bonus_damage = False
def activate(self, action=None): if self.unit.energy == self.unit.max_energy: statuses.Buff(self.unit, 'damage', 2, 1, emoji=emoji_utils.emote_dict['biceps_em'])
def first_stage(self): self.use() statuses.Buff(self.target, 'spell_damage', 2, 3) self.string('use', format_dict={ 'actor': self.unit.name, 'target': self.target.name })
def activate(self, action): self.string('use', format_dict={'actor': self.unit.name}) statuses.Buff(unit=self.unit, attr='damage', length=3, value=3) statuses.CustomStatus(unit=self.unit, delay=1, func=self.wear_off, order=40, name='psycho_delay')
def tighten(ability, action): unit = action.unit if unit.state == 'reach': unit.grab(unit.target) unit.victim = unit.target elif unit.state == 'grabbed': chance = random.randint(1, 3) if chance == 1: unit.pull() unit.state = 'pull' elif chance == 2: unit.fling() unit.state = 'free' elif chance == 3: unit.choke() unit.state = 'choking' elif unit.state == 'choking': unit.choke() elif unit.state == 'pull': unit.string('skill_3', format_dict={ 'actor': unit.name, 'target': unit.target.name }) statuses.Buff(unit.victim, 'range_accuracy', -5, 2) statuses.Buff(unit.victim, 'melee_accuracy', -3, 2) unit.state = 'lift' elif unit.state == 'lift': unit.string('skill_4', format_dict={ 'actor': unit.name, 'target': unit.target.name }) unit.state = 'free' unit.target.change_hp(-10) unit.free() elif unit.state == 'free': unit.string('skill_7', format_dict={ 'actor': unit.name, 'target': unit.target.name }) unit.move_forward() unit.state = 'reach' elif unit.state == 'broken': unit.state = 'free'
def activate_special_action(self, target): self.string('special_hit', format_dict={ 'actor': self.unit.name, 'target': target.name }) statuses.Buff(target, 'damage', self.bonus_damage, 1) target.energy += self.bonus_energy target.dmg_received += 1 self.unit.waste_energy(self.energy)
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 activate(self, action): self.string('use', format_dict={'actor': self.unit.name}) statuses.Buff(self.unit, 'evasion', 6, 1) self.unit.move_back()
def activate_bonus(self): statuses.Buff(self.actor, 'melee_accuracy', 2, 1) statuses.Buff(self.actor, 'range_accuracy', 2, 1) statuses.Buff(self.actor, 'damage', 1, 1) self.string('use', format_dict={'actor': self.actor.name})
def activate(self, action): InstantAbility.activate(self, action) self.string('use', format_dict={'actor': self.unit.name}) statuses.Buff(self.unit, 'evasion', 8, 1)
def activate(self, action): power = int(action.info[-1]) statuses.Buff(self.unit, 'spell_damage', power, 2) self.string('special', format_dict={'actor': self.unit.name})
def activate(self, action): self.string('use', format_dict={'actor': self.unit.name}) for unit in self.unit.fight.units: statuses.Buff(unit, 'range_accuracy', -6, 2) statuses.Buff(unit, 'melee_accuracy', -4, 2)
def start_regenerating(self): statuses.Buff(self, 'damage', 2, 3) statuses.CustomStatus(self, 21, 0, self.regenerate, name='custom_{}_{}'.format('regenerate', engine.rand_id()), acting=True) statuses.CustomStatus(self, 21, 1, self.regenerate, name='custom_{}_{}'.format('regenerate', engine.rand_id())) statuses.CustomStatus(self, 21, 2, self.regenerate, name='custom_{}_{}'.format('regenerate', engine.rand_id())) statuses.CustomStatus(self, 22, 2, self.reset_blood, name='custom_{}_{}'.format('blood_reset', engine.rand_id()))
def activate(self, action): self.string('use', format_dict={'actor': self.actor.name}) for actor in self.actor.fight.actors: statuses.Buff(actor, 'range_accuracy', -6, 2) statuses.Buff(actor, 'melee_accuracy', -4, 2)