[wip] pokedex page for switching between sprites alts

This commit is contained in:
infinitefusion
2022-06-15 22:03:56 -04:00
parent 1620509322
commit c15c478e6c
15 changed files with 217 additions and 31 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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)

View File

@@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.