#===============================================================================
# Pokémon icon (for defined Pokémon)
#===============================================================================
class PokemonIconSprite < SpriteWrapper
attr_accessor :selected
attr_accessor :active
attr_reader :pokemon
attr_reader :shiny#
attr_reader :species#
def initialize(pokemon,viewport=nil)
super(viewport)
@animbitmap=nil
@frames=[
#Rect.new(64,0,64,64) # First Original
#Rect.new(0,0,64,64) # Second Original
Rect.new(0,0,100,100), # First Edited
Rect.new(0,0,100,100) # Second
]
@framesegg=[
Rect.new(64,0,64,64),
Rect.new(0,0,64,64)
]
@selected=false
@animframe=0
@animframeegg=0#
@active=false
self.pokemon=pokemon
@frame=0
@pokemon=pokemon
@adjusted_x=0
@adjusted_y=0
@logical_x=0
@logical_y=0
end
def pokemon=(value)
@pokemon=value
@animbitmap.dispose if @animbitmap
@animbitmap=nil
if @pokemon
@animbitmap=AnimatedBitmap.new(pbPokemonIconFile(value))
[email protected]
self.src_rect=@frames[@animframe]
self.src_rect=@framesegg[@animframeegg] if @pokemon.egg?#
else
self.bitmap=nil
end
end
def dispose
@animbitmap.dispose if @animbitmap
super
end
def x
@logical_x
end
def y
@logical_y
end
def x=(value)
@logical_x=value
super(@logical_x+@adjusted_x)
end
def y=(value)
@logical_y=value
super(@logical_y+@adjusted_y)
end
def update
@updating=true
super
if @animbitmap
@animbitmap.update
[email protected]
self.src_rect=@frames[@animframe]
self.src_rect=@framesegg[@animframeegg] if @pokemon.egg?#
end
self.color=Color.new(0,0,0,0)
frameskip=5
frameskip=10 if @pokemon && @pokemon.hp<=(@pokemon.totalhp/2)
frameskip=20 if @pokemon && @pokemon.hp<=(@pokemon.totalhp/4)
frameskip=-1 if @pokemon && @pokemon.hp==0
if frameskip==-1
@animframe=0
@animframeegg=0
self.src_rect=@frames[@animframe]
self.src_rect=@framesegg[@animframeegg] if @pokemon.egg?#
else
@frame+=1
@frame=0 if @frame>100
if @frame>=frameskip
@animframe=(@animframe==1) ? 0 : 1
@animframeegg=(@animframeegg==1) ? 0 : 1
self.src_rect=@frames[@animframe]
self.src_rect=@framesegg[@animframeegg] if @pokemon.egg?#
@frame=0
end
end
if self.selected
#if isConst?(@pokemon.species,PBSpecies,:MELMETAL)
#@adjusted_x=-26#
#else#
if @pokemon.egg?
@adjusted_x=(@animframeegg==1) ? -6 : -14
else
@adjusted_x=-14#
end
#end
if @pokemon.egg?##
@adjusted_y=(@animframeegg==0) ? 10 : 12## 4 e 10
else##
@adjusted_y=(@animframe==0) ? -2 : 6#
end##
else#
#if isConst?(@pokemon.species,PBSpecies,:MELMETAL)
#@adjusted_x=-26#
#else#
if @pokemon.egg?
@adjusted_x=(@animframeegg==1) ? -8 : -16
else
@adjusted_x=-16
end
#end#
if @pokemon.egg?##
@adjusted_y=(@animframeegg==0) ? 6 : 10## 10 e 12 #custom 4 e 10
else##
@adjusted_y=(@animframe==0) ? 10 : 12
end##
end
@updating=false
self.x=self.x
self.y=self.y
end
end
#===============================================================================
# Pokémon icon (for species)
#===============================================================================
class PokemonSpeciesIconSprite < SpriteWrapper
attr_accessor :selected
attr_accessor :active
attr_reader :species
attr_reader :gender
attr_reader :form
attr_reader :shiny
attr_reader :x
attr_reader :y
def initialize(species,viewport=nil)
super(viewport)
@animbitmap=nil
@frames=[
#Rect.new(0,0,64,64),
#Rect.new(64,0,64,64)
Rect.new(0,0,100,100),#
Rect.new(0,0,100,100)#
]
@animframe=0
@frame=0
@x=0
@y=0
@species=species
@gender=0
@form=0
@shiny=false
refresh
end
def species=(value)
@species=value
refresh
end
def gender=(value)
@gender=value
refresh
end
def form=(value)
@form=value
refresh
end
def shiny=(value)
@shiny=value
refresh
end
def pbSetParams(species,gender,form,shiny=false)
@species=species
@gender=gender
@form=form
@shiny=shiny
refresh
end
def dispose
@animbitmap.dispose if @animbitmap
super
end
def x=(value)
@x=value
super(@x)
end
def y=(value)
@y=value
super(@y)
end
def refresh
@animbitmap.dispose if @animbitmap
@animbitmap=nil
bitmapFileName=pbCheckPokemonIconFiles([@species,(@gender==1),@shiny,@form,false])
@animbitmap=AnimatedBitmap.new(bitmapFileName)
[email protected]
self.src_rect=@frames[@animframe]
end
def update
@updating=true
super
if @animbitmap
@animbitmap.update
[email protected]
self.src_rect=@frames[@animframe]
end
frameskip=5
@frame+=1
@frame=0 if @frame>10
if @frame>=frameskip
@animframe=(@animframe==1) ? 0 : 1
self.src_rect=@frames[@animframe]
@frame=0
end
@updating=false
self.x=self.x
self.y=self.y
end
end