[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["formicon"].y = 328
@sprites["uparrow"] = AnimatedSprite.new("Graphics/Pictures/uparrow",8,28,40,2,@viewport) @sprites["uparrow"] = AnimatedSprite.new("Graphics/Pictures/uparrow",8,28,40,2,@viewport)
@sprites["uparrow"].x = 242 @sprites["uparrow"].x = 242
@sprites["uparrow"].y = 268 @sprites["uparrow"].y = 20#268
@sprites["uparrow"].play @sprites["uparrow"].play
@sprites["uparrow"].visible = false @sprites["uparrow"].visible = false
@sprites["downarrow"] = AnimatedSprite.new("Graphics/Pictures/downarrow",8,28,40,2,@viewport) @sprites["downarrow"] = AnimatedSprite.new("Graphics/Pictures/downarrow",8,28,40,2,@viewport)
@@ -131,20 +131,30 @@ class PokemonPokedexInfo_Scene
@species = @dexlist[@index][0] @species = @dexlist[@index][0]
@gender, @form = $Trainer.pokedex.last_form_seen(@species) @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 = pbGetSpeciesData(@species)
species_data = GameData::Species.get_species_form(@species, @form) species_data = GameData::Species.get_species_form(@species, @form)
@sprites["infosprite"].setSpeciesBitmap(@species,@gender,@form) @sprites["infosprite"].setSpeciesBitmap(@species,@gender,@form)
if @sprites["formfront"] # if @sprites["formfront"]
@sprites["formfront"].setSpeciesBitmap(@species,@gender,@form) # @sprites["formfront"].setSpeciesBitmap(@species,@gender,@form)
end # end
if @sprites["formback"] # if @sprites["formback"]
@sprites["formback"].setSpeciesBitmap(@species,@gender,@form,false,false,true) # @sprites["formback"].setSpeciesBitmap(@species,@gender,@form,false,false,true)
@sprites["formback"].y = 256 # @sprites["formback"].y = 256
@sprites["formback"].y += species_data.back_sprite_y * 2 # @sprites["formback"].y += species_data.back_sprite_y * 2
end # end
if @sprites["formicon"] # if @sprites["formicon"]
@sprites["formicon"].pbSetParams(@species,@gender,@form) # @sprites["formicon"].pbSetParams(@species,@gender,@form)
end # end
end end
def pbGetAvailableForms def pbGetAvailableForms
@@ -203,7 +213,7 @@ class PokemonPokedexInfo_Scene
case page case page
when 1 then drawPageInfo when 1 then drawPageInfo
when 2 then drawPageArea when 2 then drawPageArea
when 2 then drawPageForms when 3 then drawPageForms
end end
end end
@@ -493,24 +503,24 @@ class PokemonPokedexInfo_Scene
(@page==1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE (@page==1) ? Pokemon.play_cry(@species, @form) : pbPlayCursorSE
dorefresh = true dorefresh = true
end end
# elsif Input.trigger?(Input::LEFT) elsif Input.trigger?(Input::LEFT)
# oldpage = @page oldpage = @page
# @page -= 1 @page -= 2
# @page = 1 if @page<1 @page = 1 if @page<1
# @page = 3 if @page>3 @page = 3 if @page>3
# if @page!=oldpage if @page!=oldpage
# pbPlayCursorSE pbPlayCursorSE
# dorefresh = true dorefresh = true
# end end
# elsif Input.trigger?(Input::RIGHT) elsif Input.trigger?(Input::RIGHT)
# oldpage = @page oldpage = @page
# @page += 1 @page += 2
# @page = 1 if @page<1 @page = 1 if @page<1
# @page = 3 if @page>3 @page = 3 if @page>3
# if @page!=oldpage if @page!=oldpage
# pbPlayCursorSE pbPlayCursorSE
# dorefresh = true dorefresh = true
# end end
end end
if dorefresh if dorefresh
drawPage(@page) 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.