Advertisement
Zetu

YEM DMG EZ

Jun 26th, 2011
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.42 KB | None | 0 0
  1. module Z
  2.   DAMAGE = "min + rand(max-min)/2 / spd + 0.4*atkstat - 0.2*defstat"
  3.   NO_WEAPON_STATS = [5, 10, 2]
  4. end
  5.  
  6. class Game_Battler
  7.   def make_attack_damage_value(attacker)
  8.     atkstat = attacker.atk
  9.     defstat = self.def
  10.     min, max, spd = (attacker.actor? ? attacker.weapons[0].stats : nil.stats)
  11.     damage = eval(Z::DAMAGE)
  12.     damage = 0 if damage < 0                        # if negative, make 0
  13.     damage *= elements_max_rate(attacker.element_set)   # elemental adjustment
  14.     damage /= 100
  15.     if damage == 0                                  # if damage is 0,
  16.       damage = rand(2)                              # half of the time, 1 dmg
  17.     elsif damage > 0                                # a positive number?
  18.       @critical = (rand(100) < attacker.cri)        # critical hit?
  19.       @critical = false if prevent_critical         # criticals prevented?
  20.       damage *= 3 if @critical                      # critical adjustment
  21.     end
  22.     damage = apply_variance(damage, 20)             # variance
  23.     damage = apply_guard(damage)                    # guard adjustment
  24.     @hp_damage = damage.to_i                        # damage HP
  25.   end
  26.  
  27. end
  28.  
  29. class NilClass
  30.  
  31.   def stats
  32.     return Z::NO_WEAPON_STATS
  33.   end
  34.  
  35. end
  36.  
  37. class RPG::Weapon
  38.  
  39.   def stats
  40.     self.note.scan(/<stats:[ ](.*) (.*) (.*)>/i){|min, max, spd|
  41.     return [min.to_i, max.to_i, spd.to_f]}
  42.     return nil.stats
  43.   end
  44.  
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement