Files
infinitefusion-e18/Data/Scripts/050_AddOns/FusionSprites.rb
infinitefusion 0190b3c365 pokedex
2021-07-15 14:45:38 -04:00

59 lines
2.0 KiB
Ruby

module GameData
class Species
def self.sprite_bitmap_from_pokemon(pkmn, back = false, species = nil)
species = pkmn.species if !species
species = GameData::Species.get(species).id_number # Just to be sure it's a number
return self.egg_sprite_bitmap(species, pkmn.form) if pkmn.egg?
if back
ret = self.back_sprite_bitmap(species)
else
ret = self.front_sprite_bitmap(species)
end
return ret
end
def self.sprite_bitmap_from_pokemon_id(id, back = false)
if back
ret = self.back_sprite_bitmap(id)
else
ret = self.front_sprite_bitmap(id)
end
return ret
end
def self.front_sprite_bitmap(dex_number,a=0,b=0,c=0,d=0) #la méthode est utilisé ailleurs avec d'autres arguments (gender, form, etc.) mais on les veut pas
if dex_number.is_a?(Symbol)
dex_number = GameData::Species.get(dex_number).id_number
end
filename = self.sprite_filename(dex_number)
return (filename) ? AnimatedBitmap.new(filename) : nil
end
def self.back_sprite_bitmap(dex_number)
filename = self.sprite_filename(dex_number)
return (filename) ? AnimatedBitmap.new(filename) : nil
end
def self.egg_sprite_bitmap(dex_number, form = 0)
filename = self.egg_sprite_filename(dex_number, form)
return (filename) ? AnimatedBitmap.new(filename) : nil
end
def self.sprite_filename(dex_number)
return nil if dex_number == nil
if dex_number <= Settings::NB_POKEMON
folder = dex_number.to_s
filename = sprintf("%s.png", dex_number)
else
body_id = getBodyID(dex_number)
head_id = getHeadID(dex_number, body_id)
folder = head_id.to_s
filename = sprintf("%s.%s.png", head_id, body_id)
end
customPath = pbResolveBitmap(Settings::CUSTOM_BATTLERS_FOLDER + filename)
regularPath = Settings::BATTLERS_FOLDER + folder + "/" + filename
return customPath ? customPath : pbResolveBitmap(regularPath)
end
end
end