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