diff --git a/Data/Scripts/011_Battle/001_Battle/001_Battle.rb b/Data/Scripts/011_Battle/001_Battle/001_Battle.rb index 474ad22f5..a249903a4 100644 --- a/Data/Scripts/011_Battle/001_Battle/001_Battle.rb +++ b/Data/Scripts/011_Battle/001_Battle/001_Battle.rb @@ -101,7 +101,6 @@ class Battle end @scene = scene @peer = Peer.new - @battleAI = AI.new(self) @field = ActiveField.new # Whole field (gravity/rooms) @sides = [ActiveSide.new, # Player's side ActiveSide.new] # Foe's side @@ -171,6 +170,7 @@ class Battle end @mega_rings = [] GameData::Item.each { |item| @mega_rings.push(item.id) if item.has_flag?("MegaRing") } + @battleAI = AI.new(self) end #============================================================================= diff --git a/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb b/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb index a19ebb7b5..9f1598e11 100644 --- a/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb +++ b/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb @@ -18,6 +18,8 @@ class Battle::Move attr_accessor :powerBoost attr_accessor :snatched + CRITICAL_HIT_RATIOS = (Settings::NEW_CRITICAL_HIT_RATE_MECHANICS) ? [24, 8, 2, 1] : [16, 8, 4, 3, 2] + def to_int; return @id; end #============================================================================= diff --git a/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb b/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb index bbaa2ebb8..5b36a2c2e 100644 --- a/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb +++ b/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb @@ -183,8 +183,6 @@ class Battle::Move # Returns whether the move will be a critical hit. def pbIsCritical?(user, target) return false if target.pbOwnSide.effects[PBEffects::LuckyChant] > 0 - # Set up the critical hit ratios - ratios = (Settings::NEW_CRITICAL_HIT_RATE_MECHANICS) ? [24, 8, 2, 1] : [16, 8, 4, 3, 2] c = 0 # Ability effects that alter critical hit rate if c >= 0 && user.abilityActive? @@ -212,6 +210,8 @@ class Battle::Move c += 1 if highCriticalRate? c += user.effects[PBEffects::FocusEnergy] c += 1 if user.inHyperMode? && @type == :SHADOW + # Set up the critical hit ratios + ratios = CRITICAL_HIT_RATIOS c = ratios.length - 1 if c >= ratios.length # Calculation return true if ratios[c] == 1