diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index 372aad128..0c03b3d29 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -6,7 +6,7 @@ module Settings # The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format. GAME_VERSION = '5.0.0' - GAME_VERSION_NUMBER = "5.0.35.3" + GAME_VERSION_NUMBER = "5.0.36" POKERADAR_LIGHT_ANIMATION_RED_ID = 17 POKERADAR_LIGHT_ANIMATION_GREEN_ID = 18 diff --git a/Data/Scripts/048_Fusion/DoublePreviewScreen.rb b/Data/Scripts/048_Fusion/DoublePreviewScreen.rb index 565838133..06967e07a 100644 --- a/Data/Scripts/048_Fusion/DoublePreviewScreen.rb +++ b/Data/Scripts/048_Fusion/DoublePreviewScreen.rb @@ -141,8 +141,8 @@ class DoublePreviewScreen def drawFusionInformation(fusedDexNum, level, x = 0) viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) - @typewindows << drawPokemonType(fusedDexNum, viewport, x + 40, 220) if @draw_types - drawFusionPreviewText(viewport, "Lv. " + level.to_s, x + 60, 40,) if @draw_level + @typewindows << drawPokemonType(fusedDexNum, viewport, x + 55, 220) if @draw_types + drawFusionPreviewText(viewport, "Lv. " + level.to_s, x + 80, 40,) if @draw_level end diff --git a/Data/Scripts/048_Fusion/FusionMenu.rb b/Data/Scripts/048_Fusion/FusionMenu.rb index a957e39bd..e4dff87e1 100644 --- a/Data/Scripts/048_Fusion/FusionMenu.rb +++ b/Data/Scripts/048_Fusion/FusionMenu.rb @@ -1,9 +1,11 @@ class FusionSelectOptionsScene < PokemonOption_Scene attr_accessor :selectedAbility attr_accessor :selectedNature + attr_accessor :hasNickname + attr_accessor :nickname - def initialize(abilityList,natureList) + def initialize(abilityList,natureList, pokemon1, pokemon2) @abilityList = abilityList @natureList = natureList @selectedAbility=nil @@ -11,6 +13,11 @@ class FusionSelectOptionsScene < PokemonOption_Scene @selBaseColor = Color.new(48,96,216) @selShadowColor = Color.new(32,32,32) @show_frame=false + @hasNickname = false + @nickname = nil + + @pokemon1=pokemon1 + @pokemon2=pokemon2 end @@ -49,23 +56,54 @@ class FusionSelectOptionsScene < PokemonOption_Scene return _INTL("+ {1}\n- {2}",GameData::Stat.get(positiveChange[0]).name,GameData::Stat.get(negativeChange[0]).name) end - def pbGetOptions(inloadscreen = false) - options = [ + def shouldSelectNickname + if @pokemon1.nicknamed? && @pokemon2.nicknamed? + @hasNickname=true + return true + end + if @pokemon1.nicknamed? && !@pokemon2.nicknamed? + @hasNickname=true + @nickname = @pokemon1.name + return false + end + if !@pokemon1.nicknamed? && @pokemon2.nicknamed? + @hasNickname=true + @nickname = @pokemon2.name + return false + end + @hasNickname=false + return false + end - EnumOption.new(_INTL("Ability"), [_INTL(getAbilityName(@abilityList[0])), _INTL(getAbilityName(@abilityList[1]))], + def pbGetOptions(inloadscreen = false) + + options = [] + if shouldSelectNickname + options << EnumOption.new(_INTL("Nickname"), [_INTL(@pokemon1.name), _INTL(@pokemon2.name)], + proc { 0 }, + proc { |value| + if value ==0 + @nickname = @pokemon1.name + else + @nickname = @pokemon2.name + end + }, "Select the Pokémon's nickname") + end + + options << EnumOption.new(_INTL("Ability"), [_INTL(getAbilityName(@abilityList[0])), _INTL(getAbilityName(@abilityList[1]))], proc { 0 }, proc { |value| @selectedAbility=@abilityList[value] }, [getAbilityDescription(@abilityList[0]), getAbilityDescription(@abilityList[1])] - ), - EnumOption.new(_INTL("Nature"), [_INTL(getNatureName(@natureList[0])), _INTL(getNatureName(@natureList[1]))], + ) + + options << EnumOption.new(_INTL("Nature"), [_INTL(getNatureName(@natureList[0])), _INTL(getNatureName(@natureList[1]))], proc { 0 }, proc { |value| @selectedNature=@natureList[value] }, [getNatureDescription(@natureList[0]), getNatureDescription(@natureList[1])] ) - ] return options end diff --git a/Data/Scripts/048_Fusion/PokemonFusion.rb b/Data/Scripts/048_Fusion/PokemonFusion.rb index f8d2a55c3..2801482c2 100644 --- a/Data/Scripts/048_Fusion/PokemonFusion.rb +++ b/Data/Scripts/048_Fusion/PokemonFusion.rb @@ -535,12 +535,10 @@ class PokemonFusionScene @sprites["rsprite2"] = PokemonSprite.new(@viewport) @sprites["rsprite3"] = PokemonSprite.new(@viewport) - @sprites["rsprite1"].setPokemonBitmapFromId(poke1_number, false,pokemon1.shiny?) - @sprites["rsprite3"].setPokemonBitmapFromId(poke2_number, false,pokemon2.shiny?) + @sprites["rsprite1"].setPokemonBitmapFromId(poke1_number, false, pokemon1.shiny?) + @sprites["rsprite3"].setPokemonBitmapFromId(poke2_number, false, pokemon2.shiny?) - - - @sprites["rsprite2"].setPokemonBitmapFromId(@newspecies, false, pokemon1.shiny? || pokemon2.shiny?,pokemon1.shiny?,pokemon2.shiny?) + @sprites["rsprite2"].setPokemonBitmapFromId(@newspecies, false, pokemon1.shiny? || pokemon2.shiny?, pokemon1.shiny?, pokemon2.shiny?) @sprites["rsprite1"].ox = @sprites["rsprite1"].bitmap.width / 2 @sprites["rsprite1"].oy = @sprites["rsprite1"].bitmap.height / 2 @@ -650,7 +648,7 @@ class PokemonFusionScene # Opens the fusion screen - def pbFusionScreen(cancancel = false, superSplicer = false, firstOptionSelected=false) + def pbFusionScreen(cancancel = false, superSplicer = false, firstOptionSelected = false) metaplayer1 = SpriteMetafilePlayer.new(@metafile1, @sprites["rsprite1"]) metaplayer2 = SpriteMetafilePlayer.new(@metafile2, @sprites["rsprite2"]) metaplayer3 = SpriteMetafilePlayer.new(@metafile3, @sprites["rsprite3"]) @@ -714,12 +712,12 @@ class PokemonFusionScene @pokemon1.exp_gained_since_fused = 0 if @pokemon2.shiny? - @pokemon1.head_shiny=true + @pokemon1.head_shiny = true end if @pokemon1.shiny? - @pokemon1.body_shiny=true + @pokemon1.body_shiny = true end - @pokemon1.debug_shiny=true if @pokemon1.debug_shiny || @pokemon2.debug_shiny + @pokemon1.debug_shiny = true if @pokemon1.debug_shiny || @pokemon2.debug_shiny setFusionIVs(superSplicer) #add to pokedex @@ -780,19 +778,23 @@ def clearUIForMoves end -def setAbilityAndNature(abilitiesList, naturesList) +#todo: find a better name for this method... +def setAbilityAndNatureAndNickname(abilitiesList, naturesList) clearUIForMoves - scene = FusionSelectOptionsScene.new(abilitiesList, naturesList) + scene = FusionSelectOptionsScene.new(abilitiesList, naturesList, @pokemon1, @pokemon2) screen = PokemonOptionScreen.new(scene) screen.pbStartScreen @pokemon1.ability = scene.selectedAbility @pokemon1.nature = scene.selectedNature + if scene.hasNickname + @pokemon1.name = scene.nickname + end end -def setFusionMoves(fusedPoke, poke2,selected2ndOption=false) +def setFusionMoves(fusedPoke, poke2, selected2ndOption = false) #NEW METHOD (not ready) # clearUIForMoves @@ -805,11 +807,10 @@ def setFusionMoves(fusedPoke, poke2,selected2ndOption=false) # # fusedPoke.moves=moves bodySpecies = getBodyID(fusedPoke) - headSpecies = getHeadID(fusedPoke,bodySpecies) + headSpecies = getHeadID(fusedPoke, bodySpecies) bodySpeciesName = GameData::Species.get(bodySpecies).real_name headSpeciesName = GameData::Species.get(headSpecies).real_name - choice = Kernel.pbMessage("What to do with the moveset?", [_INTL("Learn moves"), _INTL("Keep {1}'s moveset", bodySpeciesName), _INTL("Keep {1}'s moveset", headSpeciesName)], 0) if choice == 1 if selected2ndOption @@ -885,7 +886,7 @@ def pbChooseAbility(poke, hidden1 = false, hidden2 = false) availableNatures << @pokemon1.nature availableNatures << @pokemon2.nature - setAbilityAndNature([GameData::Ability.get(abID1), GameData::Ability.get(abID2)], availableNatures) + setAbilityAndNatureAndNickname([GameData::Ability.get(abID1), GameData::Ability.get(abID2)], availableNatures) # if (Kernel.pbMessage("Choose an ability. ???", [_INTL("{1}", ability1_name), _INTL("{1}", ability2_name)], 2)) == 0 # return abID1 #hidden1 ? 4 : 0 diff --git a/Data/Scripts/050_AddOns/WonderTrade_names.rb b/Data/Scripts/050_AddOns/WonderTrade_names.rb index 398274a1b..b7d01cea8 100644 --- a/Data/Scripts/050_AddOns/WonderTrade_names.rb +++ b/Data/Scripts/050_AddOns/WonderTrade_names.rb @@ -377,6 +377,7 @@ RandPokeNick = [ "password", "password123", "covid", + "McLovin", "covfefe", "admin", "God", diff --git a/Data/System.rxdata b/Data/System.rxdata index 81ea3c14d..3da320866 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ