diff --git a/Data/Actors.rxdata b/Data/Actors.rxdata index 7967a5432..41edc8e26 100644 Binary files a/Data/Actors.rxdata and b/Data/Actors.rxdata differ diff --git a/Data/Animations.rxdata b/Data/Animations.rxdata index 8e67182ba..826e1e8a6 100644 Binary files a/Data/Animations.rxdata and b/Data/Animations.rxdata differ diff --git a/Data/Armors.rxdata b/Data/Armors.rxdata index 2249bec14..901f2bb2b 100644 Binary files a/Data/Armors.rxdata and b/Data/Armors.rxdata differ diff --git a/Data/CommonEvents.rxdata b/Data/CommonEvents.rxdata index 480614cf9..a5e69e497 100644 Binary files a/Data/CommonEvents.rxdata and b/Data/CommonEvents.rxdata differ diff --git a/Data/Enemies.rxdata b/Data/Enemies.rxdata index 004ee903d..be622f513 100644 Binary files a/Data/Enemies.rxdata and b/Data/Enemies.rxdata differ diff --git a/Data/Items.rxdata b/Data/Items.rxdata index 3e62ba6d2..fe767fa0b 100644 Binary files a/Data/Items.rxdata and b/Data/Items.rxdata differ diff --git a/Data/Map105.rxdata b/Data/Map105.rxdata index eb7b67d0e..93637a08b 100644 Binary files a/Data/Map105.rxdata and b/Data/Map105.rxdata differ diff --git a/Data/Map400.rxdata b/Data/Map400.rxdata index 03787a84c..72aaae947 100644 Binary files a/Data/Map400.rxdata and b/Data/Map400.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 188600f38..49d967b03 100644 Binary files a/Data/MapInfos.rxdata and b/Data/MapInfos.rxdata differ diff --git a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb index e523babc6..a06d943ef 100644 --- a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb +++ b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb @@ -3,6 +3,7 @@ #=============================================================================== class PokemonPokedexInfo_Scene def pbStartScene(dexlist,index,region) + @endscene=false @viewport = Viewport.new(0,0,Graphics.width,Graphics.height) @viewport.z = 99999 @dexlist = dexlist @@ -55,20 +56,27 @@ class PokemonPokedexInfo_Scene @sprites["formicon"].setOffset(PictureOrigin::Center) @sprites["formicon"].x = 82 @sprites["formicon"].y = 328 - @sprites["uparrow"] = AnimatedSprite.new("Graphics/Pictures/uparrow",8,28,40,2,@viewport) - @sprites["uparrow"].x = 242 - @sprites["uparrow"].y = 20#268 + @sprites["formicon"].visible=false + + @sprites["uparrow"] = AnimatedSprite.new("Graphics/Pictures/leftarrow",8,40,28,2,@viewport) + @sprites["uparrow"].x = 20 + @sprites["uparrow"].y = 250#268 @sprites["uparrow"].play @sprites["uparrow"].visible = false - @sprites["downarrow"] = AnimatedSprite.new("Graphics/Pictures/downarrow",8,28,40,2,@viewport) - @sprites["downarrow"].x = 242 - @sprites["downarrow"].y = 348 + @sprites["downarrow"] = AnimatedSprite.new("Graphics/Pictures/rightarrow",8,40,28,2,@viewport) + @sprites["downarrow"].x = 440 + @sprites["downarrow"].y = 250 @sprites["downarrow"].play @sprites["downarrow"].visible = false @sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport) + + + + pbSetSystemFont(@sprites["overlay"].bitmap) pbUpdateDummyPokemon @available = pbGetAvailableForms + initializeSpritesPage(@available) drawPage(@page) pbFadeInAndShow(@sprites) { pbUpdate } end @@ -206,9 +214,13 @@ class PokemonPokedexInfo_Scene @sprites["areamap"].visible = (@page==2) if @sprites["areamap"] @sprites["areahighlight"].visible = (@page==2) if @sprites["areahighlight"] @sprites["areaoverlay"].visible = (@page==2) if @sprites["areaoverlay"] - @sprites["formfront"].visible = (@page==3) if @sprites["formfront"] - @sprites["formback"].visible = (@page==3) if @sprites["formback"] - @sprites["formicon"].visible = (@page==3) if @sprites["formicon"] + # @sprites["formfront"].visible = (@page==3) if @sprites["formfront"] + #@sprites["formback"].visible = (@page==3) if @sprites["formback"] + #@sprites["formicon"].visible = (@page==3) if @sprites["formicon"] + + @sprites["previousSprite"].visible = (@page==3) if @sprites["previousSprite"] + @sprites["selectedSprite"].visible = (@page==3) if @sprites["selectedSprite"] + @sprites["nextSprite"].visible = (@page==3) if @sprites["nextSprite"] # Draw page-specific information case page when 1 then drawPageInfo @@ -462,7 +474,7 @@ class PokemonPokedexInfo_Scene def pbScene Pokemon.play_cry(@species, @form) - loop do + until @endscene Graphics.update Input.update pbUpdate @@ -474,10 +486,10 @@ class PokemonPokedexInfo_Scene pbPlayCloseMenuSE break elsif Input.trigger?(Input::USE) - if @page==2 # Area -# dorefresh = true - elsif @page==3 # Forms - if @available.length>1 + if @page == 2 # Area + # dorefresh = true + elsif @page == 3 # Forms + if @available.length > 1 pbPlayDecisionSE pbChooseForm dorefresh = true @@ -486,38 +498,38 @@ class PokemonPokedexInfo_Scene elsif Input.trigger?(Input::UP) oldindex = @index pbGoToPrevious - if @index!=oldindex + if @index != oldindex pbUpdateDummyPokemon @available = pbGetAvailableForms pbSEStop - (@page==1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE + (@page == 1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE dorefresh = true end elsif Input.trigger?(Input::DOWN) oldindex = @index pbGoToNext - if @index!=oldindex + if @index != oldindex pbUpdateDummyPokemon @available = pbGetAvailableForms pbSEStop - (@page==1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE + (@page == 1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE dorefresh = true end elsif Input.trigger?(Input::LEFT) oldpage = @page @page -= 2 - @page = 1 if @page<1 - @page = 3 if @page>3 - if @page!=oldpage + @page = 1 if @page < 1 + @page = 3 if @page > 3 + if @page != oldpage pbPlayCursorSE dorefresh = true end elsif Input.trigger?(Input::RIGHT) oldpage = @page @page += 2 - @page = 1 if @page<1 - @page = 3 if @page>3 - if @page!=oldpage + @page = 1 if @page < 1 + @page = 3 if @page > 3 + if @page != oldpage pbPlayCursorSE dorefresh = true end diff --git a/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb b/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb index 0c3099c88..260f92986 100644 --- a/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb +++ b/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb @@ -1,16 +1,18 @@ class PokemonPokedexInfo_Scene - #todo add indicator to show which one is the main sprite + #todo add indicator to show which one is the main sprite - # also maybe add an indicator in main list for when a sprite has available alts - X_POSITION_SMALL = 175 - X_POSITION_BIG = 125 - Y_POSITION_PREVIOUS=0 - Y_POSITION_SELECTED=50 - Y_POSITION_NEXT=200 + Y_POSITION_SMALL = 80 + Y_POSITION_BIG = 90 + + X_POSITION_PREVIOUS=-20 + X_POSITION_SELECTED=120 + X_POSITION_NEXT=340 + def drawPageForms - @selected_index=0 + #@selected_index=0 @sprites["background"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms")) overlay = @sprites["overlay"].bitmap @@ -18,28 +20,31 @@ class PokemonPokedexInfo_Scene shadow = Color.new(168, 184, 184) #alts_list= pbGetAvailableAlts - initializeSpritesPage(@available) + @selected_index=0 + update_displayed end + def initializeSpritesPage(altsList) + @selected_index=0 @sprites["selectedSprite"] = IconSprite.new(0,0,@viewport) - @sprites["selectedSprite"].x = X_POSITION_BIG - @sprites["selectedSprite"].y = Y_POSITION_SELECTED + @sprites["selectedSprite"].x = X_POSITION_SELECTED + @sprites["selectedSprite"].y = Y_POSITION_BIG @sprites["selectedSprite"].z = 999999 - @sprites["selectedSprite"].visible=true + @sprites["selectedSprite"].visible=false @sprites["selectedSprite"].zoom_x = 1 @sprites["selectedSprite"].zoom_y = 1 @sprites["previousSprite"] = IconSprite.new(0,0,@viewport) - @sprites["previousSprite"].x = X_POSITION_SMALL - @sprites["previousSprite"].y = Y_POSITION_PREVIOUS + @sprites["previousSprite"].x = X_POSITION_PREVIOUS + @sprites["previousSprite"].y = Y_POSITION_SMALL @sprites["previousSprite"].visible=false @sprites["previousSprite"].zoom_x = Settings::FRONTSPRITE_SCALE @sprites["previousSprite"].zoom_y = Settings::FRONTSPRITE_SCALE @sprites["nextSprite"] = IconSprite.new(0,0,@viewport) - @sprites["nextSprite"].x = X_POSITION_SMALL - @sprites["nextSprite"].y = Y_POSITION_NEXT + @sprites["nextSprite"].x = X_POSITION_NEXT + @sprites["nextSprite"].y = Y_POSITION_SMALL @sprites["nextSprite"].visible=false @sprites["nextSprite"].zoom_x = Settings::FRONTSPRITE_SCALE @sprites["nextSprite"].zoom_y = Settings::FRONTSPRITE_SCALE @@ -50,6 +55,7 @@ class PokemonPokedexInfo_Scene @sprites["selectedSprite"].setBitmap(altsList[@selected_index]) + if altsList.size >=2 @sprites["nextSprite"].setBitmap(altsList[@selected_index+1]) @sprites["nextSprite"].visible=true @@ -61,8 +67,7 @@ class PokemonPokedexInfo_Scene end end - POSSIBLE_ALTS=["a","b","c","d","e","f","g","h","i","j","k", 'l',"m", - "n","o","p", "q", "r","s","t","u","v","w","x","y","z"] + POSSIBLE_ALTS= %w[a b c d e f g h i j k x] def pbGetAvailableForms return pbGetAvailableAlts @@ -78,8 +83,10 @@ class PokemonPokedexInfo_Scene if previousIndex <0 previousIndex = @available.size-1 end + @sprites["previousSprite"].visible=false if @available.size<=2 + @sprites["nextSprite"].visible=false if @available.size<=1 - @sprites["previousSprite"].setBitmap(@available[previousIndex]) + @sprites["previousSprite"].setBitmap(@available[previousIndex]) if previousIndex != nextIndex @sprites["selectedSprite"].setBitmap(@available[@selected_index]) @sprites["nextSprite"].setBitmap(@available[nextIndex]) @@ -88,6 +95,12 @@ class PokemonPokedexInfo_Scene 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) @@ -100,14 +113,14 @@ class PokemonPokedexInfo_Scene altFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + alt_letter +".png" if pbResolveBitmap(altFilePath) ret << altFilePath - else - break #don't want to loop through each letter for nothing end } ret << Settings::BATTLERS_FOLDER + head_id.to_s + "/" + baseFilename + ".png" return ret end + + def pbChooseForm loop do @sprites["uparrow"].visible = true @@ -115,14 +128,14 @@ class PokemonPokedexInfo_Scene Graphics.update Input.update pbUpdate - if Input.trigger?(Input::UP) + if Input.trigger?(Input::LEFT) pbPlayCursorSE @selected_index -=1#(index+@available.length-1)%@available.length if @selected_index < 0 @selected_index = @available.size-1 end update_displayed - elsif Input.trigger?(Input::DOWN) + elsif Input.trigger?(Input::RIGHT) pbPlayCursorSE @selected_index +=1#= (index+1)%@available.length if @selected_index > @available.size-1 @@ -135,6 +148,7 @@ class PokemonPokedexInfo_Scene elsif Input.trigger?(Input::USE) pbPlayDecisionSE if select_sprite + @endscene=true break end end @@ -162,15 +176,33 @@ class PokemonPokedexInfo_Scene end def swap_main_sprite - #todo - # ajouter une mecanique pour si le user select un generated sprite a la place du custom - # sinon on rename directement les 2 fichiers - # + begin old_main_sprite = @available[0] new_main_sprite = @available[@selected_index] + + if main_sprite_is_non_custom(old_main_sprite) + new_name_without_ext = File.basename(old_main_sprite, ".png") + new_name_without_letter=new_name_without_ext.chop + File.rename(new_main_sprite, Settings::CUSTOM_BATTLERS_FOLDER+new_name_without_letter + ".png") + end + + if new_main_sprite.start_with?(Settings::BATTLERS_FOLDER) + new_name_without_ext = File.basename(old_main_sprite, ".png") + File.rename(old_main_sprite, Settings::CUSTOM_BATTLERS_FOLDER+new_name_without_ext+"x" + ".png") + return + end + File.rename(new_main_sprite, new_main_sprite+"temp") + File.rename(old_main_sprite, new_main_sprite) + File.rename(new_main_sprite+"temp", old_main_sprite) + rescue + pbMessage("There was an error while swapping the sprites. Please save and restart the game as soon as possible.") + end # code here end - + #dégueu, je sais - si le 1er element de la liste finit par une lettre (le 1er element devrait etre considéré comme le main), ça veut dire que le main est non-custom + def main_sprite_is_non_custom(old_main_sprite) + return POSSIBLE_ALTS.include?(File.basename(old_main_sprite, ".png")[-1]) + end end \ No newline at end of file diff --git a/Data/Skills.rxdata b/Data/Skills.rxdata index 61cba7ea2..a45219f5e 100644 Binary files a/Data/Skills.rxdata and b/Data/Skills.rxdata differ diff --git a/Data/States.rxdata b/Data/States.rxdata index 0f9b4ae5d..868d49e59 100644 Binary files a/Data/States.rxdata and b/Data/States.rxdata differ diff --git a/Data/System.rxdata b/Data/System.rxdata index 8a6832b1b..dd405c216 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index 2c6933d73..8d113cbfb 100644 Binary files a/Data/Tilesets.rxdata and b/Data/Tilesets.rxdata differ diff --git a/Data/Weapons.rxdata b/Data/Weapons.rxdata index d9bd35260..c7ea19a7a 100644 Binary files a/Data/Weapons.rxdata and b/Data/Weapons.rxdata differ