diff --git a/Data/Scripts/012_Battle/003_Battle/001_PokeBattle_BattleCommon.rb b/Data/Scripts/012_Battle/003_Battle/001_PokeBattle_BattleCommon.rb index 2baac23be..4c13f324b 100644 --- a/Data/Scripts/012_Battle/003_Battle/001_PokeBattle_BattleCommon.rb +++ b/Data/Scripts/012_Battle/003_Battle/001_PokeBattle_BattleCommon.rb @@ -141,8 +141,7 @@ module PokeBattle_BattleCommon end # Modify the Pokémon's properties because of the capture if pbIsSnagBall?(ball) - pkmn.ot = pbPlayer.name - pkmn.trainerID = pbPlayer.id + pkmn.owner = Pokemon::Owner.new_from_trainer(pbPlayer) end BallHandlers.onCatch(ball,self,pkmn) pkmn.ballused = pbGetBallType(ball) diff --git a/Data/Scripts/012_Battle/003_Battle/004_Battle_ExpAndMoveLearning.rb b/Data/Scripts/012_Battle/003_Battle/004_Battle_ExpAndMoveLearning.rb index 7dc1b83d4..52167c617 100644 --- a/Data/Scripts/012_Battle/003_Battle/004_Battle_ExpAndMoveLearning.rb +++ b/Data/Scripts/012_Battle/003_Battle/004_Battle_ExpAndMoveLearning.rb @@ -134,10 +134,10 @@ class PokeBattle_Battle exp /= 7 end # Foreign Pokémon gain more Exp - isOutsider = (pkmn.trainerID!=pbPlayer.id || - (pkmn.language!=0 && pkmn.language!=pbPlayer.language)) + isOutsider = (pkmn.owner.id != pbPlayer.id || + (pkmn.owner.language != 0 && pkmn.owner.language != pbPlayer.language)) if isOutsider - if pkmn.language!=0 && pkmn.language!=pbPlayer.language + if pkmn.owner.language != 0 && pkmn.owner.language != pbPlayer.language exp = (exp*1.7).floor else exp = (exp*1.5).floor diff --git a/Data/Scripts/013_Overworld/002_PField_Field.rb b/Data/Scripts/013_Overworld/002_PField_Field.rb index 51de4906e..98477c671 100644 --- a/Data/Scripts/013_Overworld/002_PField_Field.rb +++ b/Data/Scripts/013_Overworld/002_PField_Field.rb @@ -882,8 +882,7 @@ def pbRegisterPartner(trainerid,trainername,partyid=0) trainerobject = PokeBattle_Trainer.new(_INTL(trainer[0].name),trainerid) trainerobject.setForeignID($Trainer) for i in trainer[2] - i.trainerID = trainerobject.id - i.ot = trainerobject.name + i.owner = Pokemon::Owner.new_from_trainer(trainerobject) i.calcStats end $PokemonGlobal.partner = [trainerid,trainerobject.name,trainerobject.id,trainer[2]] diff --git a/Data/Scripts/013_Overworld/013_PField_DayCare.rb b/Data/Scripts/013_Overworld/013_PField_DayCare.rb index aea7a56cb..0eaf45e4a 100644 --- a/Data/Scripts/013_Overworld/013_PField_DayCare.rb +++ b/Data/Scripts/013_Overworld/013_PField_DayCare.rb @@ -155,8 +155,8 @@ def pbDayCareGetCompat isConst?(compat21,PBEggGroups,:Ditto) if pbDayCareCompatibleGender(pkmn1,pkmn2) ret = 1 - ret += 1 if pkmn1.species==pkmn2.species - ret += 1 if pkmn1.trainerID!=pkmn2.trainerID + ret += 1 if pkmn1.species == pkmn2.species + ret += 1 if pkmn1.owner.id != pkmn2.owner.id return ret end end @@ -350,7 +350,7 @@ def pbDayCareGenerateEgg end # Masuda method and Shiny Charm shinyretries = 0 - shinyretries += 5 if father.language!=mother.language + shinyretries += 5 if father.owner.language != mother.owner.language shinyretries += 2 if hasConst?(PBItems,:SHINYCHARM) && $PokemonBag.pbHasItem?(:SHINYCHARM) if shinyretries>0 shinyretries.times do diff --git a/Data/Scripts/016_Pokemon/001_Pokemon.rb b/Data/Scripts/016_Pokemon/001_Pokemon.rb index 95d66a966..247f30b04 100644 --- a/Data/Scripts/016_Pokemon/001_Pokemon.rb +++ b/Data/Scripts/016_Pokemon/001_Pokemon.rb @@ -77,10 +77,6 @@ class Pokemon attr_accessor :pokerus # @return [Integer] this Pokémon's personal ID attr_accessor :personalID - # The 32-bit ID of this Pokémon's trainer. The secret ID is in the - # upper 16 bits. - # @return [Integer] the ID of this Pokémon's trainer - attr_accessor :trainerID # @return [Integer] the manner this Pokémon was obtained: # 0 (met), 1 (as egg), 2 (traded), 4 (fateful encounter) attr_accessor :obtainMode @@ -96,15 +92,6 @@ class Pokemon # Otherwise returns 0. # @return [Integer] the map ID where egg was hatched (0 by default) attr_accessor :hatchedMap - # @param value [Integer] new language - attr_writer :language - # @return [String] the name of the original trainer - attr_accessor :ot - # Changes the gender of the original trainer. This is for information only, - # and is not used to verify ownership of the Pokémon. - # @param value [Integer] new value for the original trainer's gender: - # 0 - male, 1 - female, 2 - mixed, 3 - unknown - attr_writer :otgender # @param value [Integer] new contest stat attr_writer :cool,:beauty,:cute,:smart,:tough,:sheen @@ -121,23 +108,25 @@ class Pokemon # Ownership, obtained information #============================================================================= - # @return [Integer] the public portion of the original trainer's ID - def publicID - return @trainerID & 0xFFFF + # @return [Owner] this Pokémon's owner + def owner + return @owner + end + + # Changes this Pokémon's owner. + # @param new_owner [Owner] the owner to change to + def owner=(new_owner) + validate new_owner => Owner + @owner = new_owner end # @param trainer [PokeBattle_Trainer] the trainer to compare to the OT # @return [Boolean] whether the given trainer and this Pokémon's original trainer don't match def foreign?(trainer) - return @trainerID != trainer.id || @ot != trainer.name + return @owner.id != trainer.id || @owner.name != trainer.name end alias isForeign? foreign? - # @return [0, 1, 2] the gender of this Pokémon original trainer (0 = male, 1 = female, 2 = unknown) - def otgender - return @otgender || 2 - end - # @return [Integer] this Pokémon's level when it was obtained def obtainLevel return @obtainLevel || 0 @@ -873,11 +862,6 @@ class Pokemon return @name != self.speciesName end - # @return [Integer] this Pokémon's language - def language - return @language || 0 - end - # @return [Integer] the markings this Pokémon has def markings return @markings || 0 @@ -1051,6 +1035,7 @@ class Pokemon ret.ivMaxed = @ivMaxed.clone ret.ev = @ev.clone ret.moves = [] + ret.owner = @owner.clone @moves.each_with_index { |m, i| ret.moves[i] = m.clone } ret.ribbons = @ribbons.clone if @ribbons return ret @@ -1059,9 +1044,9 @@ class Pokemon # Creates a new Pokémon object. # @param species [Integer, Symbol, String] Pokémon species # @param level [Integer] Pokémon level - # @param owner [PokeBattle_Trainer] object for the original trainer + # @param owner [Owner, PokeBattle_Trainer] Pokémon owner (the player by default) # @param withMoves [Boolean] whether the Pokémon should have moves - def initialize(species, level, owner = nil, withMoves = true) + def initialize(species, level, owner = $Trainer, withMoves = true) ospecies = species.to_s species = getID(PBSpecies, species) cname = getConstantName(PBSpecies, species) rescue nil @@ -1090,15 +1075,12 @@ class Pokemon @ribbons = [] @ballused = 0 @eggsteps = 0 - if owner - @trainerID = owner.id - @ot = owner.name - @otgender = owner.gender - @language = owner.language + if owner.is_a?(Owner) + @owner = owner + elsif owner.is_a?(PokeBattle_Trainer) + @owner = Owner.new_from_trainer(owner) else - @trainerID = 0 - @ot = "" - @otgender = 2 + @owner = Owner.new(0, '', 2, 2) end @obtainMap = ($game_map) ? $game_map.map_id : 0 @obtainText = nil diff --git a/Data/Scripts/016_Pokemon/006_Pokemon_Owner.rb b/Data/Scripts/016_Pokemon/006_Pokemon_Owner.rb new file mode 100644 index 000000000..c326a917f --- /dev/null +++ b/Data/Scripts/016_Pokemon/006_Pokemon_Owner.rb @@ -0,0 +1,71 @@ +class Pokemon + # Stores information about a Pokémon's owner. + class Owner + # @return [Integer] the ID of the owner + attr_reader :id + # @return [String] the name of the owner + attr_reader :name + # @return [Integer] the gender of the owner (0 = male, 1 = female, 2 = unknown) + attr_reader :gender + # @return [Integer] the language of the owner (see {pbGetLanguage} for language IDs) + attr_reader :language + + # @param id [Integer] the ID of the owner + # @param name [String] the name of the owner + # @param gender [Integer] the gender of the owner (0 = male, 1 = female, 2 = unknown) + # @param language [Integer] the language of the owner (see {pbGetLanguage} for language IDs) + def initialize(id, name, gender, language) + validate id => Integer, name => String, gender => Integer, language => Integer + @id = id + @name = name + @gender = gender + @language = language + end + + # Returns a new Owner object populated with values taken from +trainer+. + # @param trainer [PokeBattle_Trainer] trainer object to read data from + # @return [Owner] new Owner object + def self.new_from_trainer(trainer) + validate trainer => PokeBattle_Trainer + return new(trainer.id, trainer.name, trainer.gender, trainer.language) + end + + # Returns an Owner object with a foreign ID. + # @param name [String] owner name + # @param gender [Integer] owner gender + # @param language [Integer] owner language + # @return [Owner] foreign Owner object + def self.new_foreign(name = '', gender = 2, language = 2) + return new($Trainer.getForeignID, name, gender, language) + end + + # @param new_id [Integer] new owner ID + def id=(new_id) + validate new_id => Integer + @id = new_id + end + + # @param new_name [String] new owner name + def name=(new_name) + validate new_name => String + @name = new_name + end + + # @param new_gender [Integer] new owner gender + def gender=(new_gender) + validate new_gender => Integer + @gender = new_gender + end + + # @param new_language [Integer] new owner language + def language=(new_language) + validate new_language => Integer + @language = new_language + end + + # @return [Integer] the public portion of the owner's ID + def public_id + return @id & 0xFFFF + end + end +end diff --git a/Data/Scripts/016_Pokemon/006_Pokemon_Chatter.rb b/Data/Scripts/016_Pokemon/007_Pokemon_Chatter.rb similarity index 100% rename from Data/Scripts/016_Pokemon/006_Pokemon_Chatter.rb rename to Data/Scripts/016_Pokemon/007_Pokemon_Chatter.rb diff --git a/Data/Scripts/016_Pokemon/007_Pokemon_Sprites.rb b/Data/Scripts/016_Pokemon/008_Pokemon_Sprites.rb similarity index 100% rename from Data/Scripts/016_Pokemon/007_Pokemon_Sprites.rb rename to Data/Scripts/016_Pokemon/008_Pokemon_Sprites.rb diff --git a/Data/Scripts/016_Pokemon/009_Pokemon_Deprecated.rb b/Data/Scripts/016_Pokemon/009_Pokemon_Deprecated.rb deleted file mode 100644 index 8f89c4b55..000000000 --- a/Data/Scripts/016_Pokemon/009_Pokemon_Deprecated.rb +++ /dev/null @@ -1,25 +0,0 @@ -#=============================================================================== -# Deprecated classes, methods and constants for Pokémon. -# These will be removed in a future Essentials version. -#=============================================================================== - -# @deprecated Use {Pokemon} instead. PokeBattle_Pokemon has been turned into an alias -# and is slated to be removed in vXX. -class PokeBattle_Pokemon; end - -PokeBattle_Pokemon = Pokemon - -class Pokemon - # @deprecated Use {MAX_NAME_SIZE} instead. This alias is slated to be removed in vXX. - MAX_POKEMON_NAME_SIZE = MAX_NAME_SIZE -end - -# (see Pokemon#initialize) -# @deprecated Use +Pokemon.new+ instead. This method and its aliases are -# slated to be removed in vXX. -def pbNewPkmn(species, level, owner = $Trainer, withMoves = true) - Deprecation.warn_method('pbNewPkmn', 'vXX', 'Pokemon.new') - return Pokemon.new(species, level, owner, withMoves) -end -alias pbGenPkmn pbNewPkmn -alias pbGenPoke pbNewPkmn diff --git a/Data/Scripts/016_Pokemon/008_Pokemon_Storage.rb b/Data/Scripts/016_Pokemon/009_Pokemon_Storage.rb similarity index 100% rename from Data/Scripts/016_Pokemon/008_Pokemon_Storage.rb rename to Data/Scripts/016_Pokemon/009_Pokemon_Storage.rb diff --git a/Data/Scripts/016_Pokemon/010_Pokemon_Deprecated.rb b/Data/Scripts/016_Pokemon/010_Pokemon_Deprecated.rb new file mode 100644 index 000000000..77e551ecd --- /dev/null +++ b/Data/Scripts/016_Pokemon/010_Pokemon_Deprecated.rb @@ -0,0 +1,79 @@ +#=============================================================================== +# Deprecated classes, methods and constants for Pokémon. +# These will be removed in a future Essentials version. +#=============================================================================== + +# @deprecated Use {Pokemon} instead. PokeBattle_Pokemon has been turned into an alias +# and is slated to be removed in vXX. +class PokeBattle_Pokemon; end + +PokeBattle_Pokemon = Pokemon + +class Pokemon + # @deprecated Use {MAX_NAME_SIZE} instead. This alias is slated to be removed in vXX. + MAX_POKEMON_NAME_SIZE = MAX_NAME_SIZE + + # @deprecated Use {Owner#public_id} instead. This alias is slated to be removed in vXX. + def publicID + Deprecation.warn_method('Pokemon#publicID', 'vXX', 'Pokemon::Owner#public_id') + return @owner.public_id + end + + # @deprecated Use {Owner#id} instead. This alias is slated to be removed in vXX. + def trainerID + Deprecation.warn_method('Pokemon#trainerID', 'vXX', 'Pokemon::Owner#id') + return @owner.id + end + + # @deprecated Use {Owner#id=} instead. This alias is slated to be removed in vXX. + def trainerID=(value) + Deprecation.warn_method('Pokemon#trainerID=', 'vXX', 'Pokemon::Owner#id=') + @owner.id = value + end + + # @deprecated Use {Owner#name} instead. This alias is slated to be removed in vXX. + def ot + Deprecation.warn_method('Pokemon#ot', 'vXX', 'Pokemon::Owner#name') + return @owner.name + end + + # @deprecated Use {Owner#name=} instead. This alias is slated to be removed in vXX. + def ot=(value) + Deprecation.warn_method('Pokemon#ot=', 'vXX', 'Pokemon::Owner#name=') + @owner.name = value + end + + # @deprecated Use {Owner#gender} instead. This alias is slated to be removed in vXX. + def otgender + Deprecation.warn_method('Pokemon#otgender', 'vXX', 'Pokemon::Owner#gender') + return @owner.gender + end + + # @deprecated Use {Owner#gender=} instead. This alias is slated to be removed in vXX. + def otgender=(value) + Deprecation.warn_method('Pokemon#otgender=', 'vXX', 'Pokemon::Owner#gender=') + @owner.gender = value + end + + # @deprecated Use {Owner#language} instead. This alias is slated to be removed in vXX. + def language + Deprecation.warn_method('Pokemon#language', 'vXX', 'Pokemon::Owner#language') + return @owner.language + end + + # @deprecated Use {Owner#language=} instead. This alias is slated to be removed in vXX. + def language=(value) + Deprecation.warn_method('Pokemon#language=', 'vXX', 'Pokemon::Owner#language=') + @owner.language = value + end +end + +# (see Pokemon#initialize) +# @deprecated Use +Pokemon.new+ instead. This method and its aliases are +# slated to be removed in vXX. +def pbNewPkmn(species, level, owner = $Trainer, withMoves = true) + Deprecation.warn_method('pbNewPkmn', 'vXX', 'Pokemon.new') + return Pokemon.new(species, level, owner, withMoves) +end +alias pbGenPkmn pbNewPkmn +alias pbGenPoke pbNewPkmn diff --git a/Data/Scripts/017_UI/006_PScreen_Summary.rb b/Data/Scripts/017_UI/006_PScreen_Summary.rb index e68313d2f..fb52f6cdb 100644 --- a/Data/Scripts/017_UI/006_PScreen_Summary.rb +++ b/Data/Scripts/017_UI/006_PScreen_Summary.rb @@ -401,18 +401,18 @@ class PokemonSummary_Scene textpos.push([sprintf("%03d",dexnum),435,80,2,dexNumBase,dexNumShadow]) end # Write Original Trainer's name and ID number - if @pokemon.ot=="" + if @pokemon.owner.name.empty? textpos.push([_INTL("RENTAL"),435,176,2,Color.new(64,64,64),Color.new(176,176,176)]) textpos.push(["?????",435,208,2,Color.new(64,64,64),Color.new(176,176,176)]) else ownerbase = Color.new(64,64,64) ownershadow = Color.new(176,176,176) - case @pokemon.otgender + case @pokemon.owner.gender when 0; ownerbase = Color.new(24,112,216); ownershadow = Color.new(136,168,208) when 1; ownerbase = Color.new(248,56,32); ownershadow = Color.new(224,152,144) end - textpos.push([@pokemon.ot,435,176,2,ownerbase,ownershadow]) - textpos.push([sprintf("%05d",@pokemon.publicID),435,208,2,Color.new(64,64,64),Color.new(176,176,176)]) + textpos.push([@pokemon.owner.name,435,176,2,ownerbase,ownershadow]) + textpos.push([sprintf("%05d",@pokemon.owner.public_id),435,208,2,Color.new(64,64,64),Color.new(176,176,176)]) end # Write Exp text OR heart gauge message (if a Shadow Pokémon) if @pokemon.shadowPokemon? diff --git a/Data/Scripts/017_UI/020_PScreen_EggHatching.rb b/Data/Scripts/017_UI/020_PScreen_EggHatching.rb index 9cc898fbb..6da810e3b 100644 --- a/Data/Scripts/017_UI/020_PScreen_EggHatching.rb +++ b/Data/Scripts/017_UI/020_PScreen_EggHatching.rb @@ -192,8 +192,7 @@ end def pbHatch(pokemon) speciesname = pokemon.speciesName pokemon.name = speciesname - pokemon.trainerID = $Trainer.id - pokemon.ot = $Trainer.name + pokemon.owner = Pokemon::Owner.new_from_trainer($Trainer) pokemon.happiness = 120 pokemon.timeEggHatched = pbGetTimeNow pokemon.obtainMode = 1 # hatched from egg diff --git a/Data/Scripts/017_UI/022_PScreen_Trading.rb b/Data/Scripts/017_UI/022_PScreen_Trading.rb index 0c9a1aec4..a3ee6ada9 100644 --- a/Data/Scripts/017_UI/022_PScreen_Trading.rb +++ b/Data/Scripts/017_UI/022_PScreen_Trading.rb @@ -170,7 +170,7 @@ class PokemonTrade_Scene speciesname2=PBSpecies.getName(@pokemon2.species) pbMessageDisplay(@sprites["msgwindow"], _ISPRINTF("{1:s}\r\nID: {2:05d} OT: {3:s}\\wtnp[0]", - @pokemon.name,@pokemon.publicID,@pokemon.ot)) { pbUpdate } + @pokemon.name,@pokemon.owner.public_id,@pokemon.owner.name)) { pbUpdate } pbMessageWaitForInput(@sprites["msgwindow"],50,true) { pbUpdate } pbPlayDecisionSE pbScene1 @@ -181,7 +181,7 @@ class PokemonTrade_Scene pbScene2 pbMessageDisplay(@sprites["msgwindow"], _ISPRINTF("{1:s}\r\nID: {2:05d} OT: {3:s}\1", - @pokemon2.name,@pokemon2.publicID,@pokemon2.ot)) { pbUpdate } + @pokemon2.name,@pokemon2.owner.public_id,@pokemon2.owner.name)) { pbUpdate } pbMessageDisplay(@sprites["msgwindow"], _INTL("Take good care of {1}.",speciesname2)) { pbUpdate } end @@ -195,10 +195,7 @@ def pbStartTrade(pokemonIndex,newpoke,nickname,trainerName,trainerGender=0) opponent.setForeignID($Trainer) yourPokemon = nil; resetmoves = true if newpoke.is_a?(Pokemon) - newpoke.trainerID = opponent.id - newpoke.ot = opponent.name - newpoke.otgender = opponent.gender - newpoke.language = opponent.language + newpoke.owner = Pokemon::Owner.new_from_trainer(opponent) yourPokemon = newpoke resetmoves = false else diff --git a/Data/Scripts/017_UI/027_PScreen_HallOfFame.rb b/Data/Scripts/017_UI/027_PScreen_HallOfFame.rb index de153a00f..8859ef734 100644 --- a/Data/Scripts/017_UI/027_PScreen_HallOfFame.rb +++ b/Data/Scripts/017_UI/027_PScreen_HallOfFame.rb @@ -302,7 +302,7 @@ class HallOfFame_Scene end pokename+="/"+speciesname pokename=_INTL("Egg")+"/"+_INTL("Egg") if pokemon.egg? - idno=(pokemon.ot=="" || pokemon.egg?) ? "?????" : sprintf("%05d",pokemon.publicID) + idno=(pokemon.owner.name.empty? || pokemon.egg?) ? "?????" : sprintf("%05d",pokemon.owner.public_id) dexnumber=pokemon.egg? ? _INTL("No. ???") : _ISPRINTF("No. {1:03d}",pokemon.species) textPositions=[ [dexnumber,32,Graphics.height-80,0,BASECOLOR,SHADOWCOLOR], diff --git a/Data/Scripts/018_Minigames/005_PMinigame_Lottery.rb b/Data/Scripts/018_Minigames/005_PMinigame_Lottery.rb index 485940fbd..7c397cc62 100644 --- a/Data/Scripts/018_Minigames/005_PMinigame_Lottery.rb +++ b/Data/Scripts/018_Minigames/005_PMinigame_Lottery.rb @@ -18,7 +18,7 @@ def pbLottery(winnum,nameVar=2,positionVar=3,matchedVar=4) winmatched=0 for i in $Trainer.party thismatched=0 - id=i.publicID + id=i.owner.public_id for j in 0...5 if (id/(10**j))%10 == (winnum/(10**j))%10 thismatched+=1 @@ -34,7 +34,7 @@ def pbLottery(winnum,nameVar=2,positionVar=3,matchedVar=4) end pbEachPokemon { |poke,_box| thismatched=0 - id=poke.publicID + id=poke.owner.public_id for j in 0...5 if (id/(10**j))%10 == (winnum/(10**j))%10 thismatched+=1 diff --git a/Data/Scripts/020_System and utilities/004_PSystem_PokemonUtilities.rb b/Data/Scripts/020_System and utilities/004_PSystem_PokemonUtilities.rb index f5ad238b1..0397c2020 100644 --- a/Data/Scripts/020_System and utilities/004_PSystem_PokemonUtilities.rb +++ b/Data/Scripts/020_System and utilities/004_PSystem_PokemonUtilities.rb @@ -139,12 +139,8 @@ def pbAddForeignPokemon(pokemon,level=nil,ownerName=nil,nickname=nil,ownerGender if pokemon.is_a?(Integer) && level.is_a?(Integer) pokemon = Pokemon.new(pokemon,level) end - # Set original trainer to a foreign one (if ID isn't already foreign) - if pokemon.trainerID==$Trainer.id - pokemon.trainerID = $Trainer.getForeignID - pokemon.ot = ownerName if ownerName && ownerName!="" - pokemon.otgender = ownerGender - end + # Set original trainer to a foreign one + pokemon.owner = Pokemon::Owner.new_foreign(ownerName || "", ownerGender) # Set nickname pokemon.name = nickname[0, Pokemon::MAX_NAME_SIZE] if nickname && nickname!="" # Recalculate stats diff --git a/Data/Scripts/021_Debug/003_Debug_Pokemon.rb b/Data/Scripts/021_Debug/003_Debug_Pokemon.rb index 37ab26aae..41f467b02 100644 --- a/Data/Scripts/021_Debug/003_Debug_Pokemon.rb +++ b/Data/Scripts/021_Debug/003_Debug_Pokemon.rb @@ -667,9 +667,9 @@ module PokemonDebugMixin when "ownership" cmd = 0 loop do - gender = [_INTL("Male"),_INTL("Female"),_INTL("Unknown")][pkmn.otgender] - msg = [_INTL("Player's Pokémon\n{1}\n{2}\n{3} ({4})",pkmn.ot,gender,pkmn.publicID,pkmn.trainerID), - _INTL("Foreign Pokémon\n{1}\n{2}\n{3} ({4})",pkmn.ot,gender,pkmn.publicID,pkmn.trainerID) + gender = [_INTL("Male"),_INTL("Female"),_INTL("Unknown")][pkmn.owner.gender] + msg = [_INTL("Player's Pokémon\n{1}\n{2}\n{3} ({4})",pkmn.owner.name,gender,pkmn.owner.public_id,pkmn.owner.id), + _INTL("Foreign Pokémon\n{1}\n{2}\n{3} ({4})",pkmn.owner.name,gender,pkmn.owner.public_id,pkmn.owner.id) ][pkmn.foreign?($Trainer) ? 1 : 0] cmd = pbShowCommands(msg,[ _INTL("Make player's"), @@ -680,25 +680,23 @@ module PokemonDebugMixin break if cmd<0 case cmd when 0 # Make player's - pkmn.trainerID = $Trainer.id - pkmn.ot = $Trainer.name - pkmn.otgender = $Trainer.gender + pkmn.owner = Pokemon::Owner.new_from_trainer($Trainer) when 1 # Set OT's name - pkmn.ot = pbEnterPlayerName(_INTL("{1}'s OT's name?",pkmn.name),1,MAX_PLAYER_NAME_SIZE) + pkmn.owner.name = pbEnterPlayerName(_INTL("{1}'s OT's name?",pkmn.name),1,MAX_PLAYER_NAME_SIZE) when 2 # Set OT's gender cmd2 = pbShowCommands(_INTL("Set OT's gender."), - [_INTL("Male"),_INTL("Female"),_INTL("Unknown")],pkmn.otgender) - pkmn.otgender = cmd2 if cmd2>=0 + [_INTL("Male"),_INTL("Female"),_INTL("Unknown")],pkmn.owner.gender) + pkmn.owner.gender = cmd2 if cmd2>=0 when 3 # Random foreign ID - pkmn.trainerID = $Trainer.getForeignID + pkmn.owner.id = $Trainer.getForeignID when 4 # Set foreign ID params = ChooseNumberParams.new params.setRange(0,65535) - params.setDefaultValue(pkmn.publicID) + params.setDefaultValue(pkmn.owner.public_id) val = pbMessageChooseNumber( _INTL("Set the new ID (max. 65535)."),params) { pbUpdate } - pkmn.trainerID = val - pkmn.trainerID |= val << 16 + pkmn.owner.id = val + pkmn.owner.id |= val << 16 end end #===========================================================================