mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
basic ui for new fusion move selection menu
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -184,6 +184,7 @@ end
|
|||||||
class Window_PokemonOption < Window_DrawableCommand
|
class Window_PokemonOption < Window_DrawableCommand
|
||||||
attr_reader :mustUpdateOptions
|
attr_reader :mustUpdateOptions
|
||||||
attr_reader :mustUpdateDescription
|
attr_reader :mustUpdateDescription
|
||||||
|
attr_reader :selected_position
|
||||||
|
|
||||||
def initialize(options, x, y, width, height)
|
def initialize(options, x, y, width, height)
|
||||||
@previous_Index=0
|
@previous_Index=0
|
||||||
@@ -195,6 +196,7 @@ class Window_PokemonOption < Window_DrawableCommand
|
|||||||
@optvalues = []
|
@optvalues = []
|
||||||
@mustUpdateOptions = false
|
@mustUpdateOptions = false
|
||||||
@mustUpdateDescription = false
|
@mustUpdateDescription = false
|
||||||
|
@selected_position=0
|
||||||
for i in 0...@options.length
|
for i in 0...@options.length
|
||||||
@optvalues[i] = 0
|
@optvalues[i] = 0
|
||||||
end
|
end
|
||||||
@@ -300,12 +302,16 @@ class Window_PokemonOption < Window_DrawableCommand
|
|||||||
if self.active && self.index < @options.length
|
if self.active && self.index < @options.length
|
||||||
if Input.repeat?(Input::LEFT)
|
if Input.repeat?(Input::LEFT)
|
||||||
self[self.index] = @options[self.index].prev(self[self.index])
|
self[self.index] = @options[self.index].prev(self[self.index])
|
||||||
dorefresh = true
|
dorefresh =
|
||||||
|
@selected_position=self[self.index]
|
||||||
@mustUpdateOptions = true
|
@mustUpdateOptions = true
|
||||||
|
@mustUpdateDescription=true
|
||||||
elsif Input.repeat?(Input::RIGHT)
|
elsif Input.repeat?(Input::RIGHT)
|
||||||
self[self.index] = @options[self.index].next(self[self.index])
|
self[self.index] = @options[self.index].next(self[self.index])
|
||||||
dorefresh = true
|
dorefresh = true
|
||||||
|
@selected_position=self[self.index]
|
||||||
@mustUpdateOptions = true
|
@mustUpdateOptions = true
|
||||||
|
@mustUpdateDescription=true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
refresh if dorefresh
|
refresh if dorefresh
|
||||||
@@ -359,10 +365,23 @@ class PokemonOption_Scene
|
|||||||
pbDeactivateWindows(@sprites)
|
pbDeactivateWindows(@sprites)
|
||||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def updateDescription(index)
|
def updateDescription(index)
|
||||||
index=0 if !index
|
index=0 if !index
|
||||||
begin
|
begin
|
||||||
new_description = @PokemonOptions[index].description
|
horizontal_position = @sprites["option"].selected_position
|
||||||
|
optionDescription = @PokemonOptions[index].description
|
||||||
|
if optionDescription.is_a?(Array)
|
||||||
|
if horizontal_position < optionDescription.size
|
||||||
|
new_description = optionDescription[horizontal_position]
|
||||||
|
else
|
||||||
|
new_description = getDefaultDescription
|
||||||
|
end
|
||||||
|
else
|
||||||
|
new_description = optionDescription
|
||||||
|
end
|
||||||
|
|
||||||
new_description = getDefaultDescription if new_description == ""
|
new_description = getDefaultDescription if new_description == ""
|
||||||
@sprites["textbox"].text = _INTL(new_description)
|
@sprites["textbox"].text = _INTL(new_description)
|
||||||
rescue
|
rescue
|
||||||
@@ -459,13 +478,15 @@ class PokemonOption_Scene
|
|||||||
options << EnumOption.new(_INTL("Battle Style"), [_INTL("Switch"), _INTL("Set")],
|
options << EnumOption.new(_INTL("Battle Style"), [_INTL("Switch"), _INTL("Set")],
|
||||||
proc { $PokemonSystem.battlestyle },
|
proc { $PokemonSystem.battlestyle },
|
||||||
proc { |value| $PokemonSystem.battlestyle = value },
|
proc { |value| $PokemonSystem.battlestyle = value },
|
||||||
"Prompts to switch Pokémon before the opponent sends out the next one"
|
["Prompts to switch Pokémon before the opponent sends out the next one",
|
||||||
|
"No prompt to switch Pokémon before the opponent sends the next one"]
|
||||||
)
|
)
|
||||||
|
|
||||||
options << EnumOption.new(_INTL("Default Movement"), [_INTL("Walking"), _INTL("Running")],
|
options << EnumOption.new(_INTL("Default Movement"), [_INTL("Walking"), _INTL("Running")],
|
||||||
proc { $PokemonSystem.runstyle },
|
proc { $PokemonSystem.runstyle },
|
||||||
proc { |value| $PokemonSystem.runstyle = value },
|
proc { |value| $PokemonSystem.runstyle = value },
|
||||||
"Sets the movements when not holding the Run key"
|
["Default to walking when not holding the Run key",
|
||||||
|
"Default to running when not holding the Run key"]
|
||||||
)
|
)
|
||||||
|
|
||||||
options << NumberOption.new(_INTL("Speech Frame"), 1, Settings::SPEECH_WINDOWSKINS.length,
|
options << NumberOption.new(_INTL("Speech Frame"), 1, Settings::SPEECH_WINDOWSKINS.length,
|
||||||
@@ -485,7 +506,8 @@ class PokemonOption_Scene
|
|||||||
options << EnumOption.new(_INTL("Text Entry"), [_INTL("Cursor"), _INTL("Keyboard")],
|
options << EnumOption.new(_INTL("Text Entry"), [_INTL("Cursor"), _INTL("Keyboard")],
|
||||||
proc { $PokemonSystem.textinput },
|
proc { $PokemonSystem.textinput },
|
||||||
proc { |value| $PokemonSystem.textinput = value },
|
proc { |value| $PokemonSystem.textinput = value },
|
||||||
"Enter text by selecting letters or by typing on the keyboard"
|
["Enter text by selecting letters on the screen",
|
||||||
|
"Enter text by typing on the keyboard"]
|
||||||
)
|
)
|
||||||
EnumOption.new(_INTL("Screen Size"), [_INTL("S"), _INTL("M"), _INTL("L"), _INTL("XL"), _INTL("Full")],
|
EnumOption.new(_INTL("Screen Size"), [_INTL("S"), _INTL("M"), _INTL("L"), _INTL("XL"), _INTL("Full")],
|
||||||
proc { [$PokemonSystem.screensize, 4].min },
|
proc { [$PokemonSystem.screensize, 4].min },
|
||||||
|
|||||||
164
Data/Scripts/048_Fusion/FusionMovesMenu.rb
Normal file
164
Data/Scripts/048_Fusion/FusionMovesMenu.rb
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
class FusionMovesOptionsScene < PokemonOption_Scene
|
||||||
|
|
||||||
|
def initialize(poke1, poke2)
|
||||||
|
@poke1 = poke1
|
||||||
|
@poke2 = poke2
|
||||||
|
|
||||||
|
@move1 = nil
|
||||||
|
@move2 = nil
|
||||||
|
@move3 = nil
|
||||||
|
@move4 = nil
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbStartScene(inloadscreen = false)
|
||||||
|
super
|
||||||
|
@typebitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
|
||||||
|
@sprites["overlay"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||||
|
@sprites["overlay"].z = 9999
|
||||||
|
pbSetSystemFont(@sprites["overlay"].bitmap)
|
||||||
|
|
||||||
|
@sprites["option"].nameBaseColor = Color.new(35, 130, 200)
|
||||||
|
@sprites["option"].nameShadowColor = Color.new(20, 75, 115)
|
||||||
|
@changedColor = true
|
||||||
|
for i in 0...@PokemonOptions.length
|
||||||
|
@sprites["option"][i] = (@PokemonOptions[i].get || 0)
|
||||||
|
end
|
||||||
|
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
|
||||||
|
_INTL("Select moves"), 0, 0, Graphics.width, 64, @viewport)
|
||||||
|
@sprites["textbox"].text = _INTL("Select moves")
|
||||||
|
|
||||||
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||||
|
end
|
||||||
|
|
||||||
|
def draw_move_info(pokemonMove)
|
||||||
|
move = GameData::Move.get(pokemonMove.id)
|
||||||
|
|
||||||
|
move_base_color = Color.new(50, 40, 230)
|
||||||
|
move_base_shadow = Color.new(14, 14, 114)
|
||||||
|
|
||||||
|
label_base_color = Color.new(248, 248, 248)
|
||||||
|
label_shadow_color = Color.new(104, 104, 104)
|
||||||
|
|
||||||
|
value_base_color = Color.new(248, 248, 248)
|
||||||
|
value_shadow_color = Color.new(104, 104, 104)
|
||||||
|
|
||||||
|
@sprites["title"].text = _INTL("{1}", move.real_name)
|
||||||
|
|
||||||
|
damage = move.base_damage == 0 ? "-" : move.base_damage.to_s
|
||||||
|
accuracy = move.accuracy == 0 ? "100" : move.accuracy.to_s
|
||||||
|
|
||||||
|
textpos = [
|
||||||
|
[_INTL("Type"), 20, 84, 0, label_base_color, label_shadow_color],
|
||||||
|
[_INTL("Category"), 20, 116, 0, label_base_color, label_shadow_color],
|
||||||
|
|
||||||
|
[_INTL("Power"), 20, 148, 0, label_base_color, label_shadow_color],
|
||||||
|
[_INTL("{1}", damage), 140, 148, 0, value_base_color, value_shadow_color],
|
||||||
|
|
||||||
|
[_INTL("Accuracy"), 20, 180, 0, label_base_color, label_shadow_color],
|
||||||
|
[_INTL("{1}%", accuracy), 140, 180, 0, value_base_color, value_shadow_color],
|
||||||
|
|
||||||
|
[_INTL("PP"), 20, 212, 0, label_base_color, label_shadow_color], #move.total_pp
|
||||||
|
[_INTL("{1}", move.total_pp.to_s), 140, 212, 0, value_base_color, value_shadow_color] #move.total_pp
|
||||||
|
|
||||||
|
]
|
||||||
|
imagepos = []
|
||||||
|
|
||||||
|
yPos = 90
|
||||||
|
type_number = GameData::Type.get(move.type).id_number
|
||||||
|
category = move.category
|
||||||
|
imagepos.push(["Graphics/Pictures/types", 120, 94, 0, type_number * 28, 64, 28]) #248
|
||||||
|
imagepos.push(["Graphics/Pictures/category", 120, 124, 0, category * 28, 64, 28])
|
||||||
|
|
||||||
|
@sprites["overlay"].bitmap.clear
|
||||||
|
pbDrawTextPositions(@sprites["overlay"].bitmap, textpos)
|
||||||
|
pbDrawImagePositions(@sprites["overlay"].bitmap, imagepos)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def draw_pokemon_type
|
||||||
|
type1_number = GameData::Type.get(@poke1.type1).id_number
|
||||||
|
type2_number = GameData::Type.get(@poke1.type2).id_number
|
||||||
|
type1rect = Rect.new(0, type1_number * 28, 64, 28)
|
||||||
|
type2rect = Rect.new(0, type2_number * 28, 64, 28)
|
||||||
|
if @poke1.type1 == @poke1.type2
|
||||||
|
overlay.blt(130, 78, @typebitmap.bitmap, type1rect)
|
||||||
|
else
|
||||||
|
overlay.blt(96, 78, @typebitmap.bitmap, type1rect)
|
||||||
|
overlay.blt(166, 78, @typebitmap.bitmap, type2rect)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def updateDescription(index)
|
||||||
|
index = 0 if !index
|
||||||
|
begin
|
||||||
|
move = getMoveForIndex(index)
|
||||||
|
draw_move_info(move)
|
||||||
|
new_description = getMoveDescription(move)
|
||||||
|
@sprites["textbox"].text = _INTL(new_description)
|
||||||
|
rescue
|
||||||
|
@sprites["textbox"].text = getDefaultDescription
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def getMoveForIndex(index)
|
||||||
|
case index
|
||||||
|
when 0
|
||||||
|
return @move1
|
||||||
|
when 1
|
||||||
|
return @move2
|
||||||
|
when 2
|
||||||
|
return @move3
|
||||||
|
when 3
|
||||||
|
return @move4
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbFadeInAndShow(sprites, visiblesprites = nil)
|
||||||
|
return if !@changedColor
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def getMoveName(move)
|
||||||
|
return "" if !@sprites["option"] && !move
|
||||||
|
move = @poke1.moves[@sprites["option"].index] if !move
|
||||||
|
return GameData::Move.get(move.id).real_name
|
||||||
|
end
|
||||||
|
|
||||||
|
def getMoveDescription(move)
|
||||||
|
return "" if !@sprites["option"] && !move
|
||||||
|
move = @poke1.moves[@sprites["option"].index] if !move
|
||||||
|
return GameData::Move.get(move.id).real_description
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbGetOptions(inloadscreen = false)
|
||||||
|
options = [
|
||||||
|
EnumOption.new(_INTL(""), [_INTL(getMoveName(@poke1.moves[0])), _INTL(getMoveName(@poke2.moves[0]))],
|
||||||
|
proc { 0 },
|
||||||
|
proc { |value|
|
||||||
|
@move1 = value == 1 ? @poke1.moves[0] : @poke2.moves[0]
|
||||||
|
}, [getMoveDescription(@poke1.moves[0]), getMoveDescription(@poke2.moves[0])]
|
||||||
|
),
|
||||||
|
EnumOption.new(_INTL(""), [_INTL(getMoveName(@poke1.moves[1])), _INTL(getMoveName(@poke2.moves[1]))],
|
||||||
|
proc { 0 },
|
||||||
|
proc { |value|
|
||||||
|
@move2 = value == 1 ? @poke1.moves[1] : @poke2.moves[1]
|
||||||
|
}, [getMoveDescription(@poke1.moves[1]), getMoveDescription(@poke2.moves[1])]
|
||||||
|
),
|
||||||
|
EnumOption.new(_INTL(""), [_INTL(getMoveName(@poke1.moves[2])), _INTL(getMoveName(@poke2.moves[2]))],
|
||||||
|
proc { 0 },
|
||||||
|
proc { |value|
|
||||||
|
@move3 = value == 1 ? @poke1.moves[2] : @poke2.moves[2]
|
||||||
|
}, [getMoveDescription(@poke1.moves[2]), getMoveDescription(@poke2.moves[2])]
|
||||||
|
),
|
||||||
|
EnumOption.new(_INTL(""), [_INTL(getMoveName(@poke1.moves[3])), _INTL(getMoveName(@poke2.moves[3]))],
|
||||||
|
proc { 0 },
|
||||||
|
proc { |value|
|
||||||
|
@move4 = value == 1 ? @poke1.moves[3] : @poke2.moves[3]
|
||||||
|
}, [getMoveDescription(@poke1.moves[3]), getMoveDescription(@poke2.moves[3])]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
return options
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -747,21 +747,27 @@ class PokemonFusionScene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def setFusionMoves(fusedPoke, poke2)
|
def setFusionMoves(fusedPoke, poke2)
|
||||||
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)
|
pbFadeOutIn {
|
||||||
if choice == 1
|
scene = FusionMovesOptionsScene.new(fusedPoke,poke2)
|
||||||
return
|
screen = PokemonOptionScreen.new(scene)
|
||||||
elsif choice == 2
|
screen.pbStartScreen
|
||||||
fusedPoke.moves = poke2.moves
|
}
|
||||||
return
|
|
||||||
else
|
# 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)
|
||||||
#Learn moves
|
# if choice == 1
|
||||||
movelist = poke2.moves
|
# return
|
||||||
for move in movelist
|
# elsif choice == 2
|
||||||
if move.id != 0
|
# fusedPoke.moves = poke2.moves
|
||||||
pbLearnMove(fusedPoke, move.id, true, false, true)
|
# return
|
||||||
end
|
# else
|
||||||
end
|
# #Learn moves
|
||||||
end
|
# movelist = poke2.moves
|
||||||
|
# for move in movelist
|
||||||
|
# if move.id != 0
|
||||||
|
# pbLearnMove(fusedPoke, move.id, true, false, true)
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
def setPokemonLevel(pokemon1, pokemon2, superSplicers)
|
def setPokemonLevel(pokemon1, pokemon2, superSplicers)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user