- 465
- Posts
- 8
- Years
- Seen Jun 17, 2024
So the title might be confusing/why would i need to make this for that.
basically i want specific move(s) to change when a pokemon mega's, E.G. Flamethrower becomes Blue flames when it becomes charizard X (the fire/dragon one) etc.
i've used code for the way the galarian legends change moves based on form, but since that uses the start of battle than mid-battle (moreso for the form change however) i cant seem to make it change.
any help would be nice, i know if you use the basic "onsetform" move function in the default way/rotom like way it comes up with the "____ wants to learn..." etc.
another method could be a way to see like "if charizard holds charizardite X flamethrower becomes blue flame" (since it'll be flamethrower until second turn)
basically i want specific move(s) to change when a pokemon mega's, E.G. Flamethrower becomes Blue flames when it becomes charizard X (the fire/dragon one) etc.
i've used code for the way the galarian legends change moves based on form, but since that uses the start of battle than mid-battle (moreso for the form change however) i cant seem to make it change.
Spoiler:
Code:
MultipleForms.register(:CHARIZARD,{
"getMegaForm"=>proc{|pokemon|
next 1 if isConst?(pokemon.item,PBItems,:CHARIZARDITEX)
next 2 if isConst?(pokemon.item,PBItems,:CHARIZARDITEY)
next
},
"getMegaName"=>proc{|pokemon|
next _INTL("Mega Charizard X") if pokemon.form==1
next _INTL("Mega Charizard Y") if pokemon.form==2
next
},
"getBaseStats"=>proc{|pokemon|
next [78,130,111,100,130,85] if pokemon.form==1
next [78,104,78,100,159,115] if pokemon.form==2
next
},
"type2"=>proc{|pokemon|
next getID(PBTypes,:DRAGON) if pokemon.form==1
next getID(PBTypes,:FLYING) if pokemon.form==2
next
},
"getAbilityList"=>proc{|pokemon|
next [[getID(PBAbilities,:TOUGHCLAWS),0]] if pokemon.form==1
next [[getID(PBAbilities,:DROUGHT),0]] if pokemon.form==2
next
},
"weight"=>proc{|pokemon|
next 1105 if pokemon.form==1
next 1005 if pokemon.form==2
next
},
"onSetForm"=>proc{|pokemon,form|
moves=[
:FLAMETHROWER,
:BLUEFLAME
]
hasoldmove=-1
for i in 0...4
for j in 0...moves.length
if isConst?(pokemon.moves[i].id,PBMoves,moves[j])
hasoldmove=i; break
end
end
break if hasoldmove>=0
end
newmove = moves[form]
if newmove!=nil && hasConst?(PBMoves,newmove)
if hasoldmove>=0
oldmovepp=pokemon.moves[hasoldmove].pp
pokemon.moves[hasoldmove]=PBMove.new(getID(PBMoves,newmove))
pokemon.moves[hasoldmove].pp=[oldmovepp,pokemon.moves[hasoldmove].totalpp].min
end
end
}
})
any help would be nice, i know if you use the basic "onsetform" move function in the default way/rotom like way it comes up with the "____ wants to learn..." etc.
another method could be a way to see like "if charizard holds charizardite X flamethrower becomes blue flame" (since it'll be flamethrower until second turn)