Fixed using pkmn.species= with a form's internal name not setting the actual species. Fixed Shadow Pokémon not being able to have different Shadow Moves for particular forms.

This commit is contained in:
Maruno17
2020-11-11 21:07:26 +00:00
parent c87a578021
commit 5534f338e7
3 changed files with 13 additions and 11 deletions

View File

@@ -629,7 +629,7 @@ class PokeBattle_Pokemon
#=============================================================================
def species=(value)
hasNickname = nicknamed?
@species = value
@species, @form = pbGetSpeciesFromFSpecies(value)
@name = PBSpecies.getName(@species) unless hasNickname
@level = nil # In case growth rate is different for the new species
@forcedForm = nil

View File

@@ -290,12 +290,14 @@ class PokeBattle_Pokemon
self.savedev = [0,0,0,0,0,0]
self.shadowmoves = [0,0,0,0,0,0,0,0]
# Retrieve shadow moves
moves = pbLoadShadowMovesets
if moves[self.species] && moves[self.species].length>0
for i in 0...[4,moves[self.species].length].min
self.shadowmoves[i] = moves[self.species][i]
shadow_movesets = pbLoadShadowMovesets
shadow_moves = shadow_movesets[self.fSpecies]
shadow_moves = shadow_movesets[self.species] if !shadow_moves || shadow_moves.length == 0
if shadow_moves && shadow_moves.length > 0
for i in 0...[4,shadow_moves.length].min
self.shadowmoves[i] = shadow_moves[i]
end
self.shadowmovenum = moves[self.species].length
self.shadowmovenum = shadow_moves.length
else
# No special shadow moves
self.shadowmoves[0] = getConst(PBMoves,:SHADOWRUSH) || 0

View File

@@ -1336,7 +1336,7 @@ end
# Save Shadow move data to PBS file
#===============================================================================
def pbSaveShadowMoves
moves = pbLoadShadowMovesets
shadow_movesets = pbLoadShadowMovesets
File.open("PBS/shadowmoves.txt","wb") { |f|
f.write(0xEF.chr)
f.write(0xBB.chr)
@@ -1344,14 +1344,14 @@ def pbSaveShadowMoves
f.write("\# "+_INTL("See the documentation on the wiki to learn how to edit this file."))
f.write("\r\n")
f.write("\#-------------------------------\r\n")
for i in 0...moves.length
move = moves[i]
next if !move || moves.length==0
for i in 0...shadow_movesets.length
moveset = shadow_movesets[i]
next if !moveset || moveset.length==0
constname = (getConstantName(PBSpecies,i) rescue pbGetSpeciesConst(i) rescue nil)
next if !constname
f.write(sprintf("%s = ",constname))
movenames = []
for m in move
for m in moveset
movenames.push((getConstantName(PBMoves,m) rescue pbGetMoveConst(m) rescue nil))
end
f.write(sprintf("%s\r\n",movenames.compact.join(",")))