mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-01-22 06:06:01 +00:00
Created and implemented GameData::Species
This commit is contained in:
@@ -294,12 +294,12 @@ def pbDebugMenuActions(cmd="",sprites=nil,viewport=nil)
|
||||
#=============================================================================
|
||||
when "testwildbattle"
|
||||
species = pbChooseSpeciesList
|
||||
if species!=0
|
||||
if species
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(1,PBExperience.maxLevel)
|
||||
params.setInitialValue(5)
|
||||
params.setCancelValue(0)
|
||||
level = pbMessageChooseNumber(_INTL("Set the wild {1}'s level.",PBSpecies.getName(species)),params)
|
||||
level = pbMessageChooseNumber(_INTL("Set the wild {1}'s level.", GameData::Species.get(species).name), params)
|
||||
if level>0
|
||||
$PokemonTemp.encounterType = -1
|
||||
pbWildBattle(species,level)
|
||||
@@ -343,12 +343,12 @@ def pbDebugMenuActions(cmd="",sprites=nil,viewport=nil)
|
||||
size0 = newSize if newSize>0
|
||||
elsif pkmnCmd==pkmnCmds.length-3 # Add Pokémon
|
||||
species = pbChooseSpeciesList
|
||||
if species!=0
|
||||
if species
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(1,PBExperience.maxLevel)
|
||||
params.setInitialValue(5)
|
||||
params.setCancelValue(0)
|
||||
level = pbMessageChooseNumber(_INTL("Set the wild {1}'s level.",PBSpecies.getName(species)),params)
|
||||
level = pbMessageChooseNumber(_INTL("Set the wild {1}'s level.", GameData::Species.get(species).name), params)
|
||||
if level>0
|
||||
pkmn.push(Pokemon.new(species,level))
|
||||
end
|
||||
@@ -524,7 +524,7 @@ def pbDebugMenuActions(cmd="",sprites=nil,viewport=nil)
|
||||
#=============================================================================
|
||||
when "addpokemon"
|
||||
species = pbChooseSpeciesList
|
||||
if species!=0
|
||||
if species
|
||||
params = ChooseNumberParams.new
|
||||
params.setRange(1,PBExperience.maxLevel)
|
||||
params.setInitialValue(5)
|
||||
@@ -548,48 +548,41 @@ def pbDebugMenuActions(cmd="",sprites=nil,viewport=nil)
|
||||
end
|
||||
pbMessage(_INTL("All eggs in your party now require one step to hatch."))
|
||||
when "fillboxes"
|
||||
$Trainer.formseen = [] if !$Trainer.formseen
|
||||
$Trainer.formlastseen = [] if !$Trainer.formlastseen
|
||||
added = 0; completed = true
|
||||
speciesData = pbLoadSpeciesData
|
||||
formdata = pbLoadFormToSpecies
|
||||
for i in 1..PBSpecies.maxValue
|
||||
if added>=NUM_STORAGE_BOXES*30
|
||||
completed = false; break
|
||||
end
|
||||
cname = getConstantName(PBSpecies,i) rescue nil
|
||||
next if !cname
|
||||
pkmn = Pokemon.new(i,50)
|
||||
$PokemonStorage[(i-1)/$PokemonStorage.maxPokemon(0),
|
||||
(i-1)%$PokemonStorage.maxPokemon(0)] = pkmn
|
||||
# Record all forms of this Pokémon as seen and owned
|
||||
$Trainer.seen[i] = true
|
||||
$Trainer.owned[i] = true
|
||||
$Trainer.formseen[i] = [[],[]]
|
||||
formdata[i] = [i] if !formdata[i]
|
||||
for form in 0...formdata[i].length
|
||||
next if !formdata[i][form] || formdata[i][form]==0
|
||||
fSpecies = pbGetFSpeciesFromForm(i,form)
|
||||
formname = pbGetMessage(MessageTypes::FormNames,fSpecies)
|
||||
genderRate = speciesData[i][SpeciesData::GENDER_RATE] || 0
|
||||
gender = (genderRate==PBGenderRates::AlwaysFemale) ? 1 : 0
|
||||
if form==0
|
||||
case genderRate
|
||||
when PBGenderRates::AlwaysMale,
|
||||
PBGenderRates::AlwaysFemale,
|
||||
PBGenderRates::Genderless
|
||||
$Trainer.formseen[i][gender][form] = true
|
||||
$Trainer.formlastseen[i] = [gender,form]
|
||||
else # Both male and female
|
||||
$Trainer.formseen[i][0][form] = true
|
||||
$Trainer.formseen[i][1][form] = true
|
||||
$Trainer.formlastseen[i] = [0,form]
|
||||
end
|
||||
elsif formname && formname!=""
|
||||
$Trainer.formseen[i][gender][form] = true
|
||||
$Trainer.formseen = {} if !$Trainer.formseen
|
||||
$Trainer.formlastseen = {} if !$Trainer.formlastseen
|
||||
added = 0
|
||||
box_qty = $PokemonStorage.maxPokemon(0)
|
||||
completed = true
|
||||
GameData::Species.each do |species_data|
|
||||
sp = species_data.species
|
||||
f = species_data.form
|
||||
# Record each form of each species as seen and owned
|
||||
$Trainer.formseen[sp] = [[], []] if !$Trainer.formseen[sp]
|
||||
if f == 0
|
||||
$Trainer.seen[sp] = true
|
||||
$Trainer.owned[sp] = true
|
||||
if [PBGenderRates::AlwaysMale, PBGenderRates::AlwaysFemale,
|
||||
PBGenderRates::Genderless].include?(species_data.gender_rate)
|
||||
g = (species_data.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
||||
$Trainer.formseen[sp][g][f] = true
|
||||
$Trainer.formlastseen[sp] = [g, f] if f == 0
|
||||
else # Both male and female
|
||||
$Trainer.formseen[sp][0][f] = true
|
||||
$Trainer.formseen[sp][1][f] = true
|
||||
$Trainer.formlastseen[i] = [0, f] if f == 0
|
||||
end
|
||||
elsif species_data.real_form_name && !species_data.real_form_name.empty?
|
||||
g = (species_data.gender_rate == PBGenderRates::AlwaysFemale) ? 1 : 0
|
||||
$Trainer.formseen[sp][g][f] = true
|
||||
end
|
||||
# Add Pokémon (if form 0)
|
||||
next if f != 0
|
||||
if added >= NUM_STORAGE_BOXES * box_qty
|
||||
completed = false
|
||||
next
|
||||
end
|
||||
added += 1
|
||||
$PokemonStorage[(added - 1) / box_qty, (added - 1) % box_qty] = Pokemon.new(sp, 50)
|
||||
end
|
||||
pbMessage(_INTL("Storage boxes were filled with one Pokémon of each species."))
|
||||
if !completed
|
||||
|
||||
@@ -237,7 +237,7 @@ def pbDebugDayCare
|
||||
pkmn = $PokemonGlobal.daycare[i][0]
|
||||
initlevel = $PokemonGlobal.daycare[i][1]
|
||||
leveldiff = pkmn.level-initlevel
|
||||
textpos.push([pkmn.name+" ("+PBSpecies.getName(pkmn.species)+")",8+i*Graphics.width/2,y,0,base,shadow])
|
||||
textpos.push(["#{pkmn.name} (#{pkmn.speciesName})",8+i*Graphics.width/2,y,0,base,shadow])
|
||||
y += 32
|
||||
if pkmn.male?
|
||||
textpos.push([_INTL("Male ♂"),8+i*Graphics.width/2,y,0,Color.new(128,192,248),shadow])
|
||||
@@ -347,8 +347,7 @@ def pbDebugDayCare
|
||||
pbDayCareGenerateEgg
|
||||
$PokemonGlobal.daycareEgg = 0
|
||||
$PokemonGlobal.daycareEggSteps = 0
|
||||
pbMessage(_INTL("Collected the {1} egg.",
|
||||
PBSpecies.getName($Trainer.lastParty.species)))
|
||||
pbMessage(_INTL("Collected the {1} egg.", $Trainer.lastParty.speciesName))
|
||||
refresh = true
|
||||
end
|
||||
end
|
||||
@@ -401,7 +400,7 @@ class SpriteWindow_DebugRoamers < Window_DrawableCommand
|
||||
self.shadowtext(_INTL("[Clear all current roamer locations]"),rect.x,rect.y,nameWidth,rect.height)
|
||||
else
|
||||
pkmn = ROAMING_SPECIES[index]
|
||||
name = PBSpecies.getName(getID(PBSpecies,pkmn[0]))+" (Lv. #{pkmn[1]})"
|
||||
name = GameData::Species.get(pkmn[0]).name + " (Lv. #{pkmn[1]})"
|
||||
status = ""
|
||||
statuscolor = 0
|
||||
if pkmn[2]<=0 || $game_switches[pkmn[2]]
|
||||
@@ -528,32 +527,39 @@ end
|
||||
#===============================================================================
|
||||
def pbCreatePokemon
|
||||
party = []
|
||||
species = [:PIKACHU,:PIDGEOTTO,:KADABRA,:GYARADOS,:DIGLETT,:CHANSEY]
|
||||
species = [:PIKACHU, :PIDGEOTTO, :KADABRA, :GYARADOS, :DIGLETT, :CHANSEY]
|
||||
for id in species
|
||||
party.push(getConst(PBSpecies,id)) if hasConst?(PBSpecies,id)
|
||||
party.push(id) if GameData::Species.exists?(id)
|
||||
end
|
||||
# Species IDs of the Pokémon to be created
|
||||
for i in 0...party.length
|
||||
species = party[i]
|
||||
# Generate Pokémon with species and level 20
|
||||
$Trainer.party[i] = Pokemon.new(species,20)
|
||||
$Trainer.seen[species] = true # Set this species to seen and owned
|
||||
$Trainer.party[i] = Pokemon.new(species, 20)
|
||||
$Trainer.seen[species] = true
|
||||
$Trainer.owned[species] = true
|
||||
pbSeenForm($Trainer.party[i])
|
||||
case species
|
||||
when :PIDGEOTTO
|
||||
$Trainer.party[i].pbLearnMove(:FLY)
|
||||
when :KADABRA
|
||||
$Trainer.party[i].pbLearnMove(:FLASH)
|
||||
$Trainer.party[i].pbLearnMove(:TELEPORT)
|
||||
when :GYARADOS
|
||||
$Trainer.party[i].pbLearnMove(:SURF)
|
||||
$Trainer.party[i].pbLearnMove(:DIVE)
|
||||
$Trainer.party[i].pbLearnMove(:WATERFALL)
|
||||
when :DIGLETT
|
||||
$Trainer.party[i].pbLearnMove(:DIG)
|
||||
$Trainer.party[i].pbLearnMove(:CUT)
|
||||
$Trainer.party[i].pbLearnMove(:HEADBUTT)
|
||||
$Trainer.party[i].pbLearnMove(:ROCKSMASH)
|
||||
when :CHANSEY
|
||||
$Trainer.party[i].pbLearnMove(:SOFTBOILED)
|
||||
$Trainer.party[i].pbLearnMove(:STRENGTH)
|
||||
$Trainer.party[i].pbLearnMove(:SWEETSCENT)
|
||||
end
|
||||
end
|
||||
$Trainer.party[1].pbLearnMove(:FLY)
|
||||
$Trainer.party[2].pbLearnMove(:FLASH)
|
||||
$Trainer.party[2].pbLearnMove(:TELEPORT)
|
||||
$Trainer.party[3].pbLearnMove(:SURF)
|
||||
$Trainer.party[3].pbLearnMove(:DIVE)
|
||||
$Trainer.party[3].pbLearnMove(:WATERFALL)
|
||||
$Trainer.party[4].pbLearnMove(:DIG)
|
||||
$Trainer.party[4].pbLearnMove(:CUT)
|
||||
$Trainer.party[4].pbLearnMove(:HEADBUTT)
|
||||
$Trainer.party[4].pbLearnMove(:ROCKSMASH)
|
||||
$Trainer.party[5].pbLearnMove(:SOFTBOILED)
|
||||
$Trainer.party[5].pbLearnMove(:STRENGTH)
|
||||
$Trainer.party[5].pbLearnMove(:SWEETSCENT)
|
||||
for i in 0...party.length
|
||||
$Trainer.party[i].pbRecordFirstMoves
|
||||
end
|
||||
|
||||
@@ -533,7 +533,7 @@ module PokemonDebugMixin
|
||||
case cmd
|
||||
when 0 # Set species
|
||||
species = pbChooseSpeciesList(pkmn.species)
|
||||
if species!=0 && species!=pkmn.species
|
||||
if species && species != pkmn.species
|
||||
pkmn.species = species
|
||||
pkmn.calcStats
|
||||
pbSeenForm(pkmn) if !settingUpBattle
|
||||
@@ -541,25 +541,24 @@ module PokemonDebugMixin
|
||||
end
|
||||
when 1 # Set form
|
||||
cmd2 = 0
|
||||
formcmds = [[],[]]
|
||||
formdata = pbLoadFormToSpecies
|
||||
formdata[pkmn.species] = [pkmn.species] if !formdata[pkmn.species]
|
||||
for form in 0...formdata[pkmn.species].length
|
||||
fSpecies = pbGetFSpeciesFromForm(pkmn.species,form)
|
||||
formname = pbGetMessage(MessageTypes::FormNames,fSpecies)
|
||||
formname = _INTL("Unnamed form") if !formname || formname==""
|
||||
formname = _INTL("{1}: {2}",form,formname)
|
||||
formcmds[0].push(form); formcmds[1].push(formname)
|
||||
cmd2 = form if pkmn.form==form
|
||||
formcmds = [[], []]
|
||||
GameData::Species.each do |sp|
|
||||
next if sp.species != pkmn.species
|
||||
form_name = sp.form_name
|
||||
form_name = _INTL("Unnamed form") if !form_name || form_name.empty?
|
||||
form_name = sprintf("%d: %s", sp.form, form_name)
|
||||
formcmds[0].push(sp.form)
|
||||
formcmds[1].push(form_name)
|
||||
cmd2 = sp.form if pkmn.form == sp.form
|
||||
end
|
||||
if formcmds[0].length<=1
|
||||
pbDisplay(_INTL("Species {1} only has one form.",pkmn.speciesName))
|
||||
if formcmds[0].length <= 1
|
||||
pbDisplay(_INTL("Species {1} only has one form.", pkmn.speciesName))
|
||||
else
|
||||
cmd2 = pbShowCommands(_INTL("Set the Pokémon's form."),formcmds[1],cmd2)
|
||||
next if cmd2<0
|
||||
cmd2 = pbShowCommands(_INTL("Set the Pokémon's form."), formcmds[1], cmd2)
|
||||
next if cmd2 < 0
|
||||
f = formcmds[0][cmd2]
|
||||
if f!=pkmn.form
|
||||
if MultipleForms.hasFunction?(pkmn,"getForm")
|
||||
if f != pkmn.form
|
||||
if MultipleForms.hasFunction?(pkmn, "getForm")
|
||||
next if !pbConfirm(_INTL("This species decides its own form. Override?"))
|
||||
pkmn.forcedForm = f
|
||||
end
|
||||
@@ -599,7 +598,7 @@ module PokemonDebugMixin
|
||||
when "setnickname"
|
||||
cmd = 0
|
||||
loop do
|
||||
speciesname = PBSpecies.getName(pkmn.species)
|
||||
speciesname = pkmn.speciesName
|
||||
msg = [_INTL("{1} has the nickname {2}.",speciesname,pkmn.name),
|
||||
_INTL("{1} has no nickname.",speciesname)][pkmn.name==speciesname ? 1 : 0]
|
||||
cmd = pbShowCommands(msg,[
|
||||
@@ -722,18 +721,18 @@ module PokemonDebugMixin
|
||||
case cmd
|
||||
when 0 # Make egg
|
||||
if !pkmn.egg? && (pbHasEgg?(pkmn.species) ||
|
||||
pbConfirm(_INTL("{1} cannot legally be an egg. Make egg anyway?",PBSpecies.getName(pkmn.species))))
|
||||
pbConfirm(_INTL("{1} cannot legally be an egg. Make egg anyway?", pkmn.speciesName)))
|
||||
pkmn.level = EGG_LEVEL
|
||||
pkmn.calcStats
|
||||
pkmn.name = _INTL("Egg")
|
||||
pkmn.eggsteps = pbGetSpeciesData(pkmn.species,pkmn.form,SpeciesData::STEPS_TO_HATCH)
|
||||
pkmn.eggsteps = pkmn.species_data.hatch_steps
|
||||
pkmn.hatchedMap = 0
|
||||
pkmn.obtainMode = 1
|
||||
pbRefreshSingle(pkmnid)
|
||||
end
|
||||
when 1 # Make Pokémon
|
||||
if pkmn.egg?
|
||||
pkmn.name = PBSpecies.getName(pkmn.species)
|
||||
pkmn.name = pkmn.speciesName
|
||||
pkmn.eggsteps = 0
|
||||
pkmn.hatchedMap = 0
|
||||
pkmn.obtainMode = 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -263,16 +263,16 @@ end
|
||||
|
||||
module SpeciesProperty
|
||||
def self.set(_settingname,oldsetting)
|
||||
ret = pbChooseSpeciesList((oldsetting) ? oldsetting : 1)
|
||||
return (ret<=0) ? (oldsetting) ? oldsetting : 0 : ret
|
||||
ret = pbChooseSpeciesList(oldsetting || nil)
|
||||
return ret || oldsetting
|
||||
end
|
||||
|
||||
def self.defaultValue
|
||||
return 0
|
||||
return nil
|
||||
end
|
||||
|
||||
def self.format(value)
|
||||
return (value) ? PBSpecies.getName(value) : "-"
|
||||
return (value && GameData::Species.exists?(value)) ? GameData::Species.get(value).real_name : "-"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1258,15 +1258,17 @@ class EvolutionsProperty
|
||||
param_type = PBEvolution.getFunction(realcmds[i][0], "parameterType")
|
||||
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)
|
||||
if param_type && !GameData.const_defined?(param_type.to_sym)
|
||||
level = getConstantName(param_type, level)
|
||||
else
|
||||
level = level.to_s
|
||||
end
|
||||
level = "???" if !level
|
||||
level = "???" if !level || level.empty?
|
||||
commands.push(_INTL("{1}: {2}, {3}",
|
||||
PBSpecies.getName(realcmds[i][2]),@methods[realcmds[i][0]],level.to_s))
|
||||
GameData::Species.get(realcmds[i][2]).name, @methods[realcmds[i][0]], level.to_s))
|
||||
else
|
||||
commands.push(_INTL("{1}: {2}",
|
||||
PBSpecies.getName(realcmds[i][2]),@methods[realcmds[i][0]]))
|
||||
GameData::Species.get(realcmds[i][2]).name, @methods[realcmds[i][0]]))
|
||||
end
|
||||
end
|
||||
cmd[1] = i if oldsel>=0 && realcmds[i][3]==oldsel
|
||||
@@ -1290,7 +1292,7 @@ class EvolutionsProperty
|
||||
if entry[0]==-1 # Add new evolution path
|
||||
pbMessage(_INTL("Choose an evolved form, method and parameter."))
|
||||
newspecies = pbChooseSpeciesList
|
||||
if newspecies>0
|
||||
if newspecies
|
||||
newmethod = pbMessage(_INTL("Choose an evolution method."),@methods,-1)
|
||||
if newmethod>0
|
||||
newparam = -1
|
||||
@@ -1303,7 +1305,7 @@ class EvolutionsProperty
|
||||
newparam = pbChooseItemList
|
||||
when :Move
|
||||
newparam = pbChooseMoveList
|
||||
when :PBSpecies
|
||||
when :Species
|
||||
newparam = pbChooseSpeciesList
|
||||
when :Type
|
||||
newparam = pbChooseTypeList
|
||||
@@ -1343,7 +1345,7 @@ class EvolutionsProperty
|
||||
_INTL("Change parameter"),_INTL("Delete"),_INTL("Cancel")],5)
|
||||
if cmd2==0 # Change species
|
||||
newspecies = pbChooseSpeciesList(entry[2])
|
||||
if newspecies>0
|
||||
if newspecies
|
||||
havemove = -1
|
||||
for i in 0...realcmds.length
|
||||
havemove = realcmds[i][3] if realcmds[i][0]==entry[0] &&
|
||||
@@ -1391,7 +1393,7 @@ class EvolutionsProperty
|
||||
newparam = pbChooseItemList(entry[1])
|
||||
when :Move
|
||||
newparam = pbChooseMoveList(entry[1])
|
||||
when :PBSpecies
|
||||
when :Species
|
||||
newparam = pbChooseSpeciesList(entry[1])
|
||||
when :Type
|
||||
newparam = pbChooseTypeList(entry[1])
|
||||
@@ -1464,11 +1466,13 @@ class EvolutionsProperty
|
||||
ret << "," if i>0
|
||||
param = value[i][1]
|
||||
param_type = PBEvolution.getFunction(value[i][0], "parameterType")
|
||||
if param_type
|
||||
param = (Object.const_get(param_type).getName(param) rescue getConstantName(param_type, param) rescue param)
|
||||
if param_type && !GameData.const_defined?(param_type.to_sym)
|
||||
param = getConstantName(param_type, param)
|
||||
else
|
||||
param = param.to_s
|
||||
end
|
||||
param = "" if !param
|
||||
ret << sprintf("#{PBSpecies.getName(value[i][2])},#{@methods[value[i][0]]},#{param}")
|
||||
ret << sprintf("#{GameData::Species.get(value[i][2]).name},#{@methods[value[i][0]]},#{param}")
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
@@ -326,12 +326,11 @@ end
|
||||
#
|
||||
#===============================================================================
|
||||
class SpeciesLister
|
||||
def initialize(selection,includeNew=false)
|
||||
def initialize(selection = 0, includeNew = false)
|
||||
@selection = selection
|
||||
@commands = []
|
||||
@ids = []
|
||||
@includeNew = includeNew
|
||||
@trainers = nil
|
||||
@index = 0
|
||||
end
|
||||
|
||||
@@ -346,28 +345,27 @@ class SpeciesLister
|
||||
@commands.clear
|
||||
@ids.clear
|
||||
cmds = []
|
||||
for i in 1..PBSpecies.maxValue
|
||||
cname = getConstantName(PBSpecies,i) rescue next
|
||||
name = PBSpecies.getName(i)
|
||||
cmds.push([i,name]) if name && name!=""
|
||||
GameData::Species.each do |species|
|
||||
next if species.form != 0
|
||||
cmds.push([species.id_number, species.id, species.real_name])
|
||||
end
|
||||
cmds.sort! { |a,b| a[1]<=>b[1] }
|
||||
cmds.sort! { |a, b| a[2].downcase <=> b[2].downcase }
|
||||
if @includeNew
|
||||
@commands.push(_INTL("[NEW SPECIES]"))
|
||||
@ids.push(-1)
|
||||
@ids.push(true)
|
||||
end
|
||||
for i in cmds
|
||||
@commands.push(sprintf("%03d: %s",i[0],i[1]))
|
||||
@ids.push(i[0])
|
||||
@commands.push(sprintf("%03d: %s", i[0], i[2]))
|
||||
@ids.push(i[1])
|
||||
end
|
||||
@index = @selection
|
||||
@index = @commands.length-1 if @index>=@commands.length
|
||||
@index = 0 if @index<0
|
||||
@index = @commands.length - 1 if @index >= @commands.length
|
||||
@index = 0 if @index < 0
|
||||
return @commands
|
||||
end
|
||||
|
||||
def value(index)
|
||||
return nil if index<0
|
||||
return nil if index < 0
|
||||
return @ids[index]
|
||||
end
|
||||
|
||||
@@ -385,7 +383,6 @@ class ItemLister
|
||||
@commands = []
|
||||
@ids = []
|
||||
@includeNew = includeNew
|
||||
@trainers = nil
|
||||
@index = 0
|
||||
end
|
||||
|
||||
@@ -593,7 +590,7 @@ class TrainerBattleLister
|
||||
if !@includeNew || index>0
|
||||
@trainers[(@includeNew) ? index-1 : index][3].each_with_index do |p,i|
|
||||
text += "\r\n" if i>0
|
||||
text += sprintf("%s Lv.%d",PBSpecies.getName(p[TrainerData::SPECIES]),p[TrainerData::LEVEL])
|
||||
text += sprintf("%s Lv.%d",GameData::Species.get(p[TrainerData::SPECIES]).name, p[TrainerData::LEVEL])
|
||||
end
|
||||
end
|
||||
@pkmnList.text = text
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
def pbGetLegalMoves(species)
|
||||
species_data = GameData::Species.get(species)
|
||||
moves = []
|
||||
return moves if !species || species<=0
|
||||
moveset = pbGetSpeciesMoveset(species)
|
||||
moveset.each { |m| moves.push(m[1]) }
|
||||
tmdat = pbLoadSpeciesTMData
|
||||
GameData::Item.each do |i|
|
||||
next if !i.move
|
||||
moves.push(i.move) if tmdat[i.move] && tmdat[i.move].include?(species)
|
||||
end
|
||||
return moves if !species_data
|
||||
species_data.moves.each { |m| moves.push(m[1]) }
|
||||
species_data.tutor_moves.each { |m| moves.push(m[1]) }
|
||||
babyspecies = EvolutionHelper.baby_species(species)
|
||||
eggMoves = pbGetSpeciesEggMoves(babyspecies)
|
||||
eggMoves.each { |m| moves.push(m) }
|
||||
moves |= []
|
||||
GameData::Species.get(babyspecies).egg_moves.each { |m| moves.push(m) }
|
||||
moves |= [] # Remove duplicates
|
||||
return moves
|
||||
end
|
||||
|
||||
@@ -215,26 +210,19 @@ def pbGetHabitatConst(i)
|
||||
return ret
|
||||
end
|
||||
|
||||
def pbGetSpeciesConst(i)
|
||||
return MakeshiftConsts.get(MessageTypes::Species,i,PBSpecies)
|
||||
end
|
||||
|
||||
|
||||
|
||||
#===============================================================================
|
||||
# List all members of a class
|
||||
#===============================================================================
|
||||
# Displays a list of all Pokémon species, and returns the ID of the species
|
||||
# selected (or 0 if the selection was canceled). "default", if specified, is the
|
||||
# ID of the species to initially select. Pressing Input::A will toggle the list
|
||||
# sorting between numerical and alphabetical.
|
||||
def pbChooseSpeciesList(default=0)
|
||||
# selected (or nil if the selection was canceled). "default", if specified, is
|
||||
# the ID of the species to initially select. Pressing Input::A will toggle the
|
||||
# list sorting between numerical and alphabetical.
|
||||
def pbChooseSpeciesList(default = nil)
|
||||
commands = []
|
||||
for i in 1..PBSpecies.maxValue
|
||||
cname = getConstantName(PBSpecies,i) rescue nil
|
||||
commands.push([i,PBSpecies.getName(i)]) if cname
|
||||
end
|
||||
return pbChooseList(commands,default,0,-1)
|
||||
GameData::Species.each { |s| commands.push([s.id_number, s.real_name, s.id]) if s.form == 0 }
|
||||
return pbChooseList(commands, default, nil, -1)
|
||||
end
|
||||
|
||||
# Displays a list of all moves, and returns the ID of the move selected (or nil
|
||||
@@ -243,7 +231,7 @@ end
|
||||
# numerical and alphabetical.
|
||||
def pbChooseMoveList(default = nil)
|
||||
commands = []
|
||||
GameData::Move.each { |i| commands.push([i.id_number, i.name, i.id]) }
|
||||
GameData::Move.each { |i| commands.push([i.id_number, i.real_name, i.id]) }
|
||||
return pbChooseList(commands, default, nil, -1)
|
||||
end
|
||||
|
||||
@@ -407,10 +395,10 @@ def pbCommands3(cmdwindow,commands,cmdIfCancel,defaultindex=-1,noresize=false)
|
||||
elsif Input.repeat?(Input::DOWN)
|
||||
command = [2,cmdwindow.index]
|
||||
break
|
||||
elsif Input.press?(Input::LEFT)
|
||||
elsif Input.trigger?(Input::LEFT)
|
||||
command = [3,cmdwindow.index]
|
||||
break
|
||||
elsif Input.press?(Input::RIGHT)
|
||||
elsif Input.trigger?(Input::RIGHT)
|
||||
command = [4,cmdwindow.index]
|
||||
break
|
||||
end
|
||||
|
||||
@@ -4,50 +4,45 @@
|
||||
def findBottom(bitmap)
|
||||
return 0 if !bitmap
|
||||
for i in 1..bitmap.height
|
||||
for j in 0..bitmap.width-1
|
||||
return bitmap.height-i if bitmap.get_pixel(j,bitmap.height-i).alpha>0
|
||||
for j in 0..bitmap.width - 1
|
||||
return bitmap.height - i if bitmap.get_pixel(j, bitmap.height - i).alpha > 0
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def pbAutoPositionAll
|
||||
metrics = pbLoadSpeciesMetrics
|
||||
for i in 1..PBSpecies.maxValueF
|
||||
s = pbGetSpeciesFromFSpecies(i)
|
||||
Graphics.update if i%50==0
|
||||
bitmap1 = pbLoadSpeciesBitmap(s[0],false,s[1],false,false,true)
|
||||
bitmap2 = pbLoadSpeciesBitmap(s[0],false,s[1])
|
||||
metrics[SpeciesData::METRIC_PLAYER_X][i] = 0 # Player's x
|
||||
GameData::Species.each do |sp|
|
||||
Graphics.update if sp.id_number % 50 == 0
|
||||
bitmap1 = GameData::Species.sprite_bitmap(sp.species, sp.form, nil, nil, nil, true)
|
||||
bitmap2 = GameData::Species.sprite_bitmap(sp.species, sp.form)
|
||||
if bitmap1 && bitmap1.bitmap # Player's y
|
||||
metrics[SpeciesData::METRIC_PLAYER_Y][i] = (bitmap1.height-(findBottom(bitmap1.bitmap)+1))/2
|
||||
sp.back_sprite_x = 0
|
||||
sp.back_sprite_y = (bitmap1.height - (findBottom(bitmap1.bitmap) + 1)) / 2
|
||||
end
|
||||
metrics[SpeciesData::METRIC_ENEMY_X][i] = 0 # Foe's x
|
||||
if bitmap2 && bitmap2.bitmap # Foe's y
|
||||
metrics[SpeciesData::METRIC_ENEMY_Y][i] = (bitmap2.height-(findBottom(bitmap2.bitmap)+1))/2
|
||||
metrics[SpeciesData::METRIC_ENEMY_Y][i] += 4 # Just because
|
||||
sp.front_sprite_x = 0
|
||||
sp.front_sprite_y = (bitmap2.height - (findBottom(bitmap2.bitmap) + 1)) / 2
|
||||
sp.front_sprite_y += 4 # Just because
|
||||
end
|
||||
metrics[SpeciesData::METRIC_ALTITUDE][i] = 0 # Foe's altitude, not used now
|
||||
metrics[SpeciesData::METRIC_SHADOW_X][i] = 0 # Shadow's x
|
||||
metrics[SpeciesData::METRIC_SHADOW_SIZE][i] = 2 # Shadow size
|
||||
sp.front_sprite_altitude = 0 # Shouldn't be used
|
||||
sp.shadow_x = 0
|
||||
sp.shadow_size = 2
|
||||
bitmap1.dispose if bitmap1
|
||||
bitmap2.dispose if bitmap2
|
||||
end
|
||||
save_data(metrics,"Data/species_metrics.dat")
|
||||
$PokemonTemp.speciesMetrics = nil
|
||||
GameData::Species.save
|
||||
pbSavePokemonData
|
||||
pbSavePokemonFormsData
|
||||
end
|
||||
|
||||
|
||||
|
||||
#===============================================================================
|
||||
#
|
||||
#===============================================================================
|
||||
class SpritePositioner
|
||||
def pbOpen
|
||||
@sprites = {}
|
||||
@viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
|
||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||
@viewport.z = 99999
|
||||
battlebg = "Graphics/Battlebacks/indoor1_bg"
|
||||
playerbase = "Graphics/Battlebacks/indoor1_base0"
|
||||
@@ -56,21 +51,21 @@ class SpritePositioner
|
||||
@sprites["battle_bg"].setBitmap(battlebg)
|
||||
@sprites["battle_bg"].z = 0
|
||||
baseX, baseY = PokeBattle_SceneConstants.pbBattlerPosition(0)
|
||||
@sprites["base_0"] = IconSprite.new(baseX,baseY,@viewport)
|
||||
@sprites["base_0"] = IconSprite.new(baseX, baseY, @viewport)
|
||||
@sprites["base_0"].setBitmap(playerbase)
|
||||
@sprites["base_0"].x -= @sprites["base_0"].bitmap.width/2 if @sprites["base_0"].bitmap
|
||||
@sprites["base_0"].x -= @sprites["base_0"].bitmap.width / 2 if @sprites["base_0"].bitmap
|
||||
@sprites["base_0"].y -= @sprites["base_0"].bitmap.height if @sprites["base_0"].bitmap
|
||||
@sprites["base_0"].z = 1
|
||||
baseX, baseY = PokeBattle_SceneConstants.pbBattlerPosition(1)
|
||||
@sprites["base_1"] = IconSprite.new(baseX,baseY,@viewport)
|
||||
@sprites["base_1"] = IconSprite.new(baseX, baseY, @viewport)
|
||||
@sprites["base_1"].setBitmap(enemybase)
|
||||
@sprites["base_1"].x -= @sprites["base_1"].bitmap.width/2 if @sprites["base_1"].bitmap
|
||||
@sprites["base_1"].y -= @sprites["base_1"].bitmap.height/2 if @sprites["base_1"].bitmap
|
||||
@sprites["base_1"].x -= @sprites["base_1"].bitmap.width / 2 if @sprites["base_1"].bitmap
|
||||
@sprites["base_1"].y -= @sprites["base_1"].bitmap.height / 2 if @sprites["base_1"].bitmap
|
||||
@sprites["base_1"].z = 1
|
||||
@sprites["messageBox"] = IconSprite.new(0,Graphics.height-96,@viewport)
|
||||
@sprites["messageBox"] = IconSprite.new(0, Graphics.height - 96, @viewport)
|
||||
@sprites["messageBox"].setBitmap("Graphics/Pictures/Battle/debug_message")
|
||||
@sprites["messageBox"].z = 2
|
||||
@sprites["shadow_1"] = IconSprite.new(0,0,@viewport)
|
||||
@sprites["shadow_1"] = IconSprite.new(0, 0, @viewport)
|
||||
@sprites["shadow_1"].z = 3
|
||||
@sprites["pokemon_0"] = PokemonSprite.new(@viewport)
|
||||
@sprites["pokemon_0"].setOffset(PictureOrigin::Bottom)
|
||||
@@ -82,19 +77,18 @@ class SpritePositioner
|
||||
@sprites["info"].viewport = @viewport
|
||||
@sprites["info"].visible = false
|
||||
@oldSpeciesIndex = 0
|
||||
@species = 0
|
||||
@metrics = pbLoadSpeciesMetrics
|
||||
@species = nil # This can be a species_form
|
||||
@metricsChanged = false
|
||||
refresh
|
||||
@starting = true
|
||||
end
|
||||
|
||||
def pbClose
|
||||
if @metricsChanged
|
||||
if pbConfirmMessage(_INTL("Some metrics have been edited. Save changes?"))
|
||||
pbSaveMetrics
|
||||
@metricsChanged = false
|
||||
end
|
||||
if @metricsChanged && pbConfirmMessage(_INTL("Some metrics have been edited. Save changes?"))
|
||||
pbSaveMetrics
|
||||
@metricsChanged = false
|
||||
else
|
||||
GameData::Species.load # Clear all changes to metrics
|
||||
end
|
||||
pbFadeOutAndHide(@sprites) { update }
|
||||
pbDisposeSpriteHash(@sprites)
|
||||
@@ -102,8 +96,7 @@ class SpritePositioner
|
||||
end
|
||||
|
||||
def pbSaveMetrics
|
||||
save_data(@metrics,"Data/species_metrics.dat")
|
||||
$PokemonTemp.speciesMetrics = nil
|
||||
GameData::Species.save
|
||||
pbSavePokemonData
|
||||
pbSavePokemonFormsData
|
||||
end
|
||||
@@ -113,44 +106,46 @@ class SpritePositioner
|
||||
end
|
||||
|
||||
def refresh
|
||||
if @species<=0
|
||||
if !@species
|
||||
@sprites["pokemon_0"].visible = false
|
||||
@sprites["pokemon_1"].visible = false
|
||||
@sprites["shadow_1"].visible = false
|
||||
return
|
||||
end
|
||||
species_data = GameData::Species.get(@species)
|
||||
for i in 0...2
|
||||
pos = PokeBattle_SceneConstants.pbBattlerPosition(i,1)
|
||||
pos = PokeBattle_SceneConstants.pbBattlerPosition(i, 1)
|
||||
@sprites["pokemon_#{i}"].x = pos[0]
|
||||
@sprites["pokemon_#{i}"].y = pos[1]
|
||||
pbApplyBattlerMetricsToSprite(@sprites["pokemon_#{i}"],i,@species,false,@metrics)
|
||||
species_data.apply_metrics_to_sprite(@sprites["pokemon_#{i}"], i)
|
||||
@sprites["pokemon_#{i}"].visible = true
|
||||
if i==1
|
||||
if i == 1
|
||||
@sprites["shadow_1"].x = pos[0]
|
||||
@sprites["shadow_1"].y = pos[1]
|
||||
if @sprites["shadow_1"].bitmap
|
||||
@sprites["shadow_1"].x -= @sprites["shadow_1"].bitmap.width/2
|
||||
@sprites["shadow_1"].y -= @sprites["shadow_1"].bitmap.height/2
|
||||
@sprites["shadow_1"].x -= @sprites["shadow_1"].bitmap.width / 2
|
||||
@sprites["shadow_1"].y -= @sprites["shadow_1"].bitmap.height / 2
|
||||
end
|
||||
pbApplyBattlerMetricsToSprite(@sprites["shadow_1"],i,@species,true,@metrics)
|
||||
species_data.apply_metrics_to_sprite(@sprites["shadow_1"], i, true)
|
||||
@sprites["shadow_1"].visible = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def pbAutoPosition
|
||||
oldmetric1 = (@metrics[SpeciesData::METRIC_PLAYER_Y][@species] || 0)
|
||||
oldmetric3 = (@metrics[SpeciesData::METRIC_ENEMY_Y][@species] || 0)
|
||||
oldmetric4 = (@metrics[SpeciesData::METRIC_ALTITUDE][@species] || 0)
|
||||
species_data = GameData::Species.get(@species)
|
||||
old_back_y = species_data.back_sprite_y
|
||||
old_front_y = species_data.front_sprite_y
|
||||
old_front_altitude = species_data.front_sprite_altitude
|
||||
bitmap1 = @sprites["pokemon_0"].bitmap
|
||||
bitmap2 = @sprites["pokemon_1"].bitmap
|
||||
newmetric1 = (bitmap1.height-(findBottom(bitmap1)+1))/2
|
||||
newmetric3 = (bitmap2.height-(findBottom(bitmap2)+1))/2
|
||||
newmetric3 += 4 # Just because
|
||||
if newmetric1!=oldmetric1 || newmetric3!=oldmetric3 || oldmetric4!=0
|
||||
@metrics[SpeciesData::METRIC_PLAYER_Y][@species] = newmetric1
|
||||
@metrics[SpeciesData::METRIC_ENEMY_Y][@species] = newmetric3
|
||||
@metrics[SpeciesData::METRIC_ALTITUDE][@species] = 0
|
||||
new_back_y = (bitmap1.height - (findBottom(bitmap1) + 1)) / 2
|
||||
new_front_y = (bitmap2.height - (findBottom(bitmap2) + 1)) / 2
|
||||
new_front_y += 4 # Just because
|
||||
if new_back_y != old_back_y || new_front_y != old_front_y || old_front_altitude != 0
|
||||
species_data.back_sprite_y = new_back_y
|
||||
species_data.front_sprite_y = new_front_y
|
||||
species_data.front_sprite_altitude = 0
|
||||
@metricsChanged = true
|
||||
refresh
|
||||
end
|
||||
@@ -158,25 +153,32 @@ class SpritePositioner
|
||||
|
||||
def pbChangeSpecies(species)
|
||||
@species = species
|
||||
spe,frm = pbGetSpeciesFromFSpecies(@species)
|
||||
@sprites["pokemon_0"].setSpeciesBitmap(spe,false,frm,false,false,true)
|
||||
@sprites["pokemon_1"].setSpeciesBitmap(spe,false,frm,false,false,false)
|
||||
@sprites["shadow_1"].setBitmap(pbCheckPokemonShadowBitmapFiles(spe,frm,@metrics))
|
||||
species_data = GameData::Species.try_get(@species)
|
||||
return if !species_data
|
||||
spe = species_data.species
|
||||
frm = species_data.form
|
||||
@sprites["pokemon_0"].setSpeciesBitmap(spe, 0, frm, false, false, true)
|
||||
@sprites["pokemon_1"].setSpeciesBitmap(spe, 0, frm)
|
||||
# TODO
|
||||
@sprites["shadow_1"].setBitmap(GameData::Species.shadow_filename(spe, frm))
|
||||
end
|
||||
|
||||
def pbShadowSize
|
||||
pbChangeSpecies(@species)
|
||||
refresh
|
||||
oldval = (@metrics[SpeciesData::METRIC_SHADOW_SIZE][@species] || 2)
|
||||
cmdvals = [0]; commands = [_INTL("None")]
|
||||
species_data = GameData::Species.get(@species)
|
||||
oldval = species_data.shadow_size
|
||||
cmdvals = [0]
|
||||
commands = [_INTL("None")]
|
||||
defindex = 0
|
||||
i = 0
|
||||
loop do
|
||||
i += 1
|
||||
fn = sprintf("Graphics/Pictures/Battle/battler_shadow_%d",i)
|
||||
fn = sprintf("Graphics/Pictures/Battle/battler_shadow_%d", i)
|
||||
break if !pbResolveBitmap(fn)
|
||||
cmdvals.push(i); commands.push(i.to_s)
|
||||
defindex = cmdvals.length-1 if oldval==i
|
||||
cmdvals.push(i)
|
||||
commands.push(i.to_s)
|
||||
defindex = cmdvals.length - 1 if oldval == i
|
||||
end
|
||||
cw = Window_CommandPokemon.new(commands)
|
||||
cw.index = defindex
|
||||
@@ -188,19 +190,19 @@ class SpritePositioner
|
||||
Input.update
|
||||
cw.update
|
||||
self.update
|
||||
if cw.index!=oldindex
|
||||
if cw.index != oldindex
|
||||
oldindex = cw.index
|
||||
@metrics[SpeciesData::METRIC_SHADOW_SIZE][@species] = cmdvals[cw.index]
|
||||
species_data.shadow_size = cmdvals[cw.index]
|
||||
pbChangeSpecies(@species)
|
||||
refresh
|
||||
end
|
||||
if Input.trigger?(Input::A) # Cycle to next option
|
||||
pbPlayDecisionSE
|
||||
@metricsChanged = true if @metrics[SpeciesData::METRIC_SHADOW_SIZE][@species]!=oldval
|
||||
@metricsChanged = true if species_data.shadow_size != oldval
|
||||
ret = true
|
||||
break
|
||||
elsif Input.trigger?(Input::B)
|
||||
@metrics[SpeciesData::METRIC_SHADOW_SIZE][@species] = oldval
|
||||
species_data.shadow_size = oldval
|
||||
pbPlayCancelSE
|
||||
break
|
||||
elsif Input.trigger?(Input::C)
|
||||
@@ -213,25 +215,25 @@ class SpritePositioner
|
||||
end
|
||||
|
||||
def pbSetParameter(param)
|
||||
return if @species<=0
|
||||
if param==2
|
||||
return pbShadowSize
|
||||
elsif param==4
|
||||
return if !@species
|
||||
return pbShadowSize if param == 2
|
||||
if param == 4
|
||||
pbAutoPosition
|
||||
return false
|
||||
end
|
||||
species_data = GameData::Species.get(@species)
|
||||
case param
|
||||
when 0
|
||||
sprite = @sprites["pokemon_0"]
|
||||
xpos = (@metrics[SpeciesData::METRIC_PLAYER_X][@species] || 0)
|
||||
ypos = (@metrics[SpeciesData::METRIC_PLAYER_Y][@species] || 0)
|
||||
xpos = species_data.back_sprite_x
|
||||
ypos = species_data.back_sprite_y
|
||||
when 1
|
||||
sprite = @sprites["pokemon_1"]
|
||||
xpos = (@metrics[SpeciesData::METRIC_ENEMY_X][@species] || 0)
|
||||
ypos = (@metrics[SpeciesData::METRIC_ENEMY_Y][@species] || 0)
|
||||
xpos = species_data.front_sprite_x
|
||||
ypos = species_data.front_sprite_y
|
||||
when 3
|
||||
sprite = @sprites["shadow_1"]
|
||||
xpos = (@metrics[SpeciesData::METRIC_SHADOW_X][@species] || 0)
|
||||
xpos = species_data.shadow_x
|
||||
ypos = 0
|
||||
end
|
||||
oldxpos = xpos
|
||||
@@ -239,7 +241,7 @@ class SpritePositioner
|
||||
@sprites["info"].visible = true
|
||||
ret = false
|
||||
loop do
|
||||
sprite.visible = (Graphics.frame_count%16)<12
|
||||
sprite.visible = (Graphics.frame_count % 16) < 12 # Flash the selected sprite
|
||||
Graphics.update
|
||||
Input.update
|
||||
self.update
|
||||
@@ -248,59 +250,44 @@ class SpritePositioner
|
||||
when 1 then @sprites["info"].setTextToFit("Enemy Position = #{xpos},#{ypos}")
|
||||
when 3 then @sprites["info"].setTextToFit("Shadow Position = #{xpos}")
|
||||
end
|
||||
if Input.repeat?(Input::UP) && param!=3
|
||||
ypos -= 1
|
||||
if (Input.repeat?(Input::UP) || Input.repeat?(Input::DOWN)) && param != 3
|
||||
ypos += (Input.repeat?(Input::DOWN)) ? 1 : -1
|
||||
case param
|
||||
when 0 then @metrics[SpeciesData::METRIC_PLAYER_Y][@species] = ypos
|
||||
when 1 then @metrics[SpeciesData::METRIC_ENEMY_Y][@species] = ypos
|
||||
end
|
||||
refresh
|
||||
elsif Input.repeat?(Input::DOWN) && param!=3
|
||||
ypos += 1
|
||||
case param
|
||||
when 0 then @metrics[SpeciesData::METRIC_PLAYER_Y][@species] = ypos
|
||||
when 1 then @metrics[SpeciesData::METRIC_ENEMY_Y][@species] = ypos
|
||||
when 0 then species_data.back_sprite_y = ypos
|
||||
when 1 then species_data.front_sprite_y = ypos
|
||||
end
|
||||
refresh
|
||||
end
|
||||
if Input.repeat?(Input::LEFT)
|
||||
xpos -= 1
|
||||
if Input.repeat?(Input::LEFT) || Input.repeat?(Input::RIGHT)
|
||||
xpos += (Input.repeat?(Input::RIGHT)) ? 1 : -1
|
||||
case param
|
||||
when 0 then @metrics[SpeciesData::METRIC_PLAYER_X][@species] = xpos
|
||||
when 1 then @metrics[SpeciesData::METRIC_ENEMY_X][@species] = xpos
|
||||
when 3 then @metrics[SpeciesData::METRIC_SHADOW_X][@species] = xpos
|
||||
end
|
||||
refresh
|
||||
elsif Input.repeat?(Input::RIGHT)
|
||||
xpos += 1
|
||||
case param
|
||||
when 0 then @metrics[SpeciesData::METRIC_PLAYER_X][@species] = xpos
|
||||
when 1 then @metrics[SpeciesData::METRIC_ENEMY_X][@species] = xpos
|
||||
when 3 then @metrics[SpeciesData::METRIC_SHADOW_X][@species] = xpos
|
||||
when 0 then species_data.back_sprite_x = xpos
|
||||
when 1 then species_data.front_sprite_x = xpos
|
||||
when 3 then species_data.shadow_x = xpos
|
||||
end
|
||||
refresh
|
||||
end
|
||||
if Input.repeat?(Input::A) && param!=3 # Cycle to next option
|
||||
@metricsChanged = true if xpos!=oldxpos || ypos!=oldypos
|
||||
if Input.repeat?(Input::A) && param != 3 # Cycle to next option
|
||||
@metricsChanged = true if xpos != oldxpos || ypos != oldypos
|
||||
ret = true
|
||||
pbPlayDecisionSE
|
||||
break
|
||||
elsif Input.repeat?(Input::B)
|
||||
case param
|
||||
when 0
|
||||
@metrics[SpeciesData::METRIC_PLAYER_X][@species] = oldxpos
|
||||
@metrics[SpeciesData::METRIC_PLAYER_Y][@species] = oldypos
|
||||
species_data.back_sprite_x = oldxpos
|
||||
species_data.back_sprite_y = oldypos
|
||||
when 1
|
||||
@metrics[SpeciesData::METRIC_ENEMY_X][@species] = oldxpos
|
||||
@metrics[SpeciesData::METRIC_ENEMY_Y][@species] = oldypos
|
||||
species_data.front_sprite_x = oldxpos
|
||||
species_data.front_sprite_y = oldypos
|
||||
when 3
|
||||
@metrics[SpeciesData::METRIC_SHADOW_X][@species] = oldxpos
|
||||
species_data.shadow_x = oldxpos
|
||||
end
|
||||
pbPlayCancelSE
|
||||
refresh
|
||||
break
|
||||
elsif Input.repeat?(Input::C)
|
||||
@metricsChanged = true if xpos!=oldxpos || (param!=3 && ypos!=oldypos)
|
||||
@metricsChanged = true if xpos != oldxpos || (param != 3 && ypos != oldypos)
|
||||
pbPlayDecisionSE
|
||||
break
|
||||
end
|
||||
@@ -320,8 +307,8 @@ class SpritePositioner
|
||||
_INTL("Set Shadow Position"),
|
||||
_INTL("Auto-Position Sprites")
|
||||
])
|
||||
cw.x = Graphics.width-cw.width
|
||||
cw.y = Graphics.height-cw.height
|
||||
cw.x = Graphics.width - cw.width
|
||||
cw.y = Graphics.height - cw.height
|
||||
cw.viewport = @viewport
|
||||
ret = -1
|
||||
loop do
|
||||
@@ -347,55 +334,49 @@ class SpritePositioner
|
||||
pbFadeInAndShow(@sprites) { update }
|
||||
@starting = false
|
||||
end
|
||||
cw = Window_CommandPokemonEx.newEmpty(0,0,260,32+24*6,@viewport)
|
||||
cw = Window_CommandPokemonEx.newEmpty(0, 0, 260, 32 + 24 * 6, @viewport)
|
||||
cw.rowHeight = 24
|
||||
pbSetSmallFont(cw.contents)
|
||||
cw.x = Graphics.width-cw.width
|
||||
cw.y = Graphics.height-cw.height
|
||||
cw.x = Graphics.width - cw.width
|
||||
cw.y = Graphics.height - cw.height
|
||||
allspecies = []
|
||||
GameData::Species.each do |sp|
|
||||
name = (sp.form == 0) ? sp.name : _INTL("{1} (form {2})", sp.real_name, sp.form)
|
||||
allspecies.push([sp.id, sp.species, name]) if name && !name.empty?
|
||||
end
|
||||
allspecies.sort! { |a, b| a[2] <=> b[2] }
|
||||
commands = []
|
||||
for i in 1..PBSpecies.maxValueF
|
||||
s = pbGetSpeciesFromFSpecies(i)
|
||||
name = PBSpecies.getName(s[0])
|
||||
name = _INTL("{1} (form {2})",name,s[1]) if s[1]>0
|
||||
allspecies.push([i,s[0],name]) if name!=""
|
||||
end
|
||||
allspecies.sort! { |a,b| a[1]==b[1] ? a[0]<=>b[0] : a[2]<=>b[2] }
|
||||
for s in allspecies
|
||||
commands.push(_INTL("{1} - {2}",s[1],s[2]))
|
||||
end
|
||||
allspecies.each { |sp| commands.push(sp[2]) }
|
||||
cw.commands = commands
|
||||
cw.index = @oldSpeciesIndex
|
||||
species = 0
|
||||
ret = nil
|
||||
oldindex = -1
|
||||
loop do
|
||||
Graphics.update
|
||||
Input.update
|
||||
cw.update
|
||||
if cw.index!=oldindex
|
||||
if cw.index != oldindex
|
||||
oldindex = cw.index
|
||||
pbChangeSpecies(allspecies[cw.index][0])
|
||||
refresh
|
||||
end
|
||||
self.update
|
||||
if Input.trigger?(Input::B)
|
||||
pbChangeSpecies(0)
|
||||
pbChangeSpecies(nil)
|
||||
refresh
|
||||
break
|
||||
elsif Input.trigger?(Input::C)
|
||||
pbChangeSpecies(allspecies[cw.index][0])
|
||||
species = allspecies[cw.index][0]
|
||||
ret = allspecies[cw.index][0]
|
||||
break
|
||||
end
|
||||
end
|
||||
@oldSpeciesIndex = cw.index
|
||||
cw.dispose
|
||||
return species
|
||||
return ret
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
#===============================================================================
|
||||
#
|
||||
#===============================================================================
|
||||
@@ -408,14 +389,14 @@ class SpritePositionerScreen
|
||||
@scene.pbOpen
|
||||
loop do
|
||||
species = @scene.pbChooseSpecies
|
||||
break if species<=0
|
||||
break if !species
|
||||
loop do
|
||||
command = @scene.pbMenu(species)
|
||||
break if command<0
|
||||
break if command < 0
|
||||
loop do
|
||||
par = @scene.pbSetParameter(command)
|
||||
break if !par
|
||||
command = (command+1)%3
|
||||
command = (command + 1) % 3
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user