mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Tidied up evolution code and added lots more evolution methods
This commit is contained in:
@@ -1,46 +1,68 @@
|
||||
module PBEvolution
|
||||
# NOTE: If you're adding new evolution methods, don't skip any numbers.
|
||||
# Remember to update def self.maxValue just below the constants list.
|
||||
None = 0
|
||||
Happiness = 1
|
||||
HappinessDay = 2
|
||||
HappinessNight = 3
|
||||
Level = 4
|
||||
Trade = 5
|
||||
TradeItem = 6
|
||||
Item = 7
|
||||
AttackGreater = 8
|
||||
AtkDefEqual = 9
|
||||
DefenseGreater = 10
|
||||
Silcoon = 11
|
||||
Cascoon = 12
|
||||
Ninjask = 13
|
||||
Shedinja = 14
|
||||
Beauty = 15
|
||||
ItemMale = 16
|
||||
ItemFemale = 17
|
||||
DayHoldItem = 18
|
||||
NightHoldItem = 19
|
||||
HasMove = 20
|
||||
HasInParty = 21
|
||||
LevelMale = 22
|
||||
LevelFemale = 23
|
||||
Location = 24
|
||||
TradeSpecies = 25
|
||||
LevelDay = 26
|
||||
LevelNight = 27
|
||||
LevelDarkInParty = 28
|
||||
LevelRain = 29
|
||||
HappinessMoveType = 30
|
||||
LevelEvening = 31
|
||||
Level = 1
|
||||
LevelMale = 2
|
||||
LevelFemale = 3
|
||||
LevelDay = 4
|
||||
LevelNight = 5
|
||||
LevelMorning = 6
|
||||
LevelAfternoon = 7
|
||||
LevelEvening = 8
|
||||
LevelNoWeather = 9
|
||||
LevelSun = 10
|
||||
LevelRain = 11
|
||||
LevelSnow = 12
|
||||
LevelSandstorm = 13
|
||||
LevelCycling = 14
|
||||
LevelSurfing = 15
|
||||
LevelDiving = 16
|
||||
LevelDarkness = 17
|
||||
LevelDarkInParty = 18
|
||||
AttackGreater = 19
|
||||
AtkDefEqual = 20
|
||||
DefenseGreater = 21
|
||||
Silcoon = 22
|
||||
Cascoon = 23
|
||||
Ninjask = 24
|
||||
Shedinja = 25
|
||||
Happiness = 26
|
||||
HappinessMale = 27
|
||||
HappinessFemale = 28
|
||||
HappinessDay = 29
|
||||
HappinessNight = 30
|
||||
HappinessMove = 31
|
||||
HappinessMoveType = 32
|
||||
HappinessHoldItem = 33
|
||||
MaxHappiness = 34
|
||||
Beauty = 35
|
||||
HoldItem = 36
|
||||
HoldItemMale = 37
|
||||
HoldItemFemale = 38
|
||||
DayHoldItem = 39
|
||||
NightHoldItem = 40
|
||||
HoldItemHappiness = 41
|
||||
HasMove = 42
|
||||
HasMoveType = 43
|
||||
HasInParty = 44
|
||||
Location = 45
|
||||
Region = 46
|
||||
Item = 47
|
||||
ItemMale = 48
|
||||
ItemFemale = 49
|
||||
ItemDay = 50
|
||||
ItemNight = 51
|
||||
ItemHappiness = 52
|
||||
Trade = 53
|
||||
TradeMale = 54
|
||||
TradeFemale = 55
|
||||
TradeDay = 56
|
||||
TradeNight = 57
|
||||
TradeItem = 58
|
||||
TradeSpecies = 59
|
||||
|
||||
EVONAMES = ["None",
|
||||
"Happiness", "HappinessDay", "HappinessNight", "Level", "Trade",
|
||||
"TradeItem", "Item", "AttackGreater", "AtkDefEqual", "DefenseGreater",
|
||||
"Silcoon", "Cascoon", "Ninjask", "Shedinja", "Beauty",
|
||||
"ItemMale", "ItemFemale", "DayHoldItem", "NightHoldItem", "HasMove",
|
||||
"HasInParty", "LevelMale", "LevelFemale", "Location", "TradeSpecies",
|
||||
"LevelDay", "LevelNight", "LevelDarkInParty", "LevelRain", "HappinessMoveType",
|
||||
"LevelEvening"
|
||||
]
|
||||
def self.maxValue; return 59; end
|
||||
|
||||
@@evolution_methods = HandlerHash.new(:PBEvolution)
|
||||
|
||||
@@ -59,7 +81,7 @@ module PBEvolution
|
||||
def self.hasFunction?(method, function)
|
||||
method = (method.is_a?(Numeric)) ? method : getConst(PBEvolution, method)
|
||||
method_hash = @@evolution_methods[method]
|
||||
return method_hash && method_hash[function]
|
||||
return method_hash && method_hash.keys.include?(function)
|
||||
end
|
||||
|
||||
def self.getFunction(method, function)
|
||||
@@ -293,16 +315,36 @@ PBEvolution.register(:LevelNight, {
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelMorning, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && PBDayNight.isMorning?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelAfternoon, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && PBDayNight.isAfternoon?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelEvening, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && PBDayNight.isEvening?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelDarkInParty, {
|
||||
PBEvolution.register(:LevelNoWeather, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
if pkmn.level >= parameter
|
||||
next $Trainer.pokemonParty.any? { |p| p && p.hasType(:DARK) }
|
||||
if pkmn.level >= parameter && $game_screen
|
||||
next $game_screen.weather_type == PBFieldWeather::None
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelSun, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
if pkmn.level >= parameter && $game_screen
|
||||
next $game_screen.weather_type == PBFieldWeather::Sun
|
||||
end
|
||||
}
|
||||
})
|
||||
@@ -316,6 +358,54 @@ PBEvolution.register(:LevelRain, {
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelSnow, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
if pkmn.level >= parameter && $game_screen
|
||||
next [PBFieldWeather::Snow, PBFieldWeather::Blizzard].include?($game_screen.weather_type)
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelSandstorm, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
if pkmn.level >= parameter && $game_screen
|
||||
next $game_screen.weather_type == PBFieldWeather::Sandstorm
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelCycling, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && $PokemonGlobal && $PokemonGlobal.bicycle
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelSurfing, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && $PokemonGlobal && $PokemonGlobal.surfing
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelDiving, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && $PokemonGlobal && $PokemonGlobal.diving
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelDarkness, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && pbGetMetadata($game_map.map_id, MetadataDarkMap)
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:LevelDarkInParty, {
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
if pkmn.level >= parameter
|
||||
next $Trainer.pokemonParty.any? { |p| p && p.hasType(:DARK) }
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:AttackGreater, { # Hitmonlee
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.level >= parameter && pkmn.attack > pkmn.defense
|
||||
@@ -353,6 +443,7 @@ PBEvolution.register(:Ninjask, {
|
||||
})
|
||||
|
||||
PBEvolution.register(:Shedinja, {
|
||||
"parameterType" => nil,
|
||||
"afterEvolution" => proc { |pkmn, new_species, parameter, evo_species|
|
||||
next false if $Trainer.party.length>=6
|
||||
next false if !$PokemonBag.pbHasItem?(getConst(PBItems,:POKEBALL))
|
||||
@@ -363,23 +454,52 @@ PBEvolution.register(:Shedinja, {
|
||||
})
|
||||
|
||||
PBEvolution.register(:Happiness, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => nil,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness >= 220
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HappinessMale, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => nil,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness >= 220 && pkmn.male?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HappinessFemale, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => nil,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness >= 220 && pkmn.female?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HappinessDay, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => nil,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness >= 220 && PBDayNight.isDay?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HappinessNight, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness >= 220 && PBDayNight.isDay?
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => nil,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness >= 220 && PBDayNight.isNight?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HappinessMove, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBMoves,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
if pkmn.happiness >= 220
|
||||
next pkmn.moves.any? { |m| m && m.id == parameter }
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
@@ -393,6 +513,27 @@ PBEvolution.register(:HappinessMoveType, {
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HappinessHoldItem, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBItems,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.item == parameter && pkmn.happiness >= 220
|
||||
},
|
||||
"afterEvolution" => proc { |pkmn, new_species, parameter, evo_species|
|
||||
next false if evo_species != new_species || !pkmn.hasItem?(parameter)
|
||||
pkmn.setItem(0) # Item is now consumed
|
||||
next true
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:MaxHappiness, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => nil,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.happiness == 255
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:Beauty, { # Feebas
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
@@ -400,6 +541,45 @@ PBEvolution.register(:Beauty, { # Feebas
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HoldItem, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBItems,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.item == parameter
|
||||
},
|
||||
"afterEvolution" => proc { |pkmn, new_species, parameter, evo_species|
|
||||
next false if evo_species != new_species || !pkmn.hasItem?(parameter)
|
||||
pkmn.setItem(0) # Item is now consumed
|
||||
next true
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HoldItemMale, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBItems,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.item == parameter && pkmn.male?
|
||||
},
|
||||
"afterEvolution" => proc { |pkmn, new_species, parameter, evo_species|
|
||||
next false if evo_species != new_species || !pkmn.hasItem?(parameter)
|
||||
pkmn.setItem(0) # Item is now consumed
|
||||
next true
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HoldItemFemale, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBItems,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.item == parameter && pkmn.female?
|
||||
},
|
||||
"afterEvolution" => proc { |pkmn, new_species, parameter, evo_species|
|
||||
next false if evo_species != new_species || !pkmn.hasItem?(parameter)
|
||||
pkmn.setItem(0) # Item is now consumed
|
||||
next true
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:DayHoldItem, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBItems,
|
||||
@@ -426,6 +606,19 @@ PBEvolution.register(:NightHoldItem, {
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HoldItemHappiness, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBItems,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.item == parameter && pkmn.happiness >= 220
|
||||
},
|
||||
"afterEvolution" => proc { |pkmn, new_species, parameter, evo_species|
|
||||
next false if evo_species != new_species || !pkmn.hasItem?(parameter)
|
||||
pkmn.setItem(0) # Item is now consumed
|
||||
next true
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HasMove, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBMoves,
|
||||
@@ -434,6 +627,14 @@ PBEvolution.register(:HasMove, {
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HasMoveType, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBTypes,
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next pkmn.moves.any? { |m| m && m.type == parameter }
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:HasInParty, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"parameterType" => :PBSpecies,
|
||||
@@ -443,12 +644,20 @@ PBEvolution.register(:HasInParty, {
|
||||
})
|
||||
|
||||
PBEvolution.register(:Location, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
next $game_map.map_id == parameter
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:Region, {
|
||||
"minimumLevel" => 1, # Needs any level up
|
||||
"levelUpCheck" => proc { |pkmn, parameter|
|
||||
mapPos = pbGetMetadata($game_map.map_id, MetadataMapPosition)
|
||||
next mapPos && mapPos[0] == parameter
|
||||
}
|
||||
})
|
||||
|
||||
#===============================================================================
|
||||
# Evolution methods that trigger when using an item on the Pokémon
|
||||
#===============================================================================
|
||||
@@ -473,15 +682,65 @@ PBEvolution.register(:ItemFemale, {
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:ItemDay, {
|
||||
"parameterType" => :PBItems,
|
||||
"itemCheck" => proc { |pkmn, parameter, item|
|
||||
next item == parameter && PBDayNight.isDay?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:ItemNight, {
|
||||
"parameterType" => :PBItems,
|
||||
"itemCheck" => proc { |pkmn, parameter, item|
|
||||
next item == parameter && PBDayNight.isNight?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:ItemHappiness, {
|
||||
"parameterType" => :PBItems,
|
||||
"levelUpCheck" => proc { |pkmn, parameter, item|
|
||||
next item == parameter && pkmn.happiness >= 220
|
||||
}
|
||||
})
|
||||
|
||||
#===============================================================================
|
||||
# Evolution methods that trigger when the Pokémon is obtained in a trade
|
||||
#===============================================================================
|
||||
PBEvolution.register(:Trade, {
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
"parameterType" => nil,
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
next true
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:TradeMale, {
|
||||
"parameterType" => nil,
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
next pkmn.male?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:TradeFemale, {
|
||||
"parameterType" => nil,
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
next pkmn.female?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:TradeDay, {
|
||||
"parameterType" => nil,
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
next PBDayNight.isDay?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:TradeNight, {
|
||||
"parameterType" => nil,
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
next PBDayNight.isNight?
|
||||
}
|
||||
})
|
||||
|
||||
PBEvolution.register(:TradeItem, {
|
||||
"parameterType" => :PBItems,
|
||||
"tradeCheck" => proc { |pkmn, parameter, other_pkmn|
|
||||
|
||||
@@ -811,7 +811,7 @@ def pbPokemonEditor
|
||||
[_INTL("BattlerAltitude"),ReadOnlyProperty,_INTL("Affects positioning of the Pokémon in battle. This is edited elsewhere.")],
|
||||
[_INTL("BattlerShadowX"),ReadOnlyProperty,_INTL("Affects positioning of the Pokémon in battle. This is edited elsewhere.")],
|
||||
[_INTL("BattlerShadowSize"),ReadOnlyProperty,_INTL("Affects positioning of the Pokémon in battle. This is edited elsewhere.")],
|
||||
[_INTL("Evolutions"),EvolutionsProperty.new(PBEvolution::EVONAMES),_INTL("Evolution paths of this species.")],
|
||||
[_INTL("Evolutions"),EvolutionsProperty.new,_INTL("Evolution paths of this species.")],
|
||||
[_INTL("Incense"),ItemProperty,_INTL("Item needed to be held by a parent to produce an egg of this species.")],
|
||||
]
|
||||
pbListScreenBlock(_INTL("Pokémon species"),SpeciesLister.new(selection,false)) { |button,index|
|
||||
|
||||
@@ -1182,8 +1182,11 @@ end
|
||||
|
||||
|
||||
class EvolutionsProperty
|
||||
def initialize(methods)
|
||||
@methods = methods
|
||||
def initialize
|
||||
@methods = []
|
||||
(PBEvolution.maxValue + 1).times do |i|
|
||||
@methods[i] = getConstantName(PBEvolution, i)
|
||||
end
|
||||
end
|
||||
|
||||
def set(_settingname,oldsetting)
|
||||
@@ -1207,12 +1210,18 @@ class EvolutionsProperty
|
||||
else
|
||||
level = realcmds[i][1]
|
||||
param_type = PBEvolution.getFunction(realcmds[i][0], "parameterType")
|
||||
if param_type
|
||||
level = (Object.const_get(param_type).getName(level) rescue getConstantName(param_type, level) rescue level)
|
||||
has_param = !PBEvolution.hasFunction?(realcmds[i][0], "parameterType") || param_type != nil
|
||||
if has_param
|
||||
if param_type
|
||||
level = (Object.const_get(param_type).getName(level) rescue getConstantName(param_type, level) rescue level)
|
||||
end
|
||||
level = "???" if !level
|
||||
commands.push(_INTL("{1}: {2}, {3}",
|
||||
PBSpecies.getName(realcmds[i][2]),@methods[realcmds[i][0]],level.to_s))
|
||||
else
|
||||
commands.push(_INTL("{1}: {2}",
|
||||
PBSpecies.getName(realcmds[i][2]),@methods[realcmds[i][0]]))
|
||||
end
|
||||
level = "" if !level
|
||||
commands.push(_INTL("{1}: {2}, {3}",
|
||||
PBSpecies.getName(realcmds[i][2]),@methods[realcmds[i][0]],level.to_s))
|
||||
end
|
||||
cmd[1] = i if oldsel>=0 && realcmds[i][3]==oldsel
|
||||
end
|
||||
@@ -1239,28 +1248,31 @@ class EvolutionsProperty
|
||||
newmethod = pbMessage(_INTL("Choose an evolution method."),@methods,-1)
|
||||
if newmethod>0
|
||||
newparam = -1
|
||||
allow_zero = false
|
||||
param_type = PBEvolution.getFunction(newmethod, "parameterType")
|
||||
case param_type
|
||||
when :PBItems
|
||||
newparam = pbChooseItemList
|
||||
when :PBMoves
|
||||
newparam = pbChooseMoveList
|
||||
when :PBSpecies
|
||||
newparam = pbChooseSpeciesList
|
||||
when :PBTypes
|
||||
allow_zero = true
|
||||
newparam = pbChooseTypeList
|
||||
when :PBAbilities
|
||||
newparam = pbChooseAbilityList
|
||||
else
|
||||
allow_zero = true
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(0,65535)
|
||||
params.setCancelValue(-1)
|
||||
newparam = pbMessageChooseNumber(_INTL("Choose a parameter."),params)
|
||||
has_param = !PBEvolution.hasFunction?(newmethod, "parameterType") || param_type != nil
|
||||
if has_param
|
||||
allow_zero = false
|
||||
case param_type
|
||||
when :PBItems
|
||||
newparam = pbChooseItemList
|
||||
when :PBMoves
|
||||
newparam = pbChooseMoveList
|
||||
when :PBSpecies
|
||||
newparam = pbChooseSpeciesList
|
||||
when :PBTypes
|
||||
allow_zero = true
|
||||
newparam = pbChooseTypeList
|
||||
when :PBAbilities
|
||||
newparam = pbChooseAbilityList
|
||||
else
|
||||
allow_zero = true
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(0,65535)
|
||||
params.setCancelValue(-1)
|
||||
newparam = pbMessageChooseNumber(_INTL("Choose a parameter."),params)
|
||||
end
|
||||
end
|
||||
if newparam && (newparam>0 || (allow_zero && newparam == 0))
|
||||
if !has_param || newparam > 0 || (allow_zero && newparam == 0)
|
||||
havemove = -1
|
||||
for i in 0...realcmds.length
|
||||
havemove = realcmds[i][3] if realcmds[i][0]==newmethod &&
|
||||
@@ -1324,44 +1336,49 @@ class EvolutionsProperty
|
||||
end
|
||||
elsif cmd2==2 # Change parameter
|
||||
newparam = -1
|
||||
allow_zero = false
|
||||
param_type = PBEvolution.getFunction(entry[0], "parameterType")
|
||||
case param_type
|
||||
when :PBItems
|
||||
newparam = pbChooseItemList(entry[1])
|
||||
when :PBMoves
|
||||
newparam = pbChooseMoveList(entry[1])
|
||||
when :PBSpecies
|
||||
newparam = pbChooseSpeciesList(entry[1])
|
||||
when :PBTypes
|
||||
allow_zero = true
|
||||
newparam = pbChooseTypeList(entry[1])
|
||||
when :PBAbilities
|
||||
newparam = pbChooseAbilityList(entry[1])
|
||||
else
|
||||
allow_zero = true
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(0,65535)
|
||||
params.setDefaultValue(entry[1])
|
||||
params.setCancelValue(-1)
|
||||
newparam = pbMessageChooseNumber(_INTL("Choose a parameter."),params)
|
||||
end
|
||||
if newparam && (newparam>0 || (allow_zero && newparam == 0))
|
||||
havemove = -1
|
||||
for i in 0...realcmds.length
|
||||
havemove = realcmds[i][3] if realcmds[i][0]==entry[0] &&
|
||||
realcmds[i][1]==newparam &&
|
||||
realcmds[i][2]==entry[2]
|
||||
end
|
||||
if havemove>=0
|
||||
realcmds[cmd[1]] = nil
|
||||
realcmds.compact!
|
||||
oldsel = havemove
|
||||
has_param = !PBEvolution.hasFunction?(entry[0], "parameterType") || param_type != nil
|
||||
if has_param
|
||||
allow_zero = false
|
||||
case param_type
|
||||
when :PBItems
|
||||
newparam = pbChooseItemList(entry[1])
|
||||
when :PBMoves
|
||||
newparam = pbChooseMoveList(entry[1])
|
||||
when :PBSpecies
|
||||
newparam = pbChooseSpeciesList(entry[1])
|
||||
when :PBTypes
|
||||
allow_zero = true
|
||||
newparam = pbChooseTypeList(entry[1])
|
||||
when :PBAbilities
|
||||
newparam = pbChooseAbilityList(entry[1])
|
||||
else
|
||||
entry[1] = newparam
|
||||
oldsel = entry[3]
|
||||
allow_zero = true
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(0,65535)
|
||||
params.setDefaultValue(entry[1])
|
||||
params.setCancelValue(-1)
|
||||
newparam = pbMessageChooseNumber(_INTL("Choose a parameter."),params)
|
||||
end
|
||||
refreshlist = true
|
||||
if newparam>0 || (allow_zero && newparam == 0)
|
||||
havemove = -1
|
||||
for i in 0...realcmds.length
|
||||
havemove = realcmds[i][3] if realcmds[i][0]==entry[0] &&
|
||||
realcmds[i][1]==newparam &&
|
||||
realcmds[i][2]==entry[2]
|
||||
end
|
||||
if havemove>=0
|
||||
realcmds[cmd[1]] = nil
|
||||
realcmds.compact!
|
||||
oldsel = havemove
|
||||
else
|
||||
entry[1] = newparam
|
||||
oldsel = entry[3]
|
||||
end
|
||||
refreshlist = true
|
||||
end
|
||||
else
|
||||
pbMessage(_INTL("This evolution method doesn't use a parameter."))
|
||||
end
|
||||
elsif cmd2==3 # Delete
|
||||
realcmds[cmd[1]] = nil
|
||||
|
||||
Reference in New Issue
Block a user