Nickname in fusion menu

This commit is contained in:
infinitefusion
2022-11-05 22:54:43 -04:00
parent e59254af3c
commit 55786e28fa
6 changed files with 65 additions and 25 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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