mybusiness
Guest
- 0
- Posts
Disclaimer: The following content was only tested for v. 17.2.
The codes below will implement into your game the exclusive moves of Solgaleo, Lunala and Necrozma, which have the effect of a temporary moldbreaker, so, that means they will have to be added in, almost, the same places where the moldbreaker checks are.
I would like to thank WolfPP for Photon Geyser subclass. Now, the instructions:
In PokeBattle_Battler:
where is thismove.canMagicCoat?
where is Dazzling (if you don't have this, skip)
where is # Immunity to powder-based moves
where is # Disguise (if you don't have this, skip)
where is # Additional effect
where is # Make the target flinch
where is # Pokémon switching caused by Roar, Whirlwind, Circle Throw, Dragon Tail, Red Card
In PokeBattle_BattlerEffects (this is not necessary, as far as gen 7 is concerned)
In PokeBattle_Move
In PokeBattle_MoveEffects, add this to the bottom, and change the YYY and ZZZ to what you have in PBS
That was it. Ciao.
The codes below will implement into your game the exclusive moves of Solgaleo, Lunala and Necrozma, which have the effect of a temporary moldbreaker, so, that means they will have to be added in, almost, the same places where the moldbreaker checks are.
I would like to thank WolfPP for Photon Geyser subclass. Now, the instructions:
In PokeBattle_Battler:
Spoiler:
where is thismove.canMagicCoat?
Spoiler:
Code:
if thismove.canMagicCoat?
if target.effects[PBEffects::MagicCoat]
# switch user and target
PBDebug.log("[Lingering effect triggered] #{i.pbThis}'s Magic Coat made it use #{user.pbThis(true)}'s #{thismove.name}")
changeeffect=3
tmp=user
user=target
target=tmp
# Magic Coat's PP is reduced if old user has Pressure
[email protected][user.index][1]
if target.hasWorkingAbility(:PRESSURE) && user.pbIsOpposing?(target.index) && userchoice>=0
PBDebug.log("[Ability triggered] #{target.pbThis}'s Pressure (part of Magic Coat)")
pressuremove=user.moves[userchoice]
pbSetPP(pressuremove,pressuremove.pp-1) if pressuremove.pp>0
end
elsif !user.hasMoldBreaker && target.hasWorkingAbility(:MAGICBOUNCE) [COLOR="Red"]&&
!thismove.doesBypassIgnorableAbilities?[/COLOR]
# switch user and target
PBDebug.log("[Ability triggered] #{target.pbThis}'s Magic Bounce made it use #{user.pbThis(true)}'s #{thismove.name}")
changeeffect=3
tmp=user
user=target
target=tmp
thismove.accuracy=0 if thismove.function==0x179 # Dark Void
end
end
if changeeffect==1
@battle.pbDisplay(_INTL("{1}'s {2} took the move!",target.pbThis,PBAbilities.getName(target.ability)))
elsif changeeffect==3
@battle.pbDisplay(_INTL("{1} bounced the {2} back!",user.pbThis,thismove.name))
end
userandtarget[0]=user
userandtarget[1]=target
if !user.hasMoldBreaker && target.hasWorkingAbility(:SOUNDPROOF) &&
thismove.isSoundBased? [COLOR="red"]&& !thismove.doesBypassIgnorableAbilities?[/COLOR] &&
thismove.function!=0xE5 && # Perish Song handled elsewhere
thismove.function!=0x151 # Parting Shot handled elsewhere
PBDebug.log("[Ability triggered] #{target.pbThis}'s Soundproof blocked #{user.pbThis(true)}'s #{thismove.name}")
@battle.pbDisplay(_INTL("{1}'s {2} blocks {3}!",target.pbThis,
PBAbilities.getName(target.ability),thismove.name))
return false
end
return true
end
Spoiler:
Code:
if (target.hasWorkingAbility(:DAZZLING) ||
target.hasWorkingAbility(:QUEENLYMAJESTY)) && thismove.priority>0 &&
!thismove.doesIgnoreDazzling? [COLOR="red"]&& !thismove.doesBypassIgnorableAbilities?[/COLOR] &&
!user.hasMoldBreaker
thismove.pp -=1
Spoiler:
Code:
# Immunity to powder-based moves
if USENEWBATTLEMECHANICS && thismove.isPowderMove? &&
(target.pbHasType?(:GRASS) || (!user.hasMoldBreaker &&
target.hasWorkingAbility(:OVERCOAT) [COLOR="red"]&&
!thismove.doesBypassIgnorableAbilities?[/COLOR])) ||
target.hasWorkingItem(:SAFETYGOGGLES)
@battle.pbDisplay(_INTL("It doesn't affect\r\n{1}...",target.pbThis(true)))
PBDebug.log("[Move failed] #{target.pbThis} is immune to powder-based moves somehow")
return false
end
if thismove.basedamage>0 && thismove.function!=0x02 && # Struggle
thismove.function!=0x111 # Future Sight
type=thismove.pbType(thismove.type,user,target)
typemod=thismove.pbTypeModifier(type,user,target)
# Airborne-based immunity to Ground moves
if isConst?(type,PBTypes,:GROUND) && target.isAirborne?(user.hasMoldBreaker [COLOR="red"]||
thismove.doesBypassIgnorableAbilities?[/COLOR]) &&
!target.hasWorkingItem(:RINGTARGET) && thismove.function!=0x11C # Smack Down
if !user.hasMoldBreaker && target.hasWorkingAbility(:LEVITATE) [COLOR="red"]&&
!thismove.doesBypassIgnorableAbilities?[/COLOR]
@battle.pbDisplay(_INTL("{1} makes Ground moves miss with Levitate!",target.pbThis))
PBDebug.log("[Ability triggered] #{target.pbThis}'s Levitate made the Ground-type move miss")
return false
end
if target.hasWorkingItem(:AIRBALLOON)
@battle.pbDisplay(_INTL("{1}'s Air Balloon makes Ground moves miss!",target.pbThis))
PBDebug.log("[Item triggered] #{target.pbThis}'s Air Balloon made the Ground-type move miss")
return false
end
if target.effects[PBEffects::MagnetRise]>0
@battle.pbDisplay(_INTL("{1} makes Ground moves miss with Magnet Rise!",target.pbThis))
PBDebug.log("[Lingering effect triggered] #{target.pbThis}'s Magnet Rise made the Ground-type move miss")
return false
end
if target.effects[PBEffects::Telekinesis]>0
@battle.pbDisplay(_INTL("{1} makes Ground moves miss with Telekinesis!",target.pbThis))
PBDebug.log("[Lingering effect triggered] #{target.pbThis}'s Telekinesis made the Ground-type move miss")
return false
end
end
if !user.hasMoldBreaker && target.hasWorkingAbility(:WONDERGUARD) &&
type>=0 && typemod<=8 [COLOR="red"]&& !thismove.doesBypassIgnorableAbilities?[/COLOR]
@battle.pbDisplay(_INTL("{1} avoided damage with Wonder Guard!",target.pbThis))
PBDebug.log("[Ability triggered] #{target.pbThis}'s Wonder Guard")
return false
end
Spoiler:
Code:
# Disguise
if target.hasWorkingAbility(:DISGUISE) &&
isConst?(target.species,PBSpecies,:MIMIKYU) && target.form==0 &&
thismove.pbIsDamaging? && !target.damagestate.substitute &&
!user.hasMoldBreaker [COLOR="red"]&& !thismove.doesBypassIgnorableAbilities?[/COLOR]
Spoiler:
Code:
# Additional effect
if target.damagestate.calcdamage>0 &&
!user.hasWorkingAbility(:SHEERFORCE) &&
(user.hasMoldBreaker || !target.hasWorkingAbility(:SHIELDDUST) [COLOR="red"]||
thismove.doesBypassIgnorableAbilities?[/COLOR])
addleffect=thismove.addlEffect
Spoiler:
Code:
# Make the target flinch
if target.damagestate.calcdamage>0 && !target.damagestate.substitute
canflinch=false
if (user.hasWorkingItem(:KINGSROCK) || user.hasWorkingItem(:RAZORFANG)) &&
thismove.canKingsRock?
canflinch=true
end
if !target.hasWorkingAbility(:SHIELDDUST) [COLOR="red"]||
thismove.doesBypassIgnorableAbilities?[/COLOR]
if user.hasWorkingAbility(:STENCH) &&
thismove.function!=0x09 && # Thunder Fang
thismove.function!=0x0B && # Fire Fang
thismove.function!=0x0E && # Ice Fang
thismove.function!=0x0F && # flinch-inducing moves
thismove.function!=0x10 && # Stomp
thismove.function!=0x11 && # Snore
thismove.function!=0x12 && # Fake Out
thismove.function!=0x78 && # Twister
thismove.function!=0xC7 # Sky Attack
canflinch=true
end
end
if canflinch && @battle.pbRandom(10)==0
PBDebug.log("[Item/ability triggered] #{user.pbThis}'s King's Rock/Razor Fang or Stench")
target.pbFlinch(user)
end
end
Spoiler:
Code:
switched.push(i)
@battle.battlers[i].pbResetUsualForms
@battle.pbRecallAndReplace(i,newpoke,newpokename,false,user.hasMoldBreaker [COLOR="red"]||
thismove.doesBypassIgnorableAbilities?[/COLOR])
@battle.pbDisplay(_INTL("{1} was dragged out!",@battle.battlers[i].pbThis))
In PokeBattle_BattlerEffects (this is not necessary, as far as gen 7 is concerned)
Spoiler:
where is # Sleep
where is # Poison
where is # Burn
where is # Paralyze
where is # Freeze
where is # Confuse
where is # Decrease stat stages
Spoiler:
Code:
end
end
if !self.isAirborne?([COLOR="red"]([/COLOR]attacker && attacker.hasMoldBreaker[COLOR="red"])[/COLOR] [COLOR="red"]|| (move && move.doesBypassIgnorableAbilities?)[/COLOR])
if @battle.field.effects[PBEffects::ElectricTerrain]>0
@battle.pbDisplay(_INTL("The Electric Terrain prevented {1} from falling asleep!",pbThis(true))) if showMessages
return false
elsif @battle.field.effects[PBEffects::MistyTerrain]>0
@battle.pbDisplay(_INTL("The Misty Terrain prevented {1} from falling asleep!",pbThis(true))) if showMessages
return false
end
end
if [COLOR="red"]([/COLOR]attacker && attacker.hasMoldBreaker[COLOR="red"])[/COLOR] || !hasWorkingAbility(:SOUNDPROOF) [COLOR="red"]||
(move && move.doesBypassIgnorableAbilities?)[/COLOR]
for i in 0...4
if @battle.battlers[i].effects[PBEffects::Uproar]>0
@battle.pbDisplay(_INTL("But the uproar kept {1} awake!",pbThis(true))) if showMessages
return false
end
end
end
if !attacker || attacker.index==self.index || [COLOR="red"]([/COLOR]!attacker.hasMoldBreaker [COLOR="red"]&&
(!move || !move.doesBypassIgnorableAbilities?))[/COLOR]
if hasWorkingAbility(:VITALSPIRIT) ||
Spoiler:
Code:
if @battle.field.effects[PBEffects::MistyTerrain]>0 &&
!self.isAirborne?([COLOR="red"]([/COLOR]attacker && attacker.hasMoldBreaker[COLOR="red"]) || (
move && move.doesBypassIgnorableAbilities?)[/COLOR])
@battle.pbDisplay(_INTL("The Misty Terrain prevented {1} from being poisoned!",pbThis(true))) if showMessages
return false
end
if[COLOR="red"] ([/COLOR]!attacker || !attacker.hasMoldBreaker[COLOR="red"]) && (!move || !move.doesBypassIgnorableAbilities?)[/COLOR]
if hasWorkingAbility(:IMMUNITY) ||
Spoiler:
Code:
!self.isAirborne?([COLOR="red"]([/COLOR]attacker && attacker.hasMoldBreaker[COLOR="red"]) || (
move && move.doesBypassIgnorableAbilities?)[/COLOR])
@battle.pbDisplay(_INTL("The Misty Terrain prevented {1} from being burned!",pbThis(true))) if showMessages
return false
end
if pbHasType?(:FIRE) && !hasWorkingItem(:RINGTARGET)
@battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
return false
end
if [COLOR="red"]([/COLOR]!attacker || !attacker.hasMoldBreaker[COLOR="red"]) && (!move || !move.doesBypassIgnorableAbilities?)[/COLOR]
if hasWorkingAbility(:WATERVEIL) || hasWorkingAbility(:WATERBUBBLE) ||
(hasWorkingAbility(:FLOWERVEIL) && pbHasType?(:GRASS)) ||
Spoiler:
Code:
!self.isAirborne?[COLOR="red"]([/COLOR](attacker && attacker.hasMoldBreaker[COLOR="red"]) || (
move && move.doesBypassIgnorableAbilities?)[/COLOR])
@battle.pbDisplay(_INTL("The Misty Terrain prevented {1} from being paralyzed!",pbThis(true))) if showMessages
return false
end
if pbHasType?(:ELECTRIC) && !hasWorkingItem(:RINGTARGET) && USENEWBATTLEMECHANICS
@battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
return false
end
if [COLOR="red"]([/COLOR]!attacker || !attacker.hasMoldBreaker[COLOR="red"]) && (!move || !move.doesBypassIgnorableAbilities?)[/COLOR]
if hasWorkingAbility(:LIMBER) ||
Spoiler:
Code:
!self.isAirborne?([COLOR="red"]([/COLOR]attacker && attacker.hasMoldBreaker[COLOR="red"]) || (
move && move.doesBypassIgnorableAbilities?)[/COLOR])
@battle.pbDisplay(_INTL("The Misty Terrain prevented {1} from being frozen!",pbThis(true))) if showMessages
return false
end
if [COLOR="red"]([/COLOR]!attacker || !attacker.hasMoldBreaker[COLOR="red"]) && (!move || !move.doesBypassIgnorableAbilities?)[/COLOR]
if hasWorkingAbility(:MAGMAARMOR) ||
Spoiler:
Code:
if [COLOR="red"]([/COLOR]!attacker || !attacker.hasMoldBreaker[COLOR="red"]) && (!move || !move.doesBypassIgnorableAbilities?)[/COLOR]
if hasWorkingAbility(:OWNTEMPO)
@battle.pbDisplay(_INTL("{1}'s {2} prevents confusion!",pbThis,PBAbilities.getName(self.ability))) if showMessages
return false
end
end
Spoiler:
Code:
if !moldbreaker && (!attacker || !attacker.hasMoldBreaker) [COLOR="red"]&& (!move ||
!move.doesBypassIgnorableAbilities?)[/COLOR]
if hasWorkingAbility(:CLEARBODY) || hasWorkingAbility(:WHITESMOKE)
abilityname=PBAbilities.getName(self.ability)
@battle.pbDisplay(_INTL("{1}'s {2} prevents stat loss!",pbThis,abilityname)) if showMessages
return false
end
In PokeBattle_Move
Spoiler:
under def isBombMove?
where is def pbTypeImmunityByAbility
where is # Smack Down makes Ground moves work against fliers
where is # One-hit KO accuracy handled elsewhere
where is def pbIsCritical?
where is opponent.hasWorkingAbility(:HEATPROOF)
where is @battle.field.effects[PBEffects::MudSportField] (if you don't have Psychic Terrain, then add only to the other three terrains)
where is opponent.hasWorkingAbility(:MARVELSCALE)
where is opponent.hasWorkingAbility(:MULTISCALE)
where is opponent.hasWorkingAbility(:STURDY) (if you don't have Disguise, then omit that very part)
Spoiler:
Code:
def isBombMove?
return (@flags&0x2000)!=0 # flag n: Is bomb move
end
[COLOR="red"]def doesBypassIgnorableAbilities?
return false
end [/COLOR]
Spoiler:
Code:
def pbTypeImmunityByAbility(type,attacker,opponent)
return false if attacker.index==opponent.index
return false if attacker.hasMoldBreaker
[COLOR="red"]return false if doesBypassIgnorableAbilities?[/COLOR]
Spoiler:
Code:
# Smack Down makes Ground moves work against fliers
if (!opponent.isAirborne?(attacker.hasMoldBreaker [COLOR="red"]||
doesBypassIgnorableAbilities?[/COLOR]) || @function==0x11C) && # Smack Down
isConst?(atype,PBTypes,:GROUND)
mod1=2 if isConst?(otype1,PBTypes,:FLYING)
mod2=2 if isConst?(otype2,PBTypes,:FLYING)
mod3=2 if isConst?(otype3,PBTypes,:FLYING)
end
Spoiler:
Code:
# One-hit KO accuracy handled elsewhere
accstage=attacker.stages[PBStats::ACCURACY]
accstage=0 if !attacker.hasMoldBreaker && opponent.hasWorkingAbility(:UNAWARE) [COLOR="red"]&&
!doesBypassIgnorableAbilities?[/COLOR]
accuracy=(accstage>=0) ? (accstage+3)*100.0/3 : 300.0/(3-accstage)
evastage=opponent.stages[PBStats::EVASION]
evastage-=2 if @battle.field.effects[PBEffects::Gravity]>0
evastage=-6 if evastage<-6
evastage=0 if evastage>0 && USENEWBATTLEMECHANICS &&
attacker.hasWorkingAbility(:KEENEYE)
evastage=0 if opponent.effects[PBEffects::Foresight] ||
opponent.effects[PBEffects::MiracleEye] ||
@function==0xA9 || # Chip Away
attacker.hasWorkingAbility(:UNAWARE)
evasion=(evastage>=0) ? (evastage+3)*100.0/3 : 300.0/(3-evastage)
if attacker.hasWorkingAbility(:COMPOUNDEYES)
accuracy*=1.3
end
if attacker.hasWorkingAbility(:HUSTLE) && pbIsDamaging? &&
pbIsPhysical?(pbType(@type,attacker,opponent))
accuracy*=0.8
end
if attacker.hasWorkingAbility(:VICTORYSTAR)
accuracy*=1.1
end
partner=attacker.pbPartner
if partner && partner.hasWorkingAbility(:VICTORYSTAR)
accuracy*=1.1
end
if attacker.effects[PBEffects::MicleBerry]
attacker.effects[PBEffects::MicleBerry]=false
accuracy*=1.2
end
if attacker.hasWorkingItem(:WIDELENS)
accuracy*=1.1
end
if attacker.hasWorkingItem(:ZOOMLENS) &&
(@battle.choices[opponent.index][0]!=1 || # Didn't choose a move
opponent.hasMovedThisRound?) # Used a move already
accuracy*=1.2
end
if !attacker.hasMoldBreaker [COLOR="red"]&& !doesBypassIgnorableAbilities?[/COLOR]
if opponent.hasWorkingAbility(:WONDERSKIN) && pbIsStatus? &&
Spoiler:
Code:
def pbIsCritical?(attacker,opponent)
if !attacker.hasMoldBreaker [COLOR="red"]&& !doesBypassIgnorableAbilities?[/COLOR]
if opponent.hasWorkingAbility(:BATTLEARMOR) ||
opponent.hasWorkingAbility(:SHELLARMOR)
return false
end
Spoiler:
Code:
if !attacker.hasMoldBreaker [COLOR="red"]&& !doesBypassIgnorableAbilities?
[/COLOR] if opponent.hasWorkingAbility(:HEATPROOF) && isConst?(type,PBTypes,:FIRE)
damagemult=(damagemult*0.5).round
Spoiler:
Code:
if @battle.field.effects[PBEffects::ElectricTerrain]>0 &&
!attacker.isAirborne?(attacker.hasMoldBreaker [COLOR="red"]||
doesBypassIgnorableAbilities?[/COLOR]) && isConst?(type,PBTypes,:ELECTRIC)
damagemult=(damagemult*1.5).round
end
if @battle.field.effects[PBEffects::GrassyTerrain]>0 &&
!attacker.isAirborne?(attacker.hasMoldBreaker [COLOR="red"]||
doesBypassIgnorableAbilities?[/COLOR]) && isConst?(type,PBTypes,:GRASS)
damagemult=(damagemult*1.5).round
end
if @battle.field.effects[PBEffects::MistyTerrain]>0 &&
!opponent.isAirborne?(attacker.hasMoldBreaker [COLOR="red"]||
doesBypassIgnorableAbilities?[/COLOR]) && isConst?(type,PBTypes,:DRAGON)
damagemult=(damagemult*0.5).round
end
if @battle.field.effects[PBEffects::PsychicTerrain]>0 &&
!attacker.isAirborne?(attacker.hasMoldBreaker [COLOR="red"]||
doesBypassIgnorableAbilities?[/COLOR]) && isConst?(type,PBTypes,:PSYCHIC)
damagemult=(damagemult*1.5).round
end
if opponent.effects[PBEffects::Minimize] && tramplesMinimize?(2)
damagemult=(damagemult*2.0).round
end
basedmg=(basedmg*damagemult*1.0/0x1000).round
##### Calculate attacker's attack stat #####
atk=attacker.attack
atkstage=attacker.stages[PBStats::ATTACK]+6
if @function==0x121 # Foul Play
atk=opponent.attack
atkstage=opponent.stages[PBStats::ATTACK]+6
end
if type>=0 && pbIsSpecial?(type)
atk=attacker.spatk
atkstage=attacker.stages[PBStats::SPATK]+6
if @function==0x121 # Foul Play
atk=opponent.spatk
atkstage=opponent.stages[PBStats::SPATK]+6
end
end
if attacker.hasMoldBreaker || !opponent.hasWorkingAbility(:UNAWARE) [COLOR="red"]||
doesBypassIgnorableAbilities?[/COLOR]
atkstage=6 if opponent.damagestate.critical && atkstage<6
Spoiler:
Code:
if !attacker.hasMoldBreaker[COLOR="red"] && !doesBypassIgnorableAbilities?[/COLOR]
if opponent.hasWorkingAbility(:MARVELSCALE) &&
opponent.status>0 && pbIsPhysical?(type)
Spoiler:
Code:
if !attacker.hasMoldBreaker [COLOR="red"]&& !doesBypassIgnorableAbilities?[/COLOR]
if opponent.hasWorkingAbility(:FLUFFY) && isContactMove?(attacker)
finaldamagemult=(finaldamagemult*0.5).round
elsif opponent.hasWorkingAbility(:FLUFFY) && isConst?(type,PBTypes,:FIRE)
finaldamagemult=(finaldamagemult*2.0).round
end
if opponent.hasWorkingAbility(:WATERBUBBLE) && isConst?(type,PBTypes,:FIRE)
finaldamagemult=(finaldamagemult*0.5).round
end
if opponent.hasWorkingAbility(:MULTISCALE) && opponent.hp==opponent.totalhp
finaldamagemult=(finaldamagemult*0.5).round
end
if (opponent.hasWorkingAbility(:SOLIDROCK) ||
opponent.hasWorkingAbility(:FILTER)) &&
opponent.damagestate.typemod>8
finaldamagemult=(finaldamagemult*0.75).round
end
if opponent.pbPartner.hasWorkingAbility(:FRIENDGUARD)
finaldamagemult=(finaldamagemult*0.75).round
end
end
Spoiler:
Code:
if opponent.hasWorkingAbility(:DISGUISE) &&
!attacker.hasMoldBreaker && opponent.form==0 && damage>0 &&
isConst?(opponent.species,PBSpecies,:MIMIKYU) [COLOR="red"]&& !doesBypassIgnorableAbilities?[/COLOR]
damage=0
end
if damage>=opponent.hp
damage=opponent.hp
if @function==0xE9 # False Swipe
damage=damage-1
elsif opponent.effects[PBEffects::Endure]
damage=damage-1
opponent.damagestate.endured=true
PBDebug.log("[Lingering effect triggered] #{opponent.pbThis}'s Endure")
elsif damage==opponent.totalhp
if opponent.hasWorkingAbility(:STURDY) && !attacker.hasMoldBreaker [COLOR="red"]&&
!doesBypassIgnorableAbilities?[/COLOR]
opponent.damagestate.sturdy=true
In PokeBattle_MoveEffects, add this to the bottom, and change the YYY and ZZZ to what you have in PBS
Spoiler:
Code:
################################################################################
# Ignores foe's ignoring abilities. (Sunsteel Strike, Moongeist Beam)
################################################################################
class PokeBattle_Move_YYY < PokeBattle_Move
def doesBypassIgnorableAbilities?
return true
end
end
################################################################################
# Ignores foe's ignoring abilities. This move's category is Special, if Special
# Attack of the attacker is greater than its Attack, and Physical otherwise.
# (Photon Geyser)
################################################################################
class PokeBattle_Move_ZZZ < PokeBattle_Move
def doesBypassIgnorableAbilities?
return true
end
def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true)
if attacker.attack+attacker.stages[PBStats::ATTACK]>attacker.spatk+attacker.stages[PBStats::SPATK]
@category=0
else
@category=1
end
return super(attacker,opponent,hitnum,alltargets,showanimation)
end
end
That was it. Ciao.