diff --git a/Data/Map311.rxdata b/Data/Map311.rxdata index 7efa9a1b7..4703b990d 100644 Binary files a/Data/Map311.rxdata and b/Data/Map311.rxdata differ diff --git a/Data/Map384.rxdata b/Data/Map384.rxdata index d8be41828..180531f72 100644 Binary files a/Data/Map384.rxdata and b/Data/Map384.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 098748e62..5c2e955d1 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/016_UI/001_Non-interactive UI/004_UI_Evolution.rb b/Data/Scripts/016_UI/001_Non-interactive UI/004_UI_Evolution.rb index 5863076b9..8f83ae8a2 100644 --- a/Data/Scripts/016_UI/001_Non-interactive UI/004_UI_Evolution.rb +++ b/Data/Scripts/016_UI/001_Non-interactive UI/004_UI_Evolution.rb @@ -458,16 +458,20 @@ class PokemonEvolutionScene if canceled pbRestoreSpriteState(@sprites["rsprite1"],oldstate) pbRestoreSpriteState(@sprites["rsprite2"],oldstate2) - @sprites["rsprite1"].zoom_x = 1.0 - @sprites["rsprite1"].zoom_y = 1.0 + @sprites["rsprite1"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["rsprite1"].zoom_y = Settings::FRONTSPRITE_SCALE + @sprites["rsprite2"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["rsprite2"].zoom_y = Settings::FRONTSPRITE_SCALE @sprites["rsprite1"].color.alpha = 0 @sprites["rsprite1"].visible = true @sprites["rsprite2"].visible = false else @sprites["rsprite1"].visible = false @sprites["rsprite2"].visible = true - @sprites["rsprite2"].zoom_x = 1.0 - @sprites["rsprite2"].zoom_y = 1.0 + @sprites["rsprite1"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["rsprite1"].zoom_y = Settings::FRONTSPRITE_SCALE + @sprites["rsprite2"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["rsprite2"].zoom_y = Settings::FRONTSPRITE_SCALE @sprites["rsprite2"].color.alpha = 0 end (Graphics.frame_rate/4).times do @@ -513,6 +517,10 @@ class PokemonEvolutionScene @sprites["rsprite1"] = rsprite1 @sprites["rsprite2"] = rsprite2 pbGenerateMetafiles(rsprite1.ox,rsprite1.oy,rsprite2.ox,rsprite2.oy) + @sprites["rsprite1"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["rsprite1"].zoom_y = Settings::FRONTSPRITE_SCALE + @sprites["rsprite2"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["rsprite2"].zoom_y = Settings::FRONTSPRITE_SCALE @sprites["msgwindow"] = pbCreateMessageWindow(@msgviewport) pbFadeInAndShow(@sprites) { pbUpdate } end diff --git a/Data/Scripts/020_Debug/001_Editor_Utilities.rb b/Data/Scripts/020_Debug/001_Editor_Utilities.rb index 454b7896a..a79fa9821 100644 --- a/Data/Scripts/020_Debug/001_Editor_Utilities.rb +++ b/Data/Scripts/020_Debug/001_Editor_Utilities.rb @@ -119,8 +119,11 @@ def pbChooseSpeciesList(default = nil) # commands = [] # GameData::Species.each { |s| commands.push([s.id_number, s.real_name, s.id]) if s.form == 0 } # return pbChooseList(commands, default, nil, -1) + # + defaultNumber = default == nil ? 1 : getDexNumberForSpecies(default) params = ChooseNumberParams.new params.setRange(1,PBSpecies.maxValue) + params.setInitialValue(defaultNumber) dexNum = pbMessageChooseNumber("dex number?",params) return GameData::Species.get(dexNum) end diff --git a/Data/Scripts/050_AddOns/New Items effects.rb b/Data/Scripts/050_AddOns/New Items effects.rb index a426c0daa..710e9f0a6 100644 --- a/Data/Scripts/050_AddOns/New Items effects.rb +++ b/Data/Scripts/050_AddOns/New Items effects.rb @@ -81,11 +81,11 @@ def useLantern() end Kernel.pbMessage(_INTL("The Lantern illuminated the cave!")) darkness.radius += 176 - while darkness.radius<176 + while darkness.radius < 176 Graphics.update Input.update pbUpdateSceneMapd - darkness.radius+=4 + darkness.radius += 4 end return true end @@ -107,7 +107,7 @@ ItemHandlers::UseInField.add(:TELEPORTER, proc { |item| }) def useTeleporter() - if HiddenMoveHandlers.triggerCanUseMove(:TELEPORT, 0,true) + if HiddenMoveHandlers.triggerCanUseMove(:TELEPORT, 0, true) Kernel.pbMessage(_INTL("Teleport to where?", $Trainer.name)) ret = pbBetterRegionMap(-1, true, true) pbShowMenu unless ret @@ -210,11 +210,11 @@ ItemHandlers::UseFromBag.add(:LANTERN, proc { |item| Kernel.pbMessage(_INTL("The Lantern illuminated the cave!")) $PokemonGlobal.flashUsed = true darkness.radius += 176 - while darkness.radius<176 - Graphics.update - Input.update - pbUpdateSceneMap - darkness.radius+=4 + while darkness.radius < 176 + Graphics.update + Input.update + pbUpdateSceneMap + darkness.radius += 4 end next true }) @@ -389,8 +389,8 @@ ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, pokemon, scene| end }) -ItemHandlers::UseFromBag.add(:DEBUGGER,proc{|item| - Kernel.pbMessage(_INTL("[{1}]The debugger should ONLY be used if you are stuck somewhere because of a glitch.",Settings::GAME_VERSION_NUMBER)) +ItemHandlers::UseFromBag.add(:DEBUGGER, proc { |item| + Kernel.pbMessage(_INTL("[{1}]The debugger should ONLY be used if you are stuck somewhere because of a glitch.", Settings::GAME_VERSION_NUMBER)) if Kernel.pbConfirmMessageSerious(_INTL("Innapropriate use of this item can lead to unwanted effects and make the game unplayable. Do you want to continue?")) $game_player.cancelMoveRoute() Kernel.pbStartOver(false) @@ -398,7 +398,7 @@ ItemHandlers::UseFromBag.add(:DEBUGGER,proc{|item| end }) -ItemHandlers::UseFromBag.add(:MAGICBOOTS,proc{|item| +ItemHandlers::UseFromBag.add(:MAGICBOOTS, proc { |item| if $DEBUG if Kernel.pbConfirmMessageSerious(_INTL("Take off the Magic Boots?")) $DEBUG = false @@ -413,7 +413,6 @@ ItemHandlers::UseFromBag.add(:MAGICBOOTS,proc{|item| next 1 }) - def pbForceEvo(pokemon) newspecies = getEvolvedSpecies(pokemon) return false if newspecies == -1 @@ -471,7 +470,6 @@ ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, pokemon, scene| next false }) - ItemHandlers::UseOnPokemon.add(:DNAREVERSER, proc { |item, pokemon, scene| if !pokemon.isFusion? scene.pbDisplay(_INTL("It won't have any effect.")) @@ -534,7 +532,6 @@ ItemHandlers::UseOnPokemon.add(:INFINITEREVERSERS, proc { |item, pokemon, scene| next false }) - # # def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false) # if (pokemon.species <= NB_POKEMON) @@ -1191,21 +1188,22 @@ ItemHandlers::UseOnPokemon.add(:MISTSTONE, proc { |item, pokemon, scene| }) def pbForceEvo(pokemon) - newspecies = getEvolvedSpecies(pokemon) - return false if newspecies == -1 - if newspecies > 0 - evo = PokemonEvolutionScene.new - evo.pbStartScreen(pokemon, newspecies) - evo.pbEvolution - evo.pbEndScreen - end + evolutions = getEvolvedSpecies(pokemon) + return false if evolutions.empty? + #if multiple evolutions, pick a random one + #(format of returned value is [[speciesNum, level]]) + newspecies = evolutions[rand(evolutions.length - 1)][0] + return false if newspecies == nil + evo = PokemonEvolutionScene.new + evo.pbStartScreen(pokemon, newspecies) + evo.pbEvolution + evo.pbEndScreen return true end +# format of returned value is [[speciesNum, evolutionMethod],[speciesNum, evolutionMethod],etc.] def getEvolvedSpecies(pokemon) - return pbCheckEvolutionEx(pokemon) { |pokemon, evonib, level, poke| - next pbMiniCheckEvolution(pokemon, evonib, level, poke, true) - } + return GameData::Species.get(pokemon.species).get_evolutions(true) end #(copie de fixEvolutionOverflow dans FusionScene) @@ -1252,9 +1250,6 @@ ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, pokemon, scene| next false }) - - - def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false) playingBGM = $game_system.getPlayingBGM dexNumber = pokemon.species_data.id_number @@ -1367,7 +1362,6 @@ def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false) scene.pbDisplay(_INTL(" ... ")) scene.pbDisplay(_INTL(" ... ")) - if pokemon.exp_when_fused_head == nil || pokemon.exp_when_fused_body == nil new_level = calculateUnfuseLevelOldMethod(pokemon, supersplicers) body_level = new_level @@ -1384,7 +1378,6 @@ def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false) poke2.exp = exp_head end - if $Trainer.party.length >= 6 if (keepInParty == 0) $PokemonStorage.pbStoreCaught(poke2) diff --git a/Data/Scripts/050_AddOns/Trainers Rebattle.rb b/Data/Scripts/050_AddOns/Trainers Rebattle.rb index 00b8e6a2b..b9ecc9656 100644 --- a/Data/Scripts/050_AddOns/Trainers Rebattle.rb +++ b/Data/Scripts/050_AddOns/Trainers Rebattle.rb @@ -25,7 +25,7 @@ end # def incrNbRematches(trainerId) $PokemonGlobal.rematchedTrainers.each do |key, trainer| - if(trainer.id == trainerId) + if (trainer.id == trainerId) trainer.incrementNbTimes() end end @@ -71,11 +71,6 @@ def addNewTrainerRematch(trainerId) end - - - - - def getNumberRematchOld(trainerId) if $PokemonGlobal.rematchedTrainers == nil $PokemonGlobal.rematchedTrainers = Hash.new @@ -83,7 +78,7 @@ def getNumberRematchOld(trainerId) end $PokemonGlobal.rematchedTrainers.each do |key, trainer| - if(trainer.id == trainerId) + if (trainer.id == trainerId) return (trainer.nbTimesRematched) end end @@ -91,12 +86,10 @@ def getNumberRematchOld(trainerId) return 0 end - - -def getRematchLevel(originalLevel,nbRematch) - levelCap = getLevelCap(originalLevel,$Trainer.numbadges) +def getRematchLevel(originalLevel, nbRematch) + levelCap = getLevelCap(originalLevel, $Trainer.numbadges) expRate = getLevelRate(originalLevel) - levelIncr =0 + levelIncr = 0 for i in 0..nbRematch if i % expRate == 0 levelIncr += 1 @@ -108,32 +101,31 @@ def getRematchLevel(originalLevel,nbRematch) end def getLevelRate(originalLevel) - return 2 + (originalLevel/20).ceil + return 2 + (originalLevel / 20).ceil end -def getLevelCap(originalLevel,nbBadges) +def getLevelCap(originalLevel, nbBadges) return 100 if $game_switches[599] #no cap in battle arena - cap = originalLevel + nbBadges +2 + cap = originalLevel + nbBadges + 2 return cap < 100 ? cap : 100 end - def decreaseRematchNumber(trainerId) $PokemonGlobal.rematchedTrainers.each do |key, trainer| - if(trainer.id == trainerId) + if (trainer.id == trainerId) trainer.removeNbTimes() return end end end - -def evolveRematchPokemon(nbRematch,species) - if(nbRematch >= 10 && $Trainer.numbadges >= 3) - evospecies=getEvolution(species) +def evolveRematchPokemon(nbRematch, speciesSymbol) + species = getDexNumberForSpecies(speciesSymbol) + if (nbRematch >= 10 && $Trainer.numbadges >= 3) + evospecies = getEvolution(species) return species if evospecies == -1 - if(nbRematch >= 20 && $Trainer.numbadges >= 8) - secondEvoSpecies=getEvolution(evospecies) + if (nbRematch >= 20 && $Trainer.numbadges >= 8) + secondEvoSpecies = getEvolution(evospecies) return secondEvoSpecies == -1 ? evospecies : secondEvoSpecies end return evospecies @@ -143,28 +135,40 @@ end def getEvolution(species) if species >= Settings::NB_POKEMON - pokemon = PokeBattle_Pokemon.new(species,1) body = getBasePokemonID(species) - head = getBasePokemonID(species,false) - ret_evoB = pbGetEvolvedFormData(body) - ret_evoH = pbGetEvolvedFormData(head) - evoBody = ret_evoB.any? ? ret_evoB[0][2] : -1 - evoHead = ret_evoH.any? ? ret_evoH[0][2] : -1 - return -1 if isNegativeOrNull(evoBody) && isNegativeOrNull(evoHead) - return body*Settings::NB_POKEMON+evoHead if isNegativeOrNull(evoBody) #only head evolves - return evoBody*Settings::NB_POKEMON + head if isNegativeOrNull(evoHead) #only body evolves - return evoBody*Settings::NB_POKEMON+evoHead #both evolve + head = getBasePokemonID(species, false) + + bodyPossibleEvolutions = GameData::Species.get(body).get_evolutions(true) + headPossibleEvolutions = GameData::Species.get(head).get_evolutions(true) + + bodyCanEvolve = !bodyPossibleEvolutions.empty? + headCanEvolve = !headPossibleEvolutions.empty? + + evoBodySpecies = bodyCanEvolve ? bodyPossibleEvolutions[rand(bodyPossibleEvolutions.length - 1)][0] : nil + evoHeadSpecies = headCanEvolve ? headPossibleEvolutions[rand(headPossibleEvolutions.length - 1)][0] : nil + if evoBodySpecies != nil + evoBody= getDexNumberForSpecies(evoBodySpecies) + end + if evoHeadSpecies != nil + evoHead= getDexNumberForSpecies(evoHeadSpecies) + end + + return -1 if evoBody == nil && evoHead == nil + return body * Settings::NB_POKEMON + evoHead if evoBody == nil #only head evolves + return evoBody * Settings::NB_POKEMON + head if evoHead == nil #only body evolves + return evoBody * Settings::NB_POKEMON + evoHead #both evolve else evo = pbGetEvolvedFormData(species) - return evo.any? ? getDexNumberForSpecies(evo[0][0]) : -1 + newSpecies = evo[rand(evo.length - 1)][0] + return evo.any? ? getDexNumberForSpecies(newSpecies) : -1 end end - -def getFusionSpecies(body,head) +def getFusionSpecies(body, head) id = body * Settings::NB_POKEMON + head - return GameData::Species.get(id).species + return GameData::Species.get(id).species end + # def evolveHead(species) species_id = getDexNumberForSpecies(species) @@ -172,10 +176,10 @@ def evolveHead(species) evo = getEvolution(species_id) return evo == -1 ? species_id : evo end - head = getBasePokemonID(species_id,false) + head = getBasePokemonID(species_id, false) body = getBasePokemonID(species_id) headEvo = getEvolution(head) - return headEvo == -1 ? species_id : getFusionSpecies(body,headEvo) + return headEvo == -1 ? species_id : getFusionSpecies(body, headEvo) end def evolveBody(species) @@ -184,49 +188,48 @@ def evolveBody(species) evo = getEvolution(species_id) return evo == -1 ? species_id : evo end - head = getBasePokemonID(species_id,false) + head = getBasePokemonID(species_id, false) body = getBasePokemonID(species_id) bodyEvo = getEvolution(body) - return bodyEvo == -1 ? species_id : getFusionSpecies(bodyEvo,head) + return bodyEvo == -1 ? species_id : getFusionSpecies(bodyEvo, head) end - def getCorrectEvolvedSpecies(pokemon) if pokemon.species >= Settings::NB_POKEMON body = getBasePokemonID(pokemon.species) - head = getBasePokemonID(pokemon.species,false) - ret1=-1;ret2=-1 + head = getBasePokemonID(pokemon.species, false) + ret1 = -1; ret2 = -1 for form in pbGetEvolvedFormData(body) - retB=yield pokemon,form[0],form[1],form[2] - break if retB>0 + retB = yield pokemon, form[0], form[1], form[2] + break if retB > 0 end for form in pbGetEvolvedFormData(head) - retH=yield pokemon,form[0],form[1],form[2] - break if retH>0 + retH = yield pokemon, form[0], form[1], form[2] + break if retH > 0 end return ret if ret == retB && ret == retH - return fixEvolutionOverflow(retB,retH,pokemon.species) + return fixEvolutionOverflow(retB, retH, pokemon.species) else for form in pbGetEvolvedFormData(pokemon.species) - newspecies=form[2] + newspecies = form[2] end return newspecies; end end - -def printDebugRematchInfo(nbRematch,expRate,newLevel,levelCap,originalLevel) +def printDebugRematchInfo(nbRematch, expRate, newLevel, levelCap, originalLevel) info = "" - info << "total rematched trainers: "+ $PokemonGlobal.rematchedTrainers.length.to_s + "\n" + info << "total rematched trainers: " + $PokemonGlobal.rematchedTrainers.length.to_s + "\n" - info << "nb times: "+ nbRematch.to_s + "\n" - info << "lvl up every " + expRate.to_s + " times" + "\n" - info << "original level: " << originalLevel.to_s + "\n" - info << "new level: " + newLevel.to_s + "\n" - info << "level cap: "+ levelCap.to_s + info << "nb times: " + nbRematch.to_s + "\n" + info << "lvl up every " + expRate.to_s + " times" + "\n" + info << "original level: " << originalLevel.to_s + "\n" + info << "new level: " + newLevel.to_s + "\n" + info << "level cap: " + levelCap.to_s print info end + # # # diff --git a/Data/System.rxdata b/Data/System.rxdata index 99cf7eb9e..e14cac62e 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ