Added checks that prevent aliasing a method if the alias method already exists, fixed Symbiosis not working properly for opponents

This commit is contained in:
Maruno17
2021-12-28 19:22:31 +00:00
parent 139f2a74f2
commit 3e9d3b0a68
13 changed files with 63 additions and 34 deletions

View File

@@ -236,7 +236,7 @@ class Battle::Battler
return if fainted?
return if self.item
@battle.pbPriority(true).each do |b|
next if b.opposes?
next if b.opposes?(self)
next if !b.hasActiveAbility?(:SYMBIOSIS)
next if !b.item || b.unlosableItem?(b.item)
next if unlosableItem?(b.item)

View File

@@ -103,7 +103,9 @@ end
class Battle::Move::RaiseUserEvasion1 # Double Team
alias __clauses__pbMoveFailed? pbMoveFailed?
unless method_defined?(:__clauses__pbMoveFailed?)
alias __clauses__pbMoveFailed? pbMoveFailed?
end
def pbMoveFailed?(user, targets)
if !damagingMove? && @battle.rules["evasionclause"]
@@ -117,7 +119,9 @@ end
class Battle::Move::RaiseUserEvasion2MinimizeUser # Minimize
alias __clauses__pbMoveFailed? pbMoveFailed?
unless method_defined?(:__clauses__pbMoveFailed?)
alias __clauses__pbMoveFailed? pbMoveFailed?
end
def pbMoveFailed?(user, targets)
if !damagingMove? && @battle.rules["evasionclause"]
@@ -131,7 +135,9 @@ end
class Battle::Move::UserTargetSwapAbilities # Skill Swap
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["skillswapclause"]
@@ -145,7 +151,9 @@ end
class Battle::Move::FixedDamage20 # Sonic Boom
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["sonicboomclause"]
@@ -159,7 +167,9 @@ end
class Battle::Move::FixedDamage40 # Dragon Rage
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["sonicboomclause"]
@@ -173,7 +183,9 @@ end
class Battle::Move::OHKO
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["ohkoclause"]
@@ -187,7 +199,9 @@ end
class Battle::Move::OHKOIce
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["ohkoclause"]
@@ -201,7 +215,9 @@ end
class Battle::Move::OHKOHitsUndergroundTarget
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["ohkoclause"]
@@ -215,9 +231,8 @@ end
class Battle::Move::UserFaintsExplosive # Self-Destruct
unless @__clauses__aliased
unless method_defined?(:__clauses__pbMoveFailed?)
alias __clauses__pbMoveFailed? pbMoveFailed?
@__clauses__aliased = true
end
def pbMoveFailed?(user, targets)
@@ -247,7 +262,9 @@ end
class Battle::Move::StartPerishCountsForAllBattlers # Perish Song
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["perishsongclause"] &&
@@ -262,7 +279,9 @@ end
class Battle::Move::AttackerFaintsIfUserFaints # Destiny Bond
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
unless method_defined?(:__clauses__pbFailsAgainstTarget?)
alias __clauses__pbFailsAgainstTarget? pbFailsAgainstTarget?
end
def pbFailsAgainstTarget?(user, target, show_message)
if @battle.rules["perishsongclause"] &&

View File

@@ -272,7 +272,8 @@ class Battle::Scene
rockAnim.dispose
end
alias __safari__pbThrowSuccess pbThrowSuccess
alias __safari__pbThrowSuccess pbThrowSuccess unless method_defined?(:__safari__pbThrowSuccess)
def pbThrowSuccess
__safari__pbThrowSuccess
pbWildBattleSuccess if @battle.is_a?(SafariBattle)

View File

@@ -2,7 +2,7 @@
# Bug Catching Contest battle scene (the visuals of the battle)
#===============================================================================
class Battle::Scene
alias _bugContest_pbInitSprites pbInitSprites
alias _bugContest_pbInitSprites pbInitSprites unless method_defined?(:_bugContest_pbInitSprites)
def pbInitSprites
_bugContest_pbInitSprites

View File

@@ -172,14 +172,16 @@ end
class Battle::AI
attr_accessor :battlePalace
alias _battlePalace_initialize initialize
alias _battlePalace_initialize initialize unless method_defined?(:_battlePalace_initialize)
def initialize(*arg)
_battlePalace_initialize(*arg)
@justswitched = [false, false, false, false]
end
alias _battlePalace_pbEnemyShouldWithdraw? pbEnemyShouldWithdraw?
unless method_defined?(:_battlePalace_pbEnemyShouldWithdraw?)
alias _battlePalace_pbEnemyShouldWithdraw? pbEnemyShouldWithdraw?
end
def pbEnemyShouldWithdraw?(idxBattler)
return _battlePalace_pbEnemyShouldWithdraw?(idxBattler) if !@battlePalace

View File

@@ -211,7 +211,9 @@ end
class Battle::AI
attr_accessor :battleArena
alias _battleArena_pbEnemyShouldWithdraw? pbEnemyShouldWithdraw?
unless method_defined?(:_battleArena_pbEnemyShouldWithdraw?)
alias _battleArena_pbEnemyShouldWithdraw? pbEnemyShouldWithdraw?
end
def pbEnemyShouldWithdraw?(idxBattler)
return _battleArena_pbEnemyShouldWithdraw?(idxBattler) if !@battleArena