mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-03-20 07:00:24 +00:00
Moved methods that return item/trainer graphics, refactored evolution helper methods, rearranged some methods
This commit is contained in:
@@ -134,3 +134,61 @@ class TileDrawingHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
|
# Unused
|
||||||
|
def createMinimap2(mapid)
|
||||||
|
map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
|
||||||
|
return BitmapWrapper.new(32,32) if !map
|
||||||
|
bitmap=BitmapWrapper.new(map.width*4,map.height*4)
|
||||||
|
black=Color.new(0,0,0)
|
||||||
|
bigmap=(map.width>40 && map.height>40)
|
||||||
|
tilesets=load_data("Data/Tilesets.rxdata")
|
||||||
|
tileset=tilesets[map.tileset_id]
|
||||||
|
return bitmap if !tileset
|
||||||
|
helper=TileDrawingHelper.fromTileset(tileset)
|
||||||
|
for y in 0...map.height
|
||||||
|
for x in 0...map.width
|
||||||
|
if bigmap
|
||||||
|
next if (x>8 && x<=map.width-8 && y>8 && y<=map.height-8)
|
||||||
|
end
|
||||||
|
for z in 0..2
|
||||||
|
id=map.data[x,y,z]
|
||||||
|
next if id==0 || !id
|
||||||
|
helper.bltSmallTile(bitmap,x*4,y*4,4,4,id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
bitmap.fill_rect(0,0,bitmap.width,1,black)
|
||||||
|
bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
|
||||||
|
bitmap.fill_rect(0,0,1,bitmap.height,black)
|
||||||
|
bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
|
||||||
|
return bitmap
|
||||||
|
end
|
||||||
|
|
||||||
|
def createMinimap(mapid)
|
||||||
|
map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
|
||||||
|
return BitmapWrapper.new(32,32) if !map
|
||||||
|
bitmap=BitmapWrapper.new(map.width*4,map.height*4)
|
||||||
|
black=Color.new(0,0,0)
|
||||||
|
tilesets=load_data("Data/Tilesets.rxdata")
|
||||||
|
tileset=tilesets[map.tileset_id]
|
||||||
|
return bitmap if !tileset
|
||||||
|
helper=TileDrawingHelper.fromTileset(tileset)
|
||||||
|
for y in 0...map.height
|
||||||
|
for x in 0...map.width
|
||||||
|
for z in 0..2
|
||||||
|
id=map.data[x,y,z]
|
||||||
|
id=0 if !id
|
||||||
|
helper.bltSmallTile(bitmap,x*4,y*4,4,4,id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
bitmap.fill_rect(0,0,bitmap.width,1,black)
|
||||||
|
bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
|
||||||
|
bitmap.fill_rect(0,0,1,bitmap.height,black)
|
||||||
|
bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
|
||||||
|
return bitmap
|
||||||
|
end
|
||||||
|
|||||||
@@ -18,6 +18,49 @@ module GameData
|
|||||||
extend ClassMethods
|
extend ClassMethods
|
||||||
include InstanceMethods
|
include InstanceMethods
|
||||||
|
|
||||||
|
def self.icon_filename(item)
|
||||||
|
return "Graphics/Icons/itemBack" if item.nil?
|
||||||
|
item_data = self.try_get(item)
|
||||||
|
return "Graphics/Icons/item000" if item_data.nil?
|
||||||
|
# Check for files
|
||||||
|
ret = sprintf("Graphics/Icons/item%s", item_data.id)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
ret = sprintf("Graphics/Icons/item%03d", item_data.id_number)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
# Check for TM/HM type icons
|
||||||
|
if item_data.is_machine?
|
||||||
|
move_type = GameData::Move.get(item_data.move).type
|
||||||
|
type_data = GameData::Type.get(move_type)
|
||||||
|
ret = sprintf("Graphics/Icons/itemMachine%s", type_data.id)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
ret = sprintf("Graphics/Icons/itemMachine%03d", type_data.id_number)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
end
|
||||||
|
return "Graphics/Icons/item000"
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.held_icon_filename(item)
|
||||||
|
item_data = self.try_get(item)
|
||||||
|
return nil if !item_data
|
||||||
|
name_base = (item_data.is_mail?) ? "mail" : "item"
|
||||||
|
# Check for files
|
||||||
|
ret = sprintf("Graphics/Pictures/Party/icon_%s_%s", name_base, item_data.id)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
ret = sprintf("Graphics/Pictures/Party/icon_%s_%03d", name_base, item_data.id_number)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
return sprintf("Graphics/Pictures/Party/icon_%s", name_base)
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.mail_filename(item)
|
||||||
|
item_data = self.try_get(item)
|
||||||
|
return nil if !item_data
|
||||||
|
# Check for files
|
||||||
|
ret = sprintf("Graphics/Pictures/Mail/mail_%s", item_data.id)
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
ret = sprintf("Graphics/Pictures/Mail/mail_%03d", item_data.id_number)
|
||||||
|
return pbResolveBitmap(ret) ? ret : nil
|
||||||
|
end
|
||||||
|
|
||||||
def initialize(hash)
|
def initialize(hash)
|
||||||
@id = hash[:id]
|
@id = hash[:id]
|
||||||
@id_number = hash[:id_number] || -1
|
@id_number = hash[:id_number] || -1
|
||||||
@@ -230,3 +273,18 @@ def pbIsUnlosableItem?(check_item, species, ability)
|
|||||||
Deprecation.warn_method('pbIsUnlosableItem?', 'v20', 'GameData::Item.get(item).unlosable?')
|
Deprecation.warn_method('pbIsUnlosableItem?', 'v20', 'GameData::Item.get(item).unlosable?')
|
||||||
return GameData::Item.get(check_item).unlosable?(species, ability)
|
return GameData::Item.get(check_item).unlosable?(species, ability)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pbItemIconFile(item)
|
||||||
|
Deprecation.warn_method('pbItemIconFile', 'v20', 'GameData::Item.icon_filename(item)')
|
||||||
|
return GameData::Item.icon_filename(item)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbHeldItemIconFile(item)
|
||||||
|
Deprecation.warn_method('pbHeldItemIconFile', 'v20', 'GameData::Item.held_icon_filename(item)')
|
||||||
|
return GameData::Item.held_icon_filename(item)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbMailBackFile(item)
|
||||||
|
Deprecation.warn_method('pbMailBackFile', 'v20', 'GameData::Item.mail_filename(item)')
|
||||||
|
return GameData::Item.mail_filename(item)
|
||||||
|
end
|
||||||
|
|||||||
@@ -48,6 +48,18 @@ module GameData
|
|||||||
return pbGetMessage(MessageTypes::MoveDescriptions, @id_number)
|
return pbGetMessage(MessageTypes::MoveDescriptions, @id_number)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def physical?
|
||||||
|
return false if @base_damage == 0
|
||||||
|
return @category == 0 if MOVE_CATEGORY_PER_MOVE
|
||||||
|
return GameData::Type.get(@type).physical?
|
||||||
|
end
|
||||||
|
|
||||||
|
def special?
|
||||||
|
return false if @base_damage == 0
|
||||||
|
return @category == 1 if MOVE_CATEGORY_PER_MOVE
|
||||||
|
return GameData::Type.get(@type).special?
|
||||||
|
end
|
||||||
|
|
||||||
def hidden_move?
|
def hidden_move?
|
||||||
GameData::Item.each do |i|
|
GameData::Item.each do |i|
|
||||||
return true if i.is_HM? && i.move == @id
|
return true if i.is_HM? && i.move == @id
|
||||||
|
|||||||
@@ -17,6 +17,59 @@ module GameData
|
|||||||
extend ClassMethods
|
extend ClassMethods
|
||||||
include InstanceMethods
|
include InstanceMethods
|
||||||
|
|
||||||
|
def self.check_file(tr_type, path, suffix = "")
|
||||||
|
tr_type_data = self.try_get(tr_type)
|
||||||
|
return nil if tr_type_data.nil?
|
||||||
|
# Check for files
|
||||||
|
if !suffix.empty?
|
||||||
|
ret = path + tr_type_data.id.to_s + suffix
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
ret = path + sprintf("%03d", tr_type_data.id_number) + suffix
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
end
|
||||||
|
ret = path + tr_type_data.id.to_s
|
||||||
|
return ret if pbResolveBitmap(ret)
|
||||||
|
ret = path + sprintf("%03d", tr_type_data.id_number)
|
||||||
|
return (pbResolveBitmap(ret)) ? ret : nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.charset_filename(tr_type)
|
||||||
|
return self.check_file(tr_type, "Graphics/Characters/trchar")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.charset_filename_brief(tr_type)
|
||||||
|
ret = self.charset_filename(tr_type)
|
||||||
|
ret.slice!("Graphics/Characters/") if ret
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.front_sprite_filename(tr_type)
|
||||||
|
return self.check_file(tr_type, "Graphics/Trainers/trainer")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.player_front_sprite_filename(tr_type)
|
||||||
|
outfit = ($Trainer) ? $Trainer.outfit : 0
|
||||||
|
return self.check_file(tr_type, "Graphics/Trainers/trainer", sprintf("_%d", outfit))
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.back_sprite_filename(tr_type)
|
||||||
|
return self.check_file(tr_type, "Graphics/Trainers/trback")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.player_back_sprite_filename(tr_type)
|
||||||
|
outfit = ($Trainer) ? $Trainer.outfit : 0
|
||||||
|
return self.check_file(tr_type, "Graphics/Trainers/trback", sprintf("_%d", outfit))
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.map_icon_filename(tr_type)
|
||||||
|
return self.check_file(tr_type, "Graphics/Pictures/mapPlayer")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.player_map_icon_filename(tr_type)
|
||||||
|
outfit = ($Trainer) ? $Trainer.outfit : 0
|
||||||
|
return self.check_file(tr_type, "Graphics/Pictures/mapPlayer", sprintf("_%d", outfit))
|
||||||
|
end
|
||||||
|
|
||||||
def initialize(hash)
|
def initialize(hash)
|
||||||
@id = hash[:id]
|
@id = hash[:id]
|
||||||
@id_number = hash[:id_number] || -1
|
@id_number = hash[:id_number] || -1
|
||||||
@@ -43,7 +96,47 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Deprecated methods
|
# Deprecated methods
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbGetTrainerTypeData(trainer_type)
|
def pbGetTrainerTypeData(tr_type)
|
||||||
Deprecation.warn_method('pbGetTrainerTypeData', 'v20', 'GameData::TrainerType.get(trainer_type)')
|
Deprecation.warn_method('pbGetTrainerTypeData', 'v20', 'GameData::TrainerType.get(trainer_type)')
|
||||||
return GameData::TrainerType.get(trainer_type)
|
return GameData::TrainerType.get(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbTrainerCharFile(tr_type) # Used by the phone
|
||||||
|
Deprecation.warn_method('pbTrainerCharFile', 'v20', 'GameData::TrainerType.charset_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.charset_filename(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbTrainerCharNameFile(tr_type) # Used by Battle Frontier and compiler
|
||||||
|
Deprecation.warn_method('pbTrainerCharNameFile', 'v20', 'GameData::TrainerType.charset_filename_brief(trainer_type)')
|
||||||
|
return GameData::TrainerType.charset_filename_brief(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbTrainerSpriteFile(tr_type)
|
||||||
|
Deprecation.warn_method('pbTrainerSpriteFile', 'v20', 'GameData::TrainerType.front_sprite_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.front_sprite_filename(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbTrainerSpriteBackFile(tr_type)
|
||||||
|
Deprecation.warn_method('pbTrainerSpriteBackFile', 'v20', 'GameData::TrainerType.back_sprite_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.back_sprite_filename(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbPlayerSpriteFile(tr_type)
|
||||||
|
Deprecation.warn_method('pbPlayerSpriteFile', 'v20', 'GameData::TrainerType.player_front_sprite_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.player_front_sprite_filename(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbPlayerSpriteBackFile(tr_type)
|
||||||
|
Deprecation.warn_method('pbPlayerSpriteBackFile', 'v20', 'GameData::TrainerType.player_back_sprite_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.player_back_sprite_filename(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbTrainerHeadFile(tr_type)
|
||||||
|
Deprecation.warn_method('pbTrainerHeadFile', 'v20', 'GameData::TrainerType.map_icon_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.map_icon_filename(tr_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbPlayerHeadFile(tr_type)
|
||||||
|
Deprecation.warn_method('pbPlayerHeadFile', 'v20', 'GameData::TrainerType.player_map_icon_filename(trainer_type)')
|
||||||
|
return GameData::TrainerType.player_map_icon_filename(tr_type)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -35,17 +35,9 @@ class PBTypes
|
|||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
def PBTypes.isPseudoType?(type)
|
def PBTypes.isPhysicalType?(type); return GameData::Type.get(type).physical?; end
|
||||||
return GameData::Type.get(type).pseudo_type
|
def PBTypes.isSpecialType?(type); return GameData::Type.get(type).special?; end
|
||||||
end
|
def PBTypes.isPseudoType?(type); return GameData::Type.get(type).pseudo_type; end
|
||||||
|
|
||||||
def PBTypes.isPhysicalType?(type)
|
|
||||||
return GameData::Type.get(type).physical?
|
|
||||||
end
|
|
||||||
|
|
||||||
def PBTypes.isSpecialType?(type)
|
|
||||||
return GameData::Type.get(type).special?
|
|
||||||
end
|
|
||||||
|
|
||||||
def PBTypes.getEffectiveness(attack_type, target_type)
|
def PBTypes.getEffectiveness(attack_type, target_type)
|
||||||
return GameData::Type.get(target_type).effectiveness(attack_type)
|
return GameData::Type.get(target_type).effectiveness(attack_type)
|
||||||
|
|||||||
@@ -152,9 +152,9 @@ class PokeBattle_Scene
|
|||||||
|
|
||||||
def pbCreateTrainerBackSprite(idxTrainer,trainerType,numTrainers=1)
|
def pbCreateTrainerBackSprite(idxTrainer,trainerType,numTrainers=1)
|
||||||
if idxTrainer==0 # Player's sprite
|
if idxTrainer==0 # Player's sprite
|
||||||
trainerFile = pbPlayerSpriteBackFile(trainerType)
|
trainerFile = GameData::TrainerType.player_back_sprite_filename(trainerType)
|
||||||
else # Partner trainer's sprite
|
else # Partner trainer's sprite
|
||||||
trainerFile = pbTrainerSpriteBackFile(trainerType)
|
trainerFile = GameData::TrainerType.back_sprite_filename(trainerType)
|
||||||
end
|
end
|
||||||
spriteX, spriteY = PokeBattle_SceneConstants.pbTrainerPosition(0,idxTrainer,numTrainers)
|
spriteX, spriteY = PokeBattle_SceneConstants.pbTrainerPosition(0,idxTrainer,numTrainers)
|
||||||
trainer = pbAddSprite("player_#{idxTrainer+1}",spriteX,spriteY,trainerFile,@viewport)
|
trainer = pbAddSprite("player_#{idxTrainer+1}",spriteX,spriteY,trainerFile,@viewport)
|
||||||
@@ -170,7 +170,7 @@ class PokeBattle_Scene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def pbCreateTrainerFrontSprite(idxTrainer,trainerType,numTrainers=1)
|
def pbCreateTrainerFrontSprite(idxTrainer,trainerType,numTrainers=1)
|
||||||
trainerFile = pbTrainerSpriteFile(trainerType)
|
trainerFile = GameData::TrainerType.front_sprite_filename(trainerType)
|
||||||
spriteX, spriteY = PokeBattle_SceneConstants.pbTrainerPosition(1,idxTrainer,numTrainers)
|
spriteX, spriteY = PokeBattle_SceneConstants.pbTrainerPosition(1,idxTrainer,numTrainers)
|
||||||
trainer = pbAddSprite("trainer_#{idxTrainer+1}",spriteX,spriteY,trainerFile,@viewport)
|
trainer = pbAddSprite("trainer_#{idxTrainer+1}",spriteX,spriteY,trainerFile,@viewport)
|
||||||
return if !trainer.bitmap
|
return if !trainer.bitmap
|
||||||
|
|||||||
@@ -863,7 +863,7 @@ BattleHandlers::DamageCalcTargetItem.add(:EVIOLITE,
|
|||||||
# means it also cares about the Pokémon's form. Some forms cannot
|
# means it also cares about the Pokémon's form. Some forms cannot
|
||||||
# evolve even if the species generally can, and such forms are not
|
# evolve even if the species generally can, and such forms are not
|
||||||
# affected by Eviolite.
|
# affected by Eviolite.
|
||||||
evos = pbGetEvolvedFormData(target.pokemon.fSpecies,true)
|
evos = EvolutionHelper.evolutions(target.pokemon.fSpecies, true)
|
||||||
mults[DEF_MULT] *= 1.5 if evos && evos.length>0
|
mults[DEF_MULT] *= 1.5 if evos && evos.length>0
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -203,10 +203,10 @@ BallHandlers::ModifyCatchRate.add(:MOONBALL,proc { |ball,catchRate,battle,battle
|
|||||||
# family can evolve with the Moon Stone, not whether the target itself
|
# family can evolve with the Moon Stone, not whether the target itself
|
||||||
# can immediately evolve with the Moon Stone.
|
# can immediately evolve with the Moon Stone.
|
||||||
moon_stone = GameData::Item.try_get(:MOONSTONE)
|
moon_stone = GameData::Item.try_get(:MOONSTONE)
|
||||||
if moon_stone && pbCheckEvolutionFamilyForItemMethodItem(battler.species, moon_stone.id)
|
if moon_stone && EvolutionHelper.check_family_for_method_item(battler.species, moon_stone.id)
|
||||||
catchRate *= 4
|
catchRate *= 4
|
||||||
end
|
end
|
||||||
next [catchRate,255].min
|
next [catchRate, 255].min
|
||||||
})
|
})
|
||||||
|
|
||||||
BallHandlers::ModifyCatchRate.add(:SPORTBALL,proc { |ball,catchRate,battle,battler,ultraBeast|
|
BallHandlers::ModifyCatchRate.add(:SPORTBALL,proc { |ball,catchRate,battle,battler,ultraBeast|
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ def pbDayCareGenerateEgg
|
|||||||
father = pokemon0
|
father = pokemon0
|
||||||
end
|
end
|
||||||
# Determine the egg's species
|
# Determine the egg's species
|
||||||
babyspecies = pbGetBabySpecies(babyspecies,true,mother.item_id,father.item_id)
|
babyspecies = EvolutionHelper.baby_species(babyspecies, true, mother.item_id, father.item_id)
|
||||||
if isConst?(babyspecies,PBSpecies,:MANAPHY) && hasConst?(PBSpecies,:PHIONE)
|
if isConst?(babyspecies,PBSpecies,:MANAPHY) && hasConst?(PBSpecies,:PHIONE)
|
||||||
babyspecies = getConst(PBSpecies,:PHIONE)
|
babyspecies = getConst(PBSpecies,:PHIONE)
|
||||||
elsif (isConst?(babyspecies,PBSpecies,:NIDORANfE) && hasConst?(PBSpecies,:NIDORANmA)) ||
|
elsif (isConst?(babyspecies,PBSpecies,:NIDORANfE) && hasConst?(PBSpecies,:NIDORANmA)) ||
|
||||||
@@ -233,7 +233,7 @@ def pbDayCareGenerateEgg
|
|||||||
isConst?(babyspecies,PBSpecies,:GRIMER)
|
isConst?(babyspecies,PBSpecies,:GRIMER)
|
||||||
if mother.form==1
|
if mother.form==1
|
||||||
egg.form = 1 if mother.hasItem?(:EVERSTONE)
|
egg.form = 1 if mother.hasItem?(:EVERSTONE)
|
||||||
elsif pbGetBabySpecies(father.species,true,mother.item_id,father.item_id)==babyspecies
|
elsif EvolutionHelper.baby_species(father.species, true, mother.item_id, father.item_id) == babyspecies
|
||||||
egg.form = 1 if father.form==1 && father.hasItem?(:EVERSTONE)
|
egg.form = 1 if father.form==1 && father.hasItem?(:EVERSTONE)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ def pbDisplayMail(mail,_bearer=nil)
|
|||||||
viewport.z = 99999
|
viewport.z = 99999
|
||||||
addBackgroundPlane(sprites,"background","mailbg",viewport)
|
addBackgroundPlane(sprites,"background","mailbg",viewport)
|
||||||
sprites["card"] = IconSprite.new(0,0,viewport)
|
sprites["card"] = IconSprite.new(0,0,viewport)
|
||||||
sprites["card"].setBitmap(pbMailBackFile(mail.item))
|
sprites["card"].setBitmap(GameData::Item.mail_filename(mail.item))
|
||||||
sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,viewport)
|
sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,viewport)
|
||||||
overlay = sprites["overlay"].bitmap
|
overlay = sprites["overlay"].bitmap
|
||||||
pbSetSystemFont(overlay)
|
pbSetSystemFont(overlay)
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class ItemIconSprite < SpriteWrapper
|
|||||||
@animbitmap.dispose if @animbitmap
|
@animbitmap.dispose if @animbitmap
|
||||||
@animbitmap = nil
|
@animbitmap = nil
|
||||||
if @item || !@blankzero
|
if @item || !@blankzero
|
||||||
@animbitmap = AnimatedBitmap.new(pbItemIconFile(@item))
|
@animbitmap = AnimatedBitmap.new(GameData::Item.icon_filename(@item))
|
||||||
self.bitmap = @animbitmap.bitmap
|
self.bitmap = @animbitmap.bitmap
|
||||||
if self.bitmap.height==ANIM_ICON_SIZE
|
if self.bitmap.height==ANIM_ICON_SIZE
|
||||||
@numframes = [(self.bitmap.width/ANIM_ICON_SIZE).floor,1].max
|
@numframes = [(self.bitmap.width/ANIM_ICON_SIZE).floor,1].max
|
||||||
@@ -140,7 +140,7 @@ class HeldItemIconSprite < SpriteWrapper
|
|||||||
@animbitmap.dispose if @animbitmap
|
@animbitmap.dispose if @animbitmap
|
||||||
@animbitmap = nil
|
@animbitmap = nil
|
||||||
if @item
|
if @item
|
||||||
@animbitmap = AnimatedBitmap.new(pbHeldItemIconFile(@item))
|
@animbitmap = AnimatedBitmap.new(GameData::Item.held_icon_filename(@item))
|
||||||
self.bitmap = @animbitmap.bitmap
|
self.bitmap = @animbitmap.bitmap
|
||||||
else
|
else
|
||||||
self.bitmap = nil
|
self.bitmap = nil
|
||||||
|
|||||||
@@ -128,114 +128,141 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Evolution helper functions
|
# Evolution helper functions
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
def pbGetEvolvedFormData(species,ignoreNone=false)
|
module EvolutionHelper
|
||||||
ret = []
|
module_function
|
||||||
evoData = pbGetEvolutionData(species)
|
|
||||||
return ret if !evoData || evoData.length==0
|
def evolutions(species, ignore_none = false)
|
||||||
evoData.each do |evo|
|
ret = []
|
||||||
next if evo[3] # Is the prevolution
|
evoData = pbGetEvolutionData(species)
|
||||||
next if evo[1]==PBEvolution::None && ignoreNone
|
return ret if !evoData || evoData.length == 0
|
||||||
ret.push([evo[1],evo[2],evo[0]]) # [Method, parameter, species]
|
evoData.each do |evo|
|
||||||
|
next if evo[3] # Is the prevolution
|
||||||
|
next if evo[1] == PBEvolution::None && ignore_none
|
||||||
|
ret.push([evo[1], evo[2], evo[0]]) # [Method, parameter, species]
|
||||||
|
end
|
||||||
|
return ret
|
||||||
end
|
end
|
||||||
return ret
|
|
||||||
|
def family_evolutions(species)
|
||||||
|
evos = self.evolutions(species, true)
|
||||||
|
return nil if evos.length == 0
|
||||||
|
ret = []
|
||||||
|
for i in 0...evos.length
|
||||||
|
ret.push([species].concat(evos[i]))
|
||||||
|
evo_array = self.family_evolutions(evos[i][2])
|
||||||
|
ret.concat(evo_array) if evo_array && evo_array.length > 0
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def previous_species(species)
|
||||||
|
evoData = pbGetEvolutionData(species)
|
||||||
|
return species if !evoData || evoData.length == 0
|
||||||
|
evoData.each do |evo|
|
||||||
|
return evo[0] if evo[3] # Is the prevolution
|
||||||
|
end
|
||||||
|
return species
|
||||||
|
end
|
||||||
|
|
||||||
|
def baby_species(species, check_items = false, item1 = nil, item2 = nil)
|
||||||
|
ret = species
|
||||||
|
evoData = pbGetEvolutionData(species)
|
||||||
|
return ret if !evoData || evoData.length == 0
|
||||||
|
evoData.each do |evo|
|
||||||
|
next if !evo[3] # Not the prevolution
|
||||||
|
if check_items
|
||||||
|
incense = pbGetSpeciesData(evo[0], 0, SpeciesData::INCENSE)
|
||||||
|
ret = evo[0] if !incense || item1 == incense || item2 == incense
|
||||||
|
else
|
||||||
|
ret = evo[0] # Species of prevolution
|
||||||
|
end
|
||||||
|
break
|
||||||
|
end
|
||||||
|
ret = self.baby_species(ret, item1, item2) if ret != species
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def minimum_level(species)
|
||||||
|
evoData = pbGetEvolutionData(species)
|
||||||
|
return 1 if !evoData || evoData.length == 0
|
||||||
|
ret = -1
|
||||||
|
evoData.each do |evo|
|
||||||
|
next if !evo[3] # Is the prevolution
|
||||||
|
if PBEvolution.hasFunction?(evo[1], "levelUpCheck")
|
||||||
|
min_level = PBEvolution.getFunction(evo[1], "minimumLevel")
|
||||||
|
ret = evo[2] if !min_level || min_level != 1
|
||||||
|
end
|
||||||
|
break # Because only one prevolution method can be defined
|
||||||
|
end
|
||||||
|
return (ret == -1) ? 1 : ret
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_family_for_method(species, method, param = nil)
|
||||||
|
species = self.baby_species(species)
|
||||||
|
evos = self.family_evolutions(species)
|
||||||
|
return false if !evos || evos.length == 0
|
||||||
|
for evo in evos
|
||||||
|
if method.is_a?(Array)
|
||||||
|
next if !method.include?(evo[0])
|
||||||
|
elsif method >= 0
|
||||||
|
next if evo[0] != method
|
||||||
|
end
|
||||||
|
next if param && evo[1] != param
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_family_for_method_item(species, param = nil)
|
||||||
|
species = self.baby_species(species)
|
||||||
|
evos = self.family_evolutions(species)
|
||||||
|
return false if !evos || evos.length == 0
|
||||||
|
for evo in evos
|
||||||
|
next if !PBEvolution.hasFunction?(evo[1], "itemCheck")
|
||||||
|
next if param && evo[2] != param
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def pbGetEvolvedFormData(species, ignore_none = false)
|
||||||
|
Deprecation.warn_method('pbGetEvolvedFormData', 'v20', 'EvolutionHelper.evolutions(species)')
|
||||||
|
return EvolutionHelper.evolutions(species, ignore_none)
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbGetEvolutionFamilyData(species) # Unused
|
||||||
|
Deprecation.warn_method('pbGetEvolutionFamilyData', 'v20', 'EvolutionHelper.family_evolutions(species)')
|
||||||
|
return EvolutionHelper.family_evolutions(species, ignore_none)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetPreviousForm(species) # Unused
|
def pbGetPreviousForm(species) # Unused
|
||||||
evoData = pbGetEvolutionData(species)
|
Deprecation.warn_method('pbGetPreviousForm', 'v20', 'EvolutionHelper.previous_species(species)')
|
||||||
return species if !evoData || evoData.length==0
|
return EvolutionHelper.previous_species(species)
|
||||||
evoData.each do |evo|
|
|
||||||
return evo[0] if evo[3] # Is the prevolution
|
|
||||||
end
|
|
||||||
return species
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetBabySpecies(species, check_items = false, item1 = nil, item2 = nil)
|
def pbGetBabySpecies(species, check_items = false, item1 = nil, item2 = nil)
|
||||||
ret = species
|
Deprecation.warn_method('pbGetBabySpecies', 'v20', 'EvolutionHelper.baby_species(species)')
|
||||||
evoData = pbGetEvolutionData(species)
|
return EvolutionHelper.baby_species(species, check_items, item1, item2)
|
||||||
return ret if !evoData || evoData.length == 0
|
|
||||||
evoData.each do |evo|
|
|
||||||
next if !evo[3] # Not the prevolution
|
|
||||||
if check_items
|
|
||||||
incense = pbGetSpeciesData(evo[0], 0, SpeciesData::INCENSE)
|
|
||||||
ret = evo[0] if !incense || item1 == incense || item2 == incense
|
|
||||||
else
|
|
||||||
ret = evo[0] # Species of prevolution
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end
|
|
||||||
ret = pbGetBabySpecies(ret, item1, item2) if ret != species
|
|
||||||
return ret
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetMinimumLevel(species)
|
def pbGetMinimumLevel(species)
|
||||||
evoData = pbGetEvolutionData(species)
|
Deprecation.warn_method('pbGetMinimumLevel', 'v20', 'EvolutionHelper.minimum_level(species)')
|
||||||
return 1 if !evoData || evoData.length == 0
|
return EvolutionHelper.minimum_level(species)
|
||||||
ret = -1
|
|
||||||
evoData.each do |evo|
|
|
||||||
next if !evo[3] # Is the prevolution
|
|
||||||
if PBEvolution.hasFunction?(evo[1], "levelUpCheck")
|
|
||||||
min_level = PBEvolution.getFunction(evo[1], "minimumLevel")
|
|
||||||
ret = evo[2] if !min_level || min_level != 1
|
|
||||||
end
|
|
||||||
break # Because only one prevolution method can be defined
|
|
||||||
end
|
|
||||||
return (ret == -1) ? 1 : ret
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetEvolutionFamilyData(species)
|
def pbCheckEvolutionFamilyForMethod(species, method, param = nil)
|
||||||
evos = pbGetEvolvedFormData(species,true)
|
Deprecation.warn_method('pbCheckEvolutionFamilyForMethod', 'v20', 'EvolutionHelper.check_family_for_method(species, method)')
|
||||||
return nil if evos.length==0
|
return EvolutionHelper.check_family_for_method(species, method, param)
|
||||||
ret = []
|
|
||||||
for i in 0...evos.length
|
|
||||||
ret.push([species].concat(evos[i]))
|
|
||||||
evoData = pbGetEvolutionFamilyData(evos[i][2])
|
|
||||||
ret.concat(evoData) if evoData && evoData.length>0
|
|
||||||
end
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbCheckEvolutionFamilyForMethod(species, method, param = -1)
|
|
||||||
species = pbGetBabySpecies(species)
|
|
||||||
evos = pbGetEvolutionFamilyData(species)
|
|
||||||
return false if !evos || evos.length == 0
|
|
||||||
for evo in evos
|
|
||||||
if method.is_a?(Array)
|
|
||||||
next if !method.include?(evo[1])
|
|
||||||
elsif method >= 0
|
|
||||||
next if evo[1] != method
|
|
||||||
end
|
|
||||||
next if param >= 0 && evo[2] != param
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Used by the Moon Ball when checking if a Pokémon's evolution family includes
|
# Used by the Moon Ball when checking if a Pokémon's evolution family includes
|
||||||
# an evolution that uses the Moon Stone.
|
# an evolution that uses the Moon Stone.
|
||||||
def pbCheckEvolutionFamilyForItemMethodItem(species, param = nil)
|
def pbCheckEvolutionFamilyForItemMethodItem(species, param = nil)
|
||||||
species = pbGetBabySpecies(species)
|
Deprecation.warn_method('pbCheckEvolutionFamilyForItemMethodItem', 'v20', 'EvolutionHelper.check_family_for_method_item(species, item)')
|
||||||
evos = pbGetEvolutionFamilyData(species)
|
return EvolutionHelper.check_family_for_method_item(species, param)
|
||||||
return false if !evos || evos.length == 0
|
|
||||||
for evo in evos
|
|
||||||
next if !PBEvolution.hasFunction?(evo[1], "itemCheck")
|
|
||||||
next if param && evo[2] != param
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbEvoDebug # Unused
|
|
||||||
evosData = pbLoadEvolutionsData
|
|
||||||
for species in 1..PBSpecies.maxValueF
|
|
||||||
echo PBSpecies.getName(pbGetSpeciesFromFSpecies(species)[0])+"\n"
|
|
||||||
next if !evosData[species] || evosData[species].length==0
|
|
||||||
for evo in evosData[species]
|
|
||||||
echo sprintf("name=%s, type=%s (%02X), level=%d, evo/prevo=%s",
|
|
||||||
PBSpecies.getName(evo[0]),getConstantName(PBEvolution,evo[1]),evo[1],evo[2],
|
|
||||||
(evo[3]) ? "prevolution" : "evolution")+"\n"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
echo "end\n"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -253,13 +280,13 @@ end
|
|||||||
|
|
||||||
# Checks whether a Pokemon can evolve now. If a block is given, calls the block
|
# Checks whether a Pokemon can evolve now. If a block is given, calls the block
|
||||||
# with the following parameters:
|
# with the following parameters:
|
||||||
# Pokemon to check; evolution type; level or other parameter; ID of the new species
|
# Pokemon to check; evolution method; parameter; ID of the new species
|
||||||
def pbCheckEvolutionEx(pokemon)
|
def pbCheckEvolutionEx(pokemon)
|
||||||
return -1 if pokemon.species<=0 || pokemon.egg? || pokemon.shadowPokemon?
|
return -1 if pokemon.species<=0 || pokemon.egg? || pokemon.shadowPokemon?
|
||||||
return -1 if pokemon.hasItem?(:EVERSTONE)
|
return -1 if pokemon.hasItem?(:EVERSTONE)
|
||||||
return -1 if pokemon.hasAbility?(:BATTLEBOND)
|
return -1 if pokemon.hasAbility?(:BATTLEBOND)
|
||||||
ret = -1
|
ret = -1
|
||||||
for form in pbGetEvolvedFormData(pbGetFSpeciesFromForm(pokemon.species,pokemon.form),true)
|
for form in EvolutionHelper.evolutions(pbGetFSpeciesFromForm(pokemon.species,pokemon.form), true)
|
||||||
ret = yield pokemon,form[0],form[1],form[2]
|
ret = yield pokemon,form[0],form[1],form[2]
|
||||||
break if ret>0
|
break if ret>0
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1326,6 +1326,9 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Open the party screen
|
||||||
|
#===============================================================================
|
||||||
def pbPokemonScreen
|
def pbPokemonScreen
|
||||||
pbFadeOutIn {
|
pbFadeOutIn {
|
||||||
sscene = PokemonParty_Scene.new
|
sscene = PokemonParty_Scene.new
|
||||||
@@ -1333,3 +1336,67 @@ def pbPokemonScreen
|
|||||||
sscreen.pbPokemonScreen
|
sscreen.pbPokemonScreen
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Choose a Pokémon in the party
|
||||||
|
#===============================================================================
|
||||||
|
# Choose a Pokémon/egg from the party.
|
||||||
|
# Stores result in variable _variableNumber_ and the chosen Pokémon's name in
|
||||||
|
# variable _nameVarNumber_; result is -1 if no Pokémon was chosen
|
||||||
|
def pbChoosePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false)
|
||||||
|
chosen = 0
|
||||||
|
pbFadeOutIn {
|
||||||
|
scene = PokemonParty_Scene.new
|
||||||
|
screen = PokemonPartyScreen.new(scene,$Trainer.party)
|
||||||
|
if ableProc
|
||||||
|
chosen=screen.pbChooseAblePokemon(ableProc,allowIneligible)
|
||||||
|
else
|
||||||
|
screen.pbStartScene(_INTL("Choose a Pokémon."),false)
|
||||||
|
chosen = screen.pbChoosePokemon
|
||||||
|
screen.pbEndScene
|
||||||
|
end
|
||||||
|
}
|
||||||
|
pbSet(variableNumber,chosen)
|
||||||
|
if chosen>=0
|
||||||
|
pbSet(nameVarNumber,$Trainer.party[chosen].name)
|
||||||
|
else
|
||||||
|
pbSet(nameVarNumber,"")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbChooseNonEggPokemon(variableNumber,nameVarNumber)
|
||||||
|
pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? })
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbChooseAblePokemon(variableNumber,nameVarNumber)
|
||||||
|
pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? && pkmn.hp>0 })
|
||||||
|
end
|
||||||
|
|
||||||
|
# Same as pbChoosePokemon, but prevents choosing an egg or a Shadow Pokémon.
|
||||||
|
def pbChooseTradablePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false)
|
||||||
|
chosen = 0
|
||||||
|
pbFadeOutIn {
|
||||||
|
scene = PokemonParty_Scene.new
|
||||||
|
screen = PokemonPartyScreen.new(scene,$Trainer.party)
|
||||||
|
if ableProc
|
||||||
|
chosen=screen.pbChooseTradablePokemon(ableProc,allowIneligible)
|
||||||
|
else
|
||||||
|
screen.pbStartScene(_INTL("Choose a Pokémon."),false)
|
||||||
|
chosen = screen.pbChoosePokemon
|
||||||
|
screen.pbEndScene
|
||||||
|
end
|
||||||
|
}
|
||||||
|
pbSet(variableNumber,chosen)
|
||||||
|
if chosen>=0
|
||||||
|
pbSet(nameVarNumber,$Trainer.party[chosen].name)
|
||||||
|
else
|
||||||
|
pbSet(nameVarNumber,"")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def pbChoosePokemonForTrade(variableNumber,nameVarNumber,wanted)
|
||||||
|
wanted = getID(PBSpecies,wanted)
|
||||||
|
pbChooseTradablePokemon(variableNumber,nameVarNumber,proc { |pkmn|
|
||||||
|
next pkmn.species==wanted
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|||||||
@@ -1346,3 +1346,25 @@ class PokemonSummaryScreen
|
|||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
|
def pbChooseMove(pokemon,variableNumber,nameVarNumber)
|
||||||
|
return if !pokemon
|
||||||
|
ret = -1
|
||||||
|
pbFadeOutIn {
|
||||||
|
scene = PokemonSummary_Scene.new
|
||||||
|
screen = PokemonSummaryScreen.new(scene)
|
||||||
|
ret = screen.pbStartForgetScreen([pokemon],0,nil)
|
||||||
|
}
|
||||||
|
$game_variables[variableNumber] = ret
|
||||||
|
if ret>=0
|
||||||
|
$game_variables[nameVarNumber] = pokemon.moves[ret].name
|
||||||
|
else
|
||||||
|
$game_variables[nameVarNumber] = ""
|
||||||
|
end
|
||||||
|
$game_map.need_refresh = true if $game_map
|
||||||
|
end
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ class PokemonRegionMap_Scene
|
|||||||
@sprites["mapbottom"].mapdetails = pbGetMapDetails(@mapX,@mapY)
|
@sprites["mapbottom"].mapdetails = pbGetMapDetails(@mapX,@mapY)
|
||||||
if playerpos && mapindex==playerpos[0]
|
if playerpos && mapindex==playerpos[0]
|
||||||
@sprites["player"] = IconSprite.new(0,0,@viewport)
|
@sprites["player"] = IconSprite.new(0,0,@viewport)
|
||||||
@sprites["player"].setBitmap(pbPlayerHeadFile($Trainer.trainertype))
|
@sprites["player"].setBitmap(GameData::TrainerType.player_map_icon_filename($Trainer.trainertype))
|
||||||
@sprites["player"].x = -SQUAREWIDTH/2+(@mapX*SQUAREWIDTH)+(Graphics.width-@sprites["map"].bitmap.width)/2
|
@sprites["player"].x = -SQUAREWIDTH/2+(@mapX*SQUAREWIDTH)+(Graphics.width-@sprites["map"].bitmap.width)/2
|
||||||
@sprites["player"].y = -SQUAREHEIGHT/2+(@mapY*SQUAREHEIGHT)+(Graphics.height-@sprites["map"].bitmap.height)/2
|
@sprites["player"].y = -SQUAREHEIGHT/2+(@mapY*SQUAREHEIGHT)+(Graphics.height-@sprites["map"].bitmap.height)/2
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ class PokemonPhoneScene
|
|||||||
addBackgroundPlane(@sprites,"bg","phonebg",@viewport)
|
addBackgroundPlane(@sprites,"bg","phonebg",@viewport)
|
||||||
@sprites["icon"] = IconSprite.new(70,102,@viewport)
|
@sprites["icon"] = IconSprite.new(70,102,@viewport)
|
||||||
if @trainers[0].length==4
|
if @trainers[0].length==4
|
||||||
filename = pbTrainerCharFile(@trainers[0][0])
|
filename = GameData::TrainerType.charset_filename(@trainers[0][0])
|
||||||
else
|
else
|
||||||
filename = sprintf("Graphics/Characters/phone%03d",@trainers[0][0])
|
filename = sprintf("Graphics/Characters/phone%03d",@trainers[0][0])
|
||||||
end
|
end
|
||||||
@@ -106,7 +106,7 @@ class PokemonPhoneScene
|
|||||||
if @sprites["list"].index!=oldindex
|
if @sprites["list"].index!=oldindex
|
||||||
trainer = @trainers[@sprites["list"].index]
|
trainer = @trainers[@sprites["list"].index]
|
||||||
if trainer.length==4
|
if trainer.length==4
|
||||||
filename = pbTrainerCharFile(trainer[0])
|
filename = GameData::TrainerType.charset_filename(trainer[0])
|
||||||
else
|
else
|
||||||
filename = sprintf("Graphics/Characters/phone%03d",trainer[0])
|
filename = sprintf("Graphics/Characters/phone%03d",trainer[0])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class PokemonTrainerCard_Scene
|
|||||||
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
||||||
pbSetSystemFont(@sprites["overlay"].bitmap)
|
pbSetSystemFont(@sprites["overlay"].bitmap)
|
||||||
@sprites["trainer"] = IconSprite.new(336,112,@viewport)
|
@sprites["trainer"] = IconSprite.new(336,112,@viewport)
|
||||||
@sprites["trainer"].setBitmap(pbPlayerSpriteFile($Trainer.trainertype))
|
@sprites["trainer"].setBitmap(GameData::TrainerType.player_front_sprite_filename($Trainer.trainertype))
|
||||||
@sprites["trainer"].x -= (@sprites["trainer"].bitmap.width-128)/2
|
@sprites["trainer"].x -= (@sprites["trainer"].bitmap.width-128)/2
|
||||||
@sprites["trainer"].y -= (@sprites["trainer"].bitmap.height-128)
|
@sprites["trainer"].y -= (@sprites["trainer"].bitmap.height-128)
|
||||||
@sprites["trainer"].z = 2
|
@sprites["trainer"].z = 2
|
||||||
|
|||||||
@@ -36,8 +36,7 @@ class PokemonMartAdapter
|
|||||||
end
|
end
|
||||||
|
|
||||||
def getItemIcon(item)
|
def getItemIcon(item)
|
||||||
return nil if !item
|
return (item) ? GameData::Item.icon_filename(item) : nil
|
||||||
return pbItemIconFile(item)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unused
|
# Unused
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ class HallOfFame_Scene
|
|||||||
|
|
||||||
def createTrainerBattler
|
def createTrainerBattler
|
||||||
@sprites["trainer"]=IconSprite.new(@viewport)
|
@sprites["trainer"]=IconSprite.new(@viewport)
|
||||||
@sprites["trainer"].setBitmap(pbTrainerSpriteFile($Trainer.trainertype))
|
@sprites["trainer"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainertype))
|
||||||
if !SINGLEROW
|
if !SINGLEROW
|
||||||
@sprites["trainer"].x=Graphics.width-96
|
@sprites["trainer"].x=Graphics.width-96
|
||||||
@sprites["trainer"].y=160
|
@sprites["trainer"].y=160
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ class PokemonDuel
|
|||||||
@viewport.z = 99999
|
@viewport.z = 99999
|
||||||
@sprites = {}
|
@sprites = {}
|
||||||
@sprites["player"] = IconSprite.new(-128 - 32, 96, @viewport)
|
@sprites["player"] = IconSprite.new(-128 - 32, 96, @viewport)
|
||||||
@sprites["player"].setBitmap(pbTrainerSpriteFile($Trainer.trainertype))
|
@sprites["player"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainertype))
|
||||||
@sprites["opponent"] = IconSprite.new(Graphics.width + 32, 96, @viewport)
|
@sprites["opponent"] = IconSprite.new(Graphics.width + 32, 96, @viewport)
|
||||||
@sprites["opponent"].setBitmap(pbTrainerSpriteFile(opponent.trainertype))
|
@sprites["opponent"].setBitmap(GameData::TrainerType.front_sprite_filename(opponent.trainertype))
|
||||||
@sprites["playerwindow"] = DuelWindow.new($Trainer.name, false)
|
@sprites["playerwindow"] = DuelWindow.new($Trainer.name, false)
|
||||||
@sprites["playerwindow"].x = -@sprites["playerwindow"].width
|
@sprites["playerwindow"].x = -@sprites["playerwindow"].width
|
||||||
@sprites["playerwindow"].viewport = @viewport
|
@sprites["playerwindow"].viewport = @viewport
|
||||||
|
|||||||
@@ -692,7 +692,7 @@ end
|
|||||||
def pbBattleChallengeGraphic(event)
|
def pbBattleChallengeGraphic(event)
|
||||||
nextTrainer=pbBattleChallenge.nextTrainer
|
nextTrainer=pbBattleChallenge.nextTrainer
|
||||||
bttrainers=pbGetBTTrainers(pbBattleChallenge.currentChallenge)
|
bttrainers=pbGetBTTrainers(pbBattleChallenge.currentChallenge)
|
||||||
filename=pbTrainerCharNameFile((bttrainers[nextTrainer][0] rescue 0))
|
filename=GameData::TrainerType.charset_filename_brief((bttrainers[nextTrainer][0] rescue 0))
|
||||||
begin
|
begin
|
||||||
bitmap=AnimatedBitmap.new("Graphics/Characters/"+filename)
|
bitmap=AnimatedBitmap.new("Graphics/Characters/"+filename)
|
||||||
bitmap.dispose
|
bitmap.dispose
|
||||||
|
|||||||
@@ -574,7 +574,7 @@ $canEvolve = {}
|
|||||||
class BabyRestriction
|
class BabyRestriction
|
||||||
def isValid?(pokemon)
|
def isValid?(pokemon)
|
||||||
baby=$babySpeciesData[pokemon.species] ? $babySpeciesData[pokemon.species] :
|
baby=$babySpeciesData[pokemon.species] ? $babySpeciesData[pokemon.species] :
|
||||||
($babySpeciesData[pokemon.species]=pbGetBabySpecies(pokemon.species))
|
($babySpeciesData[pokemon.species]=EvolutionHelper.baby_species(pokemon.species))
|
||||||
return baby==pokemon.species
|
return baby==pokemon.species
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -584,10 +584,10 @@ end
|
|||||||
class UnevolvedFormRestriction
|
class UnevolvedFormRestriction
|
||||||
def isValid?(pokemon)
|
def isValid?(pokemon)
|
||||||
baby=$babySpeciesData[pokemon.species] ? $babySpeciesData[pokemon.species] :
|
baby=$babySpeciesData[pokemon.species] ? $babySpeciesData[pokemon.species] :
|
||||||
($babySpeciesData[pokemon.species]=pbGetBabySpecies(pokemon.species))
|
($babySpeciesData[pokemon.species]=EvolutionHelper.baby_species(pokemon.species))
|
||||||
return false if baby!=pokemon.species
|
return false if baby!=pokemon.species
|
||||||
canEvolve=($canEvolve[pokemon.species]!=nil) ? $canEvolve[pokemon.species] :
|
canEvolve=($canEvolve[pokemon.species]!=nil) ? $canEvolve[pokemon.species] :
|
||||||
($canEvolve[pokemon.species]=(pbGetEvolvedFormData(pokemon.species,true).length!=0))
|
($canEvolve[pokemon.species]=(EvolutionHelper.evolutions(pokemon.species, true).length!=0))
|
||||||
return false if !canEvolve
|
return false if !canEvolve
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -110,21 +110,21 @@ end
|
|||||||
|
|
||||||
def babySpecies(move)
|
def babySpecies(move)
|
||||||
if !$babySpecies[move]
|
if !$babySpecies[move]
|
||||||
$babySpecies[move]=pbGetBabySpecies(move)
|
$babySpecies[move]=EvolutionHelper.baby_species(move)
|
||||||
end
|
end
|
||||||
return $babySpecies[move]
|
return $babySpecies[move]
|
||||||
end
|
end
|
||||||
|
|
||||||
def minimumLevel(move)
|
def minimumLevel(move)
|
||||||
if !$minimumLevel[move]
|
if !$minimumLevel[move]
|
||||||
$minimumLevel[move]=pbGetMinimumLevel(move)
|
$minimumLevel[move]=EvolutionHelper.minimum_level(move)
|
||||||
end
|
end
|
||||||
return $minimumLevel[move]
|
return $minimumLevel[move]
|
||||||
end
|
end
|
||||||
|
|
||||||
def evolutions(move)
|
def evolutions(move)
|
||||||
if !$evolutions[move]
|
if !$evolutions[move]
|
||||||
$evolutions[move]=pbGetEvolvedFormData(move,true)
|
$evolutions[move]=EvolutionHelper.evolutions(move, true)
|
||||||
end
|
end
|
||||||
return $evolutions[move]
|
return $evolutions[move]
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -257,163 +257,6 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Load item icons
|
|
||||||
# TODO: Put these methods into GameData::Item.
|
|
||||||
#===============================================================================
|
|
||||||
def pbItemIconFile(item)
|
|
||||||
bitmapFileName = nil
|
|
||||||
if item
|
|
||||||
itm = GameData::Item.get(item)
|
|
||||||
bitmapFileName = sprintf("Graphics/Icons/item%s",itm.id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Icons/item%03d",itm.id_number)
|
|
||||||
if !pbResolveBitmap(bitmapFileName) && itm.is_machine?
|
|
||||||
move = itm.move
|
|
||||||
type = GameData::Move.get(move).type
|
|
||||||
bitmapFileName = sprintf("Graphics/Icons/itemMachine%s",type.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Icons/itemMachine%03d",type)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
bitmapFileName = "Graphics/Icons/item000" if !pbResolveBitmap(bitmapFileName)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
bitmapFileName = sprintf("Graphics/Icons/itemBack")
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbHeldItemIconFile(item) # Used in the party screen
|
|
||||||
return nil if !item || item==0
|
|
||||||
namebase = (GameData::Item.get(item).is_mail?) ? "mail" : "item"
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/Party/icon_%s_%s",namebase,GameData::Item.get(item).id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/Party/icon_%s_%03d",namebase,item)
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/Party/icon_%s",namebase)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Load mail background graphics
|
|
||||||
#===============================================================================
|
|
||||||
def pbMailBackFile(item)
|
|
||||||
return nil if !item
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/Mail/mail_%s",GameData::Item.get(item).id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/Mail/mail_%03d",item)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Load NPC charsets
|
|
||||||
#===============================================================================
|
|
||||||
def pbTrainerCharFile(type) # Used by the phone
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
bitmapFileName = sprintf("Graphics/Characters/trchar%s", tr_type_data.id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Characters/trchar%03d", tr_type_data.id_number)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbTrainerCharNameFile(type) # Used by Battle Frontier and compiler
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
bitmapFileName = sprintf("trchar%s", tr_type_data.id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(sprintf("Graphics/Characters/" + bitmapFileName))
|
|
||||||
bitmapFileName = sprintf("trchar%03d", tr_type_data.id_number)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Load trainer sprites
|
|
||||||
#===============================================================================
|
|
||||||
def pbTrainerSpriteFile(type)
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trainer%s", tr_type_data.id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trainer%03d", tr_type_data.id_number)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbTrainerSpriteBackFile(type)
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trback%s", tr_type_data.id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trback%03d", tr_type_data.id_number)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbPlayerSpriteFile(type)
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
outfit = ($Trainer) ? $Trainer.outfit : 0
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trainer%s_%d", tr_type_data.id.to_s, outfit) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trainer%03d_%d", tr_type_data.id_number, outfit)
|
|
||||||
bitmapFileName = pbTrainerSpriteFile(tr_type_data.id) if !pbResolveBitmap(bitmapFileName)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbPlayerSpriteBackFile(type)
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
outfit = ($Trainer) ? $Trainer.outfit : 0
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trback%s_%d", tr_type_data.id.to_s, outfit) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Trainers/trback%03d_%d", tr_type_data.id_number, outfit)
|
|
||||||
bitmapFileName = pbTrainerSpriteBackFile(tr_type_data.id) if !pbResolveBitmap(bitmapFileName)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Load player's head icons (used in the Town Map)
|
|
||||||
#===============================================================================
|
|
||||||
def pbTrainerHeadFile(type)
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/mapPlayer%s", tr_type_data.id.to_s) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/mapPlayer%03d", tr_type_data.id_number)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbPlayerHeadFile(type)
|
|
||||||
return nil if !type
|
|
||||||
tr_type_data = GameData::TrainerType.get(type)
|
|
||||||
outfit = ($Trainer) ? $Trainer.outfit : 0
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/mapPlayer%s_%d", tr_type_data.id.to_s, outfit) rescue nil
|
|
||||||
if !pbResolveBitmap(bitmapFileName)
|
|
||||||
bitmapFileName = sprintf("Graphics/Pictures/mapPlayer%03d_%d", tr_type_data.id_number, outfit)
|
|
||||||
bitmapFileName = pbTrainerHeadFile(tr_type_data.id) if !pbResolveBitmap(bitmapFileName)
|
|
||||||
end
|
|
||||||
return bitmapFileName
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Analyse audio files
|
# Analyse audio files
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|||||||
@@ -237,73 +237,6 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Choose a Pokémon in the party
|
|
||||||
#===============================================================================
|
|
||||||
# Choose a Pokémon/egg from the party.
|
|
||||||
# Stores result in variable _variableNumber_ and the chosen Pokémon's name in
|
|
||||||
# variable _nameVarNumber_; result is -1 if no Pokémon was chosen
|
|
||||||
def pbChoosePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false)
|
|
||||||
chosen = 0
|
|
||||||
pbFadeOutIn {
|
|
||||||
scene = PokemonParty_Scene.new
|
|
||||||
screen = PokemonPartyScreen.new(scene,$Trainer.party)
|
|
||||||
if ableProc
|
|
||||||
chosen=screen.pbChooseAblePokemon(ableProc,allowIneligible)
|
|
||||||
else
|
|
||||||
screen.pbStartScene(_INTL("Choose a Pokémon."),false)
|
|
||||||
chosen = screen.pbChoosePokemon
|
|
||||||
screen.pbEndScene
|
|
||||||
end
|
|
||||||
}
|
|
||||||
pbSet(variableNumber,chosen)
|
|
||||||
if chosen>=0
|
|
||||||
pbSet(nameVarNumber,$Trainer.party[chosen].name)
|
|
||||||
else
|
|
||||||
pbSet(nameVarNumber,"")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbChooseNonEggPokemon(variableNumber,nameVarNumber)
|
|
||||||
pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? })
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbChooseAblePokemon(variableNumber,nameVarNumber)
|
|
||||||
pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? && pkmn.hp>0 })
|
|
||||||
end
|
|
||||||
|
|
||||||
# Same as pbChoosePokemon, but prevents choosing an egg or a Shadow Pokémon.
|
|
||||||
def pbChooseTradablePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false)
|
|
||||||
chosen = 0
|
|
||||||
pbFadeOutIn {
|
|
||||||
scene = PokemonParty_Scene.new
|
|
||||||
screen = PokemonPartyScreen.new(scene,$Trainer.party)
|
|
||||||
if ableProc
|
|
||||||
chosen=screen.pbChooseTradablePokemon(ableProc,allowIneligible)
|
|
||||||
else
|
|
||||||
screen.pbStartScene(_INTL("Choose a Pokémon."),false)
|
|
||||||
chosen = screen.pbChoosePokemon
|
|
||||||
screen.pbEndScene
|
|
||||||
end
|
|
||||||
}
|
|
||||||
pbSet(variableNumber,chosen)
|
|
||||||
if chosen>=0
|
|
||||||
pbSet(nameVarNumber,$Trainer.party[chosen].name)
|
|
||||||
else
|
|
||||||
pbSet(nameVarNumber,"")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def pbChoosePokemonForTrade(variableNumber,nameVarNumber,wanted)
|
|
||||||
wanted = getID(PBSpecies,wanted)
|
|
||||||
pbChooseTradablePokemon(variableNumber,nameVarNumber,proc { |pkmn|
|
|
||||||
next pkmn.species==wanted
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Analyse Pokémon in the party
|
# Analyse Pokémon in the party
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -483,15 +416,15 @@ def pbHasEgg?(species)
|
|||||||
species = getID(PBSpecies,species)
|
species = getID(PBSpecies,species)
|
||||||
return false if !species
|
return false if !species
|
||||||
# species may be unbreedable, so check its evolution's compatibilities
|
# species may be unbreedable, so check its evolution's compatibilities
|
||||||
evoSpecies = pbGetEvolvedFormData(species,true)
|
evoSpecies = EvolutionHelper.evolutions(species, true)
|
||||||
compatSpecies = (evoSpecies && evoSpecies[0]) ? evoSpecies[0][2] : species
|
compatSpecies = (evoSpecies && evoSpecies[0]) ? evoSpecies[0][2] : species
|
||||||
compat = pbGetSpeciesData(compatSpecies,0,SpeciesData::COMPATIBILITY)
|
compat = pbGetSpeciesData(compatSpecies,0,SpeciesData::COMPATIBILITY)
|
||||||
compat = [compat] if !compat.is_a?(Array)
|
compat = [compat] if !compat.is_a?(Array)
|
||||||
return false if compat.include?(getConst(PBEggGroups,:Undiscovered))
|
return false if compat.include?(getConst(PBEggGroups,:Undiscovered))
|
||||||
return false if compat.include?(getConst(PBEggGroups,:Ditto))
|
return false if compat.include?(getConst(PBEggGroups,:Ditto))
|
||||||
baby = pbGetBabySpecies(species)
|
baby = EvolutionHelper.baby_species(species)
|
||||||
return true if species==baby # Is a basic species
|
return true if species==baby # Is a basic species
|
||||||
baby = pbGetBabySpecies(species,true)
|
baby = EvolutionHelper.baby_species(species, true)
|
||||||
return true if species==baby # Is an egg species without incense
|
return true if species==baby # Is an egg species without incense
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -681,7 +681,7 @@ def pbGetPlayerGraphic
|
|||||||
return "" if id<0 || id>=8
|
return "" if id<0 || id>=8
|
||||||
meta = GameData::Metadata.get_player(id)
|
meta = GameData::Metadata.get_player(id)
|
||||||
return "" if !meta
|
return "" if !meta
|
||||||
return pbPlayerSpriteFile(meta[0])
|
return GameData::TrainerType.player_front_sprite_filename(meta[0])
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbGetPlayerTrainerType
|
def pbGetPlayerTrainerType
|
||||||
@@ -1039,23 +1039,6 @@ def pbMoveTutorChoose(move,movelist=nil,bymachine=false)
|
|||||||
return ret # Returns whether the move was learned by a Pokemon
|
return ret # Returns whether the move was learned by a Pokemon
|
||||||
end
|
end
|
||||||
|
|
||||||
def pbChooseMove(pokemon,variableNumber,nameVarNumber)
|
|
||||||
return if !pokemon
|
|
||||||
ret = -1
|
|
||||||
pbFadeOutIn {
|
|
||||||
scene = PokemonSummary_Scene.new
|
|
||||||
screen = PokemonSummaryScreen.new(scene)
|
|
||||||
ret = screen.pbStartForgetScreen([pokemon],0,nil)
|
|
||||||
}
|
|
||||||
$game_variables[variableNumber] = ret
|
|
||||||
if ret>=0
|
|
||||||
$game_variables[nameVarNumber] = pokemon.moves[ret].name
|
|
||||||
else
|
|
||||||
$game_variables[nameVarNumber] = ""
|
|
||||||
end
|
|
||||||
$game_map.need_refresh = true if $game_map
|
|
||||||
end
|
|
||||||
|
|
||||||
def pbConvertItemToItem(variable, array)
|
def pbConvertItemToItem(variable, array)
|
||||||
item = GameData::Item.get(pbGet(variable))
|
item = GameData::Item.get(pbGet(variable))
|
||||||
pbSet(variable, nil)
|
pbSet(variable, nil)
|
||||||
|
|||||||
@@ -947,7 +947,7 @@ def pbPokemonEditor
|
|||||||
(regionallist[numb]==0) ? regionallist.pop : break
|
(regionallist[numb]==0) ? regionallist.pop : break
|
||||||
numb -= 1
|
numb -= 1
|
||||||
end
|
end
|
||||||
evolutions = pbGetEvolvedFormData(selection)
|
evolutions = EvolutionHelper.evolutions(selection)
|
||||||
data = []
|
data = []
|
||||||
data.push(speciesname) # 0
|
data.push(speciesname) # 0
|
||||||
data.push(cname) # 1
|
data.push(cname) # 1
|
||||||
@@ -1068,7 +1068,7 @@ def pbPokemonEditor
|
|||||||
evos[sp].push([data[41][i][2],data[41][i][0],data[41][i][1],false])
|
evos[sp].push([data[41][i][2],data[41][i][0],data[41][i][1],false])
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
t = pbGetEvolvedFormData(sp)
|
t = EvolutionHelper.evolutions(sp)
|
||||||
for i in 0...t.length
|
for i in 0...t.length
|
||||||
evos[sp].push([t[i][2],t[i][0],t[i][1],false])
|
evos[sp].push([t[i][2],t[i][0],t[i][1],false])
|
||||||
end
|
end
|
||||||
@@ -1366,7 +1366,7 @@ end
|
|||||||
def pbAppendEvoToFamilyArray(species,array,seenarray)
|
def pbAppendEvoToFamilyArray(species,array,seenarray)
|
||||||
return if seenarray[species]
|
return if seenarray[species]
|
||||||
array.push(species); seenarray[species] = true
|
array.push(species); seenarray[species] = true
|
||||||
evos = pbGetEvolvedFormData(species)
|
evos = EvolutionHelper.evolutions(species)
|
||||||
if evos.length>0
|
if evos.length>0
|
||||||
evos.sort! { |a,b| a[2]<=>b[2] }
|
evos.sort! { |a,b| a[2]<=>b[2] }
|
||||||
subarray = []
|
subarray = []
|
||||||
@@ -1381,7 +1381,7 @@ def pbGetEvoFamilies
|
|||||||
seen = []
|
seen = []
|
||||||
ret = []
|
ret = []
|
||||||
for sp in 1..PBSpecies.maxValue
|
for sp in 1..PBSpecies.maxValue
|
||||||
species = pbGetBabySpecies(sp)
|
species = EvolutionHelper.baby_species(sp)
|
||||||
next if seen[species]
|
next if seen[species]
|
||||||
subret = []
|
subret = []
|
||||||
pbAppendEvoToFamilyArray(species,subret,seen)
|
pbAppendEvoToFamilyArray(species,subret,seen)
|
||||||
|
|||||||
@@ -774,7 +774,7 @@ def pbSavePokemonData
|
|||||||
end
|
end
|
||||||
pokedata.write("Evolutions = ")
|
pokedata.write("Evolutions = ")
|
||||||
count = 0
|
count = 0
|
||||||
for form in pbGetEvolvedFormData(i)
|
for form in EvolutionHelper.evolutions(i)
|
||||||
method = form[0]
|
method = form[0]
|
||||||
parameter = form[1]
|
parameter = form[1]
|
||||||
new_species = form[2]
|
new_species = form[2]
|
||||||
@@ -1189,7 +1189,7 @@ def pbSavePokemonFormsData
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
origevos = []
|
origevos = []
|
||||||
for form in pbGetEvolvedFormData(species)
|
for form in EvolutionHelper.evolutions(species)
|
||||||
method = form[0]
|
method = form[0]
|
||||||
parameter = form[1]
|
parameter = form[1]
|
||||||
new_species = form[2]
|
new_species = form[2]
|
||||||
@@ -1200,7 +1200,7 @@ def pbSavePokemonFormsData
|
|||||||
origevos.push([method,parameter,new_species])
|
origevos.push([method,parameter,new_species])
|
||||||
end
|
end
|
||||||
evos = []
|
evos = []
|
||||||
for form in pbGetEvolvedFormData(i)
|
for form in EvolutionHelper.evolutions(i)
|
||||||
method = form[0]
|
method = form[0]
|
||||||
parameter = form[1]
|
parameter = form[1]
|
||||||
new_species = form[2]
|
new_species = form[2]
|
||||||
|
|||||||
@@ -580,6 +580,43 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def chooseMapPoint(map,rgnmap=false)
|
||||||
|
viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
|
||||||
|
viewport.z=99999
|
||||||
|
title=Window_UnformattedTextPokemon.new(_INTL("Click a point on the map."))
|
||||||
|
title.x=0
|
||||||
|
title.y=Graphics.height-64
|
||||||
|
title.width=Graphics.width
|
||||||
|
title.height=64
|
||||||
|
title.viewport=viewport
|
||||||
|
title.z=2
|
||||||
|
if rgnmap
|
||||||
|
sprite=RegionMapSprite.new(map,viewport)
|
||||||
|
else
|
||||||
|
sprite=MapSprite.new(map,viewport)
|
||||||
|
end
|
||||||
|
sprite.z=2
|
||||||
|
ret=nil
|
||||||
|
loop do
|
||||||
|
Graphics.update
|
||||||
|
Input.update
|
||||||
|
xy=sprite.getXY
|
||||||
|
if xy
|
||||||
|
ret=xy
|
||||||
|
break
|
||||||
|
end
|
||||||
|
if Input.trigger?(Input::B)
|
||||||
|
ret=nil
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
sprite.dispose
|
||||||
|
title.dispose
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module MapCoordsProperty
|
module MapCoordsProperty
|
||||||
def self.set(settingname,oldsetting)
|
def self.set(settingname,oldsetting)
|
||||||
chosenmap = pbListScreen(settingname,MapLister.new((oldsetting) ? oldsetting[0] : 0))
|
chosenmap = pbListScreen(settingname,MapLister.new((oldsetting) ? oldsetting[0] : 0))
|
||||||
@@ -624,7 +661,7 @@ end
|
|||||||
|
|
||||||
module RegionMapCoordsProperty
|
module RegionMapCoordsProperty
|
||||||
def self.set(_settingname,oldsetting)
|
def self.set(_settingname,oldsetting)
|
||||||
regions = getMapNameList
|
regions = self.getMapNameList
|
||||||
selregion = -1
|
selregion = -1
|
||||||
if regions.length==0
|
if regions.length==0
|
||||||
pbMessage(_INTL("No region maps are defined."))
|
pbMessage(_INTL("No region maps are defined."))
|
||||||
@@ -650,6 +687,18 @@ module RegionMapCoordsProperty
|
|||||||
def self.format(value)
|
def self.format(value)
|
||||||
return value.inspect
|
return value.inspect
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.getMapNameList
|
||||||
|
mapdata = pbLoadTownMapData
|
||||||
|
ret=[]
|
||||||
|
for i in 0...mapdata.length
|
||||||
|
next if !mapdata[i]
|
||||||
|
ret.push(
|
||||||
|
[i,pbGetMessage(MessageTypes::RegionNames,i)]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -121,10 +121,8 @@ def pbListScreenBlock(title,lister)
|
|||||||
Input.update
|
Input.update
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# General listers
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class GraphicsLister
|
class GraphicsLister
|
||||||
def initialize(folder,selection)
|
def initialize(folder,selection)
|
||||||
@@ -196,8 +194,9 @@ class GraphicsLister
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class MusicFileLister
|
class MusicFileLister
|
||||||
def initialize(bgm,setting)
|
def initialize(bgm,setting)
|
||||||
@oldbgm = getPlayingBGM
|
@oldbgm = getPlayingBGM
|
||||||
@@ -263,8 +262,9 @@ class MusicFileLister
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class MapLister
|
class MapLister
|
||||||
def initialize(selmap,addGlobal=false)
|
def initialize(selmap,addGlobal=false)
|
||||||
@sprite = SpriteWrapper.new
|
@sprite = SpriteWrapper.new
|
||||||
@@ -322,8 +322,9 @@ class MapLister
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class SpeciesLister
|
class SpeciesLister
|
||||||
def initialize(selection,includeNew=false)
|
def initialize(selection,includeNew=false)
|
||||||
@selection = selection
|
@selection = selection
|
||||||
@@ -373,8 +374,9 @@ class SpeciesLister
|
|||||||
def refresh(index); end
|
def refresh(index); end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class ItemLister
|
class ItemLister
|
||||||
def initialize(selection = 0, includeNew = false)
|
def initialize(selection = 0, includeNew = false)
|
||||||
@sprite = ItemIconSprite.new(Graphics.width * 3 / 4, Graphics.height / 2, nil)
|
@sprite = ItemIconSprite.new(Graphics.width * 3 / 4, Graphics.height / 2, nil)
|
||||||
@@ -432,8 +434,9 @@ class ItemLister
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class TrainerTypeLister
|
class TrainerTypeLister
|
||||||
def initialize(selection = 0, includeNew = false)
|
def initialize(selection = 0, includeNew = false)
|
||||||
@sprite = IconSprite.new(Graphics.width * 3 / 4, (Graphics.height - 64) / 2 + 64)
|
@sprite = IconSprite.new(Graphics.width * 3 / 4, (Graphics.height - 64) / 2 + 64)
|
||||||
@@ -490,7 +493,7 @@ class TrainerTypeLister
|
|||||||
@sprite.bitmap.dispose if @sprite.bitmap
|
@sprite.bitmap.dispose if @sprite.bitmap
|
||||||
return if index < 0
|
return if index < 0
|
||||||
begin
|
begin
|
||||||
@sprite.setBitmap(pbTrainerSpriteFile(@ids[index]), 0)
|
@sprite.setBitmap(GameData::TrainerType.front_sprite_filename(@ids[index]), 0)
|
||||||
rescue
|
rescue
|
||||||
@sprite.setBitmap(nil)
|
@sprite.setBitmap(nil)
|
||||||
end
|
end
|
||||||
@@ -501,8 +504,9 @@ class TrainerTypeLister
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class TrainerBattleLister
|
class TrainerBattleLister
|
||||||
def initialize(selection,includeNew)
|
def initialize(selection,includeNew)
|
||||||
@sprite = IconSprite.new(Graphics.width * 3 / 4, (Graphics.height / 2) + 32)
|
@sprite = IconSprite.new(Graphics.width * 3 / 4, (Graphics.height / 2) + 32)
|
||||||
@@ -577,7 +581,7 @@ class TrainerBattleLister
|
|||||||
@sprite.bitmap.dispose if @sprite.bitmap
|
@sprite.bitmap.dispose if @sprite.bitmap
|
||||||
return if index<0
|
return if index<0
|
||||||
begin
|
begin
|
||||||
@sprite.setBitmap(pbTrainerSpriteFile(@ids[index]),0)
|
@sprite.setBitmap(GameData::TrainerType.front_sprite_filename(@ids[index]),0)
|
||||||
rescue
|
rescue
|
||||||
@sprite.setBitmap(nil)
|
@sprite.setBitmap(nil)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ def pbGetLegalMoves(species)
|
|||||||
next if !i.move
|
next if !i.move
|
||||||
moves.push(i.move) if tmdat[i.move] && tmdat[i.move].include?(species)
|
moves.push(i.move) if tmdat[i.move] && tmdat[i.move].include?(species)
|
||||||
end
|
end
|
||||||
babyspecies = pbGetBabySpecies(species)
|
babyspecies = EvolutionHelper.baby_species(species)
|
||||||
eggMoves = pbGetSpeciesEggMoves(babyspecies)
|
eggMoves = pbGetSpeciesEggMoves(babyspecies)
|
||||||
eggMoves.each { |m| moves.push(m) }
|
eggMoves.each { |m| moves.push(m) }
|
||||||
moves |= []
|
moves |= []
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Edits the terrain tags of tiles in tilesets.
|
#
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
begin
|
|
||||||
|
|
||||||
def pbTilesetWrapper
|
def pbTilesetWrapper
|
||||||
return PokemonDataWrapper.new(
|
return PokemonDataWrapper.new(
|
||||||
"Data/Tilesets.rxdata",
|
"Data/Tilesets.rxdata",
|
||||||
@@ -14,8 +12,9 @@ def pbTilesetWrapper
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Edits the terrain tags of tiles in tilesets.
|
||||||
|
#===============================================================================
|
||||||
class PokemonTilesetScene
|
class PokemonTilesetScene
|
||||||
TILESET_WIDTH = 256
|
TILESET_WIDTH = 256
|
||||||
TILE_SIZE = 32
|
TILE_SIZE = 32
|
||||||
@@ -203,11 +202,3 @@ def pbTilesetScreen
|
|||||||
scene.pbStartScene
|
scene.pbStartScene
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rescue Exception
|
|
||||||
if $!.is_a?(SystemExit) || "#{$!.class}"=="Reset"
|
|
||||||
raise $!
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Miniature game map/Town Map drawing
|
# Miniature game map drawing
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class MapSprite
|
class MapSprite
|
||||||
def initialize(map,viewport=nil)
|
def initialize(map,viewport=nil)
|
||||||
@@ -34,8 +34,9 @@ class MapSprite
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class SelectionSprite < Sprite
|
class SelectionSprite < Sprite
|
||||||
def initialize(viewport=nil)
|
def initialize(viewport=nil)
|
||||||
@sprite=Sprite.new(viewport)
|
@sprite=Sprite.new(viewport)
|
||||||
@@ -82,8 +83,9 @@ class SelectionSprite < Sprite
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
class RegionMapSprite
|
class RegionMapSprite
|
||||||
def initialize(map,viewport=nil)
|
def initialize(map,viewport=nil)
|
||||||
@sprite=Sprite.new(viewport)
|
@sprite=Sprite.new(viewport)
|
||||||
@@ -101,6 +103,20 @@ class RegionMapSprite
|
|||||||
@sprite.z=value
|
@sprite.z=value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def createRegionMap(map)
|
||||||
|
@mapdata = pbLoadTownMapData
|
||||||
|
@map=@mapdata[map]
|
||||||
|
bitmap=AnimatedBitmap.new("Graphics/Pictures/#{@map[1]}").deanimate
|
||||||
|
retbitmap=BitmapWrapper.new(bitmap.width/2,bitmap.height/2)
|
||||||
|
retbitmap.stretch_blt(
|
||||||
|
Rect.new(0,0,bitmap.width/2,bitmap.height/2),
|
||||||
|
bitmap,
|
||||||
|
Rect.new(0,0,bitmap.width,bitmap.height)
|
||||||
|
)
|
||||||
|
bitmap.dispose
|
||||||
|
return retbitmap
|
||||||
|
end
|
||||||
|
|
||||||
def getXY
|
def getXY
|
||||||
return nil if !Input.triggerex?(Input::LeftMouseKey)
|
return nil if !Input.triggerex?(Input::LeftMouseKey)
|
||||||
mouse=Mouse::getMousePos(true)
|
mouse=Mouse::getMousePos(true)
|
||||||
@@ -117,125 +133,6 @@ class RegionMapSprite
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def createRegionMap(map)
|
|
||||||
@mapdata = pbLoadTownMapData
|
|
||||||
@map=@mapdata[map]
|
|
||||||
bitmap=AnimatedBitmap.new("Graphics/Pictures/#{@map[1]}").deanimate
|
|
||||||
retbitmap=BitmapWrapper.new(bitmap.width/2,bitmap.height/2)
|
|
||||||
retbitmap.stretch_blt(
|
|
||||||
Rect.new(0,0,bitmap.width/2,bitmap.height/2),
|
|
||||||
bitmap,
|
|
||||||
Rect.new(0,0,bitmap.width,bitmap.height)
|
|
||||||
)
|
|
||||||
bitmap.dispose
|
|
||||||
return retbitmap
|
|
||||||
end
|
|
||||||
|
|
||||||
def getMapNameList
|
|
||||||
@mapdata = pbLoadTownMapData
|
|
||||||
ret=[]
|
|
||||||
for i in 0...@mapdata.length
|
|
||||||
next if !@mapdata[i]
|
|
||||||
ret.push(
|
|
||||||
[i,pbGetMessage(MessageTypes::RegionNames,i)]
|
|
||||||
)
|
|
||||||
end
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
def createMinimap2(mapid)
|
|
||||||
map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
|
|
||||||
return BitmapWrapper.new(32,32) if !map
|
|
||||||
bitmap=BitmapWrapper.new(map.width*4,map.height*4)
|
|
||||||
black=Color.new(0,0,0)
|
|
||||||
bigmap=(map.width>40 && map.height>40)
|
|
||||||
tilesets=load_data("Data/Tilesets.rxdata")
|
|
||||||
tileset=tilesets[map.tileset_id]
|
|
||||||
return bitmap if !tileset
|
|
||||||
helper=TileDrawingHelper.fromTileset(tileset)
|
|
||||||
for y in 0...map.height
|
|
||||||
for x in 0...map.width
|
|
||||||
if bigmap
|
|
||||||
next if (x>8 && x<=map.width-8 && y>8 && y<=map.height-8)
|
|
||||||
end
|
|
||||||
for z in 0..2
|
|
||||||
id=map.data[x,y,z]
|
|
||||||
next if id==0 || !id
|
|
||||||
helper.bltSmallTile(bitmap,x*4,y*4,4,4,id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
bitmap.fill_rect(0,0,bitmap.width,1,black)
|
|
||||||
bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
|
|
||||||
bitmap.fill_rect(0,0,1,bitmap.height,black)
|
|
||||||
bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
|
|
||||||
return bitmap
|
|
||||||
end
|
|
||||||
|
|
||||||
def createMinimap(mapid)
|
|
||||||
map=load_data(sprintf("Data/Map%03d.rxdata",mapid)) rescue nil
|
|
||||||
return BitmapWrapper.new(32,32) if !map
|
|
||||||
bitmap=BitmapWrapper.new(map.width*4,map.height*4)
|
|
||||||
black=Color.new(0,0,0)
|
|
||||||
tilesets=load_data("Data/Tilesets.rxdata")
|
|
||||||
tileset=tilesets[map.tileset_id]
|
|
||||||
return bitmap if !tileset
|
|
||||||
helper=TileDrawingHelper.fromTileset(tileset)
|
|
||||||
for y in 0...map.height
|
|
||||||
for x in 0...map.width
|
|
||||||
for z in 0..2
|
|
||||||
id=map.data[x,y,z]
|
|
||||||
id=0 if !id
|
|
||||||
helper.bltSmallTile(bitmap,x*4,y*4,4,4,id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
bitmap.fill_rect(0,0,bitmap.width,1,black)
|
|
||||||
bitmap.fill_rect(0,bitmap.height-1,bitmap.width,1,black)
|
|
||||||
bitmap.fill_rect(0,0,1,bitmap.height,black)
|
|
||||||
bitmap.fill_rect(bitmap.width-1,0,1,bitmap.height,black)
|
|
||||||
return bitmap
|
|
||||||
end
|
|
||||||
|
|
||||||
def chooseMapPoint(map,rgnmap=false)
|
|
||||||
viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
|
|
||||||
viewport.z=99999
|
|
||||||
title=Window_UnformattedTextPokemon.new(_INTL("Click a point on the map."))
|
|
||||||
title.x=0
|
|
||||||
title.y=Graphics.height-64
|
|
||||||
title.width=Graphics.width
|
|
||||||
title.height=64
|
|
||||||
title.viewport=viewport
|
|
||||||
title.z=2
|
|
||||||
if rgnmap
|
|
||||||
sprite=RegionMapSprite.new(map,viewport)
|
|
||||||
else
|
|
||||||
sprite=MapSprite.new(map,viewport)
|
|
||||||
end
|
|
||||||
sprite.z=2
|
|
||||||
ret=nil
|
|
||||||
loop do
|
|
||||||
Graphics.update
|
|
||||||
Input.update
|
|
||||||
xy=sprite.getXY
|
|
||||||
if xy
|
|
||||||
ret=xy
|
|
||||||
break
|
|
||||||
end
|
|
||||||
if Input.trigger?(Input::B)
|
|
||||||
ret=nil
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
sprite.dispose
|
|
||||||
title.dispose
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Visual Editor (map connections)
|
# Visual Editor (map connections)
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -686,8 +583,9 @@ class MapScreenScene
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
def pbConnectionsEditor
|
def pbConnectionsEditor
|
||||||
pbCriticalCode {
|
pbCriticalCode {
|
||||||
mapscreen = MapScreenScene.new
|
mapscreen = MapScreenScene.new
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ end
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Encoding and decoding
|
# Encoding and decoding
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
# Unused
|
||||||
def intSize(value)
|
def intSize(value)
|
||||||
return 1 if value<0x80
|
return 1 if value<0x80
|
||||||
return 2 if value<0x4000
|
return 2 if value<0x4000
|
||||||
@@ -217,6 +218,7 @@ def intSize(value)
|
|||||||
return 5
|
return 5
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def encodeInt(strm,value)
|
def encodeInt(strm,value)
|
||||||
num = 0
|
num = 0
|
||||||
loop do
|
loop do
|
||||||
@@ -230,6 +232,7 @@ def encodeInt(strm,value)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def decodeInt(strm)
|
def decodeInt(strm)
|
||||||
bits = 0
|
bits = 0
|
||||||
curbyte = 0
|
curbyte = 0
|
||||||
@@ -242,15 +245,18 @@ def decodeInt(strm)
|
|||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def strSize(str)
|
def strSize(str)
|
||||||
return str.length+intSize(str.length)
|
return str.length+intSize(str.length)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def encodeString(strm,str)
|
def encodeString(strm,str)
|
||||||
encodeInt(strm,str.length)
|
encodeInt(strm,str.length)
|
||||||
strm.write(str)
|
strm.write(str)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Unused
|
||||||
def decodeString(strm)
|
def decodeString(strm)
|
||||||
len = decodeInt(strm)
|
len = decodeInt(strm)
|
||||||
return strm.read(len)
|
return strm.read(len)
|
||||||
@@ -279,6 +285,7 @@ def pbFindScript(a,name)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# TODO: Will be unused once PBSpecies is abolished. Method above only used by this one.
|
||||||
def pbAddScript(script,sectionname)
|
def pbAddScript(script,sectionname)
|
||||||
begin
|
begin
|
||||||
scripts = load_data("Data/Constants.rxdata")
|
scripts = load_data("Data/Constants.rxdata")
|
||||||
|
|||||||
@@ -523,11 +523,9 @@ module Compiler
|
|||||||
# doesn't have a charset
|
# doesn't have a charset
|
||||||
if firstpage.graphic.character_name=="" && GameData::TrainerType.exists?(trtype)
|
if firstpage.graphic.character_name=="" && GameData::TrainerType.exists?(trtype)
|
||||||
trainerid = GameData::TrainerType.get(trtype).id
|
trainerid = GameData::TrainerType.get(trtype).id
|
||||||
if trainerid
|
filename = GameData::TrainerType.charset_filename_brief(trainerid)
|
||||||
filename = pbTrainerCharNameFile(trainerid)
|
if FileTest.image_exist?("Graphics/Characters/"+filename)
|
||||||
if FileTest.image_exist?("Graphics/Characters/"+filename)
|
firstpage.graphic.character_name = sprintf(filename)
|
||||||
firstpage.graphic.character_name = sprintf(filename)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Create strings that will be used repeatedly
|
# Create strings that will be used repeatedly
|
||||||
|
|||||||
Reference in New Issue
Block a user