mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-08 05:34:58 +00:00
show selected sprite in preview underneath in pc fusion screen
This commit is contained in:
@@ -56,13 +56,17 @@ class PokemonBoxIcon < IconSprite
|
||||
@startRelease = true
|
||||
end
|
||||
|
||||
|
||||
def refresh
|
||||
def refresh(fusion_enabled = true)
|
||||
return if !@pokemon
|
||||
if useRegularIcon(@pokemon.species) || @pokemon.egg?
|
||||
self.setBitmap(GameData::Species.icon_filename_from_pokemon(@pokemon))
|
||||
else
|
||||
self.setBitmapDirectly(createFusionIcon(@pokemon.species))
|
||||
if fusion_enabled
|
||||
self.visible = true
|
||||
else
|
||||
self.visible = false
|
||||
end
|
||||
end
|
||||
self.src_rect = Rect.new(0, 0, self.bitmap.height, self.bitmap.height)
|
||||
end
|
||||
@@ -349,7 +353,7 @@ class PokemonBoxSprite < SpriteWrapper
|
||||
attr_accessor :refreshBox
|
||||
attr_accessor :refreshSprites
|
||||
|
||||
def initialize(storage,boxnumber,viewport=nil)
|
||||
def initialize(storage, boxnumber, viewport = nil, fusionsEnabled=true )
|
||||
super(viewport)
|
||||
@storage = storage
|
||||
@boxnumber = boxnumber
|
||||
@@ -365,9 +369,25 @@ class PokemonBoxSprite < SpriteWrapper
|
||||
self.bitmap = @contents
|
||||
self.x = 184
|
||||
self.y = 18
|
||||
|
||||
@fusions_enabled = fusionsEnabled
|
||||
refresh
|
||||
end
|
||||
|
||||
def disableFusions()
|
||||
@fusions_enabled = false
|
||||
refreshAllBoxSprites()
|
||||
end
|
||||
|
||||
def enableFusions()
|
||||
@fusions_enabled = true
|
||||
refreshAllBoxSprites()
|
||||
end
|
||||
|
||||
def isFusionEnabled
|
||||
return @fusions_enabled
|
||||
end
|
||||
|
||||
def dispose
|
||||
if !disposed?
|
||||
for i in 0...PokemonBox::BOX_SIZE
|
||||
@@ -448,14 +468,14 @@ class PokemonBoxSprite < SpriteWrapper
|
||||
if sprite
|
||||
arrow.grab(sprite)
|
||||
@pokemonsprites[index] = nil
|
||||
refresh
|
||||
update
|
||||
end
|
||||
end
|
||||
|
||||
def deletePokemon(index)
|
||||
@pokemonsprites[index].dispose
|
||||
@pokemonsprites[index] = nil
|
||||
refresh
|
||||
update
|
||||
end
|
||||
|
||||
def refresh
|
||||
@@ -487,6 +507,14 @@ class PokemonBoxSprite < SpriteWrapper
|
||||
end
|
||||
end
|
||||
|
||||
def refreshAllBoxSprites
|
||||
for i in 0...PokemonBox::BOX_SIZE
|
||||
if @pokemonsprites[i] && !@pokemonsprites[i].disposed?
|
||||
@pokemonsprites[i].refresh(@fusions_enabled)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
super
|
||||
for i in 0...PokemonBox::BOX_SIZE
|
||||
@@ -624,6 +652,7 @@ end
|
||||
#===============================================================================
|
||||
class PokemonStorageScene
|
||||
attr_reader :quickswap
|
||||
attr_accessor :sprites
|
||||
|
||||
def initialize
|
||||
@command = 1
|
||||
@@ -1073,7 +1102,7 @@ class PokemonStorageScene
|
||||
end
|
||||
|
||||
def pbSwitchBoxToRight(newbox)
|
||||
newbox = PokemonBoxSprite.new(@storage,newbox,@boxviewport)
|
||||
newbox = PokemonBoxSprite.new(@storage, newbox, @boxviewport,@sprites["box"].isFusionEnabled)
|
||||
newbox.x = 520
|
||||
Graphics.frame_reset
|
||||
distancePerFrame = 64 * 20 / Graphics.frame_rate
|
||||
@@ -1090,10 +1119,11 @@ class PokemonStorageScene
|
||||
@sprites["box"].x -= diff
|
||||
@sprites["box"].dispose
|
||||
@sprites["box"] = newbox
|
||||
newbox.refreshAllBoxSprites
|
||||
end
|
||||
|
||||
def pbSwitchBoxToLeft(newbox)
|
||||
newbox = PokemonBoxSprite.new(@storage,newbox,@boxviewport)
|
||||
newbox = PokemonBoxSprite.new(@storage, newbox, @boxviewport,@sprites["box"].isFusionEnabled)
|
||||
newbox.x = -152
|
||||
Graphics.frame_reset
|
||||
distancePerFrame = 64 * 20 / Graphics.frame_rate
|
||||
@@ -1110,6 +1140,7 @@ class PokemonStorageScene
|
||||
@sprites["box"].x -= diff
|
||||
@sprites["box"].dispose
|
||||
@sprites["box"] = newbox
|
||||
newbox.refreshAllBoxSprites
|
||||
end
|
||||
|
||||
def pbJumpToBox(newbox)
|
||||
@@ -1120,6 +1151,7 @@ class PokemonStorageScene
|
||||
pbSwitchBoxToLeft(newbox)
|
||||
end
|
||||
@storage.currentBox = newbox
|
||||
newbox.refreshAllBoxSprites
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1340,16 +1372,24 @@ class PokemonStorageScene
|
||||
selection -= 3 if selection % 3 == 0
|
||||
end
|
||||
when Input::UP
|
||||
if selection==7; selection = 6
|
||||
elsif selection==6; selection = 4
|
||||
elsif selection<3; selection = 7
|
||||
else; selection -= 3
|
||||
if selection == 7;
|
||||
selection = 6
|
||||
elsif selection == 6;
|
||||
selection = 4
|
||||
elsif selection < 3;
|
||||
selection = 7
|
||||
else
|
||||
; selection -= 3
|
||||
end
|
||||
when Input::DOWN
|
||||
if selection==7; selection = 1
|
||||
elsif selection==6; selection = 7
|
||||
elsif selection>=3; selection = 6
|
||||
else; selection += 3
|
||||
if selection == 7;
|
||||
selection = 1
|
||||
elsif selection == 6;
|
||||
selection = 7
|
||||
elsif selection >= 3;
|
||||
selection = 6
|
||||
else
|
||||
; selection += 3
|
||||
end
|
||||
end
|
||||
return selection
|
||||
@@ -1470,7 +1510,7 @@ class PokemonStorageScene
|
||||
[_INTL("Exit"), 446, 326, 2, buttonbase, buttonshadow, 1],
|
||||
])
|
||||
pokemon = nil
|
||||
if @screen.pbHeldPokemon
|
||||
if @screen.pbHeldPokemon && !@screen.fusionMode
|
||||
pokemon = @screen.pbHeldPokemon
|
||||
elsif selection >= 0
|
||||
pokemon = (party) ? party[selection] : @storage[@storage.currentBox, selection]
|
||||
@@ -1532,9 +1572,6 @@ class PokemonStorageScene
|
||||
pbUpdateSpriteHash(@sprites)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
def setFusing(fusing, item = 0)
|
||||
sprite = @sprites["arrow"].setFusing(fusing)
|
||||
if item == :INFINITESPLICERS
|
||||
@@ -1556,6 +1593,7 @@ class PokemonStorageScreen
|
||||
attr_reader :scene
|
||||
attr_reader :storage
|
||||
attr_accessor :heldpkmn
|
||||
attr_accessor :fusionMode
|
||||
|
||||
def initialize(scene, storage)
|
||||
@scene = scene
|
||||
@@ -1563,8 +1601,6 @@ class PokemonStorageScreen
|
||||
@pbHeldPokemon = nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
def pbStartScreen(command)
|
||||
@heldpkmn = nil
|
||||
if command == 0 # Organise
|
||||
@@ -1696,10 +1732,13 @@ class PokemonStorageScreen
|
||||
_INTL("Cancel")
|
||||
])
|
||||
case command
|
||||
when 0 then pbWithdraw(selected, nil)
|
||||
when 1 then pbSummary(selected, nil)
|
||||
when 0 then
|
||||
pbWithdraw(selected, nil)
|
||||
when 1 then
|
||||
pbSummary(selected, nil)
|
||||
#when 2 then pbMark(selected, nil)
|
||||
when 2 then pbRelease(selected, nil)
|
||||
when 2 then
|
||||
pbRelease(selected, nil)
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1730,10 +1769,14 @@ class PokemonStorageScreen
|
||||
_INTL("Cancel")
|
||||
])
|
||||
case command
|
||||
when 0 then pbStore([-1, selected], nil)
|
||||
when 1 then pbSummary([-1, selected], nil)
|
||||
when 2 then pbMark([-1, selected], nil)
|
||||
when 3 then pbRelease([-1, selected], nil)
|
||||
when 0 then
|
||||
pbStore([-1, selected], nil)
|
||||
when 1 then
|
||||
pbSummary([-1, selected], nil)
|
||||
when 2 then
|
||||
pbMark([-1, selected], nil)
|
||||
when 3 then
|
||||
pbRelease([-1, selected], nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1752,7 +1795,8 @@ class PokemonStorageScreen
|
||||
@scene.pbHardRefresh
|
||||
end
|
||||
|
||||
def pbRefreshSingle(i) # For debug
|
||||
def pbRefreshSingle(i)
|
||||
# For debug
|
||||
@scene.pbUpdateOverlay(i[1], (i[0] == -1) ? @storage.party : nil)
|
||||
@scene.pbHardRefresh
|
||||
end
|
||||
@@ -2095,7 +2139,6 @@ class PokemonStorageScreen
|
||||
return retval
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# Fusion stuff
|
||||
#
|
||||
@@ -2112,13 +2155,11 @@ class PokemonStorageScreen
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
splicerItem = selectSplicer()
|
||||
if splicerItem == nil
|
||||
cancelFusion()
|
||||
return
|
||||
end
|
||||
isSuperSplicer = isSuperSplicer?(splicerItem)
|
||||
|
||||
if !heldpoke
|
||||
@fusionMode = true
|
||||
@@ -2126,6 +2167,7 @@ class PokemonStorageScreen
|
||||
@scene.setFusing(true, @fusionItem)
|
||||
pbHold(selected)
|
||||
pbDisplay(_INTL("Select a Pokémon to fuse it with"))
|
||||
@scene.sprites["box"].disableFusions()
|
||||
return
|
||||
end
|
||||
if !poke_body
|
||||
@@ -2146,6 +2188,7 @@ class PokemonStorageScreen
|
||||
@splicerItem = nil
|
||||
@scene.setFusing(false)
|
||||
@fusionMode = false
|
||||
@scene.sprites["box"].enableFusions()
|
||||
end
|
||||
|
||||
def canDeleteItem(item)
|
||||
@@ -2156,7 +2199,6 @@ class PokemonStorageScreen
|
||||
return item == :SUPERSPLICERS || item == :INFINITESPLICERS2
|
||||
end
|
||||
|
||||
|
||||
def pbFusionCommands(selected)
|
||||
heldpoke = pbHeldPokemon
|
||||
pokemon = @storage[selected[0], selected[1]]
|
||||
@@ -2202,6 +2244,7 @@ class PokemonStorageScreen
|
||||
deleteHeldPokemon(heldpoke, selected)
|
||||
@scene.setFusing(false)
|
||||
@fusionMode = false
|
||||
@scene.sprites["box"].enableFusions()
|
||||
return
|
||||
else
|
||||
# print "fusion cancelled"
|
||||
@@ -2242,7 +2285,6 @@ class PokemonStorageScreen
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def selectSplicer()
|
||||
dna_splicers_const = "DNA Splicers"
|
||||
super_splicers_const = "Super Splicers"
|
||||
@@ -2278,5 +2320,4 @@ class PokemonStorageScreen
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user