mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 21:24:59 +00:00
95 lines
3.9 KiB
Ruby
95 lines
3.9 KiB
Ruby
module GameData
|
|
class Metadata
|
|
attr_reader :id
|
|
attr_reader :start_money
|
|
attr_reader :start_item_storage
|
|
attr_reader :home
|
|
attr_reader :real_storage_creator
|
|
attr_reader :wild_battle_BGM
|
|
attr_reader :trainer_battle_BGM
|
|
attr_reader :wild_victory_ME
|
|
attr_reader :trainer_victory_ME
|
|
attr_reader :wild_capture_ME
|
|
attr_reader :surf_BGM
|
|
attr_reader :bicycle_BGM
|
|
|
|
DATA = {}
|
|
DATA_FILENAME = "metadata.dat"
|
|
|
|
SCHEMA = {
|
|
"StartMoney" => [1, "u"],
|
|
"StartItemStorage" => [2, "*e", :Item],
|
|
"Home" => [3, "vuuu"],
|
|
"StorageCreator" => [4, "s"],
|
|
"WildBattleBGM" => [5, "s"],
|
|
"TrainerBattleBGM" => [6, "s"],
|
|
"WildVictoryME" => [7, "s"],
|
|
"TrainerVictoryME" => [8, "s"],
|
|
"WildCaptureME" => [9, "s"],
|
|
"SurfBGM" => [10, "s"],
|
|
"BicycleBGM" => [11, "s"]
|
|
}
|
|
|
|
extend ClassMethodsIDNumbers
|
|
include InstanceMethods
|
|
|
|
def self.editor_properties
|
|
return [
|
|
["StartMoney", LimitProperty.new(Settings::MAX_MONEY), _INTL("The amount of money that the player starts the game with.")],
|
|
["StartItemStorage", GameDataPoolProperty.new(:Item), _INTL("Items that are already in the player's PC at the start of the game.")],
|
|
["Home", MapCoordsFacingProperty, _INTL("Map ID and X/Y coordinates of where the player goes after a loss if no Pokémon Center was visited.")],
|
|
["StorageCreator", StringProperty, _INTL("Name of the Pokémon Storage creator (the storage option is named \"XXX's PC\").")],
|
|
["WildBattleBGM", BGMProperty, _INTL("Default BGM for wild Pokémon battles.")],
|
|
["TrainerBattleBGM", BGMProperty, _INTL("Default BGM for Trainer battles.")],
|
|
["WildVictoryME", MEProperty, _INTL("Default ME played after winning a wild Pokémon battle.")],
|
|
["TrainerVictoryME", MEProperty, _INTL("Default ME played after winning a Trainer battle.")],
|
|
["WildCaptureME", MEProperty, _INTL("Default ME played after catching a Pokémon.")],
|
|
["SurfBGM", BGMProperty, _INTL("BGM played while surfing.")],
|
|
["BicycleBGM", BGMProperty, _INTL("BGM played while on a bicycle.")]
|
|
]
|
|
end
|
|
|
|
def self.get
|
|
return DATA[0]
|
|
end
|
|
|
|
def initialize(hash)
|
|
@id = hash[:id]
|
|
@start_money = hash[:start_money] || 3000
|
|
@start_item_storage = hash[:start_item_storage] || []
|
|
@home = hash[:home]
|
|
@real_storage_creator = hash[:storage_creator]
|
|
@wild_battle_BGM = hash[:wild_battle_BGM]
|
|
@trainer_battle_BGM = hash[:trainer_battle_BGM]
|
|
@wild_victory_ME = hash[:wild_victory_ME]
|
|
@trainer_victory_ME = hash[:trainer_victory_ME]
|
|
@wild_capture_ME = hash[:wild_capture_ME]
|
|
@surf_BGM = hash[:surf_BGM]
|
|
@bicycle_BGM = hash[:bicycle_BGM]
|
|
end
|
|
|
|
# @return [String] the translated name of the Pokémon Storage creator
|
|
def storage_creator
|
|
ret = pbGetMessage(MessageTypes::StorageCreator, 0)
|
|
return nil_or_empty?(ret) ? _INTL("Bill") : ret
|
|
end
|
|
|
|
def property_from_string(str)
|
|
case str
|
|
when "StartMoney" then return @start_money
|
|
when "StartItemStorage" then return @start_item_storage
|
|
when "Home" then return @home
|
|
when "StorageCreator" then return @real_storage_creator
|
|
when "WildBattleBGM" then return @wild_battle_BGM
|
|
when "TrainerBattleBGM" then return @trainer_battle_BGM
|
|
when "WildVictoryME" then return @wild_victory_ME
|
|
when "TrainerVictoryME" then return @trainer_victory_ME
|
|
when "WildCaptureME" then return @wild_capture_ME
|
|
when "SurfBGM" then return @surf_BGM
|
|
when "BicycleBGM" then return @bicycle_BGM
|
|
end
|
|
return nil
|
|
end
|
|
end
|
|
end
|