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 826e1e8a6..8e67182ba 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 a5e69e497..480614cf9 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/Map078.rxdata b/Data/Map078.rxdata index be9bbe5c1..2482b7f64 100644 Binary files a/Data/Map078.rxdata and b/Data/Map078.rxdata differ diff --git a/Data/MapInfos.rxdata b/Data/MapInfos.rxdata index 10431e8a8..188600f38 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 00d2d7ad6..e523babc6 100644 --- a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb +++ b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb @@ -57,7 +57,7 @@ class PokemonPokedexInfo_Scene @sprites["formicon"].y = 328 @sprites["uparrow"] = AnimatedSprite.new("Graphics/Pictures/uparrow",8,28,40,2,@viewport) @sprites["uparrow"].x = 242 - @sprites["uparrow"].y = 268 + @sprites["uparrow"].y = 20#268 @sprites["uparrow"].play @sprites["uparrow"].visible = false @sprites["downarrow"] = AnimatedSprite.new("Graphics/Pictures/downarrow",8,28,40,2,@viewport) @@ -131,20 +131,30 @@ class PokemonPokedexInfo_Scene @species = @dexlist[@index][0] @gender, @form = $Trainer.pokedex.last_form_seen(@species) + + if @sprites["selectedSprite"] + @sprites["selectedSprite"].visible=false + end + if @sprites["nextSprite"] + @sprites["nextSprite"].visible=false + end + if @sprites["previousSprite"] + @sprites["previousSprite"].visible=false + end # species_data = pbGetSpeciesData(@species) species_data = GameData::Species.get_species_form(@species, @form) @sprites["infosprite"].setSpeciesBitmap(@species,@gender,@form) - if @sprites["formfront"] - @sprites["formfront"].setSpeciesBitmap(@species,@gender,@form) - end - if @sprites["formback"] - @sprites["formback"].setSpeciesBitmap(@species,@gender,@form,false,false,true) - @sprites["formback"].y = 256 - @sprites["formback"].y += species_data.back_sprite_y * 2 - end - if @sprites["formicon"] - @sprites["formicon"].pbSetParams(@species,@gender,@form) - end + # if @sprites["formfront"] + # @sprites["formfront"].setSpeciesBitmap(@species,@gender,@form) + # end + # if @sprites["formback"] + # @sprites["formback"].setSpeciesBitmap(@species,@gender,@form,false,false,true) + # @sprites["formback"].y = 256 + # @sprites["formback"].y += species_data.back_sprite_y * 2 + # end + # if @sprites["formicon"] + # @sprites["formicon"].pbSetParams(@species,@gender,@form) + # end end def pbGetAvailableForms @@ -203,7 +213,7 @@ class PokemonPokedexInfo_Scene case page when 1 then drawPageInfo when 2 then drawPageArea - when 2 then drawPageForms + when 3 then drawPageForms end end @@ -493,24 +503,24 @@ class PokemonPokedexInfo_Scene (@page==1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE dorefresh = true end - # elsif Input.trigger?(Input::LEFT) - # oldpage = @page - # @page -= 1 - # @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 += 1 - # @page = 1 if @page<1 - # @page = 3 if @page>3 - # if @page!=oldpage - # 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 + 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 + pbPlayCursorSE + dorefresh = true + end end if dorefresh drawPage(@page) diff --git a/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb b/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb new file mode 100644 index 000000000..0c3099c88 --- /dev/null +++ b/Data/Scripts/050_AddOns/UI_Pokedex_SpritesPage.rb @@ -0,0 +1,176 @@ +class PokemonPokedexInfo_Scene + #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 + + + def drawPageForms + @selected_index=0 + + @sprites["background"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms")) + overlay = @sprites["overlay"].bitmap + base = Color.new(88, 88, 80) + shadow = Color.new(168, 184, 184) + + #alts_list= pbGetAvailableAlts + initializeSpritesPage(@available) + end + + def initializeSpritesPage(altsList) + @sprites["selectedSprite"] = IconSprite.new(0,0,@viewport) + @sprites["selectedSprite"].x = X_POSITION_BIG + @sprites["selectedSprite"].y = Y_POSITION_SELECTED + @sprites["selectedSprite"].z = 999999 + @sprites["selectedSprite"].visible=true + @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"].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"].visible=false + @sprites["nextSprite"].zoom_x = Settings::FRONTSPRITE_SCALE + @sprites["nextSprite"].zoom_y = Settings::FRONTSPRITE_SCALE + + @sprites["selectedSprite"].z=9999999 + @sprites["previousSprite"].z=9999999 + @sprites["nextSprite"].z=9999999 + + + @sprites["selectedSprite"].setBitmap(altsList[@selected_index]) + if altsList.size >=2 + @sprites["nextSprite"].setBitmap(altsList[@selected_index+1]) + @sprites["nextSprite"].visible=true + end + + if altsList.size >=3 + @sprites["previousSprite"].setBitmap(altsList[-1]) + @sprites["previousSprite"].visible=true + 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"] + + def pbGetAvailableForms + return pbGetAvailableAlts + end + + def update_displayed + @sprites["selectedSprite"].setBitmap(@available[@selected_index]) + nextIndex=@selected_index+1 + previousIndex= @selected_index-1 + if nextIndex > @available.size-1 + nextIndex = 0 + end + if previousIndex <0 + previousIndex = @available.size-1 + end + + @sprites["previousSprite"].setBitmap(@available[previousIndex]) + @sprites["selectedSprite"].setBitmap(@available[@selected_index]) + @sprites["nextSprite"].setBitmap(@available[nextIndex]) + + end + + def pbGetAvailableAlts + ret = [] + return ret if !@species + body_id = getBodyID(@species) + head_id=getHeadID(@species,body_id) + + baseFilename = head_id.to_s + "." + body_id.to_s + baseFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + ".png" + if pbResolveBitmap(baseFilePath) + ret << baseFilePath + end + POSSIBLE_ALTS.each { |alt_letter| + 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 + @sprites["downarrow"].visible = true + Graphics.update + Input.update + pbUpdate + if Input.trigger?(Input::UP) + 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) + pbPlayCursorSE + @selected_index +=1#= (index+1)%@available.length + if @selected_index > @available.size-1 + @selected_index = 0 + end + update_displayed + elsif Input.trigger?(Input::BACK) + pbPlayCancelSE + break + elsif Input.trigger?(Input::USE) + pbPlayDecisionSE + if select_sprite + break + end + end + end + @sprites["uparrow"].visible = false + @sprites["downarrow"].visible = false + end + + def is_main_sprite + return @selected_index == 0 + end + + + + def select_sprite + if is_main_sprite + pbMessage("This sprite is already the displayed sprite") + else + if pbConfirmMessage(_INTL('Would you like to use this sprite instead of the current sprite?')) + swap_main_sprite() + return true + end + end + return false + 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 + # + old_main_sprite = @available[0] + new_main_sprite = @available[@selected_index] + # code here + end + + + +end \ No newline at end of file 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 e61d09fbb..8a6832b1b 100644 Binary files a/Data/System.rxdata and b/Data/System.rxdata differ diff --git a/Data/Tilesets.rxdata b/Data/Tilesets.rxdata index 8d113cbfb..2c6933d73 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