Moved methods that return item/trainer graphics, refactored evolution helper methods, rearranged some methods

This commit is contained in:
Maruno17
2020-12-13 19:40:17 +00:00
parent d4b5aa0ce7
commit 1ffeddc41c
35 changed files with 582 additions and 548 deletions

View File

@@ -18,6 +18,49 @@ module GameData
extend ClassMethods
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)
@id = hash[:id]
@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?')
return GameData::Item.get(check_item).unlosable?(species, ability)
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

View File

@@ -48,6 +48,18 @@ module GameData
return pbGetMessage(MessageTypes::MoveDescriptions, @id_number)
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?
GameData::Item.each do |i|
return true if i.is_HM? && i.move == @id

View File

@@ -17,6 +17,59 @@ module GameData
extend ClassMethods
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)
@id = hash[:id]
@id_number = hash[:id_number] || -1
@@ -43,7 +96,47 @@ end
#===============================================================================
# Deprecated methods
#===============================================================================
def pbGetTrainerTypeData(trainer_type)
def pbGetTrainerTypeData(tr_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