diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index 7989f71f4..447c30ec0 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Map086.rxdata b/Data/Map086.rxdata index 34262bada..440f9ebcc 100644 Binary files a/Data/Map086.rxdata and b/Data/Map086.rxdata differ diff --git a/Data/Map095.rxdata b/Data/Map095.rxdata index 9ad58a7a4..376ffd870 100644 Binary files a/Data/Map095.rxdata and b/Data/Map095.rxdata differ diff --git a/Data/Map098.rxdata b/Data/Map098.rxdata index ce9b83dfa..841d8715f 100644 Binary files a/Data/Map098.rxdata and b/Data/Map098.rxdata differ diff --git a/Data/Map192.rxdata b/Data/Map192.rxdata index 59cbb803c..11700dc67 100644 Binary files a/Data/Map192.rxdata and b/Data/Map192.rxdata differ diff --git a/Data/Map237.rxdata b/Data/Map237.rxdata index 6cba3c114..7df3c1d8b 100644 Binary files a/Data/Map237.rxdata and b/Data/Map237.rxdata differ diff --git a/Data/Map340.rxdata b/Data/Map340.rxdata index 4809346e3..55a524b39 100644 Binary files a/Data/Map340.rxdata and b/Data/Map340.rxdata differ diff --git a/Data/Map498.rxdata b/Data/Map498.rxdata index 73b1f884c..b16a9b39f 100644 Binary files a/Data/Map498.rxdata and b/Data/Map498.rxdata differ diff --git a/Data/Map509.rxdata b/Data/Map509.rxdata index 85fe61ebc..f557890a9 100644 Binary files a/Data/Map509.rxdata and b/Data/Map509.rxdata differ diff --git a/Data/Map524.rxdata b/Data/Map524.rxdata index 130555711..41dcf1d67 100644 Binary files a/Data/Map524.rxdata and b/Data/Map524.rxdata differ diff --git a/Data/Map561.rxdata b/Data/Map561.rxdata index 485292bbc..8dd22248f 100644 Binary files a/Data/Map561.rxdata and b/Data/Map561.rxdata differ diff --git a/Data/Map655.rxdata b/Data/Map655.rxdata index 38d2bcef6..56d9d5a52 100644 Binary files a/Data/Map655.rxdata and b/Data/Map655.rxdata differ diff --git a/Data/Map734.rxdata b/Data/Map734.rxdata index c3bc59984..75ad68c96 100644 Binary files a/Data/Map734.rxdata and b/Data/Map734.rxdata differ diff --git a/Data/Map755.rxdata b/Data/Map755.rxdata index f76553dae..6b59cc728 100644 Binary files a/Data/Map755.rxdata and b/Data/Map755.rxdata differ diff --git a/Data/Map782.rxdata b/Data/Map782.rxdata index ab0e592ed..a424d19da 100644 Binary files a/Data/Map782.rxdata and b/Data/Map782.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 20ab28d87..1a09d4c49 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index 6842d08b2..b073a78ec 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -24,6 +24,8 @@ module Settings CUSTOM_BATTLERS_FOLDER = "Graphics/CustomBattlers/" CUSTOM_BATTLERS_FOLDER_INDEXED = "Graphics/CustomBattlers/indexed" BATTLERS_FOLDER = "Graphics/Battlers/" + DOWNLOADED_SPRITES_FOLDER = "Graphics/temp/" + FRONTSPRITE_POSITION_OFFSET = 20 FRONTSPRITE_SCALE = 0.6666666666 BACKRPSPRITE_SCALE = 1 diff --git a/Data/Scripts/001_Technical/005_PluginManager.rb b/Data/Scripts/001_Technical/005_PluginManager.rb index a7243e0b0..befca88ce 100644 --- a/Data/Scripts/001_Technical/005_PluginManager.rb +++ b/Data/Scripts/001_Technical/005_PluginManager.rb @@ -540,6 +540,7 @@ module PluginManager # Get a list of all the plugin directories to inspect #----------------------------------------------------------------------------- def self.listAll + return [] return [] if !$DEBUG || safeExists?("Game.rgssad") # get a list of all directories in the `Plugins/` folder dirs = [] diff --git a/Data/Scripts/011_Battle/005_Battle scene/004_PokeBattle_SceneElements.rb b/Data/Scripts/011_Battle/005_Battle scene/004_PokeBattle_SceneElements.rb index e336aa65c..292b6eb86 100644 --- a/Data/Scripts/011_Battle/005_Battle scene/004_PokeBattle_SceneElements.rb +++ b/Data/Scripts/011_Battle/005_Battle scene/004_PokeBattle_SceneElements.rb @@ -235,7 +235,9 @@ class PokemonDataBox < SpriteWrapper # Draw shiny icon if @battler.shiny? shinyX = (@battler.opposes?(0)) ? 206 : -6 # Foe's/player's - addShinyStarsToGraphicsArray(imagePos,@spriteBaseX+shinyX,35, @battler.pokemon.bodyShiny?,@battler.pokemon.headShiny?,@battler.pokemon.debugShiny?) + + pokeRadarShiny= !@battler.pokemon.debugShiny? && !@battler.pokemon.naturalShiny? + addShinyStarsToGraphicsArray(imagePos,@spriteBaseX+shinyX,35, @battler.pokemon.bodyShiny?,@battler.pokemon.headShiny?,@battler.pokemon.debugShiny?, pokeRadarShiny) end # Draw Mega Evolution/Primal Reversion icon if @battler.mega? diff --git a/Data/Scripts/048_Fusion/DoublePreviewScreen.rb b/Data/Scripts/048_Fusion/DoublePreviewScreen.rb index 62aedc334..da79b4adb 100644 --- a/Data/Scripts/048_Fusion/DoublePreviewScreen.rb +++ b/Data/Scripts/048_Fusion/DoublePreviewScreen.rb @@ -22,6 +22,7 @@ class DoublePreviewScreen @picture2 = nil @draw_types = nil @draw_level = nil + @draw_sprite_info = nil @selected = 0 @last_post=0 @sprites = {} @@ -143,6 +144,7 @@ class DoublePreviewScreen viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) @typewindows << drawPokemonType(fusedDexNum, viewport, x + 55, 220) if @draw_types drawFusionPreviewText(viewport, "Lv. " + level.to_s, x + 80, 40,) if @draw_level + drawSpriteInfoIcons(getPokemon(fusedDexNum),viewport) if @draw_sprite_info end @@ -179,6 +181,16 @@ class DoublePreviewScreen pbDrawTextPositions(overlay, textpos) end + #todo + # Adds the icons indicating if the fusion has alt sprites and if the final evo has a custom sprite + # also add a second icon to indidcate if the final evolution has a custom + def drawSpriteInfoIcons(fusedPokemon, viewport) + #pokedexUtils = PokedexUtils.new + #hasAltSprites = pokedexUtils.pbGetAvailableAlts(fusedPokemon).size>1 + #pokedexUtils.getFinalEvolution(fusedPokemon).real_name + #todo + end + def dispose @picture1.dispose @picture2.dispose diff --git a/Data/Scripts/048_Fusion/FusionPreviewScreen.rb b/Data/Scripts/048_Fusion/FusionPreviewScreen.rb index f8970d249..42e1808bc 100644 --- a/Data/Scripts/048_Fusion/FusionPreviewScreen.rb +++ b/Data/Scripts/048_Fusion/FusionPreviewScreen.rb @@ -14,6 +14,7 @@ class FusionPreviewScreen < DoublePreviewScreen super(poke1,poke2) @draw_types = true @draw_level = true + @draw_sprite_info=true #@viewport = viewport @poke1 = poke1 diff --git a/Data/Scripts/050_AddOns/GeneralUtils.rb b/Data/Scripts/050_AddOns/GeneralUtils.rb index 956a3a161..6eee24867 100644 --- a/Data/Scripts/050_AddOns/GeneralUtils.rb +++ b/Data/Scripts/050_AddOns/GeneralUtils.rb @@ -161,7 +161,7 @@ end def addShinyStarsToGraphicsArray(imageArray, xPos, yPos, shinyBody, shinyHead, debugShiny, srcx=nil, srcy=nil, width=nil, height=nil, - showSecondStarUnder=false, showSecondStarAbove=false) + showSecondStarUnder=false, showSecondStarAbove=false ) color = debugShiny ? Color.new(0,0,0,255) : nil imageArray.push(["Graphics/Pictures/shiny",xPos,yPos,srcx,srcy,width,height,color]) if shinyBody && shinyHead @@ -174,6 +174,10 @@ def addShinyStarsToGraphicsArray(imageArray, xPos, yPos, shinyBody, shinyHead, d end imageArray.push(["Graphics/Pictures/shiny",xPos,yPos,srcx,srcy,width,height,color]) end + # if onlyOutline + # imageArray.push(["Graphics/Pictures/shiny_black",xPos,yPos,srcx,srcy,width,height,color]) + # end + end def getRandomCustomFusion(returnRandomPokemonIfNoneFound = true, customPokeList = [], maxPoke = -1, recursionLimit = 3, maxBST=300) @@ -369,9 +373,14 @@ end def obtainPokemonSpritePath(id, includeCustoms = true) head = getBasePokemonID(param.to_i, false) body = getBasePokemonID(param.to_i, true) + return obtainPokemonSpritePath(body, head, includeCustoms) end + + + + def obtainPokemonSpritePath(bodyId, headId, include_customs = true) picturePath = _INTL("Graphics/Battlers/{1}/{1}.{2}.png", headId, bodyId) diff --git a/Data/Scripts/050_AddOns/PokedexUtils.rb b/Data/Scripts/050_AddOns/PokedexUtils.rb new file mode 100644 index 000000000..4ca6de402 --- /dev/null +++ b/Data/Scripts/050_AddOns/PokedexUtils.rb @@ -0,0 +1,48 @@ +class PokedexUtils + POSSIBLE_ALTS = %w[a b c d e f g h i j k x] + + def pbGetAvailableAlts(species) + ret = [] + return ret if !species + dexNum = getDexNumberForSpecies(species) + isFusion = dexNum > NB_POKEMON + if !isFusion + ret << Settings::BATTLERS_FOLDER + dexNum.to_s + "/" + dexNum.to_s + ".png" + return ret + end + body_id = getBodyID(species) + head_id = getHeadID(species, body_id) + + baseFilename = head_id.to_s + "." + body_id.to_s + baseFilePath = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + "/" + head_id.to_s + "/" + baseFilename + ".png" + if pbResolveBitmap(baseFilePath) + ret << baseFilePath + end + POSSIBLE_ALTS.each { |alt_letter| + altFilePath = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + "/" + head_id.to_s + "/" + baseFilename + alt_letter + ".png" + if pbResolveBitmap(altFilePath) + ret << altFilePath + end + } + ret << Settings::BATTLERS_FOLDER + head_id.to_s + "/" + baseFilename + ".png" + return ret + end + + + #todo: return array for split evolution lines that have multiple final evos + def getFinalEvolution(species) + #ex: [[B3H4,Level 32],[B2H5, Level 35]] + evolution_line = species.get_evolutions + return species if evolution_line.empty? + finalEvoId = evolution_line[0][0] + return evolution_line[] + for evolution in evolution_line + evoSpecies = evolution[0] + p GameData::Species.get(evoSpecies).get_evolutions + isFinalEvo = GameData::Species.get(evoSpecies).get_evolutions.empty? + return evoSpecies if isFinalEvo + end + return nil + end + +end diff --git a/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb b/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb index ce29df9ee..9d7529cf9 100644 --- a/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb +++ b/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb @@ -92,10 +92,9 @@ class PokemonPokedexInfo_Scene end - POSSIBLE_ALTS = %w[a b c d e f g h i j k x] def pbGetAvailableForms - return pbGetAvailableAlts + return PokedexUtils.new.pbGetAvailableAlts(@species) end def hide_all_selected_windows @@ -134,32 +133,7 @@ class PokemonPokedexInfo_Scene update_selected end - def pbGetAvailableAlts - ret = [] - return ret if !@species - dexNum = getDexNumberForSpecies(@species) - isFusion = dexNum > NB_POKEMON - if !isFusion - ret << Settings::BATTLERS_FOLDER + dexNum.to_s + "/" + dexNum.to_s + ".png" - return ret - end - body_id = getBodyID(@species) - head_id = getHeadID(@species, body_id) - baseFilename = head_id.to_s + "." + body_id.to_s - baseFilePath = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + "/" + head_id.to_s + "/" + baseFilename + ".png" - if pbResolveBitmap(baseFilePath) - ret << baseFilePath - end - POSSIBLE_ALTS.each { |alt_letter| - altFilePath = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + "/" + head_id.to_s + "/" + baseFilename + alt_letter + ".png" - if pbResolveBitmap(altFilePath) - ret << altFilePath - end - } - ret << Settings::BATTLERS_FOLDER + head_id.to_s + "/" + baseFilename + ".png" - return ret - end def pbChooseForm loop do diff --git a/Data/Scripts/999_Main/999_Main.rb b/Data/Scripts/999_Main/999_Main.rb index 2f3718cc6..90b470233 100644 --- a/Data/Scripts/999_Main/999_Main.rb +++ b/Data/Scripts/999_Main/999_Main.rb @@ -57,7 +57,14 @@ def mainFunction return 1 end - +def clearTempFolder() + folder_path = Settings::DOWNLOADED_SPRITES_FOLDER + Dir.foreach(folder_path) do |file| + next if file == '.' or file == '..' + file_path = File.join(folder_path, file) + File.delete(file_path) if File.file?(file_path) + end +end def sortCustomBattlers() $game_temp.nb_imported_sprites=0 @@ -136,6 +143,7 @@ def mainFunctionDebug Game.set_up_system Graphics.update Graphics.freeze + clearTempFolder() sortCustomBattlers() $scene = pbCallTitle $scene.main until $scene.nil? diff --git a/Data/System.rxdata b/Data/System.rxdata index 1098d3cfd..5af2c6100 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ