Exemple #1
0
 def second_stage(self):
     self.use()
     statuses.Burning(self.target, 2 + int(self.unit.spell_damage / 2))
     self.string('use',
                 format_dict={
                     'actor': self.unit.name,
                     'target': self.target.name
                 })
Exemple #2
0
 def fire_breath(ability, action):
     unit = action.unit
     unit.waste_energy(2)
     damage = random.randint(8, 10)
     target = random.choice(unit.targets())
     if 'dodge' in target.action:
         unit.string('skill_4', format_dict={'actor': unit.name, 'target': target.name})
     else:
         unit.string('skill_1', format_dict={'actor': unit.name, 'target': target.name})
         if 'shield' not in target.action:
             statuses.Burning(target, stacks=damage)
Exemple #3
0
 def on_hit(self, action):
     if engine.roll_chance((self.heat - 4) * 5):
         if engine.roll_chance(50):
             if action.dmg_done:
                 action.dmg_done = action.dmg_done * 2
                 statuses.Burning(action.target)
                 action.str = 'special'
         else:
             action.dmg_done = 0
             self.unit.dmg_received += 1
             statuses.Stun(action.actor)
             action.str = 'special_1'
             self.heat = 0
     self.heat += self.heating
Exemple #4
0
 def activate(self, action):
     targets = self.unit.targets()
     if len(targets) == 1:
         self.string('special',
                     format_dict={
                         'actor': self.unit.name,
                         'targets': targets[0].name
                     })
     else:
         targets = random.sample(targets, 2)
         self.string('use',
                     format_dict={
                         'actor': self.unit.name,
                         'target_0': targets[0].name,
                         'target_1': targets[1].name
                     })
     for target in targets:
         statuses.Burning(target, 2)
Exemple #5
0
 def second_stage(self):
     self.use()
     damage = random.randint(4, 6) + self.spell_damage
     targets = self.unit.targets()
     self.string('use', format_dict={'actor': self.unit.name})
     damage_spread = engine.aoe_split(damage, len(targets))
     damage_index = 0
     for target in targets:
         damage = damage_spread[damage_index]
         damage_index += 1
         if not damage:
             pass
         elif 'dodge' not in target.action:
             self.dmg_done = damage
             self.target = target
             target.receive_spell(self)
             if self.dmg_done:
                 self.string('use_1', format_dict={'target': target.name, 'damage': self.dmg_done})
             if engine.roll_chance(50):
                 statuses.Burning(self.target, stacks=2 + int(self.spell_damage/2))
         else:
             self.string('use_2', format_dict={'target': target.name})
Exemple #6
0
 def activate(self, action):
     targets = self.actor.targets()
     self.string('use', format_dict={'actor': self.actor.name})
     for target in targets:
         statuses.Burning(target, stacks=5)
Exemple #7
0
 def on_hit(self, attack_action):
     if attack_action.dmg_done:
         statuses.Burning(attack_action.actor.target)
         attack_action.to_emotes(emoji_utils.emote_dict['fire_em'])
Exemple #8
0
 def on_hit(self, action):
     if self.burning and action.dmg_done:
         statuses.Burning(action.actor.target)
         action.to_emotes(emoji_utils.emote_dict['fire_em'])
Exemple #9
0
 def cast_spell(self):
     statuses.Burning(self.target, 3 + int(self.spell_damage))
     self.string('use', format_dict={'actor': self.unit.name, 'target': self.target.name})