Refactored berry plant code, added missing berry plant PBS data and charsets, fixed berry sparkles sometimes showing on the wrong map

This commit is contained in:
Maruno17
2021-10-03 20:19:28 +01:00
parent af23f1ecc4
commit c7858de42a
6 changed files with 457 additions and 492 deletions

View File

@@ -2,7 +2,7 @@
SaveData.register_conversion(:v19_2_fix_berry_plants) do
essentials_version 19.2
display_title 'Fixing berry plant data'
display_title 'Fixing berry plant IDs data'
to_value :global_metadata do |global|
berry_conversion = {
389 => :CHERIBERRY,
@@ -76,8 +76,8 @@ SaveData.register_conversion(:v19_2_fix_berry_plants) do
61 => :STABLEMULCH,
62 => :GOOEYMULCH
}
global.eventvars.each do |var|
next if !var || !var.ia_a?(Array)
global.eventvars.each_value do |var|
next if !var || !var.is_a?(Array)
next if var.length < 6 || var.length > 8 # Neither old nor new berry plant
if !var[1].is_a?(Symbol) # Planted berry item
var[1] = berry_conversion[var[1]] || :ORANBERRY
@@ -89,6 +89,47 @@ SaveData.register_conversion(:v19_2_fix_berry_plants) do
end
end
SaveData.register_conversion(:v20_berry_plant_data) do
essentials_version 20
display_title 'Updating berry plant data format'
to_value :global_metadata do |global|
if global.eventvars
global.eventvars.each_pair do |key, value|
next if !value || !value.is_a?(Array)
if value.length == 6 # Old berry plant data
data = BerryPlantData.new
if value[1]&.is_a?(Symbol)
plant_data = GameData::DerryPlant.get(value[1])
data.new_mechanics = false
data.berry_id = value[1]
data.time_alive = value[0] * plant_data.hours_per_stage * 3600
data.time_last_updated = value[3]
data.growth_stage = value[0]
data.replant_count = value[5]
data.watered_this_stage = value[2]
data.watering_count = value[4]
end
global.eventvars[key] = data
elsif value.length == 7 || value.length == 8 # New berry plant data
data = BerryPlantData.new
if value[1]&.is_a?(Symbol)
data.new_mechanics = true
data.berry_id = value[1]
data.mulch_id = value[7] if value[7]&.is_a?(Symbol)
data.time_alive = value[2]
data.time_last_updated = value[3]
data.growth_stage = value[0]
data.replant_count = value[5]
data.moisture_level = value[4]
data.yield_penalty = value[6]
end
global.eventvars[key] = data
end
end
end
end
end
SaveData.register_conversion(:v20_add_battled_counts) do
essentials_version 20
display_title 'Adding Pokédex battle counts'