mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
pokedex page for switching between sprites alts
This commit is contained in:
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.
Binary file not shown.
@@ -3,6 +3,7 @@
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
class PokemonPokedexInfo_Scene
|
class PokemonPokedexInfo_Scene
|
||||||
def pbStartScene(dexlist,index,region)
|
def pbStartScene(dexlist,index,region)
|
||||||
|
@endscene=false
|
||||||
@viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
|
@viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
|
||||||
@viewport.z = 99999
|
@viewport.z = 99999
|
||||||
@dexlist = dexlist
|
@dexlist = dexlist
|
||||||
@@ -55,20 +56,27 @@ class PokemonPokedexInfo_Scene
|
|||||||
@sprites["formicon"].setOffset(PictureOrigin::Center)
|
@sprites["formicon"].setOffset(PictureOrigin::Center)
|
||||||
@sprites["formicon"].x = 82
|
@sprites["formicon"].x = 82
|
||||||
@sprites["formicon"].y = 328
|
@sprites["formicon"].y = 328
|
||||||
@sprites["uparrow"] = AnimatedSprite.new("Graphics/Pictures/uparrow",8,28,40,2,@viewport)
|
@sprites["formicon"].visible=false
|
||||||
@sprites["uparrow"].x = 242
|
|
||||||
@sprites["uparrow"].y = 20#268
|
@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"].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/rightarrow",8,40,28,2,@viewport)
|
||||||
@sprites["downarrow"].x = 242
|
@sprites["downarrow"].x = 440
|
||||||
@sprites["downarrow"].y = 348
|
@sprites["downarrow"].y = 250
|
||||||
@sprites["downarrow"].play
|
@sprites["downarrow"].play
|
||||||
@sprites["downarrow"].visible = false
|
@sprites["downarrow"].visible = false
|
||||||
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pbSetSystemFont(@sprites["overlay"].bitmap)
|
pbSetSystemFont(@sprites["overlay"].bitmap)
|
||||||
pbUpdateDummyPokemon
|
pbUpdateDummyPokemon
|
||||||
@available = pbGetAvailableForms
|
@available = pbGetAvailableForms
|
||||||
|
initializeSpritesPage(@available)
|
||||||
drawPage(@page)
|
drawPage(@page)
|
||||||
pbFadeInAndShow(@sprites) { pbUpdate }
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
||||||
end
|
end
|
||||||
@@ -206,9 +214,13 @@ class PokemonPokedexInfo_Scene
|
|||||||
@sprites["areamap"].visible = (@page==2) if @sprites["areamap"]
|
@sprites["areamap"].visible = (@page==2) if @sprites["areamap"]
|
||||||
@sprites["areahighlight"].visible = (@page==2) if @sprites["areahighlight"]
|
@sprites["areahighlight"].visible = (@page==2) if @sprites["areahighlight"]
|
||||||
@sprites["areaoverlay"].visible = (@page==2) if @sprites["areaoverlay"]
|
@sprites["areaoverlay"].visible = (@page==2) if @sprites["areaoverlay"]
|
||||||
@sprites["formfront"].visible = (@page==3) if @sprites["formfront"]
|
# @sprites["formfront"].visible = (@page==3) if @sprites["formfront"]
|
||||||
@sprites["formback"].visible = (@page==3) if @sprites["formback"]
|
#@sprites["formback"].visible = (@page==3) if @sprites["formback"]
|
||||||
@sprites["formicon"].visible = (@page==3) if @sprites["formicon"]
|
#@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
|
# Draw page-specific information
|
||||||
case page
|
case page
|
||||||
when 1 then drawPageInfo
|
when 1 then drawPageInfo
|
||||||
@@ -462,7 +474,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
|
|
||||||
def pbScene
|
def pbScene
|
||||||
Pokemon.play_cry(@species, @form)
|
Pokemon.play_cry(@species, @form)
|
||||||
loop do
|
until @endscene
|
||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
@@ -474,10 +486,10 @@ class PokemonPokedexInfo_Scene
|
|||||||
pbPlayCloseMenuSE
|
pbPlayCloseMenuSE
|
||||||
break
|
break
|
||||||
elsif Input.trigger?(Input::USE)
|
elsif Input.trigger?(Input::USE)
|
||||||
if @page==2 # Area
|
if @page == 2 # Area
|
||||||
# dorefresh = true
|
# dorefresh = true
|
||||||
elsif @page==3 # Forms
|
elsif @page == 3 # Forms
|
||||||
if @available.length>1
|
if @available.length > 1
|
||||||
pbPlayDecisionSE
|
pbPlayDecisionSE
|
||||||
pbChooseForm
|
pbChooseForm
|
||||||
dorefresh = true
|
dorefresh = true
|
||||||
@@ -486,38 +498,38 @@ class PokemonPokedexInfo_Scene
|
|||||||
elsif Input.trigger?(Input::UP)
|
elsif Input.trigger?(Input::UP)
|
||||||
oldindex = @index
|
oldindex = @index
|
||||||
pbGoToPrevious
|
pbGoToPrevious
|
||||||
if @index!=oldindex
|
if @index != oldindex
|
||||||
pbUpdateDummyPokemon
|
pbUpdateDummyPokemon
|
||||||
@available = pbGetAvailableForms
|
@available = pbGetAvailableForms
|
||||||
pbSEStop
|
pbSEStop
|
||||||
(@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::DOWN)
|
elsif Input.trigger?(Input::DOWN)
|
||||||
oldindex = @index
|
oldindex = @index
|
||||||
pbGoToNext
|
pbGoToNext
|
||||||
if @index!=oldindex
|
if @index != oldindex
|
||||||
pbUpdateDummyPokemon
|
pbUpdateDummyPokemon
|
||||||
@available = pbGetAvailableForms
|
@available = pbGetAvailableForms
|
||||||
pbSEStop
|
pbSEStop
|
||||||
(@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 -= 2
|
@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 += 2
|
@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
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
class PokemonPokedexInfo_Scene
|
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
|
# also maybe add an indicator in main list for when a sprite has available alts
|
||||||
|
|
||||||
X_POSITION_SMALL = 175
|
Y_POSITION_SMALL = 80
|
||||||
X_POSITION_BIG = 125
|
Y_POSITION_BIG = 90
|
||||||
Y_POSITION_PREVIOUS=0
|
|
||||||
Y_POSITION_SELECTED=50
|
X_POSITION_PREVIOUS=-20
|
||||||
Y_POSITION_NEXT=200
|
X_POSITION_SELECTED=120
|
||||||
|
X_POSITION_NEXT=340
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def drawPageForms
|
def drawPageForms
|
||||||
@selected_index=0
|
#@selected_index=0
|
||||||
|
|
||||||
@sprites["background"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms"))
|
@sprites["background"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms"))
|
||||||
overlay = @sprites["overlay"].bitmap
|
overlay = @sprites["overlay"].bitmap
|
||||||
@@ -18,28 +20,31 @@ class PokemonPokedexInfo_Scene
|
|||||||
shadow = Color.new(168, 184, 184)
|
shadow = Color.new(168, 184, 184)
|
||||||
|
|
||||||
#alts_list= pbGetAvailableAlts
|
#alts_list= pbGetAvailableAlts
|
||||||
initializeSpritesPage(@available)
|
@selected_index=0
|
||||||
|
update_displayed
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def initializeSpritesPage(altsList)
|
def initializeSpritesPage(altsList)
|
||||||
|
@selected_index=0
|
||||||
@sprites["selectedSprite"] = IconSprite.new(0,0,@viewport)
|
@sprites["selectedSprite"] = IconSprite.new(0,0,@viewport)
|
||||||
@sprites["selectedSprite"].x = X_POSITION_BIG
|
@sprites["selectedSprite"].x = X_POSITION_SELECTED
|
||||||
@sprites["selectedSprite"].y = Y_POSITION_SELECTED
|
@sprites["selectedSprite"].y = Y_POSITION_BIG
|
||||||
@sprites["selectedSprite"].z = 999999
|
@sprites["selectedSprite"].z = 999999
|
||||||
@sprites["selectedSprite"].visible=true
|
@sprites["selectedSprite"].visible=false
|
||||||
@sprites["selectedSprite"].zoom_x = 1
|
@sprites["selectedSprite"].zoom_x = 1
|
||||||
@sprites["selectedSprite"].zoom_y = 1
|
@sprites["selectedSprite"].zoom_y = 1
|
||||||
|
|
||||||
@sprites["previousSprite"] = IconSprite.new(0,0,@viewport)
|
@sprites["previousSprite"] = IconSprite.new(0,0,@viewport)
|
||||||
@sprites["previousSprite"].x = X_POSITION_SMALL
|
@sprites["previousSprite"].x = X_POSITION_PREVIOUS
|
||||||
@sprites["previousSprite"].y = Y_POSITION_PREVIOUS
|
@sprites["previousSprite"].y = Y_POSITION_SMALL
|
||||||
@sprites["previousSprite"].visible=false
|
@sprites["previousSprite"].visible=false
|
||||||
@sprites["previousSprite"].zoom_x = Settings::FRONTSPRITE_SCALE
|
@sprites["previousSprite"].zoom_x = Settings::FRONTSPRITE_SCALE
|
||||||
@sprites["previousSprite"].zoom_y = Settings::FRONTSPRITE_SCALE
|
@sprites["previousSprite"].zoom_y = Settings::FRONTSPRITE_SCALE
|
||||||
|
|
||||||
@sprites["nextSprite"] = IconSprite.new(0,0,@viewport)
|
@sprites["nextSprite"] = IconSprite.new(0,0,@viewport)
|
||||||
@sprites["nextSprite"].x = X_POSITION_SMALL
|
@sprites["nextSprite"].x = X_POSITION_NEXT
|
||||||
@sprites["nextSprite"].y = Y_POSITION_NEXT
|
@sprites["nextSprite"].y = Y_POSITION_SMALL
|
||||||
@sprites["nextSprite"].visible=false
|
@sprites["nextSprite"].visible=false
|
||||||
@sprites["nextSprite"].zoom_x = Settings::FRONTSPRITE_SCALE
|
@sprites["nextSprite"].zoom_x = Settings::FRONTSPRITE_SCALE
|
||||||
@sprites["nextSprite"].zoom_y = Settings::FRONTSPRITE_SCALE
|
@sprites["nextSprite"].zoom_y = Settings::FRONTSPRITE_SCALE
|
||||||
@@ -50,6 +55,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
|
|
||||||
|
|
||||||
@sprites["selectedSprite"].setBitmap(altsList[@selected_index])
|
@sprites["selectedSprite"].setBitmap(altsList[@selected_index])
|
||||||
|
|
||||||
if altsList.size >=2
|
if altsList.size >=2
|
||||||
@sprites["nextSprite"].setBitmap(altsList[@selected_index+1])
|
@sprites["nextSprite"].setBitmap(altsList[@selected_index+1])
|
||||||
@sprites["nextSprite"].visible=true
|
@sprites["nextSprite"].visible=true
|
||||||
@@ -61,8 +67,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
POSSIBLE_ALTS=["a","b","c","d","e","f","g","h","i","j","k", 'l',"m",
|
POSSIBLE_ALTS= %w[a b c d e f g h i j k x]
|
||||||
"n","o","p", "q", "r","s","t","u","v","w","x","y","z"]
|
|
||||||
|
|
||||||
def pbGetAvailableForms
|
def pbGetAvailableForms
|
||||||
return pbGetAvailableAlts
|
return pbGetAvailableAlts
|
||||||
@@ -78,8 +83,10 @@ class PokemonPokedexInfo_Scene
|
|||||||
if previousIndex <0
|
if previousIndex <0
|
||||||
previousIndex = @available.size-1
|
previousIndex = @available.size-1
|
||||||
end
|
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["selectedSprite"].setBitmap(@available[@selected_index])
|
||||||
@sprites["nextSprite"].setBitmap(@available[nextIndex])
|
@sprites["nextSprite"].setBitmap(@available[nextIndex])
|
||||||
|
|
||||||
@@ -88,6 +95,12 @@ class PokemonPokedexInfo_Scene
|
|||||||
def pbGetAvailableAlts
|
def pbGetAvailableAlts
|
||||||
ret = []
|
ret = []
|
||||||
return ret if !@species
|
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)
|
body_id = getBodyID(@species)
|
||||||
head_id=getHeadID(@species,body_id)
|
head_id=getHeadID(@species,body_id)
|
||||||
|
|
||||||
@@ -100,14 +113,14 @@ class PokemonPokedexInfo_Scene
|
|||||||
altFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + alt_letter +".png"
|
altFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + alt_letter +".png"
|
||||||
if pbResolveBitmap(altFilePath)
|
if pbResolveBitmap(altFilePath)
|
||||||
ret << altFilePath
|
ret << altFilePath
|
||||||
else
|
|
||||||
break #don't want to loop through each letter for nothing
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
ret << Settings::BATTLERS_FOLDER + head_id.to_s + "/" + baseFilename + ".png"
|
ret << Settings::BATTLERS_FOLDER + head_id.to_s + "/" + baseFilename + ".png"
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def pbChooseForm
|
def pbChooseForm
|
||||||
loop do
|
loop do
|
||||||
@sprites["uparrow"].visible = true
|
@sprites["uparrow"].visible = true
|
||||||
@@ -115,14 +128,14 @@ class PokemonPokedexInfo_Scene
|
|||||||
Graphics.update
|
Graphics.update
|
||||||
Input.update
|
Input.update
|
||||||
pbUpdate
|
pbUpdate
|
||||||
if Input.trigger?(Input::UP)
|
if Input.trigger?(Input::LEFT)
|
||||||
pbPlayCursorSE
|
pbPlayCursorSE
|
||||||
@selected_index -=1#(index+@available.length-1)%@available.length
|
@selected_index -=1#(index+@available.length-1)%@available.length
|
||||||
if @selected_index < 0
|
if @selected_index < 0
|
||||||
@selected_index = @available.size-1
|
@selected_index = @available.size-1
|
||||||
end
|
end
|
||||||
update_displayed
|
update_displayed
|
||||||
elsif Input.trigger?(Input::DOWN)
|
elsif Input.trigger?(Input::RIGHT)
|
||||||
pbPlayCursorSE
|
pbPlayCursorSE
|
||||||
@selected_index +=1#= (index+1)%@available.length
|
@selected_index +=1#= (index+1)%@available.length
|
||||||
if @selected_index > @available.size-1
|
if @selected_index > @available.size-1
|
||||||
@@ -135,6 +148,7 @@ class PokemonPokedexInfo_Scene
|
|||||||
elsif Input.trigger?(Input::USE)
|
elsif Input.trigger?(Input::USE)
|
||||||
pbPlayDecisionSE
|
pbPlayDecisionSE
|
||||||
if select_sprite
|
if select_sprite
|
||||||
|
@endscene=true
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -162,15 +176,33 @@ class PokemonPokedexInfo_Scene
|
|||||||
end
|
end
|
||||||
|
|
||||||
def swap_main_sprite
|
def swap_main_sprite
|
||||||
#todo
|
begin
|
||||||
# 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]
|
old_main_sprite = @available[0]
|
||||||
new_main_sprite = @available[@selected_index]
|
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
|
# code here
|
||||||
end
|
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
|
end
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user