diff --git a/Data/Actors.rxdata b/Data/Actors.rxdata index 41edc8e26..7967a5432 100644 Binary files a/Data/Actors.rxdata and b/Data/Actors.rxdata differ diff --git a/Data/Animations.rxdata b/Data/Animations.rxdata index 71336e1f0..a900929a9 100644 Binary files a/Data/Animations.rxdata and b/Data/Animations.rxdata differ diff --git a/Data/Armors.rxdata b/Data/Armors.rxdata index 901f2bb2b..2249bec14 100644 Binary files a/Data/Armors.rxdata and b/Data/Armors.rxdata differ diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index 2c3a12d33..a505dc4f9 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Enemies.rxdata b/Data/Enemies.rxdata index be622f513..004ee903d 100644 Binary files a/Data/Enemies.rxdata and b/Data/Enemies.rxdata differ diff --git a/Data/Items.rxdata b/Data/Items.rxdata index fe767fa0b..3e62ba6d2 100644 Binary files a/Data/Items.rxdata and b/Data/Items.rxdata differ diff --git a/Data/Map237.rxdata b/Data/Map237.rxdata index 81eaa05ca..d8a7162a1 100644 Binary files a/Data/Map237.rxdata and b/Data/Map237.rxdata differ diff --git a/Data/Map788.rxdata b/Data/Map788.rxdata index b73d68012..294c96c68 100644 Binary files a/Data/Map788.rxdata and b/Data/Map788.rxdata differ diff --git a/Data/Map834.rxdata b/Data/Map834.rxdata index 286e9fd51..485833ec3 100644 Binary files a/Data/Map834.rxdata and b/Data/Map834.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 260b6eeec..fcc829b40 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb b/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb index b2b757d25..18529d9e2 100644 --- a/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb +++ b/Data/Scripts/011_Battle/005_Battle scene/007_Scene_Initialize.rb @@ -74,7 +74,7 @@ class PokeBattle_Scene # Opposing trainer(s) sprites if @battle.trainerBattle? @battle.opponent.each_with_index do |p, i| - pbCreateTrainerFrontSprite(i, p.trainer_type, @battle.opponent.length, p.sprite_override) + pbCreateTrainerFrontSprite(i, p.trainer_type, @battle.opponent.length, p.sprite_override, p.custom_appearance) end end # Data boxes and Pokémon sprites @@ -207,7 +207,7 @@ class PokeBattle_Scene # trainer.oy = trainer.bitmap.height end - def pbCreateTrainerFrontSprite(idxTrainer, trainerType, numTrainers = 1, sprite_override = nil) + def pbCreateTrainerFrontSprite(idxTrainer, trainerType, numTrainers = 1, sprite_override = nil, custom_appearance=nil) trainerFile = GameData::TrainerType.front_sprite_filename(trainerType) trainerFile = sprite_override if sprite_override @@ -215,7 +215,7 @@ class PokeBattle_Scene trainer = pbAddSprite("trainer_#{idxTrainer + 1}", spriteX, spriteY, trainerFile, @viewport) spriteOverrideBitmap = setTrainerSpriteOverrides(trainerType) trainer.bitmap = spriteOverrideBitmap if spriteOverrideBitmap - + trainer.bitmap = generate_front_trainer_sprite_bitmap_from_appearance(custom_appearance).bitmap if custom_appearance return if !trainer.bitmap # Alter position of sprite trainer.z = 7 + idxTrainer diff --git a/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb b/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb index 6fef157aa..a3a1865ee 100644 --- a/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb +++ b/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb @@ -567,7 +567,7 @@ end #party: array of pokemon team # [[:SPECIES,level], ... ] # -def customTrainerBattle(trainerName, trainerType, party_array, default_level=50, endSpeech="", sprite_override=nil) +def customTrainerBattle(trainerName, trainerType, party_array, default_level=50, endSpeech="", sprite_override=nil,custom_appearance=nil) # trainerID= "customTrainer" @@ -582,7 +582,7 @@ def customTrainerBattle(trainerName, trainerType, party_array, default_level=50, # trainer_info_hash[:pokemon] = party #trainer = GameData::Trainer.new(trainer_info_hash) - trainer = NPCTrainer.new(trainerName,trainerType,sprite_override) + trainer = NPCTrainer.new(trainerName,trainerType,sprite_override,custom_appearance) trainer.lose_text=endSpeech party = [] party_array.each { |pokemon| diff --git a/Data/Scripts/015_Trainers and player/001_Trainer.rb b/Data/Scripts/015_Trainers and player/001_Trainer.rb index f1ce86645..c89254845 100644 --- a/Data/Scripts/015_Trainers and player/001_Trainer.rb +++ b/Data/Scripts/015_Trainers and player/001_Trainer.rb @@ -9,6 +9,7 @@ class Trainer attr_accessor :party attr_accessor :quests attr_accessor :sprite_override + attr_accessor :custom_appearance attr_accessor :lowest_difficulty attr_accessor :selected_difficulty attr_accessor :game_mode @@ -212,13 +213,14 @@ class Trainer #============================================================================= - def initialize(name, trainer_type, sprite_override=nil) + def initialize(name, trainer_type, sprite_override=nil, custom_appearance=nil) @trainer_type = GameData::TrainerType.get(trainer_type).id @name = name @id = rand(2 ** 16) | rand(2 ** 16) << 16 @language = pbGetLanguage @party = [] @sprite_override = sprite_override + @custom_appearance = custom_appearance @lowest_difficulty=2 #On hard by default, lowered whenever the player selects another difficulty @selected_difficulty=2 #On hard by default, lowered whenever the player selects another difficulty @game_mode =0 #classic @@ -232,7 +234,7 @@ class NPCTrainer < Trainer attr_accessor :items attr_accessor :lose_text - def initialize(name, trainer_type, sprite_override=nil) + def initialize(name, trainer_type, sprite_override=nil,custom_appearance=nil) super @items = [] @lose_text = nil diff --git a/Data/Scripts/050_Outfits/001_OutfitsMain/LayeredClothes.rb b/Data/Scripts/050_Outfits/001_OutfitsMain/LayeredClothes.rb index edb492c26..43639339a 100644 --- a/Data/Scripts/050_Outfits/001_OutfitsMain/LayeredClothes.rb +++ b/Data/Scripts/050_Outfits/001_OutfitsMain/LayeredClothes.rb @@ -230,9 +230,17 @@ def generateNPCClothedBitmapStatic(trainerAppearance,action = "walk") hair_color_shift = trainerAppearance.hair_color || 0 hairBitmap = AnimatedBitmap.new(hairFilename, hair_color_shift).bitmap if pbResolveBitmap(hairFilename) baseBitmap.blt(0, 0, hairBitmap, hairBitmap.rect) + + #Hat hat_color_shift = trainerAppearance.hat_color || 0 + hat2_color_shift = trainerAppearance.hat2_color || 0 + hatFilename = getOverworldHatFilename(trainerAppearance.hat) + hat2Filename = getOverworldHatFilename(trainerAppearance.hat2) + hatBitmapWrapper = AnimatedBitmap.new(hatFilename, hat_color_shift) if pbResolveBitmap(hatFilename) + hat2BitmapWrapper = AnimatedBitmap.new(hat2Filename, hat2_color_shift) if pbResolveBitmap(hat2Filename) + if hatBitmapWrapper frame_count = 4 # Assuming 4 frames for hair animation; adjust as needed hat_frame_bitmap = duplicateHatForFrames(hatBitmapWrapper.bitmap, frame_count) @@ -247,6 +255,22 @@ def generateNPCClothedBitmapStatic(trainerAppearance,action = "walk") positionHat(baseBitmap, hat_frame_bitmap, frame_offset, i, frame_width) end end + + if hat2BitmapWrapper + frame_count = 4 # Assuming 4 frames for hair animation; adjust as needed + hat2_frame_bitmap = duplicateHatForFrames(hat2BitmapWrapper.bitmap, frame_count) + + frame_width = baseSprite.bitmap.width / frame_count # Calculate frame width + + frame_count.times do |i| + # Calculate offset for each frame + frame_offset = [i * frame_width, 0] + # Adjust Y offset if frame index is odd + frame_offset[1] -= 2 if i.odd? + positionHat(baseBitmap, hat2_frame_bitmap, frame_offset, i, frame_width) + end + end + return baseBitmap end diff --git a/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb b/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb index 5bc09dd9a..1c7827659 100644 --- a/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb +++ b/Data/Scripts/050_Outfits/UI/clothesShop/HatsMartAdapter.rb @@ -53,12 +53,12 @@ class HatsMartAdapter < OutfitsMartAdapter def updateTrainerPreview(item, previewWindow) if item.is_a?(Outfit) - previewWindow.hat = item.id + previewWindow.set_hat(item.id,@is_secondary_hat) $Trainer.set_hat(item.id,@is_secondary_hat)# unless $Trainer.hat==nil set_dye_color(item,previewWindow) else $Trainer.set_hat(nil,@is_secondary_hat) - previewWindow.hat= nil + previewWindow.set_hat(nil,@is_secondary_hat) end diff --git a/Data/Scripts/050_Outfits/utils/OutfitsGameplayUtils.rb b/Data/Scripts/050_Outfits/utils/OutfitsGameplayUtils.rb index e99e1d2ed..c22a47a44 100644 --- a/Data/Scripts/050_Outfits/utils/OutfitsGameplayUtils.rb +++ b/Data/Scripts/050_Outfits/utils/OutfitsGameplayUtils.rb @@ -312,6 +312,71 @@ def randomizePlayerOutfitUnlocked() end +def convert_letter_to_number(letter, max_number = nil) + return letter.ord if !max_number + return letter.ord % max_number +end + +def generate_appearance_from_name(name) + name_seed_length = 15 + + seed = name[0, name_seed_length] # Truncate if longer than 8 + seed += seed[0, name_seed_length - seed.length] while seed.length < name_seed_length # Repeat first characters if shorter + + echoln seed + + hats_list = $PokemonGlobal.hats_data.keys + clothes_list = $PokemonGlobal.clothes_data.keys + hairstyles_list = $PokemonGlobal.hairstyles_data.keys + + hat = hats_list[convert_letter_to_number(seed[0],hats_list.length)] + hat2 = hats_list[convert_letter_to_number(seed[1],hats_list.length)] + hat2 = nil if convert_letter_to_number(seed[2]) % 3 == 0 #1/3 chance of no 2nd hat + + hat_color = convert_letter_to_number(seed[3],255) + hat_color = 0 if convert_letter_to_number(seed[4]) % 2 == 0 #1/2 chance of no dyed hat + hat2_color = convert_letter_to_number(seed[5],255) + hat2_color = 0 if convert_letter_to_number(seed[6]) % 2 == 0 + + clothes = clothes_list[convert_letter_to_number(seed[7],clothes_list.length)] + clothes_color = convert_letter_to_number(seed[8],255) + clothes_color = 0 if convert_letter_to_number(seed[9]) % 2 == 0 #1/2 chance of no dyed clothes + + hair_base = hairstyles_list[convert_letter_to_number(seed[10],hairstyles_list.length)] + hair_number = [1,2,3,4][convert_letter_to_number(seed[11],3)] + hair=getFullHairId(hair_base,hair_number) + hair_color = convert_letter_to_number(seed[12],255) + hair_color = 0 if convert_letter_to_number(seed[13]) % 2 == 0 #1/2 chance of no dyed hair + + skin_tone = [1,2,3,4,5,6][convert_letter_to_number(seed[14],5)] + + echoln clothes + return TrainerAppearance.new(skin_tone,hat,clothes, hair, + hair_color, clothes_color, hat_color,hat2,hat2_color) + +end + +def get_random_appearance() + hat = $PokemonGlobal.hats_data.keys.sample + hat2 = $PokemonGlobal.hats_data.keys.sample + hat2 = nil if(rand(3)==0) + + clothes = $PokemonGlobal.clothes_data.keys.sample + hat_color = rand(2)==0 ? rand(255) : 0 + hat2_color = rand(2)==0 ? rand(255) : 0 + + clothes_color = rand(2)==0 ? rand(255) : 0 + hair_color = rand(2)==0 ? rand(255) : 0 + + hair_id = $PokemonGlobal.hairstyles_data.keys.sample + hair_color = [1,2,3,4].sample + skin_tone = [1,2,3,4,5,6].sample + hair = getFullHairId(hair_id,hair_color) + + return TrainerAppearance.new(skin_tone,hat,clothes, hair, + hair_color, clothes_color, hat_color,hat2) +end + def randomizePlayerOutfit() $Trainer.hat = $PokemonGlobal.hats_data.keys.sample $Trainer.hat2 = $PokemonGlobal.hats_data.keys.sample diff --git a/Data/Scripts/051_Wrappers/type_expert.rb b/Data/Scripts/051_Wrappers/type_expert.rb index f0cd5d92f..40ce34186 100644 --- a/Data/Scripts/051_Wrappers/type_expert.rb +++ b/Data/Scripts/051_Wrappers/type_expert.rb @@ -1,21 +1,26 @@ class TrainerAppearance attr_accessor :skin_color attr_accessor :hat + attr_accessor :hat2 attr_accessor :clothes attr_accessor :hair attr_accessor :hair_color attr_accessor :clothes_color attr_accessor :hat_color + attr_accessor :hat2_color - def initialize(skin_color, hat, clothes, hair, hair_color = 0, clothes_color = 0, hat_color = 0) + + def initialize(skin_color, hat, clothes, hair, hair_color = 0, clothes_color = 0, hat_color = 0, hat2=nil, hat2_color=0) @skin_color = skin_color @hat = hat + @hat2 = hat2 @clothes = clothes @hair = hair @hair_color = hair_color @clothes_color = clothes_color @hat_color = hat_color + @hat2_color = hat2_color end end diff --git a/Data/Scripts/052_AddOns/SpriteCreditsUtils.rb b/Data/Scripts/052_AddOns/SpriteCreditsUtils.rb index 5c2df525c..9e4a97b0c 100644 --- a/Data/Scripts/052_AddOns/SpriteCreditsUtils.rb +++ b/Data/Scripts/052_AddOns/SpriteCreditsUtils.rb @@ -151,12 +151,16 @@ def generateCurrentGalleryBattle(level = nil, number_of_pokemon = 3) selected_battlers_idx.each { |species| 00 party << Pokemon.new(species, level) } + + custom_appearance = generate_appearance_from_name(spriter_name) customTrainerBattle(spriter_name, :PAINTER, party, level, pick_spriter_losing_dialog(spriter_name), - pick_trainer_sprite(spriter_name) + pick_trainer_sprite(spriter_name), + custom_appearance + ) end diff --git a/Data/Skills.rxdata b/Data/Skills.rxdata index a45219f5e..61cba7ea2 100644 Binary files a/Data/Skills.rxdata and b/Data/Skills.rxdata differ diff --git a/Data/States.rxdata b/Data/States.rxdata index 868d49e59..0f9b4ae5d 100644 Binary files a/Data/States.rxdata and b/Data/States.rxdata differ diff --git a/Data/System.rxdata b/Data/System.rxdata index 347aff954..c2d5c741d 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index 81118b37b..6fd4dee80 100644 Binary files a/Data/Tilesets.rxdata and b/Data/Tilesets.rxdata differ diff --git a/Data/Weapons.rxdata b/Data/Weapons.rxdata index c7ea19a7a..d9bd35260 100644 Binary files a/Data/Weapons.rxdata and b/Data/Weapons.rxdata differ diff --git a/Data/sprites/sprites_rate_limit.log b/Data/sprites/sprites_rate_limit.log index 7b87b31c0..c956c4a2b 100644 --- a/Data/sprites/sprites_rate_limit.log +++ b/Data/sprites/sprites_rate_limit.log @@ -1,4 +1,5 @@ -1740086845 -1740086846 -1740086849 -1740086850 \ No newline at end of file +1740158773 +1740158778 +1740158828 +1740158832 +1740158832 \ No newline at end of file diff --git a/Data/sprites/updated_spritesheets_cache b/Data/sprites/updated_spritesheets_cache index 82abf40e7..54d9527e9 100644 --- a/Data/sprites/updated_spritesheets_cache +++ b/Data/sprites/updated_spritesheets_cache @@ -213,3 +213,293 @@ Graphics/CustomBattlers/spritesheets/spritesheets_base/6.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/6/6.png Graphics/CustomBattlers/spritesheets/spritesheets_base/282.png Graphics/CustomBattlers/spritesheets/spritesheets_custom/282/282.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/266.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/266/266.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/349.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/373.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/373/373a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/257.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/405.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/405/405.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/298.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/135.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/135/135.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/62.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/450/450a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/314.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/381/381.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/345.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/166/166.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/416/416a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/56.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/61.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/61/61a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/85.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/85/85.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/348.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/9.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/9/9.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/225.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/37/37.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/406.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/306.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/306/306.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/317.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/153.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/153/153.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/90.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/200.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/176.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/176/176.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/81.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/397.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/337.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/337/337.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/494.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/338.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/367.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/367/367.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/294/294.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/386.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/90/90.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/65.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/65/65.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/399.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/225/225.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/428.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/187.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/21/21.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/21.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/23/23.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/481.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/157/157.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/315.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/399/399.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/167.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/409.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/409/409.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/304.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/304/304.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/354.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/262/262.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/468.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/476/476.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/272.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/272/272.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/99.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/431.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/431/431.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/341.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/275.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/275/275.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/189.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/189/189.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/125.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/125/125a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/333.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/226.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/226/226.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/75.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/345/345.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/179.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/179/179.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/252.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/344/344.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/484.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/178.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/255.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/255/255.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/397/397.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/175.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/313/313.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/250.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/222/222.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/57.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/241.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/241/241.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/145/145.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/228.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/450/450.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/59.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/18.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/355.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/58.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/58/58.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/274.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/216.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/216/216.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/254.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/365/365.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/360.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/45.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/45/45.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/369.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/369/369.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/89.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/468/468.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/388.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/243.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/243/243.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/324.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/121.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/121/121.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/39.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/231.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/486.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/445.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/445/445.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/238.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/277.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/277/277.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/436/436.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/354/354.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/420.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/67.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/380.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/78.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/351.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/351/351b.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/120.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/322.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/322/322.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/38.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/202.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/202/202.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/48.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/56/56a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/160.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/418.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/418/418.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/169/169b.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/392.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/392/392.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/54.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/432.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/127/127.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/435.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/382.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/382/382.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/292.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/376.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/376/376.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/206.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/80.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/80/80.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/207.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/134/134.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/460.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/292/292.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/192.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/192/192.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/297.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/297/297.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/16.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/374.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/374/374.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/299.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/284/284.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/319.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/319/319.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/145.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/154.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/492.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/467.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/132/132.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/402.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/87/87.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/59/59.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/156/156.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/483.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/119.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/478.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/74.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/74/74.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/352.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/141.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/104/104.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/110.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/110/110.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/360/360.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/26.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/224.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/224/224.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/13.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/13/13.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/451.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/451/451.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/464.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/464/464.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/76/76.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/52.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/52/52.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/33.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/332.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/332/332.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/215.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/123/123.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/186.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/64.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/64/64.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/16/16.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/26/26.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/335.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/370/370.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/383.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/309.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/403/403.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/66.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/289.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/407.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/407/407.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/144.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/42/42.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/347.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/429.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/429/429a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/264.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/372/372.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/368.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/368/368.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/265/265.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/71.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/498.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/498/498a.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/162.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/347/347.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/63.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/484/484.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/138.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/247.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/247/247.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/88.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/195.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/195/195.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/230.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/217.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/2/2.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/103.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/103/103.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/173.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/53.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/53/53.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/44.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/496.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/492/492.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/286.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/286/286.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/487.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/139.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/453.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/453/453.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/328.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/328/328.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/359.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/356/356.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/151.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/151/151a.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/197/197.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/162/162.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/148/148.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/78/78c.png +Graphics/CustomBattlers/spritesheets/spritesheets_custom/136/136.png +Graphics/CustomBattlers/spritesheets/spritesheets_base/260.png