Adds double ability triggers

This commit is contained in:
infinitefusion
2023-05-27 13:49:33 -04:00
parent 1182afbea3
commit 7bbb18ac43
16 changed files with 136 additions and 3 deletions

View File

@@ -0,0 +1,118 @@
module BattleHandlers
#
# Speed calculation
#
def self.triggerSpeedCalcAbility(ability, battler, mult)
ability1 = ability
ability2 = battler.ability2
calculateAbilitySpeedMultiplier(ability1, battler, mult)
if $game_switches[SWITCH_DOUBLE_ABILITIES]
calculateAbilitySpeedMultiplier(ability2, battler, mult)
end
return mult
end
def self.calculateAbilitySpeedMultiplier(ability, battler, mult)
ret = SpeedCalcAbility.trigger(ability, battler, mult)
return (ret != nil) ? ret : mult
end
#
# Weight calculation
#
def self.triggerWeightCalcAbility(ability, battler, w)
ability1 = ability
ability2 = battler.ability2
calculateWeightAbilityMultiplier(ability1, battler, mult)
if $game_switches[SWITCH_DOUBLE_ABILITIES]
calculateWeightAbilityMultiplier(ability2, battler, mult)
end
return mult
end
def self.calculateWeightAbilityMultiplier(ability, battler, w)
ret = WeightCalcAbility.trigger(ability, battler, w)
return (ret != nil) ? ret : w
end
def self.triggerEOREffectAbility(ability,battler,battle)
ability1 = ability
ability2 = battler.ability2
EOREffectAbility.trigger(ability1,battler,battle)
EOREffectAbility.trigger(ability2,battler,battle)
end
def self.triggerEORGainItemAbility(ability,battler,battle)
ability1 = ability
ability2 = battler.ability2
EORGainItemAbility.trigger(ability1,battler,battle)
EORGainItemAbility.trigger(ability2,battler,battle)
end
def self.triggerCertainSwitchingUserAbility(ability,switcher,battle)
ability1 = ability
ability2 = battler.ability2
ret = CertainSwitchingUserAbility.trigger(ability1,switcher,battle) || CertainSwitchingUserAbility.trigger(ability2,switcher,battle)
return (ret!=nil) ? ret : false
end
def self.triggerCertainSwitchingUserAbility(ability,switcher,battle)
ability1 = ability
ability2 = battler.ability2
ret = CertainSwitchingUserAbility.trigger(ability1,switcher,battle) || CertainSwitchingUserAbility.trigger(ability2,switcher,battle)
return (ret!=nil) ? ret : false
end
def self.triggerTrappingTargetAbility(ability,switcher,bearer,battle)
ability1 = ability
ability2 = battler.ability2
ret = TrappingTargetAbility.trigger(ability1,switcher,bearer,battle) || TrappingTargetAbility.trigger(ability2,switcher,bearer,battle)
return (ret!=nil) ? ret : false
end
def self.triggerAbilityOnSwitchIn(ability,battler,battle)
ability1 = ability
ability2 = battler.ability2
AbilityOnSwitchIn.trigger(ability1,battler,battle)
AbilityOnSwitchIn.trigger(ability2,battler,battle)
end
def self.triggerAbilityOnSwitchOut(ability,battler,endOfBattle)
ability1 = ability
ability2 = battler.ability2
AbilityOnSwitchOut.trigger(ability1,battler,endOfBattle)
AbilityOnSwitchOut.trigger(ability2,battler,endOfBattle)
end
def self.triggerAbilityChangeOnBattlerFainting(ability,battler,fainted,battle)
ability1 = ability
ability2 = battler.ability2
AbilityChangeOnBattlerFainting.trigger(ability1,battler,fainted,battle)
AbilityChangeOnBattlerFainting.trigger(ability2,battler,fainted,battle)
end
def self.triggerAbilityOnBattlerFainting(ability,battler,fainted,battle)
ability1 = ability
ability2 = battler.ability2
AbilityOnBattlerFainting.trigger(ability1,battler,fainted,battle)
AbilityOnBattlerFainting.trigger(ability2,battler,fainted,battle)
end
def self.triggerRunFromBattleAbility(ability,battler)
ability1 = ability
ability2 = battler.ability2
ret = RunFromBattleAbility.trigger(ability1,battler) || RunFromBattleAbility.trigger(ability2,battler)
return (ret!=nil) ? ret : false
end
end

View File

@@ -36,7 +36,16 @@ class ExperimentalOptionsScene < PokemonOption_Scene
proc { |value|
$game_switches[SWITCH_NO_LEVELS_MODE] = value == 0
}, "All Pokémon use their base stats, regardless of levels."
)
),
EnumOption.new(_INTL("Double abilities"), [_INTL("On"), _INTL("Off")],
proc {
$game_switches[SWITCH_DOUBLE_ABILITIES] ? 0 : 1
},
proc { |value|
$game_switches[SWITCH_DOUBLE_ABILITIES] = value == 0
}, "Fused Pokémon have two abilities at the same time"
)
]
return options
end