mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Adds double ability triggers
This commit is contained in:
118
Data/Scripts/050_AddOns/DoubleAbilitiesHandlersOverrides.rb
Normal file
118
Data/Scripts/050_AddOns/DoubleAbilitiesHandlersOverrides.rb
Normal 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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user