Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Game_Battler
- #--------------------------------------------------------------------------
- # * Applying Normal Attack Effects
- # attacker : battler
- #--------------------------------------------------------------------------
- def attack_effect(attacker)
- # Clear critical flag
- self.critical = false
- # First hit detection
- hit_result = (rand(100) < attacker.hit)
- # If hit occurs
- if hit_result == true
- # Calculate basic damage
- atk = [attacker.atk - self.pdef / 2, 0].max
- self.damage = atk * attacker.str / 10
- # Element correction
- self.damage *= elements_correct(attacker.element_set)
- self.damage /= 100
- # If damage value is strictly positive
- if self.damage > 0
- # Critical correction
- if (rand(100) < attacker.dex / 4) and self.is_a?(Game_Enemy)
- self.damage *= 2
- self.critical = true
- end
- # Guard correction
- if self.guarding?
- self.damage /= 2
- end
- end
- # Dispersion
- if self.damage.abs > 0
- amp = [self.damage.abs * 15 / 100, 1].max
- self.damage += rand(amp+1) + rand(amp+1) - amp
- end
- # Second hit detection
- eva = 8 * self.agi / attacker.dex + self.eva
- hit = self.damage < 0 ? 100 : 100 - eva
- hit = self.cant_evade? ? 100 : hit
- hit_result = (rand(100) < hit)
- end
- # If hit occurs
- if hit_result == true
- # State Removed by Shock
- remove_states_shock
- # Substract damage from HP
- self.hp -= self.damage
- # State change
- @state_changed = false
- states_plus(attacker.plus_state_set)
- states_minus(attacker.minus_state_set)
- # When missing
- else
- # Set damage to "Miss"
- self.damage = "Miss"
- # Clear critical flag
- self.critical = false
- end
- # End Method
- return true
- end
- end
RAW Paste Data