mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Prevented error if trying to set a species of nil for an encounter in the Encounters Editor, fixed trainer Pokémon's EVs and IVs not being set properly in the Encounters Editor
This commit is contained in:
@@ -336,17 +336,21 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
module SpeciesFormProperty
|
class SpeciesFormProperty
|
||||||
def self.set(_settingname,oldsetting)
|
def initialize(default_value)
|
||||||
|
@default_value = default_value
|
||||||
|
end
|
||||||
|
|
||||||
|
def set(_settingname,oldsetting)
|
||||||
ret = pbChooseSpeciesFormList(oldsetting || nil)
|
ret = pbChooseSpeciesFormList(oldsetting || nil)
|
||||||
return ret || oldsetting
|
return ret || oldsetting
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.defaultValue
|
def defaultValue
|
||||||
return nil
|
return @default_value
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.format(value)
|
def format(value)
|
||||||
if value && GameData::Species.exists?(value)
|
if value && GameData::Species.exists?(value)
|
||||||
species_data = GameData::Species.get(value)
|
species_data = GameData::Species.get(value)
|
||||||
if species_data.form > 0
|
if species_data.form > 0
|
||||||
@@ -462,21 +466,15 @@ class IVsProperty
|
|||||||
data = []
|
data = []
|
||||||
stat_ids = []
|
stat_ids = []
|
||||||
GameData::Stat.each_main do |s|
|
GameData::Stat.each_main do |s|
|
||||||
oldsetting[s.pbs_order] = 0 if !oldsetting[s.pbs_order]
|
oldsetting[s.pbs_order] = defaultValue if !oldsetting[s.pbs_order]
|
||||||
properties[s.pbs_order] = [s.name, LimitProperty2.new(@limit),
|
properties[s.pbs_order] = [s.name, LimitProperty2.new(@limit),
|
||||||
_INTL("Individual values for the Pokémon's {1} stat (0-{2}).", s.name, @limit)]
|
_INTL("Individual values for the Pokémon's {1} stat (0-{2}).", s.name, @limit)]
|
||||||
data[s.pbs_order] = oldsetting[s.id]
|
data[s.pbs_order] = oldsetting[s.id]
|
||||||
stat_ids[s.pbs_order] = s.id
|
stat_ids[s.pbs_order] = s.id
|
||||||
end
|
end
|
||||||
pbPropertyList(settingname, data, properties, false)
|
pbPropertyList(settingname, data, properties, false)
|
||||||
allZeroes = true
|
|
||||||
data.each_with_index do |value, i|
|
|
||||||
data[i] ||= 0
|
|
||||||
allZeroes = false if value && value != 0
|
|
||||||
end
|
|
||||||
return nil if allZeroes
|
|
||||||
ret = {}
|
ret = {}
|
||||||
stat_ids.each_with_index { |s, i| ret[s] = data[i] }
|
stat_ids.each_with_index { |s, i| ret[s] = data[i] || defaultValue }
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -486,13 +484,12 @@ class IVsProperty
|
|||||||
|
|
||||||
def format(value)
|
def format(value)
|
||||||
return "-" if !value
|
return "-" if !value
|
||||||
return value[0].to_s if value.uniq.length == 1
|
array = []
|
||||||
ret = ""
|
GameData::Stat.each_main do |s|
|
||||||
for i in 0...value.length
|
next if s.pbs_order < 0
|
||||||
ret.concat(",") if i > 0
|
array[s.pbs_order] = value[s.id] || defaultValue
|
||||||
ret.concat((value[i] || 0).to_s)
|
|
||||||
end
|
end
|
||||||
return ret
|
return array.join(',')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -509,27 +506,21 @@ class EVsProperty
|
|||||||
data = []
|
data = []
|
||||||
stat_ids = []
|
stat_ids = []
|
||||||
GameData::Stat.each_main do |s|
|
GameData::Stat.each_main do |s|
|
||||||
oldsetting[s.pbs_order] = 0 if !oldsetting[s.pbs_order]
|
oldsetting[s.pbs_order] = defaultValue if !oldsetting[s.pbs_order]
|
||||||
properties[s.pbs_order] = [s.name, LimitProperty2.new(@limit),
|
properties[s.pbs_order] = [s.name, LimitProperty2.new(@limit),
|
||||||
_INTL("Effort values for the Pokémon's {1} stat (0-{2}).", s.name, @limit)]
|
_INTL("Effort values for the Pokémon's {1} stat (0-{2}).", s.name, @limit)]
|
||||||
data[s.pbs_order] = oldsetting[s.id]
|
data[s.pbs_order] = oldsetting[s.id]
|
||||||
stat_ids[s.pbs_order] = s.id
|
stat_ids[s.pbs_order] = s.id
|
||||||
end
|
end
|
||||||
loop do
|
loop do
|
||||||
pbPropertyList(settingname,data,properties,true)
|
pbPropertyList(settingname, data, properties, false)
|
||||||
evtotal = 0
|
evtotal = 0
|
||||||
data.each { |value| evtotal += value if value }
|
data.each { |value| evtotal += value if value }
|
||||||
break if evtotal <= Pokemon::EV_LIMIT
|
break if evtotal <= Pokemon::EV_LIMIT
|
||||||
pbMessage(_INTL("Total EVs ({1}) are greater than allowed ({2}). Please reduce them.", evtotal, Pokemon::EV_LIMIT))
|
pbMessage(_INTL("Total EVs ({1}) are greater than allowed ({2}). Please reduce them.", evtotal, Pokemon::EV_LIMIT))
|
||||||
end
|
end
|
||||||
allZeroes = true
|
|
||||||
data.each_with_index do |value, i|
|
|
||||||
data[i] ||= 0
|
|
||||||
allZeroes = false if value && value != 0
|
|
||||||
end
|
|
||||||
return nil if allZeroes
|
|
||||||
ret = {}
|
ret = {}
|
||||||
stat_ids.each_with_index { |s, i| ret[s] = data[i] }
|
stat_ids.each_with_index { |s, i| ret[s] = data[i] || defaultValue }
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -539,13 +530,12 @@ class EVsProperty
|
|||||||
|
|
||||||
def format(value)
|
def format(value)
|
||||||
return "-" if !value
|
return "-" if !value
|
||||||
return value[0].to_s if value.uniq.length == 1
|
array = []
|
||||||
ret = ""
|
GameData::Stat.each_main do |s|
|
||||||
for i in 0...value.length
|
next if s.pbs_order < 0
|
||||||
ret.concat(",") if i > 0
|
array[s.pbs_order] = value[s.id] || defaultValue
|
||||||
ret.concat((value[i] || 0).to_s)
|
|
||||||
end
|
end
|
||||||
return ret
|
return array.join(',')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -586,7 +576,7 @@ end
|
|||||||
|
|
||||||
module PlayerProperty
|
module PlayerProperty
|
||||||
def self.set(settingname,oldsetting)
|
def self.set(settingname,oldsetting)
|
||||||
oldsetting = [0,"xxx","xxx","xxx","xxx","xxx","xxx","xxx"] if !oldsetting
|
oldsetting = [nil,"xxx","xxx","xxx","xxx","xxx","xxx","xxx"] if !oldsetting
|
||||||
properties = [
|
properties = [
|
||||||
[_INTL("Trainer Type"), TrainerTypeProperty, _INTL("Trainer type of this player.")],
|
[_INTL("Trainer Type"), TrainerTypeProperty, _INTL("Trainer type of this player.")],
|
||||||
[_INTL("Sprite"), CharacterProperty, _INTL("Walking character sprite.")],
|
[_INTL("Sprite"), CharacterProperty, _INTL("Walking character sprite.")],
|
||||||
@@ -840,7 +830,7 @@ module BaseStatsProperty
|
|||||||
end
|
end
|
||||||
if pbPropertyList(settingname,data,properties,true)
|
if pbPropertyList(settingname,data,properties,true)
|
||||||
ret = {}
|
ret = {}
|
||||||
stat_ids.each_with_index { |s, i| ret[s] = data[i] }
|
stat_ids.each_with_index { |s, i| ret[s] = data[i] || defaultValue }
|
||||||
oldsetting = ret
|
oldsetting = ret
|
||||||
end
|
end
|
||||||
return oldsetting
|
return oldsetting
|
||||||
@@ -871,7 +861,7 @@ module EffortValuesProperty
|
|||||||
end
|
end
|
||||||
if pbPropertyList(settingname,oldsetting,properties,true)
|
if pbPropertyList(settingname,oldsetting,properties,true)
|
||||||
ret = {}
|
ret = {}
|
||||||
stat_ids.each_with_index { |s, i| ret[s] = data[i] }
|
stat_ids.each_with_index { |s, i| ret[s] = data[i] || defaultValue }
|
||||||
oldsetting = ret
|
oldsetting = ret
|
||||||
end
|
end
|
||||||
return oldsetting
|
return oldsetting
|
||||||
@@ -1409,7 +1399,7 @@ module EncounterSlotProperty
|
|||||||
data[3] = data[2] if !data[3]
|
data[3] = data[2] if !data[3]
|
||||||
properties = [
|
properties = [
|
||||||
[_INTL("Probability"), NonzeroLimitProperty.new(999), _INTL("Relative probability of choosing this slot.")],
|
[_INTL("Probability"), NonzeroLimitProperty.new(999), _INTL("Relative probability of choosing this slot.")],
|
||||||
[_INTL("Species"), SpeciesFormProperty, _INTL("A Pokémon species/form.")],
|
[_INTL("Species"), SpeciesFormProperty.new(data[1]), _INTL("A Pokémon species/form.")],
|
||||||
[_INTL("Minimum level"), NonzeroLimitProperty.new(max_level), _INTL("Minimum level of this species (1-{1}).", max_level)],
|
[_INTL("Minimum level"), NonzeroLimitProperty.new(max_level), _INTL("Minimum level of this species (1-{1}).", max_level)],
|
||||||
[_INTL("Maximum level"), NonzeroLimitProperty.new(max_level), _INTL("Maximum level of this species (1-{1}).", max_level)]
|
[_INTL("Maximum level"), NonzeroLimitProperty.new(max_level), _INTL("Maximum level of this species (1-{1}).", max_level)]
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user