Has anyone managed to fix / update the script for the Ally Switch move?
After the move animation, the sprites between the user and its ally don't update/ exchange between themselves.
Here the code:
Also, what Reborn did (and is not correct, IMO):
But maybe we need to create a new script like 'pbSwitchInBetween' for that case? Because we need to refresh the battler sprites and the battler box (name and HP) after move animation.
How can we do that?
Thank you!
After the move animation, the sprites between the user and its ally don't update/ exchange between themselves.
Here the code:
Code:
################################################################################
# User switches places with its ally. (Ally Switch)
################################################################################
class PokeBattle_Move_120 < PokeBattle_Move
def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true)
if [email protected] ||
!attacker.pbPartner || attacker.pbPartner.fainted?
@battle.pbDisplay(_INTL("But it failed!"))
return -1
end
pbShowAnimation(@id,attacker,nil,hitnum,alltargets,showanimation)
[email protected][attacker.index]
[email protected][attacker.pbPartner.index]
temp=a; a=b; b=temp
# Swap effects that point at the position rather than the Pokémon
# NOT PerishSongUser (no need to swap), Attract, MultiTurnUser
effectstoswap=[PBEffects::BideTarget,
PBEffects::CounterTarget,
PBEffects::LeechSeed,
PBEffects::LockOnPos,
PBEffects::MeanLook,
PBEffects::MirrorCoatTarget]
for i in effectstoswap
a.effects[i],b.effects[i]=b.effects[i],a.effects[i]
end
a.pbUpdate(true)
b.pbUpdate(true)
@battle.pbDisplay(_INTL("{1} and {2} switched places!",attacker.pbThis,attacker.pbPartner.pbThis(true)))
end
end
Also, what Reborn did (and is not correct, IMO):
Code:
################################################################################
# User switches places with its ally.
################################################################################
#### KUROTSUNE - 002 - START
class PokeBattle_Move_120 < PokeBattle_Move
def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true)
if [email protected]?(attacker.index)
@battle.pbDisplay(_INTL("But it failed!"))
return -1
end
pbShowAnimation(@id,attacker,nil,hitnum,alltargets,showanimation)
@battle.pbDisplay(_INTL("{1} went back to {2}!",attacker.pbThis,@battle.pbGetOwner(attacker.index).name))
newpoke=0
[email protected](attacker.index,true,false)
@battle.pbMessagesOnReplace(attacker.index,newpoke)
attacker.pbResetForm
@battle.pbReplace(attacker.index,newpoke,true)
@battle.pbOnActiveOne(attacker)
attacker.pbAbilitiesOnSwitchIn(true)
return 0
end
end
#### KUROTSUNE - 002 - START
But maybe we need to create a new script like 'pbSwitchInBetween' for that case? Because we need to refresh the battler sprites and the battler box (name and HP) after move animation.
How can we do that?
Thank you!