mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
fix for generated sprites in pokedex sprites page + colored background for current sprite
This commit is contained in:
15
Credits.txt
15
Credits.txt
@@ -50,27 +50,12 @@ their sprites.
|
||||
###########################################################
|
||||
Maruno (http://pokemonessentials.wikia.com/wiki/Pok%C3%A9mon_Essentials_Wiki)
|
||||
|
||||
###########################################################
|
||||
### Postgame add-ons ###
|
||||
###########################################################
|
||||
Endgame Challenge:
|
||||
DemICE (https://www.rebornevo.com/forum/index.php?/profile/62307-demice/)
|
||||
Adapted from the infinity fusion endgame challenge mod
|
||||
https://www.rebornevo.com/forum/index.php?/messenger/30070/&tab=comments#comment-297286
|
||||
|
||||
Bill's Battletower:
|
||||
barafanatic
|
||||
###########################################################
|
||||
### Playtesting ###
|
||||
###########################################################
|
||||
Playtesting was done by various members of the Discord channel.
|
||||
Special thanks to all of you!
|
||||
###########################################################
|
||||
### Social media ###
|
||||
###########################################################
|
||||
ChippyYYZ (Discord. reddit)
|
||||
qt314xxx (Discord)
|
||||
###########################################################
|
||||
### Graphics #
|
||||
###########################################################
|
||||
Title screen background and logo by Doctor Miawoo
|
||||
|
||||
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.
@@ -47,6 +47,7 @@ module GameData
|
||||
attr_accessor :front_sprite_altitude
|
||||
attr_accessor :shadow_x
|
||||
attr_accessor :shadow_size
|
||||
attr_accessor :alwaysUseGeneratedSprite
|
||||
|
||||
DATA = {}
|
||||
DATA_FILENAME = "species.dat"
|
||||
@@ -178,8 +179,16 @@ module GameData
|
||||
@front_sprite_altitude = hash[:front_sprite_altitude] || 0
|
||||
@shadow_x = hash[:shadow_x] || 0
|
||||
@shadow_size = hash[:shadow_size] || 2
|
||||
@alwaysUseGeneratedSprite=false
|
||||
end
|
||||
|
||||
def set_always_use_generated_sprite(useGeneratedSprite)
|
||||
@alwaysUseGeneratedSprite=useGeneratedSprite
|
||||
end
|
||||
|
||||
def always_use_generated
|
||||
return @alwaysUseGeneratedSprite
|
||||
end
|
||||
# @return [String] the translated name of this species
|
||||
def name
|
||||
return pbGetMessage(MessageTypes::Species, @id_number)
|
||||
|
||||
@@ -78,7 +78,7 @@ Pokémon Gold and Silver.
|
||||
Both games are made by Game Freak.
|
||||
|
||||
ALl of the custom fused Pokémon sprites
|
||||
were madeby various members of the
|
||||
were madeby various members of the sp
|
||||
Pokémon Infinite Fusion Discord
|
||||
|
||||
Other custom graphics:
|
||||
|
||||
@@ -104,8 +104,12 @@ module GameData
|
||||
end
|
||||
end
|
||||
customPath = pbResolveBitmap(Settings::CUSTOM_BATTLERS_FOLDER + filename)
|
||||
regularPath = Settings::BATTLERS_FOLDER + folder + "/" + filename
|
||||
return customPath ? customPath : pbResolveBitmap(regularPath)
|
||||
species = getSpecies(dex_number)
|
||||
use_custom = customPath && !species.always_use_generated
|
||||
if use_custom
|
||||
return customPath
|
||||
end
|
||||
return Settings::BATTLERS_FOLDER + folder + "/" + filename
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -4,12 +4,15 @@ class PokemonPokedexInfo_Scene
|
||||
|
||||
Y_POSITION_SMALL = 40
|
||||
Y_POSITION_BIG = 50
|
||||
X_POSITION_PREVIOUS = -20
|
||||
X_POSITION_SELECTED = 120
|
||||
X_POSITION_NEXT = 340
|
||||
|
||||
X_POSITION_PREVIOUS=-20
|
||||
X_POSITION_SELECTED=120
|
||||
X_POSITION_NEXT=340
|
||||
|
||||
|
||||
Y_POSITION_BG_SMALL = 70
|
||||
Y_POSITION_BG_BIG = 93
|
||||
X_POSITION_BG_PREVIOUS = -1
|
||||
X_POSITION_BG_SELECTED = 145
|
||||
X_POSITION_BG_NEXT = 363
|
||||
|
||||
def drawPageForms
|
||||
#@selected_index=0
|
||||
@@ -20,89 +23,125 @@ class PokemonPokedexInfo_Scene
|
||||
shadow = Color.new(168, 184, 184)
|
||||
|
||||
#alts_list= pbGetAvailableAlts
|
||||
@selected_index=0
|
||||
@selected_index = 0
|
||||
update_displayed
|
||||
end
|
||||
|
||||
def init_selected_bg
|
||||
@sprites["bgSelected_previous"] = IconSprite.new(0, 0, @viewport)
|
||||
@sprites["bgSelected_previous"].x = X_POSITION_BG_PREVIOUS
|
||||
@sprites["bgSelected_previous"].y = Y_POSITION_BG_SMALL
|
||||
@sprites["bgSelected_previous"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms_selected_small"))
|
||||
@sprites["bgSelected_previous"].visible = false
|
||||
|
||||
@sprites["bgSelected_center"] = IconSprite.new(0, 0, @viewport)
|
||||
@sprites["bgSelected_center"].x = X_POSITION_BG_SELECTED
|
||||
@sprites["bgSelected_center"].y = Y_POSITION_BG_BIG
|
||||
@sprites["bgSelected_center"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms_selected_large"))
|
||||
@sprites["bgSelected_center"].visible = false
|
||||
|
||||
@sprites["bgSelected_next"] = IconSprite.new(0, 0, @viewport)
|
||||
@sprites["bgSelected_next"].x = X_POSITION_BG_NEXT
|
||||
@sprites["bgSelected_next"].y = Y_POSITION_BG_SMALL
|
||||
@sprites["bgSelected_next"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_forms_selected_small"))
|
||||
@sprites["bgSelected_next"].visible = false
|
||||
|
||||
end
|
||||
|
||||
def initializeSpritesPage(altsList)
|
||||
@selected_index=0
|
||||
@sprites["selectedSprite"] = IconSprite.new(0,0,@viewport)
|
||||
init_selected_bg
|
||||
@speciesData = getSpecies(@species)
|
||||
@selected_index = 0
|
||||
@sprites["selectedSprite"] = IconSprite.new(0, 0, @viewport)
|
||||
@sprites["selectedSprite"].x = X_POSITION_SELECTED
|
||||
@sprites["selectedSprite"].y = Y_POSITION_BIG
|
||||
@sprites["selectedSprite"].z = 999999
|
||||
@sprites["selectedSprite"].visible=false
|
||||
@sprites["selectedSprite"].visible = false
|
||||
@sprites["selectedSprite"].zoom_x = 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_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_y = Settings::FRONTSPRITE_SCALE
|
||||
|
||||
@sprites["nextSprite"] = IconSprite.new(0,0,@viewport)
|
||||
@sprites["nextSprite"] = IconSprite.new(0, 0, @viewport)
|
||||
@sprites["nextSprite"].x = X_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_y = Settings::FRONTSPRITE_SCALE
|
||||
|
||||
@sprites["selectedSprite"].z=9999999
|
||||
@sprites["previousSprite"].z=9999999
|
||||
@sprites["nextSprite"].z=9999999
|
||||
|
||||
@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
|
||||
if altsList.size >= 2
|
||||
@sprites["nextSprite"].setBitmap(altsList[@selected_index + 1])
|
||||
@sprites["nextSprite"].visible = true
|
||||
end
|
||||
|
||||
if altsList.size >=3
|
||||
if altsList.size >= 3
|
||||
@sprites["previousSprite"].setBitmap(altsList[-1])
|
||||
@sprites["previousSprite"].visible=true
|
||||
@sprites["previousSprite"].visible = true
|
||||
end
|
||||
|
||||
end
|
||||
POSSIBLE_ALTS= %w[a b c d e f g h i j k x]
|
||||
|
||||
POSSIBLE_ALTS = %w[a b c d e f g h i j k x]
|
||||
|
||||
def pbGetAvailableForms
|
||||
return pbGetAvailableAlts
|
||||
end
|
||||
|
||||
def update_selected
|
||||
@sprites["bgSelected_previous"].visible = false
|
||||
@sprites["bgSelected_center"].visible = false
|
||||
@sprites["bgSelected_next"].visible = false
|
||||
|
||||
previous_index = @selected_index == 0 ? @available.size - 1 : @selected_index - 1
|
||||
next_index = @selected_index == @available.size - 1 ? 0 : @selected_index + 1
|
||||
|
||||
@sprites["bgSelected_previous"].visible = true if is_main_sprite(previous_index) && @available.size > 2
|
||||
@sprites["bgSelected_center"].visible = true if is_main_sprite(@selected_index)
|
||||
@sprites["bgSelected_next"].visible = true if is_main_sprite(next_index) && @available.size > 1
|
||||
end
|
||||
|
||||
def update_displayed
|
||||
@sprites["selectedSprite"].setBitmap(@available[@selected_index])
|
||||
nextIndex=@selected_index+1
|
||||
previousIndex= @selected_index-1
|
||||
if nextIndex > @available.size-1
|
||||
nextIndex = @selected_index + 1
|
||||
previousIndex = @selected_index - 1
|
||||
if nextIndex > @available.size - 1
|
||||
nextIndex = 0
|
||||
end
|
||||
if previousIndex <0
|
||||
previousIndex = @available.size-1
|
||||
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"].visible = false if @available.size <= 2
|
||||
@sprites["nextSprite"].visible = false if @available.size <= 1
|
||||
|
||||
@sprites["previousSprite"].setBitmap(@available[previousIndex]) if previousIndex != nextIndex
|
||||
@sprites["selectedSprite"].setBitmap(@available[@selected_index])
|
||||
@sprites["nextSprite"].setBitmap(@available[nextIndex])
|
||||
|
||||
update_selected
|
||||
end
|
||||
|
||||
def pbGetAvailableAlts
|
||||
ret = []
|
||||
return ret if !@species
|
||||
dexNum =getDexNumberForSpecies(@species)
|
||||
dexNum = getDexNumberForSpecies(@species)
|
||||
isFusion = dexNum > NB_POKEMON
|
||||
if !isFusion
|
||||
ret << Settings::BATTLERS_FOLDER+ dexNum.to_s + "/" + dexNum.to_s + ".png"
|
||||
ret << Settings::BATTLERS_FOLDER + dexNum.to_s + "/" + dexNum.to_s + ".png"
|
||||
return ret
|
||||
end
|
||||
body_id = getBodyID(@species)
|
||||
head_id=getHeadID(@species,body_id)
|
||||
head_id = getHeadID(@species, body_id)
|
||||
|
||||
baseFilename = head_id.to_s + "." + body_id.to_s
|
||||
baseFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + ".png"
|
||||
@@ -110,7 +149,7 @@ class PokemonPokedexInfo_Scene
|
||||
ret << baseFilePath
|
||||
end
|
||||
POSSIBLE_ALTS.each { |alt_letter|
|
||||
altFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + alt_letter +".png"
|
||||
altFilePath = Settings::CUSTOM_BATTLERS_FOLDER + baseFilename + alt_letter + ".png"
|
||||
if pbResolveBitmap(altFilePath)
|
||||
ret << altFilePath
|
||||
end
|
||||
@@ -119,26 +158,24 @@ class PokemonPokedexInfo_Scene
|
||||
return ret
|
||||
end
|
||||
|
||||
|
||||
|
||||
def pbChooseForm
|
||||
loop do
|
||||
@sprites["uparrow"].visible = true
|
||||
@sprites["uparrow"].visible = true
|
||||
@sprites["downarrow"].visible = true
|
||||
Graphics.update
|
||||
Input.update
|
||||
pbUpdate
|
||||
if Input.trigger?(Input::RIGHT)
|
||||
pbPlayCursorSE
|
||||
@selected_index -=1#(index+@available.length-1)%@available.length
|
||||
@selected_index -= 1 #(index+@available.length-1)%@available.length
|
||||
if @selected_index < 0
|
||||
@selected_index = @available.size-1
|
||||
@selected_index = @available.size - 1
|
||||
end
|
||||
update_displayed
|
||||
elsif Input.trigger?(Input::LEFT)
|
||||
pbPlayCursorSE
|
||||
@selected_index +=1#= (index+1)%@available.length
|
||||
if @selected_index > @available.size-1
|
||||
@selected_index += 1 #= (index+1)%@available.length
|
||||
if @selected_index > @available.size - 1
|
||||
@selected_index = 0
|
||||
end
|
||||
update_displayed
|
||||
@@ -148,21 +185,28 @@ class PokemonPokedexInfo_Scene
|
||||
elsif Input.trigger?(Input::USE)
|
||||
pbPlayDecisionSE
|
||||
if select_sprite
|
||||
@endscene=true
|
||||
@endscene = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
@sprites["uparrow"].visible = false
|
||||
@sprites["uparrow"].visible = false
|
||||
@sprites["downarrow"].visible = false
|
||||
end
|
||||
|
||||
def is_main_sprite
|
||||
return @selected_index == 0
|
||||
def is_main_sprite(index = nil)
|
||||
return false if !@available
|
||||
if index == nil
|
||||
index = @selected_index
|
||||
end
|
||||
return true if @available.size <= 1
|
||||
if @speciesData.always_use_generated
|
||||
selected_sprite = @available[index]
|
||||
return selected_sprite.start_with?(Settings::BATTLERS_FOLDER)
|
||||
end
|
||||
return index == 0
|
||||
end
|
||||
|
||||
|
||||
|
||||
def select_sprite
|
||||
if is_main_sprite
|
||||
pbMessage("This sprite is already the displayed sprite")
|
||||
@@ -176,33 +220,40 @@ class PokemonPokedexInfo_Scene
|
||||
end
|
||||
|
||||
def swap_main_sprite
|
||||
begin
|
||||
#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")
|
||||
if main_sprite_is_non_custom()
|
||||
@speciesData.set_always_use_generated_sprite(false)
|
||||
return
|
||||
# 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")
|
||||
@speciesData.set_always_use_generated_sprite(true)
|
||||
return
|
||||
# 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")x
|
||||
# return
|
||||
end
|
||||
File.rename(new_main_sprite, new_main_sprite+"temp")
|
||||
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
|
||||
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])
|
||||
def main_sprite_is_non_custom()
|
||||
speciesData = getSpecies(@species)
|
||||
return speciesData.always_use_generated || @available.size <= 1
|
||||
#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
|
||||
# speciesData.set_always_use_generated_sprite(true)
|
||||
# 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