I remembered somebody requesting it, so here it is:
(Credits to squall, plz)
#==============================================================================
# â– Spriteset_Battle
#------------------------------------------------------------------------------
# This class contains the set of sprites used in the Scene_Battle class, such
# as the enemies, actors, battle background, and any pictures being displayed
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# â— initialize
#--------------------------------------------------------------------------
def initialize
@viewport1 = Viewport.new(0, 0, 640, 320)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport4 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 101
@viewport3.z = 200
@viewport4.z = 5000
@battleback_sprite = Tilemap.new(@viewport1)
@battleback_sprite.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names[i]
@battleback_sprite.autotiles[i] = RPG::Cache.autotile(autotile_name)
end
@battleback_sprite.map_data = $game_map.data
@battleback_sprite.ox = $game_map.display_x / 4
@battleback_sprite.oy = $game_map.display_y / 4
@enemy_sprites = []
for enemy in $game_troop.enemies.reverse
@enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
end
@actor_sprites = []
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@actor_sprites.push(Sprite_Battler.new(@viewport2))
@weather = RPG::Weather.new(@viewport1)
@picture_sprites = []
for i in 51..100
@picture_sprites.push(Sprite_Picture.new(@viewport3,
$game_screen.pictures[i]))
end
@timer_sprite = Sprite_Timer.new
update
end
#--------------------------------------------------------------------------
# â— Dispose the battle spriteset
#--------------------------------------------------------------------------
def dispose
@battleback_sprite.tileset.dispose
for i in 0..6
@battleback_sprite.autotiles[i].dispose
end
@battleback_sprite.dispose
for sprite in @enemy_sprites + @actor_sprites
sprite.dispose
end
@weather.dispose
for sprite in @picture_sprites
sprite.dispose
end
@timer_sprite.dispose
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
@viewport4.dispose
end
#--------------------------------------------------------------------------
# â— Update the battleset sprite
#--------------------------------------------------------------------------
def update
@battleback_sprite.update
@actor_sprites[0].battler = $game_party.actors[0]
@actor_sprites[1].battler = $game_party.actors[1]
@actor_sprites[2].battler = $game_party.actors[2]
@actor_sprites[3].battler = $game_party.actors[3]
for sprite in @enemy_sprites + @actor_sprites
sprite.update
end
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.update
for sprite in @picture_sprites
sprite.update
end
@timer_sprite.update
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
@viewport4.color = $game_screen.flash_color
@viewport1.update
@viewport2.update
@viewport4.update
end
end