mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
116 lines
3.4 KiB
Ruby
116 lines
3.4 KiB
Ruby
class FusionSelectOptionsScene < PokemonOption_Scene
|
|
attr_accessor :selectedAbility
|
|
attr_accessor :selectedNature
|
|
attr_accessor :hasNickname
|
|
attr_accessor :nickname
|
|
|
|
|
|
def initialize(abilityList,natureList, pokemon1, pokemon2)
|
|
@abilityList = abilityList
|
|
@natureList = natureList
|
|
@selectedAbility=nil
|
|
@selectedNature=nil
|
|
@selBaseColor = Color.new(48,96,216)
|
|
@selShadowColor = Color.new(32,32,32)
|
|
@show_frame=false
|
|
@hasNickname = false
|
|
@nickname = nil
|
|
|
|
@pokemon1=pokemon1
|
|
@pokemon2=pokemon2
|
|
end
|
|
|
|
|
|
def initUIElements
|
|
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
|
|
_INTL("Select your Pokémon's ability and nature"), 0, 0, Graphics.width, 64, @viewport)
|
|
@sprites["textbox"] = pbCreateMessageWindow
|
|
@sprites["textbox"].letterbyletter = false
|
|
pbSetSystemFont(@sprites["textbox"].contents)
|
|
@sprites["title"].opacity=0
|
|
end
|
|
|
|
def pbStartScene(inloadscreen = nil)
|
|
super
|
|
@sprites["option"].opacity=0
|
|
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 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
|
|
|
|
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])]
|
|
)
|
|
|
|
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
|
|
|
|
|
|
def isConfirmedOnKeyPress
|
|
return true
|
|
end
|
|
|
|
end
|
|
|