mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
pokemon cries
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -61,9 +61,9 @@ module GameData
|
|||||||
return nil if !species || !form
|
return nil if !species || !form
|
||||||
validate species => [Symbol, self, String, Integer]
|
validate species => [Symbol, self, String, Integer]
|
||||||
validate form => Integer
|
validate form => Integer
|
||||||
# if other.is_a?(Integer)
|
# if other.is_a?(Integer)
|
||||||
# p "Please switch to symbols, thanks."
|
# p "Please switch to symbols, thanks."
|
||||||
# end
|
# end
|
||||||
species = species.species if species.is_a?(self)
|
species = species.species if species.is_a?(self)
|
||||||
species = DATA[species].species if species.is_a?(Integer)
|
species = DATA[species].species if species.is_a?(Integer)
|
||||||
species = species.to_sym if species.is_a?(String)
|
species = species.to_sym if species.is_a?(String)
|
||||||
@@ -74,110 +74,110 @@ module GameData
|
|||||||
|
|
||||||
def self.schema(compiling_forms = false)
|
def self.schema(compiling_forms = false)
|
||||||
ret = {
|
ret = {
|
||||||
"FormName" => [0, "q"],
|
"FormName" => [0, "q"],
|
||||||
"Kind" => [0, "s"],
|
"Kind" => [0, "s"],
|
||||||
"Pokedex" => [0, "q"],
|
"Pokedex" => [0, "q"],
|
||||||
"Type1" => [0, "e", :Type],
|
"Type1" => [0, "e", :Type],
|
||||||
"Type2" => [0, "e", :Type],
|
"Type2" => [0, "e", :Type],
|
||||||
"BaseStats" => [0, "vvvvvv"],
|
"BaseStats" => [0, "vvvvvv"],
|
||||||
"EffortPoints" => [0, "uuuuuu"],
|
"EffortPoints" => [0, "uuuuuu"],
|
||||||
"BaseEXP" => [0, "v"],
|
"BaseEXP" => [0, "v"],
|
||||||
"Rareness" => [0, "u"],
|
"Rareness" => [0, "u"],
|
||||||
"Happiness" => [0, "u"],
|
"Happiness" => [0, "u"],
|
||||||
"Moves" => [0, "*ue", nil, :Move],
|
"Moves" => [0, "*ue", nil, :Move],
|
||||||
"TutorMoves" => [0, "*e", :Move],
|
"TutorMoves" => [0, "*e", :Move],
|
||||||
"EggMoves" => [0, "*e", :Move],
|
"EggMoves" => [0, "*e", :Move],
|
||||||
"Abilities" => [0, "*e", :Ability],
|
"Abilities" => [0, "*e", :Ability],
|
||||||
"HiddenAbility" => [0, "*e", :Ability],
|
"HiddenAbility" => [0, "*e", :Ability],
|
||||||
"WildItemCommon" => [0, "e", :Item],
|
"WildItemCommon" => [0, "e", :Item],
|
||||||
"WildItemUncommon" => [0, "e", :Item],
|
"WildItemUncommon" => [0, "e", :Item],
|
||||||
"WildItemRare" => [0, "e", :Item],
|
"WildItemRare" => [0, "e", :Item],
|
||||||
"Compatibility" => [0, "*e", :EggGroup],
|
"Compatibility" => [0, "*e", :EggGroup],
|
||||||
"StepsToHatch" => [0, "v"],
|
"StepsToHatch" => [0, "v"],
|
||||||
"Height" => [0, "f"],
|
"Height" => [0, "f"],
|
||||||
"Weight" => [0, "f"],
|
"Weight" => [0, "f"],
|
||||||
"Color" => [0, "e", :BodyColor],
|
"Color" => [0, "e", :BodyColor],
|
||||||
"Shape" => [0, "y", :BodyShape],
|
"Shape" => [0, "y", :BodyShape],
|
||||||
"Habitat" => [0, "e", :Habitat],
|
"Habitat" => [0, "e", :Habitat],
|
||||||
"Generation" => [0, "i"],
|
"Generation" => [0, "i"],
|
||||||
"BattlerPlayerX" => [0, "i"],
|
"BattlerPlayerX" => [0, "i"],
|
||||||
"BattlerPlayerY" => [0, "i"],
|
"BattlerPlayerY" => [0, "i"],
|
||||||
"BattlerEnemyX" => [0, "i"],
|
"BattlerEnemyX" => [0, "i"],
|
||||||
"BattlerEnemyY" => [0, "i"],
|
"BattlerEnemyY" => [0, "i"],
|
||||||
"BattlerAltitude" => [0, "i"],
|
"BattlerAltitude" => [0, "i"],
|
||||||
"BattlerShadowX" => [0, "i"],
|
"BattlerShadowX" => [0, "i"],
|
||||||
"BattlerShadowSize" => [0, "u"]
|
"BattlerShadowSize" => [0, "u"]
|
||||||
}
|
}
|
||||||
if compiling_forms
|
if compiling_forms
|
||||||
ret["PokedexForm"] = [0, "u"]
|
ret["PokedexForm"] = [0, "u"]
|
||||||
ret["Evolutions"] = [0, "*ees", :Species, :Evolution, nil]
|
ret["Evolutions"] = [0, "*ees", :Species, :Evolution, nil]
|
||||||
ret["MegaStone"] = [0, "e", :Item]
|
ret["MegaStone"] = [0, "e", :Item]
|
||||||
ret["MegaMove"] = [0, "e", :Move]
|
ret["MegaMove"] = [0, "e", :Move]
|
||||||
ret["UnmegaForm"] = [0, "u"]
|
ret["UnmegaForm"] = [0, "u"]
|
||||||
ret["MegaMessage"] = [0, "u"]
|
ret["MegaMessage"] = [0, "u"]
|
||||||
else
|
else
|
||||||
ret["InternalName"] = [0, "n"]
|
ret["InternalName"] = [0, "n"]
|
||||||
ret["Name"] = [0, "s"]
|
ret["Name"] = [0, "s"]
|
||||||
ret["GrowthRate"] = [0, "e", :GrowthRate]
|
ret["GrowthRate"] = [0, "e", :GrowthRate]
|
||||||
ret["GenderRate"] = [0, "e", :GenderRatio]
|
ret["GenderRate"] = [0, "e", :GenderRatio]
|
||||||
ret["Incense"] = [0, "e", :Item]
|
ret["Incense"] = [0, "e", :Item]
|
||||||
ret["Evolutions"] = [0, "*ses", nil, :Evolution, nil]
|
ret["Evolutions"] = [0, "*ses", nil, :Evolution, nil]
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(hash)
|
def initialize(hash)
|
||||||
@id = hash[:id]
|
@id = hash[:id]
|
||||||
@id_number = hash[:id_number] || -1
|
@id_number = hash[:id_number] || -1
|
||||||
@species = hash[:species] || @id
|
@species = hash[:species] || @id
|
||||||
@form = hash[:form] || 0
|
@form = hash[:form] || 0
|
||||||
@real_name = hash[:name] || "Unnamed"
|
@real_name = hash[:name] || "Unnamed"
|
||||||
@real_form_name = hash[:form_name]
|
@real_form_name = hash[:form_name]
|
||||||
@real_category = hash[:category] || "???"
|
@real_category = hash[:category] || "???"
|
||||||
@real_pokedex_entry = hash[:pokedex_entry] || "???"
|
@real_pokedex_entry = hash[:pokedex_entry] || "???"
|
||||||
@pokedex_form = hash[:pokedex_form] || @form
|
@pokedex_form = hash[:pokedex_form] || @form
|
||||||
@type1 = hash[:type1] || :NORMAL
|
@type1 = hash[:type1] || :NORMAL
|
||||||
@type2 = hash[:type2] || @type1
|
@type2 = hash[:type2] || @type1
|
||||||
@base_stats = hash[:base_stats] || {}
|
@base_stats = hash[:base_stats] || {}
|
||||||
@evs = hash[:evs] || {}
|
@evs = hash[:evs] || {}
|
||||||
GameData::Stat.each_main do |s|
|
GameData::Stat.each_main do |s|
|
||||||
@base_stats[s.id] = 1 if !@base_stats[s.id] || @base_stats[s.id] <= 0
|
@base_stats[s.id] = 1 if !@base_stats[s.id] || @base_stats[s.id] <= 0
|
||||||
@evs[s.id] = 0 if !@evs[s.id] || @evs[s.id] < 0
|
@evs[s.id] = 0 if !@evs[s.id] || @evs[s.id] < 0
|
||||||
end
|
end
|
||||||
@base_exp = hash[:base_exp] || 100
|
@base_exp = hash[:base_exp] || 100
|
||||||
@growth_rate = hash[:growth_rate] || :Medium
|
@growth_rate = hash[:growth_rate] || :Medium
|
||||||
@gender_ratio = hash[:gender_ratio] || :Female50Percent
|
@gender_ratio = hash[:gender_ratio] || :Female50Percent
|
||||||
@catch_rate = hash[:catch_rate] || 255
|
@catch_rate = hash[:catch_rate] || 255
|
||||||
@happiness = hash[:happiness] || 70
|
@happiness = hash[:happiness] || 70
|
||||||
@moves = hash[:moves] || []
|
@moves = hash[:moves] || []
|
||||||
@tutor_moves = hash[:tutor_moves] || []
|
@tutor_moves = hash[:tutor_moves] || []
|
||||||
@egg_moves = hash[:egg_moves] || []
|
@egg_moves = hash[:egg_moves] || []
|
||||||
@abilities = hash[:abilities] || []
|
@abilities = hash[:abilities] || []
|
||||||
@hidden_abilities = hash[:hidden_abilities] || []
|
@hidden_abilities = hash[:hidden_abilities] || []
|
||||||
@wild_item_common = hash[:wild_item_common]
|
@wild_item_common = hash[:wild_item_common]
|
||||||
@wild_item_uncommon = hash[:wild_item_uncommon]
|
@wild_item_uncommon = hash[:wild_item_uncommon]
|
||||||
@wild_item_rare = hash[:wild_item_rare]
|
@wild_item_rare = hash[:wild_item_rare]
|
||||||
@egg_groups = hash[:egg_groups] || [:Undiscovered]
|
@egg_groups = hash[:egg_groups] || [:Undiscovered]
|
||||||
@hatch_steps = hash[:hatch_steps] || 1
|
@hatch_steps = hash[:hatch_steps] || 1
|
||||||
@incense = hash[:incense]
|
@incense = hash[:incense]
|
||||||
@evolutions = hash[:evolutions] || []
|
@evolutions = hash[:evolutions] || []
|
||||||
@height = hash[:height] || 1
|
@height = hash[:height] || 1
|
||||||
@weight = hash[:weight] || 1
|
@weight = hash[:weight] || 1
|
||||||
@color = hash[:color] || :Red
|
@color = hash[:color] || :Red
|
||||||
@shape = hash[:shape] || :Head
|
@shape = hash[:shape] || :Head
|
||||||
@habitat = hash[:habitat] || :None
|
@habitat = hash[:habitat] || :None
|
||||||
@generation = hash[:generation] || 0
|
@generation = hash[:generation] || 0
|
||||||
@mega_stone = hash[:mega_stone]
|
@mega_stone = hash[:mega_stone]
|
||||||
@mega_move = hash[:mega_move]
|
@mega_move = hash[:mega_move]
|
||||||
@unmega_form = hash[:unmega_form] || 0
|
@unmega_form = hash[:unmega_form] || 0
|
||||||
@mega_message = hash[:mega_message] || 0
|
@mega_message = hash[:mega_message] || 0
|
||||||
@back_sprite_x = hash[:back_sprite_x] || 0
|
@back_sprite_x = hash[:back_sprite_x] || 0
|
||||||
@back_sprite_y = hash[:back_sprite_y] || 0
|
@back_sprite_y = hash[:back_sprite_y] || 0
|
||||||
@front_sprite_x = hash[:front_sprite_x] || 0
|
@front_sprite_x = hash[:front_sprite_x] || 0
|
||||||
@front_sprite_y = hash[:front_sprite_y] || 0
|
@front_sprite_y = hash[:front_sprite_y] || 0
|
||||||
@front_sprite_altitude = hash[:front_sprite_altitude] || 0
|
@front_sprite_altitude = hash[:front_sprite_altitude] || 0
|
||||||
@shadow_x = hash[:shadow_x] || 0
|
@shadow_x = hash[:shadow_x] || 0
|
||||||
@shadow_size = hash[:shadow_size] || 2
|
@shadow_size = hash[:shadow_size] || 2
|
||||||
end
|
end
|
||||||
|
|
||||||
# @return [String] the translated name of this species
|
# @return [String] the translated name of this species
|
||||||
@@ -200,16 +200,21 @@ module GameData
|
|||||||
return pbGetMessage(MessageTypes::Entries, @id_number)
|
return pbGetMessage(MessageTypes::Entries, @id_number)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def is_fusion
|
||||||
|
return @id_number > Settings::NB_POKEMON
|
||||||
|
end
|
||||||
|
|
||||||
def apply_metrics_to_sprite(sprite, index, shadow = false)
|
def apply_metrics_to_sprite(sprite, index, shadow = false)
|
||||||
if shadow
|
if shadow
|
||||||
if (index & 1) == 1 # Foe Pokémon
|
if (index & 1) == 1 # Foe Pokémon
|
||||||
sprite.x += @shadow_x * 2
|
sprite.x += @shadow_x * 2
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if (index & 1) == 0 # Player's Pokémon
|
if (index & 1) == 0 # Player's Pokémon
|
||||||
sprite.x += @back_sprite_x * 2
|
sprite.x += @back_sprite_x * 2
|
||||||
sprite.y += (@back_sprite_y * 2) + Settings::BACKSPRITE_POSITION_OFFSET
|
sprite.y += (@back_sprite_y * 2) + Settings::BACKSPRITE_POSITION_OFFSET
|
||||||
else # Foe Pokémon
|
else
|
||||||
|
# Foe Pokémon
|
||||||
sprite.x += @front_sprite_x * 2
|
sprite.x += @front_sprite_x * 2
|
||||||
sprite.y += (@front_sprite_y * 2) + Settings::FRONTSPRITE_POSITION_OFFSET
|
sprite.y += (@front_sprite_y * 2) + Settings::FRONTSPRITE_POSITION_OFFSET
|
||||||
sprite.y -= @front_sprite_altitude * 2
|
sprite.y -= @front_sprite_altitude * 2
|
||||||
@@ -219,15 +224,15 @@ module GameData
|
|||||||
|
|
||||||
def shows_shadow?
|
def shows_shadow?
|
||||||
return true
|
return true
|
||||||
# return @front_sprite_altitude > 0
|
# return @front_sprite_altitude > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_evolutions(exclude_invalid = false)
|
def get_evolutions(exclude_invalid = false)
|
||||||
ret = []
|
ret = []
|
||||||
@evolutions.each do |evo|
|
@evolutions.each do |evo|
|
||||||
next if evo[3] # Is the prevolution
|
next if evo[3] # Is the prevolution
|
||||||
next if evo[1] == :None && exclude_invalid
|
next if evo[1] == :None && exclude_invalid
|
||||||
ret.push([evo[0], evo[1], evo[2]]) # [Species, method, parameter]
|
ret.push([evo[0], evo[1], evo[2]]) # [Species, method, parameter]
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
@@ -237,7 +242,7 @@ module GameData
|
|||||||
evos = evos.sort { |a, b| GameData::Species.get(a[0]).id_number <=> GameData::Species.get(b[0]).id_number }
|
evos = evos.sort { |a, b| GameData::Species.get(a[0]).id_number <=> GameData::Species.get(b[0]).id_number }
|
||||||
ret = []
|
ret = []
|
||||||
evos.each do |evo|
|
evos.each do |evo|
|
||||||
ret.push([@species].concat(evo)) # [Prevo species, evo species, method, parameter]
|
ret.push([@species].concat(evo)) # [Prevo species, evo species, method, parameter]
|
||||||
evo_array = GameData::Species.get(evo[0]).get_family_evolutions(exclude_invalid)
|
evo_array = GameData::Species.get(evo[0]).get_family_evolutions(exclude_invalid)
|
||||||
ret.concat(evo_array) if evo_array && evo_array.length > 0
|
ret.concat(evo_array) if evo_array && evo_array.length > 0
|
||||||
end
|
end
|
||||||
@@ -246,7 +251,7 @@ module GameData
|
|||||||
|
|
||||||
def get_previous_species
|
def get_previous_species
|
||||||
return @species if @evolutions.length == 0
|
return @species if @evolutions.length == 0
|
||||||
@evolutions.each { |evo| return evo[0] if evo[3] } # Is the prevolution
|
@evolutions.each { |evo| return evo[0] if evo[3] } # Is the prevolution
|
||||||
return @species
|
return @species
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -254,12 +259,12 @@ module GameData
|
|||||||
ret = @species
|
ret = @species
|
||||||
return ret if @evolutions.length == 0
|
return ret if @evolutions.length == 0
|
||||||
@evolutions.each do |evo|
|
@evolutions.each do |evo|
|
||||||
next if !evo[3] # Not the prevolution
|
next if !evo[3] # Not the prevolution
|
||||||
if check_items
|
if check_items
|
||||||
incense = GameData::Species.get(evo[0]).incense
|
incense = GameData::Species.get(evo[0]).incense
|
||||||
ret = evo[0] if !incense || item1 == incense || item2 == incense
|
ret = evo[0] if !incense || item1 == incense || item2 == incense
|
||||||
else
|
else
|
||||||
ret = evo[0] # Species of prevolution
|
ret = evo[0] # Species of prevolution
|
||||||
end
|
end
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@@ -305,7 +310,7 @@ module GameData
|
|||||||
def minimum_level
|
def minimum_level
|
||||||
return 1 if @evolutions.length == 0
|
return 1 if @evolutions.length == 0
|
||||||
@evolutions.each do |evo|
|
@evolutions.each do |evo|
|
||||||
next if !evo[3] # Not the prevolution
|
next if !evo[3] # Not the prevolution
|
||||||
evo_method_data = GameData::Evolution.get(evo[1])
|
evo_method_data = GameData::Evolution.get(evo[1])
|
||||||
next if evo_method_data.level_up_proc.nil?
|
next if evo_method_data.level_up_proc.nil?
|
||||||
min_level = evo_method_data.minimum_level
|
min_level = evo_method_data.minimum_level
|
||||||
@@ -362,13 +367,15 @@ def pbGetEvolvedFormData(species, exclude_invalid = false)
|
|||||||
end
|
end
|
||||||
|
|
||||||
# @deprecated Use {GameData#Species#get_family_evolutions} instead. This alias is slated to be removed in v20.
|
# @deprecated Use {GameData#Species#get_family_evolutions} instead. This alias is slated to be removed in v20.
|
||||||
def pbGetEvolutionFamilyData(species) # Unused
|
def pbGetEvolutionFamilyData(species)
|
||||||
|
# Unused
|
||||||
Deprecation.warn_method('pbGetEvolutionFamilyData', 'v20', 'GameData::Species.get(species).get_family_evolutions')
|
Deprecation.warn_method('pbGetEvolutionFamilyData', 'v20', 'GameData::Species.get(species).get_family_evolutions')
|
||||||
return GameData::Species.get(species).get_family_evolutions
|
return GameData::Species.get(species).get_family_evolutions
|
||||||
end
|
end
|
||||||
|
|
||||||
# @deprecated Use {GameData#Species#get_previous_species} instead. This alias is slated to be removed in v20.
|
# @deprecated Use {GameData#Species#get_previous_species} instead. This alias is slated to be removed in v20.
|
||||||
def pbGetPreviousForm(species) # Unused
|
def pbGetPreviousForm(species)
|
||||||
|
# Unused
|
||||||
Deprecation.warn_method('pbGetPreviousForm', 'v20', 'GameData::Species.get(species).get_previous_species')
|
Deprecation.warn_method('pbGetPreviousForm', 'v20', 'GameData::Species.get(species).get_previous_species')
|
||||||
return GameData::Species.get(species).get_previous_species
|
return GameData::Species.get(species).get_previous_species
|
||||||
end
|
end
|
||||||
@@ -380,7 +387,8 @@ def pbGetBabySpecies(species, check_items = false, item1 = nil, item2 = nil)
|
|||||||
end
|
end
|
||||||
|
|
||||||
# @deprecated Use {GameData#Species#family_evolutions_have_method?} instead. This alias is slated to be removed in v20.
|
# @deprecated Use {GameData#Species#family_evolutions_have_method?} instead. This alias is slated to be removed in v20.
|
||||||
def pbCheckEvolutionFamilyForMethod(species, method, param = nil) # Unused
|
def pbCheckEvolutionFamilyForMethod(species, method, param = nil)
|
||||||
|
# Unused
|
||||||
Deprecation.warn_method('pbCheckEvolutionFamilyForMethod', 'v20', 'GameData::Species.get(species).family_evolutions_have_method?(method)')
|
Deprecation.warn_method('pbCheckEvolutionFamilyForMethod', 'v20', 'GameData::Species.get(species).family_evolutions_have_method?(method)')
|
||||||
return GameData::Species.get(species).family_evolutions_have_method?(method, param)
|
return GameData::Species.get(species).family_evolutions_have_method?(method, param)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ module GameData
|
|||||||
def self.check_graphic_file(path, species, form = 0, gender = 0, shiny = false, shadow = false, subfolder = "")
|
def self.check_graphic_file(path, species, form = 0, gender = 0, shiny = false, shadow = false, subfolder = "")
|
||||||
try_subfolder = sprintf("%s/", subfolder)
|
try_subfolder = sprintf("%s/", subfolder)
|
||||||
try_species = species
|
try_species = species
|
||||||
try_form = (form > 0) ? sprintf("_%d", form) : ""
|
try_form = (form > 0) ? sprintf("_%d", form) : ""
|
||||||
try_gender = (gender == 1) ? "_female" : ""
|
try_gender = (gender == 1) ? "_female" : ""
|
||||||
try_shadow = (shadow) ? "_shadow" : ""
|
try_shadow = (shadow) ? "_shadow" : ""
|
||||||
factors = []
|
factors = []
|
||||||
factors.push([4, sprintf("%s shiny/", subfolder), try_subfolder]) if shiny
|
factors.push([4, sprintf("%s shiny/", subfolder), try_subfolder]) if shiny
|
||||||
factors.push([3, try_shadow, ""]) if shadow
|
factors.push([3, try_shadow, ""]) if shadow
|
||||||
@@ -18,17 +18,22 @@ module GameData
|
|||||||
factors.each_with_index do |factor, index|
|
factors.each_with_index do |factor, index|
|
||||||
value = ((i / (2 ** index)) % 2 == 0) ? factor[1] : factor[2]
|
value = ((i / (2 ** index)) % 2 == 0) ? factor[1] : factor[2]
|
||||||
case factor[0]
|
case factor[0]
|
||||||
when 0 then try_species = value
|
when 0 then
|
||||||
when 1 then try_form = value
|
try_species = value
|
||||||
when 2 then try_gender = value
|
when 1 then
|
||||||
when 3 then try_shadow = value
|
try_form = value
|
||||||
when 4 then try_subfolder = value # Shininess
|
when 2 then
|
||||||
|
try_gender = value
|
||||||
|
when 3 then
|
||||||
|
try_shadow = value
|
||||||
|
when 4 then
|
||||||
|
try_subfolder = value # Shininess
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Look for a graphic matching this combination's parameters
|
# Look for a graphic matching this combination's parameters
|
||||||
try_species_text = try_species
|
try_species_text = try_species
|
||||||
ret = pbResolveBitmap(sprintf("%s%s%s%s%s%s", path, try_subfolder,
|
ret = pbResolveBitmap(sprintf("%s%s%s%s%s%s", path, try_subfolder,
|
||||||
try_species_text, try_form, try_gender, try_shadow))
|
try_species_text, try_form, try_gender, try_shadow))
|
||||||
return ret if ret
|
return ret if ret
|
||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
@@ -87,7 +92,7 @@ module GameData
|
|||||||
|
|
||||||
def self.sprite_bitmap_from_pokemon(pkmn, back = false, species = nil)
|
def self.sprite_bitmap_from_pokemon(pkmn, back = false, species = nil)
|
||||||
species = pkmn.species if !species
|
species = pkmn.species if !species
|
||||||
species = GameData::Species.get(species).species # Just to be sure it's a symbol
|
species = GameData::Species.get(species).species # Just to be sure it's a symbol
|
||||||
return self.egg_sprite_bitmap(species, pkmn.form) if pkmn.egg?
|
return self.egg_sprite_bitmap(species, pkmn.form) if pkmn.egg?
|
||||||
if back
|
if back
|
||||||
ret = self.back_sprite_bitmap(species, pkmn.form, pkmn.gender, pkmn.shiny?, pkmn.shadowPokemon?)
|
ret = self.back_sprite_bitmap(species, pkmn.form, pkmn.gender, pkmn.shiny?, pkmn.shadowPokemon?)
|
||||||
@@ -177,6 +182,10 @@ module GameData
|
|||||||
def self.check_cry_file(species, form)
|
def self.check_cry_file(species, form)
|
||||||
species_data = self.get_species_form(species, form)
|
species_data = self.get_species_form(species, form)
|
||||||
return nil if species_data.nil?
|
return nil if species_data.nil?
|
||||||
|
if species_data.is_fusion
|
||||||
|
species_data = GameData::Species.get(getHeadID(species_data))
|
||||||
|
end
|
||||||
|
|
||||||
if form > 0
|
if form > 0
|
||||||
ret = sprintf("Cries/%s_%d", species_data.species, form)
|
ret = sprintf("Cries/%s_%d", species_data.species, form)
|
||||||
return ret if pbResolveAudioSE(ret)
|
return ret if pbResolveAudioSE(ret)
|
||||||
@@ -228,8 +237,8 @@ module GameData
|
|||||||
filename = pbResolveAudioSE(GameData::Species.cry_filename(species, form))
|
filename = pbResolveAudioSE(GameData::Species.cry_filename(species, form))
|
||||||
ret = getPlayTime(filename) if filename
|
ret = getPlayTime(filename) if filename
|
||||||
end
|
end
|
||||||
ret /= pitch # Sound played at a lower pitch lasts longer
|
ret /= pitch # Sound played at a lower pitch lasts longer
|
||||||
return (ret * Graphics.frame_rate).ceil + 4 # 4 provides a buffer between sounds
|
return (ret * Graphics.frame_rate).ceil + 4 # 4 provides a buffer between sounds
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -238,7 +247,7 @@ end
|
|||||||
# Deprecated methods
|
# Deprecated methods
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# @deprecated This alias is slated to be removed in v20.
|
# @deprecated This alias is slated to be removed in v20.
|
||||||
def pbLoadSpeciesBitmap(species, gender = 0, form = 0, shiny = false, shadow = false, back = false , egg = false)
|
def pbLoadSpeciesBitmap(species, gender = 0, form = 0, shiny = false, shadow = false, back = false, egg = false)
|
||||||
Deprecation.warn_method('pbLoadSpeciesBitmap', 'v20', 'GameData::Species.sprite_bitmap(species, form, gender, shiny, shadow, back, egg)')
|
Deprecation.warn_method('pbLoadSpeciesBitmap', 'v20', 'GameData::Species.sprite_bitmap(species, form, gender, shiny, shadow, back, egg)')
|
||||||
return GameData::Species.sprite_bitmap(species, form, gender, shiny, shadow, back, egg)
|
return GameData::Species.sprite_bitmap(species, form, gender, shiny, shadow, back, egg)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
class HallOfFame_Scene
|
class HallOfFame_Scene
|
||||||
# When true, all pokémon will be in one line
|
# When true, all pokémon will be in one line
|
||||||
# When false, all pokémon will be in two lines
|
# When false, all pokémon will be in two lines
|
||||||
SINGLEROW = false
|
SINGLEROW = true
|
||||||
# Make the pokémon movement ON in hall entry
|
# Make the pokémon movement ON in hall entry
|
||||||
ANIMATION = true
|
ANIMATION = true
|
||||||
# Speed in pokémon movement in hall entry. Don't use less than 2!
|
# Speed in pokémon movement in hall entry. Don't use less than 2!
|
||||||
@@ -39,42 +39,42 @@ class HallOfFame_Scene
|
|||||||
FINALFADESPEED = 16
|
FINALFADESPEED = 16
|
||||||
# Sprites opacity value when them aren't selected
|
# Sprites opacity value when them aren't selected
|
||||||
OPACITY = 64
|
OPACITY = 64
|
||||||
BASECOLOR = Color.new(248,248,248)
|
BASECOLOR = Color.new(248, 248, 248)
|
||||||
SHADOWCOLOR = Color.new(0,0,0)
|
SHADOWCOLOR = Color.new(0, 0, 0)
|
||||||
|
|
||||||
# Placement for pokemon icons
|
# Placement for pokemon icons
|
||||||
def pbStartScene
|
def pbStartScene
|
||||||
@sprites={}
|
@sprites = {}
|
||||||
@viewport=Viewport.new(0,0,Graphics.width, Graphics.height)
|
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||||
@viewport.z=99999
|
@viewport.z = 99999
|
||||||
# Comment the below line to doesn't use a background
|
# Comment the below line to doesn't use a background
|
||||||
addBackgroundPlane(@sprites,"bg","hallfamebg",@viewport)
|
addBackgroundPlane(@sprites, "bg", "hallfamebg", @viewport)
|
||||||
@sprites["hallbars"]=IconSprite.new(@viewport)
|
@sprites["hallbars"] = IconSprite.new(@viewport)
|
||||||
@sprites["hallbars"].setBitmap("Graphics/Pictures/hallfamebars")
|
@sprites["hallbars"].setBitmap("Graphics/Pictures/hallfamebars")
|
||||||
@sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
@sprites["overlay"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
|
||||||
@sprites["overlay"].z=10
|
@sprites["overlay"].z = 10
|
||||||
pbSetSystemFont(@sprites["overlay"].bitmap)
|
pbSetSystemFont(@sprites["overlay"].bitmap)
|
||||||
@alreadyFadedInEnd=false
|
@alreadyFadedInEnd = false
|
||||||
@useMusic=false
|
@useMusic = false
|
||||||
@battlerIndex=0
|
@battlerIndex = 0
|
||||||
@hallEntry=[]
|
@hallEntry = []
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbStartSceneEntry
|
def pbStartSceneEntry
|
||||||
pbStartScene
|
pbStartScene
|
||||||
@useMusic=(ENTRYMUSIC && ENTRYMUSIC!="")
|
@useMusic = (ENTRYMUSIC && ENTRYMUSIC != "")
|
||||||
pbBGMPlay(ENTRYMUSIC) if @useMusic
|
pbBGMPlay(ENTRYMUSIC) if @useMusic
|
||||||
saveHallEntry
|
saveHallEntry
|
||||||
@xmovement=[]
|
@xmovement = []
|
||||||
@ymovement=[]
|
@ymovement = []
|
||||||
createBattlers
|
createBattlers
|
||||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbStartScenePC
|
def pbStartScenePC
|
||||||
pbStartScene
|
pbStartScene
|
||||||
@hallIndex=$PokemonGlobal.hallOfFame.size-1
|
@hallIndex = $PokemonGlobal.hallOfFame.size - 1
|
||||||
@hallEntry=$PokemonGlobal.hallOfFame[-1]
|
@hallEntry = $PokemonGlobal.hallOfFame[-1]
|
||||||
createBattlers(false)
|
createBattlers(false)
|
||||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||||
pbUpdatePC
|
pbUpdatePC
|
||||||
@@ -88,35 +88,36 @@ class HallOfFame_Scene
|
|||||||
@viewport.dispose
|
@viewport.dispose
|
||||||
end
|
end
|
||||||
|
|
||||||
def slowFadeOut(sprites,exponent) # 2 exponent
|
def slowFadeOut(sprites, exponent)
|
||||||
|
# 2 exponent
|
||||||
# To handle values above 8
|
# To handle values above 8
|
||||||
extraWaitExponent=exponent-9
|
extraWaitExponent = exponent - 9
|
||||||
exponent=8 if 8<exponent
|
exponent = 8 if 8 < exponent
|
||||||
max=2**exponent
|
max = 2 ** exponent
|
||||||
speed=(2**8)/max
|
speed = (2 ** 8) / max
|
||||||
for j in 0..max
|
for j in 0..max
|
||||||
if extraWaitExponent>-1
|
if extraWaitExponent > -1
|
||||||
(2**extraWaitExponent).times do
|
(2 ** extraWaitExponent).times do
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pbSetSpritesToColor(sprites,Color.new(0,0,0,j*speed))
|
pbSetSpritesToColor(sprites, Color.new(0, 0, 0, j * speed))
|
||||||
block_given? ? yield : pbUpdateSpriteHash(sprites)
|
block_given? ? yield : pbUpdateSpriteHash(sprites)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Dispose the sprite if the sprite exists and make it null
|
# Dispose the sprite if the sprite exists and make it null
|
||||||
def restartSpritePosition(sprites,spritename)
|
def restartSpritePosition(sprites, spritename)
|
||||||
sprites[spritename].dispose if sprites.include?(spritename) && sprites[spritename]
|
sprites[spritename].dispose if sprites.include?(spritename) && sprites[spritename]
|
||||||
sprites[spritename]=nil
|
sprites[spritename] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# Change the pokémon sprites opacity except the index one
|
# Change the pokémon sprites opacity except the index one
|
||||||
def setPokemonSpritesOpacity(index,opacity=255)
|
def setPokemonSpritesOpacity(index, opacity = 255)
|
||||||
for n in 0...@hallEntry.size
|
for n in 0...@hallEntry.size
|
||||||
@sprites["pokemon#{n}"].opacity=(n==index) ? 255 : opacity if @sprites["pokemon#{n}"]
|
@sprites["pokemon#{n}"].opacity = (n == index) ? 255 : opacity if @sprites["pokemon#{n}"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -127,142 +128,145 @@ class HallOfFame_Scene
|
|||||||
end
|
end
|
||||||
# Update the global variables
|
# Update the global variables
|
||||||
$PokemonGlobal.hallOfFame.push(@hallEntry)
|
$PokemonGlobal.hallOfFame.push(@hallEntry)
|
||||||
$PokemonGlobal.hallOfFameLastNumber+=1
|
$PokemonGlobal.hallOfFameLastNumber += 1
|
||||||
$PokemonGlobal.hallOfFame.delete_at(0) if HALLLIMIT>-1 &&
|
$PokemonGlobal.hallOfFame.delete_at(0) if HALLLIMIT > -1 &&
|
||||||
$PokemonGlobal.hallOfFame.size>HALLLIMIT
|
$PokemonGlobal.hallOfFame.size > HALLLIMIT
|
||||||
end
|
end
|
||||||
|
|
||||||
# Return the x/y point position in screen for battler index number
|
# Return the x/y point position in screen for battler index number
|
||||||
# Don't use odd numbers!
|
# Don't use odd numbers!
|
||||||
def xpointformula(battlernumber)
|
def xpointformula(battlernumber)
|
||||||
ret=0
|
ret = 0
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
ret=32+160*xpositionformula(battlernumber)
|
ret = 32 + 160 * xpositionformula(battlernumber)
|
||||||
else
|
else
|
||||||
ret=(60*(battlernumber/2)+48)*(xpositionformula(battlernumber)-1)
|
ret = (60 * (battlernumber / 2) + 48) * (xpositionformula(battlernumber) - 1)
|
||||||
ret+=Graphics.width/2-56
|
ret += Graphics.width / 2 - 56
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
def ypointformula(battlernumber)
|
def ypointformula(battlernumber)
|
||||||
ret=0
|
ret = 0
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
ret=32+128*ypositionformula(battlernumber)/2
|
ret = 32 + 128 * ypositionformula(battlernumber) / 2
|
||||||
else
|
else
|
||||||
ret=96-8*(battlernumber/2)
|
ret = 96 - 8 * (battlernumber / 2)
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns 0, 1 or 2 as the x/y column value
|
# Returns 0, 1 or 2 as the x/y column value
|
||||||
def xpositionformula(battlernumber)
|
def xpositionformula(battlernumber)
|
||||||
ret=0
|
ret = 0
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
ret=(battlernumber/3%2==0) ? (19-battlernumber)%3 : (19+battlernumber)%3
|
ret = (battlernumber / 3 % 2 == 0) ? (19 - battlernumber) % 3 : (19 + battlernumber) % 3
|
||||||
else
|
else
|
||||||
ret=battlernumber%2*2
|
ret = battlernumber % 2 * 2
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
def ypositionformula(battlernumber)
|
def ypositionformula(battlernumber)
|
||||||
ret=0
|
ret = 0
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
ret=(battlernumber/3)%2*2
|
ret = (battlernumber / 3) % 2 * 2
|
||||||
else
|
else
|
||||||
ret=1
|
ret = 1
|
||||||
end
|
end
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
def moveSprite(i)
|
def moveSprite(i)
|
||||||
spritename=(i>-1) ? "pokemon#{i}" : "trainer"
|
spritename = (i > -1) ? "pokemon#{i}" : "trainer"
|
||||||
speed = (i>-1) ? ANIMATIONSPEED : 2
|
speed = (i > -1) ? ANIMATIONSPEED : 2
|
||||||
if(!ANIMATION) # Skips animation
|
if (!ANIMATION) # Skips animation
|
||||||
@sprites[spritename].x-=speed*@xmovement[i]
|
@sprites[spritename].x -= speed * @xmovement[i]
|
||||||
@xmovement[i]=0
|
@xmovement[i] = 0
|
||||||
@sprites[spritename].y-=speed*@ymovement[i]
|
@sprites[spritename].y -= speed * @ymovement[i]
|
||||||
@ymovement[i]=0
|
@ymovement[i] = 0
|
||||||
end
|
end
|
||||||
if(@xmovement[i]!=0)
|
if (@xmovement[i] != 0)
|
||||||
direction = (@xmovement[i]>0) ? -1 : 1
|
direction = (@xmovement[i] > 0) ? -1 : 1
|
||||||
@sprites[spritename].x+=speed*direction
|
@sprites[spritename].x += speed * direction
|
||||||
@xmovement[i]+=direction
|
@xmovement[i] += direction
|
||||||
end
|
end
|
||||||
if(@ymovement[i]!=0)
|
if (@ymovement[i] != 0)
|
||||||
direction = (@ymovement[i]>0) ? -1 : 1
|
direction = (@ymovement[i] > 0) ? -1 : 1
|
||||||
@sprites[spritename].y+=speed*direction
|
@sprites[spritename].y += speed * direction
|
||||||
@ymovement[i]+=direction
|
@ymovement[i] += direction
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def createBattlers(hide=true)
|
def createBattlers(hide = true)
|
||||||
# Movement in animation
|
# Movement in animation
|
||||||
for i in 0...6
|
for i in 0...6
|
||||||
# Clear all 6 pokémon sprites and dispose the ones that exists every time
|
# Clear all 6 pokémon sprites and dispose the ones that exists every time
|
||||||
# that this method is call
|
# that this method is call
|
||||||
restartSpritePosition(@sprites,"pokemon#{i}")
|
restartSpritePosition(@sprites, "pokemon#{i}")
|
||||||
next if i>=@hallEntry.size
|
next if i >= @hallEntry.size
|
||||||
xpoint=xpointformula(i)
|
xpoint = xpointformula(i)
|
||||||
ypoint=ypointformula(i)
|
ypoint = ypointformula(i)
|
||||||
pok=@hallEntry[i]
|
pok = @hallEntry[i]
|
||||||
@sprites["pokemon#{i}"]=PokemonSprite.new(@viewport)
|
@sprites["pokemon#{i}"] = PokemonSprite.new(@viewport)
|
||||||
@sprites["pokemon#{i}"].setOffset(PictureOrigin::TopLeft)
|
@sprites["pokemon#{i}"].setOffset(PictureOrigin::TopLeft)
|
||||||
@sprites["pokemon#{i}"].setPokemonBitmap(pok)
|
@sprites["pokemon#{i}"].setPokemonBitmap(pok)
|
||||||
|
@sprites["pokemon#{i}"].zoom_x = Settings::BACKRPSPRITE_SCALE
|
||||||
|
@sprites["pokemon#{i}"].zoom_y = Settings::BACKRPSPRITE_SCALE
|
||||||
|
|
||||||
# This method doesn't put the exact coordinates
|
# This method doesn't put the exact coordinates
|
||||||
@sprites["pokemon#{i}"].x = xpoint
|
@sprites["pokemon#{i}"].x = xpoint
|
||||||
@sprites["pokemon#{i}"].y = ypoint
|
@sprites["pokemon#{i}"].y = ypoint
|
||||||
if @sprites["pokemon#{i}"].bitmap && !@sprites["pokemon#{i}"].disposed?
|
if @sprites["pokemon#{i}"].bitmap && !@sprites["pokemon#{i}"].disposed?
|
||||||
@sprites["pokemon#{i}"].x += (128-@sprites["pokemon#{i}"].bitmap.width)/2
|
@sprites["pokemon#{i}"].x += (128 - @sprites["pokemon#{i}"].bitmap.width) / 2
|
||||||
@sprites["pokemon#{i}"].y += (128-@sprites["pokemon#{i}"].bitmap.height)/2
|
@sprites["pokemon#{i}"].y += (128 - @sprites["pokemon#{i}"].bitmap.height) / 2
|
||||||
end
|
end
|
||||||
@sprites["pokemon#{i}"].z=7-i if SINGLEROW
|
@sprites["pokemon#{i}"].z = 7 - i if SINGLEROW
|
||||||
next if !hide
|
next if !hide
|
||||||
# Animation distance calculation
|
# Animation distance calculation
|
||||||
horizontal=1-xpositionformula(i)
|
horizontal = 1 - xpositionformula(i)
|
||||||
vertical=1-ypositionformula(i)
|
vertical = 1 - ypositionformula(i)
|
||||||
xdistance=(horizontal==-1) ? -@sprites["pokemon#{i}"].bitmap.width : Graphics.width
|
xdistance = (horizontal == -1) ? -@sprites["pokemon#{i}"].bitmap.width : Graphics.width
|
||||||
ydistance=(vertical==-1) ? -@sprites["pokemon#{i}"].bitmap.height : Graphics.height
|
ydistance = (vertical == -1) ? -@sprites["pokemon#{i}"].bitmap.height : Graphics.height
|
||||||
xdistance=((xdistance-@sprites["pokemon#{i}"].x)/ANIMATIONSPEED).abs+1
|
xdistance = ((xdistance - @sprites["pokemon#{i}"].x) / ANIMATIONSPEED).abs + 1
|
||||||
ydistance=((ydistance-@sprites["pokemon#{i}"].y)/ANIMATIONSPEED).abs+1
|
ydistance = ((ydistance - @sprites["pokemon#{i}"].y) / ANIMATIONSPEED).abs + 1
|
||||||
biggerdistance=(xdistance>ydistance) ? xdistance : ydistance
|
biggerdistance = (xdistance > ydistance) ? xdistance : ydistance
|
||||||
@xmovement[i]=biggerdistance
|
@xmovement[i] = biggerdistance
|
||||||
@xmovement[i]*=-1 if horizontal==-1
|
@xmovement[i] *= -1 if horizontal == -1
|
||||||
@xmovement[i]=0 if horizontal== 0
|
@xmovement[i] = 0 if horizontal == 0
|
||||||
@ymovement[i]=biggerdistance
|
@ymovement[i] = biggerdistance
|
||||||
@ymovement[i]*=-1 if vertical==-1
|
@ymovement[i] *= -1 if vertical == -1
|
||||||
@ymovement[i]=0 if vertical== 0
|
@ymovement[i] = 0 if vertical == 0
|
||||||
# Hide the battlers
|
# Hide the battlers
|
||||||
@sprites["pokemon#{i}"].x+=@xmovement[i]*ANIMATIONSPEED
|
@sprites["pokemon#{i}"].x += @xmovement[i] * ANIMATIONSPEED
|
||||||
@sprites["pokemon#{i}"].y+=@ymovement[i]*ANIMATIONSPEED
|
@sprites["pokemon#{i}"].y += @ymovement[i] * ANIMATIONSPEED
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def createTrainerBattler
|
def createTrainerBattler
|
||||||
@sprites["trainer"]=IconSprite.new(@viewport)
|
@sprites["trainer"] = IconSprite.new(@viewport)
|
||||||
@sprites["trainer"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainer_type))
|
@sprites["trainer"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainer_type))
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
@sprites["trainer"].x=Graphics.width-96
|
@sprites["trainer"].x = Graphics.width - 96
|
||||||
@sprites["trainer"].y=160
|
@sprites["trainer"].y = 160
|
||||||
else
|
else
|
||||||
@sprites["trainer"].x=Graphics.width/2
|
@sprites["trainer"].x = Graphics.width / 2
|
||||||
@sprites["trainer"].y=178
|
@sprites["trainer"].y = 178
|
||||||
end
|
end
|
||||||
@sprites["trainer"].z=9
|
@sprites["trainer"].z = 9
|
||||||
@sprites["trainer"].ox=@sprites["trainer"].bitmap.width/2
|
@sprites["trainer"].ox = @sprites["trainer"].bitmap.width / 2
|
||||||
@sprites["trainer"].oy=@sprites["trainer"].bitmap.height/2
|
@sprites["trainer"].oy = @sprites["trainer"].bitmap.height / 2
|
||||||
if REMOVEBARS
|
if REMOVEBARS
|
||||||
@sprites["overlay"].bitmap.clear
|
@sprites["overlay"].bitmap.clear
|
||||||
@sprites["hallbars"].visible=false
|
@sprites["hallbars"].visible = false
|
||||||
end
|
end
|
||||||
@xmovement[@battlerIndex]=0
|
@xmovement[@battlerIndex] = 0
|
||||||
@ymovement[@battlerIndex]=0
|
@ymovement[@battlerIndex] = 0
|
||||||
if(ANIMATION && !SINGLEROW) # Trainer Animation
|
if (ANIMATION && !SINGLEROW) # Trainer Animation
|
||||||
startpoint=Graphics.width/2
|
startpoint = Graphics.width / 2
|
||||||
# 2 is the trainer speed
|
# 2 is the trainer speed
|
||||||
@xmovement[@battlerIndex]=(startpoint-@sprites["trainer"].x)/2
|
@xmovement[@battlerIndex] = (startpoint - @sprites["trainer"].x) / 2
|
||||||
@sprites["trainer"].x=startpoint
|
@sprites["trainer"].x = startpoint
|
||||||
else
|
else
|
||||||
ENTRYWAITTIME.times do
|
ENTRYWAITTIME.times do
|
||||||
Graphics.update
|
Graphics.update
|
||||||
@@ -272,62 +276,73 @@ class HallOfFame_Scene
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def getDifficulty
|
||||||
|
if $game_switches[GAME_DIFFICULTY_EASY]
|
||||||
|
return "Easy"
|
||||||
|
elsif $game_switches[GAME_DIFFICULTY_HARD]
|
||||||
|
return "Hard"
|
||||||
|
else
|
||||||
|
return "Normal"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def writeTrainerData
|
def writeTrainerData
|
||||||
totalsec = Graphics.frame_count / Graphics.frame_rate
|
totalsec = Graphics.frame_count / Graphics.frame_rate
|
||||||
hour = totalsec / 60 / 60
|
hour = totalsec / 60 / 60
|
||||||
min = totalsec / 60 % 60
|
min = totalsec / 60 % 60
|
||||||
pubid=sprintf("%05d",$Trainer.public_ID)
|
pubid = sprintf("%05d", $Trainer.public_ID)
|
||||||
lefttext= _INTL("Name<r>{1}<br>",$Trainer.name)
|
lefttext = _INTL("Name<r>{1}<br>", $Trainer.name)
|
||||||
lefttext+=_INTL("IDNo.<r>{1}<br>",pubid)
|
lefttext += _INTL("IDNo.<r>{1}<br>", pubid)
|
||||||
lefttext+=_ISPRINTF("Time<r>{1:02d}:{2:02d}<br>",hour,min)
|
lefttext += _ISPRINTF("Time<r>{1:02d}:{2:02d}<br>", hour, min)
|
||||||
lefttext+=_INTL("Pokédex<r>{1}/{2}<br>",
|
lefttext += _INTL("Pokédex<r>{1}/{2}<br>",
|
||||||
$Trainer.pokedex.owned_count,$Trainer.pokedex.seen_count)
|
$Trainer.pokedex.owned_count, $Trainer.pokedex.seen_count)
|
||||||
@sprites["messagebox"]=Window_AdvancedTextPokemon.new(lefttext)
|
lefttext += _INTL("Difficulty<r>{1}<br>", getDifficulty())
|
||||||
@sprites["messagebox"].viewport=@viewport
|
@sprites["messagebox"] = Window_AdvancedTextPokemon.new(lefttext)
|
||||||
@sprites["messagebox"].width=192 if @sprites["messagebox"].width<192
|
@sprites["messagebox"].viewport = @viewport
|
||||||
@sprites["msgwindow"]=pbCreateMessageWindow(@viewport)
|
@sprites["messagebox"].width = 192 if @sprites["messagebox"].width < 192
|
||||||
|
@sprites["msgwindow"] = pbCreateMessageWindow(@viewport)
|
||||||
pbMessageDisplay(@sprites["msgwindow"],
|
pbMessageDisplay(@sprites["msgwindow"],
|
||||||
_INTL("League champion!\nCongratulations!\\^"))
|
_INTL("League champion!\nCongratulations!\\^"))
|
||||||
end
|
end
|
||||||
|
|
||||||
def writePokemonData(pokemon,hallNumber=-1)
|
def writePokemonData(pokemon, hallNumber = -1)
|
||||||
overlay=@sprites["overlay"].bitmap
|
overlay = @sprites["overlay"].bitmap
|
||||||
overlay.clear
|
overlay.clear
|
||||||
pokename=pokemon.name
|
pokename = pokemon.name
|
||||||
speciesname=pokemon.speciesName
|
speciesname = pokemon.speciesName
|
||||||
if pokemon.male?
|
if pokemon.male?
|
||||||
speciesname+="♂"
|
speciesname += "♂"
|
||||||
elsif pokemon.female?
|
elsif pokemon.female?
|
||||||
speciesname+="♀"
|
speciesname += "♀"
|
||||||
end
|
end
|
||||||
pokename+="/"+speciesname
|
pokename += "/" + speciesname
|
||||||
pokename=_INTL("Egg")+"/"+_INTL("Egg") if pokemon.egg?
|
pokename = _INTL("Egg") + "/" + _INTL("Egg") if pokemon.egg?
|
||||||
idno=(pokemon.owner.name.empty? || pokemon.egg?) ? "?????" : sprintf("%05d",pokemon.owner.public_id)
|
idno = (pokemon.owner.name.empty? || pokemon.egg?) ? "?????" : sprintf("%05d", pokemon.owner.public_id)
|
||||||
dexnumber = _INTL("No. ???")
|
dexnumber = _INTL("No. ???")
|
||||||
if !pokemon.egg?
|
if !pokemon.egg?
|
||||||
species_data = GameData::Species.get(pokemon.species)
|
species_data = GameData::Species.get(pokemon.species)
|
||||||
dexnumber = _ISPRINTF("No. {1:03d}",species_data.id_number)
|
dexnumber = _ISPRINTF("No. {1:03d}", species_data.id_number)
|
||||||
end
|
end
|
||||||
textPositions=[
|
textPositions = [
|
||||||
[dexnumber,32,Graphics.height-86,0,BASECOLOR,SHADOWCOLOR],
|
[dexnumber, 32, Graphics.height - 86, 0, BASECOLOR, SHADOWCOLOR],
|
||||||
[pokename,Graphics.width-192,Graphics.height-86,2,BASECOLOR,SHADOWCOLOR],
|
[pokename, Graphics.width - 192, Graphics.height - 86, 2, BASECOLOR, SHADOWCOLOR],
|
||||||
[_INTL("Lv. {1}",pokemon.egg? ? "?" : pokemon.level),
|
[_INTL("Lv. {1}", pokemon.egg? ? "?" : pokemon.level),
|
||||||
64,Graphics.height-54,0,BASECOLOR,SHADOWCOLOR],
|
64, Graphics.height - 54, 0, BASECOLOR, SHADOWCOLOR],
|
||||||
[_INTL("IDNo.{1}",pokemon.egg? ? "?????" : idno),
|
[_INTL("IDNo.{1}", pokemon.egg? ? "?????" : idno),
|
||||||
Graphics.width-192,Graphics.height-54,2,BASECOLOR,SHADOWCOLOR]
|
Graphics.width - 192, Graphics.height - 54, 2, BASECOLOR, SHADOWCOLOR]
|
||||||
]
|
]
|
||||||
if (hallNumber>-1)
|
if (hallNumber > -1)
|
||||||
textPositions.push([_INTL("Hall of Fame No."),Graphics.width/2-104,-6,0,BASECOLOR,SHADOWCOLOR])
|
textPositions.push([_INTL("Hall of Fame No."), Graphics.width / 2 - 104, -6, 0, BASECOLOR, SHADOWCOLOR])
|
||||||
textPositions.push([hallNumber.to_s,Graphics.width/2+104,-6,1,BASECOLOR,SHADOWCOLOR])
|
textPositions.push([hallNumber.to_s, Graphics.width / 2 + 104, -6, 1, BASECOLOR, SHADOWCOLOR])
|
||||||
end
|
end
|
||||||
pbDrawTextPositions(overlay,textPositions)
|
pbDrawTextPositions(overlay, textPositions)
|
||||||
end
|
end
|
||||||
|
|
||||||
def writeWelcome
|
def writeWelcome
|
||||||
overlay=@sprites["overlay"].bitmap
|
overlay = @sprites["overlay"].bitmap
|
||||||
overlay.clear
|
overlay.clear
|
||||||
pbDrawTextPositions(overlay,[[_INTL("Welcome to the Hall of Fame!"),
|
pbDrawTextPositions(overlay, [[_INTL("Welcome to the Hall of Fame!"),
|
||||||
Graphics.width/2,Graphics.height-80,2,BASECOLOR,SHADOWCOLOR]])
|
Graphics.width / 2, Graphics.height - 80, 2, BASECOLOR, SHADOWCOLOR]])
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbAnimationLoop
|
def pbAnimationLoop
|
||||||
@@ -336,7 +351,7 @@ class HallOfFame_Scene
|
|||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
pbUpdateAnimation
|
pbUpdateAnimation
|
||||||
break if @battlerIndex==@hallEntry.size+2
|
break if @battlerIndex == @hallEntry.size + 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -345,19 +360,19 @@ class HallOfFame_Scene
|
|||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
continueScene=true
|
continueScene = true
|
||||||
break if Input.trigger?(Input::BACK) # Exits
|
break if Input.trigger?(Input::BACK) # Exits
|
||||||
if Input.trigger?(Input::USE) # Moves the selection one entry backward
|
if Input.trigger?(Input::USE) # Moves the selection one entry backward
|
||||||
@battlerIndex+=10
|
@battlerIndex += 10
|
||||||
continueScene=pbUpdatePC
|
continueScene = pbUpdatePC
|
||||||
end
|
end
|
||||||
if Input.trigger?(Input::LEFT) # Moves the selection one pokémon forward
|
if Input.trigger?(Input::LEFT) # Moves the selection one pokémon forward
|
||||||
@battlerIndex-=1
|
@battlerIndex -= 1
|
||||||
continueScene=pbUpdatePC
|
continueScene = pbUpdatePC
|
||||||
end
|
end
|
||||||
if Input.trigger?(Input::RIGHT) # Moves the selection one pokémon backward
|
if Input.trigger?(Input::RIGHT) # Moves the selection one pokémon backward
|
||||||
@battlerIndex+=1
|
@battlerIndex += 1
|
||||||
continueScene=pbUpdatePC
|
continueScene = pbUpdatePC
|
||||||
end
|
end
|
||||||
break if !continueScene
|
break if !continueScene
|
||||||
end
|
end
|
||||||
@@ -368,75 +383,76 @@ class HallOfFame_Scene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbUpdateAnimation
|
def pbUpdateAnimation
|
||||||
if @battlerIndex<=@hallEntry.size
|
if @battlerIndex <= @hallEntry.size
|
||||||
if @xmovement[@battlerIndex]!=0 || @ymovement[@battlerIndex]!=0
|
if @xmovement[@battlerIndex] != 0 || @ymovement[@battlerIndex] != 0
|
||||||
spriteIndex=(@battlerIndex<@hallEntry.size) ? @battlerIndex : -1
|
spriteIndex = (@battlerIndex < @hallEntry.size) ? @battlerIndex : -1
|
||||||
moveSprite(spriteIndex)
|
moveSprite(spriteIndex)
|
||||||
else
|
else
|
||||||
@battlerIndex+=1
|
@battlerIndex += 1
|
||||||
if @battlerIndex<=@hallEntry.size
|
if @battlerIndex <= @hallEntry.size
|
||||||
# If it is a pokémon, write the pokémon text, wait the
|
# If it is a pokémon, write the pokémon text, wait the
|
||||||
# ENTRYWAITTIME and goes to the next battler
|
# ENTRYWAITTIME and goes to the next battler
|
||||||
@hallEntry[@battlerIndex - 1].play_cry
|
@hallEntry[@battlerIndex - 1].play_cry
|
||||||
writePokemonData(@hallEntry[@battlerIndex-1])
|
writePokemonData(@hallEntry[@battlerIndex - 1])
|
||||||
(ENTRYWAITTIME*Graphics.frame_rate/20).times do
|
(ENTRYWAITTIME * Graphics.frame_rate / 20).times do
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
end
|
end
|
||||||
if @battlerIndex<@hallEntry.size # Preparates the next battler
|
if @battlerIndex < @hallEntry.size # Preparates the next battler
|
||||||
setPokemonSpritesOpacity(@battlerIndex,OPACITY)
|
setPokemonSpritesOpacity(@battlerIndex, OPACITY)
|
||||||
@sprites["overlay"].bitmap.clear
|
@sprites["overlay"].bitmap.clear
|
||||||
else # Show the welcome message and preparates the trainer
|
else
|
||||||
|
# Show the welcome message and preparates the trainer
|
||||||
setPokemonSpritesOpacity(-1)
|
setPokemonSpritesOpacity(-1)
|
||||||
writeWelcome
|
writeWelcome
|
||||||
(ENTRYWAITTIME*2*Graphics.frame_rate/20).times do
|
(ENTRYWAITTIME * 2 * Graphics.frame_rate / 20).times do
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
end
|
end
|
||||||
setPokemonSpritesOpacity(-1,OPACITY) if !SINGLEROW
|
setPokemonSpritesOpacity(-1, OPACITY) if !SINGLEROW
|
||||||
createTrainerBattler
|
createTrainerBattler
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elsif @battlerIndex>@hallEntry.size
|
elsif @battlerIndex > @hallEntry.size
|
||||||
# Write the trainer data and fade
|
# Write the trainer data and fade
|
||||||
writeTrainerData
|
writeTrainerData
|
||||||
(ENTRYWAITTIME*Graphics.frame_rate/20).times do
|
(ENTRYWAITTIME * Graphics.frame_rate / 20).times do
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
end
|
end
|
||||||
fadeSpeed=((Math.log(2**12)-Math.log(FINALFADESPEED))/Math.log(2)).floor
|
fadeSpeed = ((Math.log(2 ** 12) - Math.log(FINALFADESPEED)) / Math.log(2)).floor
|
||||||
pbBGMFade((2**fadeSpeed).to_f/20) if @useMusic
|
pbBGMFade((2 ** fadeSpeed).to_f / 20) if @useMusic
|
||||||
slowFadeOut(@sprites,fadeSpeed) { pbUpdate }
|
slowFadeOut(@sprites, fadeSpeed) { pbUpdate }
|
||||||
@alreadyFadedInEnd=true
|
@alreadyFadedInEnd = true
|
||||||
@battlerIndex+=1
|
@battlerIndex += 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbUpdatePC
|
def pbUpdatePC
|
||||||
# Change the team
|
# Change the team
|
||||||
if @battlerIndex>=@hallEntry.size
|
if @battlerIndex >= @hallEntry.size
|
||||||
@hallIndex-=1
|
@hallIndex -= 1
|
||||||
return false if @hallIndex==-1
|
return false if @hallIndex == -1
|
||||||
@hallEntry=$PokemonGlobal.hallOfFame[@hallIndex]
|
@hallEntry = $PokemonGlobal.hallOfFame[@hallIndex]
|
||||||
@battlerIndex=0
|
@battlerIndex = 0
|
||||||
createBattlers(false)
|
createBattlers(false)
|
||||||
elsif @battlerIndex<0
|
elsif @battlerIndex < 0
|
||||||
@hallIndex+=1
|
@hallIndex += 1
|
||||||
return false if @hallIndex>=$PokemonGlobal.hallOfFame.size
|
return false if @hallIndex >= $PokemonGlobal.hallOfFame.size
|
||||||
@hallEntry=$PokemonGlobal.hallOfFame[@hallIndex]
|
@hallEntry = $PokemonGlobal.hallOfFame[@hallIndex]
|
||||||
@battlerIndex=@hallEntry.size-1
|
@battlerIndex = @hallEntry.size - 1
|
||||||
createBattlers(false)
|
createBattlers(false)
|
||||||
end
|
end
|
||||||
# Change the pokemon
|
# Change the pokemon
|
||||||
@hallEntry[@battlerIndex].play_cry
|
@hallEntry[@battlerIndex].play_cry
|
||||||
setPokemonSpritesOpacity(@battlerIndex,OPACITY)
|
setPokemonSpritesOpacity(@battlerIndex, OPACITY)
|
||||||
hallNumber=$PokemonGlobal.hallOfFameLastNumber + @hallIndex -
|
hallNumber = $PokemonGlobal.hallOfFameLastNumber + @hallIndex -
|
||||||
$PokemonGlobal.hallOfFame.size + 1
|
$PokemonGlobal.hallOfFame.size + 1
|
||||||
writePokemonData(@hallEntry[@battlerIndex],hallNumber)
|
writePokemonData(@hallEntry[@battlerIndex], hallNumber)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -467,7 +483,7 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
class HallOfFamePC
|
class HallOfFamePC
|
||||||
def shouldShow?
|
def shouldShow?
|
||||||
return $PokemonGlobal.hallOfFameLastNumber>0
|
return $PokemonGlobal.hallOfFameLastNumber > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
@@ -507,13 +523,13 @@ end
|
|||||||
#
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbHallOfFameEntry
|
def pbHallOfFameEntry
|
||||||
scene=HallOfFame_Scene.new
|
scene = HallOfFame_Scene.new
|
||||||
screen=HallOfFameScreen.new(scene)
|
screen = HallOfFameScreen.new(scene)
|
||||||
screen.pbStartScreenEntry
|
screen.pbStartScreenEntry
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbHallOfFamePC
|
def pbHallOfFamePC
|
||||||
scene=HallOfFame_Scene.new
|
scene = HallOfFame_Scene.new
|
||||||
screen=HallOfFameScreen.new(scene)
|
screen = HallOfFameScreen.new(scene)
|
||||||
screen.pbStartScreenPC
|
screen.pbStartScreenPC
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ def getDexNumberForSpecies(species)
|
|||||||
dexNum = GameData::Species.get(species).id_number
|
dexNum = GameData::Species.get(species).id_number
|
||||||
elsif species.is_a?(Pokemon)
|
elsif species.is_a?(Pokemon)
|
||||||
dexNum = GameData::Species.get(species.species).id_number
|
dexNum = GameData::Species.get(species.species).id_number
|
||||||
|
elsif species.is_a?(GameData::Species)
|
||||||
|
return species.id_number
|
||||||
else
|
else
|
||||||
dexNum = species
|
dexNum = species
|
||||||
end
|
end
|
||||||
@@ -142,7 +144,10 @@ def getBodyID(species)
|
|||||||
return (dexNum / NB_POKEMON).round
|
return (dexNum / NB_POKEMON).round
|
||||||
end
|
end
|
||||||
|
|
||||||
def getHeadID(species, bodyId)
|
def getHeadID(species, bodyId = nil)
|
||||||
|
if bodyId == nil
|
||||||
|
bodyId = getBodyID(species)
|
||||||
|
end
|
||||||
head_dexNum = getDexNumberForSpecies(species)
|
head_dexNum = getDexNumberForSpecies(species)
|
||||||
body_dexNum = getDexNumberForSpecies(bodyId)
|
body_dexNum = getDexNumberForSpecies(bodyId)
|
||||||
calculated_number = (head_dexNum - (body_dexNum * NB_POKEMON)).round
|
calculated_number = (head_dexNum - (body_dexNum * NB_POKEMON)).round
|
||||||
|
|||||||
@@ -1317,7 +1317,7 @@ def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false)
|
|||||||
|
|
||||||
typeWindow = drawPokemonType(newid)
|
typeWindow = drawPokemonType(newid)
|
||||||
|
|
||||||
if hasCustom§
|
if hasCustom
|
||||||
previewwindow.picture.pbSetColor(220, 255, 220, 200)
|
previewwindow.picture.pbSetColor(220, 255, 220, 200)
|
||||||
else
|
else
|
||||||
previewwindow.picture.pbSetColor(255, 255, 255, 200)
|
previewwindow.picture.pbSetColor(255, 255, 255, 200)
|
||||||
@@ -1407,6 +1407,11 @@ def pbDNASplicing(pokemon, scene, supersplicers = false, superSplicer = false)
|
|||||||
end
|
end
|
||||||
body_level = poke1.level
|
body_level = poke1.level
|
||||||
head_level = poke2.level
|
head_level = poke2.level
|
||||||
|
|
||||||
|
pokemon.exp_gained_since_fused=0
|
||||||
|
pokemon.exp_when_fused_head=nil
|
||||||
|
pokemon.exp_when_fused_body=nil
|
||||||
|
|
||||||
if $Trainer.party.length >= 6
|
if $Trainer.party.length >= 6
|
||||||
if (keepInParty == 0)
|
if (keepInParty == 0)
|
||||||
$PokemonStorage.pbStoreCaught(poke2)
|
$PokemonStorage.pbStoreCaught(poke2)
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user