fusion menu

This commit is contained in:
infinitefusion
2022-07-20 16:08:02 -04:00
parent f79c95a4cf
commit fa80d2cd7c
5 changed files with 107 additions and 25 deletions

View File

@@ -0,0 +1,70 @@
class FusionSelectOptionsScene < PokemonOption_Scene
attr_accessor :selectedAbility
attr_accessor :selectedNature
def initialize(abilityList,natureList)
@abilityList = abilityList
@natureList = natureList
@selectedAbility=nil
@selectedNature=nil
@selBaseColor = Color.new(48,96,216)
@selShadowColor = Color.new(32,32,32)
end
def initUIElements
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
_INTL(""), 0, 0, Graphics.width, 64, @viewport)
@sprites["textbox"] = pbCreateMessageWindow
@sprites["textbox"].letterbyletter = false
pbSetSystemFont(@sprites["textbox"].contents)
end
def getAbilityName(ability)
return GameData::Ability.get(ability.id).real_name
end
def getAbilityDescription(ability)
return GameData::Ability.get(ability.id).real_description
end
def getNatureName(nature)
return GameData::Nature.get(nature.id).real_name
end
def getNatureDescription(nature)
change= GameData::Nature.get(nature.id).stat_changes
return "Neutral nature" if change.empty?
positiveChange = change[0]
negativeChange = change[1]
return _INTL("+ {1}\n- {2}",GameData::Stat.get(positiveChange[0]).name,GameData::Stat.get(negativeChange[0]).name)
end
def pbGetOptions(inloadscreen = false)
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]))],
proc { 0 },
proc { |value|
@selectedNature=@natureList[value]
}, [getNatureDescription(@natureList[0]), getNatureDescription(@natureList[1])]
)
]
return options
end
def isConfirmedOnKeyPress
return true
end
end

View File

@@ -712,6 +712,8 @@ class PokemonFusionScene
#change species
@pokemon1.species = newSpecies
#@pokemon1.ability = pbChooseAbility(@pokemon1, hiddenAbility1, hiddenAbility2)
pbChooseAbility(@pokemon1, hiddenAbility1, hiddenAbility2)
setFusionMoves(@pokemon1, @pokemon2) if !noMoves
# if superSplicer
@@ -755,6 +757,8 @@ def clearUIForMoves
end
def setAbilityAndNature(abilitiesList, naturesList)
clearUIForMoves
scene = FusionSelectOptionsScene.new(abilitiesList,naturesList)
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
@@ -765,35 +769,43 @@ def setAbilityAndNature(abilitiesList, naturesList)
end
def setFusionMoves(fusedPoke, poke2)
clearUIForMoves
#NEW METHOD (not ready)
moves=fusedPoke.moves
scene = FusionMovesOptionsScene.new(fusedPoke,poke2)
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
moves =[scene.move1,scene.move2,scene.move3,scene.move3]
# clearUIForMoves
#
# moves=fusedPoke.moves
# scene = FusionMovesOptionsScene.new(fusedPoke,poke2)
# screen = PokemonOptionScreen.new(scene)
# screen.pbStartScreen
# moves =[scene.move1,scene.move2,scene.move3,scene.move3]
#
# fusedPoke.moves=moves
fusedPoke.moves=moves
# choice = Kernel.pbMessage("What to do with the moveset?", [_INTL("Learn moves"), _INTL("Keep {1}'s moveset", fusedPoke.name), _INTL("Keep {1}'s moveset", poke2.name)], 0)
# if choice == 1
# return
# elsif choice == 2
# fusedPoke.moves = poke2.moves
# return
# else
# #Learn moves
# movelist = poke2.moves
# for move in movelist
# if move.id != 0
# pbLearnMove(fusedPoke, move.id, true, false, true)
# end
# end
# end
choice = Kernel.pbMessage("What to do with the moveset?", [_INTL("Learn moves"), _INTL("Keep {1}'s moveset", fusedPoke.name), _INTL("Keep {1}'s moveset", poke2.name)], 0)
if choice == 1
return
elsif choice == 2
fusedPoke.moves = poke2.moves
return
else
#Learn moves
movelist = poke2.moves
for move in movelist
if move.id != 0
pbLearnMove(fusedPoke, move.id, true, false, true)
end
end
end
end
def setPokemonLevel(pokemon1, pokemon2, superSplicers)
lv1 = @pokemon1.level
lv2 = @pokemon2.level
return calculateFusedPokemonLevel(lv1,lv2,superSplicers)
end
def calculateFusedPokemonLevel(lv1, lv2, superSplicers)
if superSplicers
if lv1 > lv2
return lv1