class Sprite_Reflection attr_reader :visible attr_accessor :event def initialize(sprite,event,viewport=nil) @rsprite = sprite @sprite = nil @event = event @height = 0 @fixedheight = false if @event && @event!=$game_player if @event.name[/reflection\((\d+)\)/i] @height = $~[1].to_i || 0 @fixedheight = true end end @viewport = viewport @disposed = false update end def dispose if !@disposed @sprite.dispose if @sprite @sprite = nil @disposed = true end end def disposed? @disposed end def visible=(value) @visible = value @sprite.visible = value if @sprite && !@sprite.disposed? end def update return # return if disposed? # shouldShow = @rsprite.visible # if !shouldShow # # Just-in-time disposal of sprite # if @sprite # @sprite.dispose # @sprite = nil # end # return # end # # Just-in-time creation of sprite # @sprite = Sprite.new(@viewport) if !@sprite # if @sprite # x = @rsprite.x-@rsprite.ox # y = @rsprite.y-@rsprite.oy # y -= 32 if @rsprite.character.character_name[/offset/i] # @height = $PokemonGlobal.bridge if !@fixedheight # y += @height*16 # width = @rsprite.src_rect.width # height = @rsprite.src_rect.height # @sprite.x = x+width/2 # @sprite.y = y+height+height/2 # @sprite.ox = width/2 # @sprite.oy = height/2-2 # Hard-coded 2 pixel shift up # @sprite.oy -= @rsprite.character.bob_height*2 # @sprite.z = -50 # Still water is -100, map is 0 and above # @sprite.zoom_x = @rsprite.zoom_x # @sprite.zoom_y = @rsprite.zoom_y # frame = (Graphics.frame_count%40)/10 # @sprite.zoom_x *= [1.0, 0.95, 1.0, 1.05][frame] # @sprite.angle = 180.0 # @sprite.mirror = true # @sprite.bitmap = @rsprite.bitmap # @sprite.tone = @rsprite.tone # if @height>0 # @sprite.color = Color.new(48,96,160,255) # Dark still water # @sprite.opacity = @rsprite.opacity # @sprite.visible = !Settings::TIME_SHADING # Can't time-tone a colored sprite # else # @sprite.color = Color.new(224,224,224,96) # @sprite.opacity = @rsprite.opacity*3/4 # @sprite.visible = true # end # @sprite.src_rect = @rsprite.src_rect # end end end