Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module BattleBack
- MAP_FADE_TIME = 60
- # setup section
- def self.get_battleback_filename(map_id)
- case map_id
- when 68, 69, 70, 71, 29, 200 # you can use a range of ids, commas, or any combination thereof
- return "lavaback" # filename to use
- # add as many whens as you want
- when 0
- return "" # battletest
- else
- nil
- end
- end
- end
- class Spriteset_Battle
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize
- create_viewports
- create_battleback
- # sleep 1 / BattleBack::MAP_FADE_TIME / 2
- create_battlefloor
- create_enemies
- create_actors
- create_pictures
- create_timer
- update
- do_fade
- end
- #--------------------------------------------------------------------------
- # * Create Viewport
- #--------------------------------------------------------------------------
- def create_viewports
- @viewport1 = Viewport.new(0, 0, 640, 480)
- @viewport2 = Viewport.new(0, 0, 640, 480)
- @viewport3 = Viewport.new(0, 0, 640, 480)
- @viewport2.z = 50
- @viewport3.z = 100
- end
- #--------------------------------------------------------------------------
- # * Create Battleback Sprite
- #--------------------------------------------------------------------------
- def create_battleback
- if $game_map && $game_map.map_id > 0
- create_battleback_graphic
- else
- create_battleback_map
- end
- end
- def do_fade
- #Thread.new {
- tone = @battleback_sprite.tone
- tone_target = Tone.new(-80, -80, -80, 0)
- duration = BattleBack::MAP_FADE_TIME
- orig_dur = duration
- loop {
- if duration > 0
- d = duration
- tone.red = (tone.red * (d - 1) + tone_target.red) / d
- tone.green = (tone.green * (d - 1) + tone_target.green) / d
- tone.blue = (tone.blue * (d - 1) + tone_target.blue) / d
- tone.gray = (tone.gray * (d - 1) + tone_target.gray) / d
- duration -= 1
- @battleback_sprite.tone = tone
- Graphics.update
- else
- break
- end
- } #}
- end
- def create_battleback_map
- source = $game_temp.background_bitmap
- bitmap = Bitmap.new(640, 480)
- bitmap.stretch_blt(bitmap.rect, source, source.rect)
- @battleback_sprite = Sprite.new(@viewport1)
- @battleback_sprite.bitmap = bitmap
- end
- def create_battleback_graphic
- begin
- bitmap = Cache.system(BattleBack.get_battleback_filename($game_map.map_id))
- @battleback_sprite = Sprite.new(@viewport1)
- @battleback_sprite.bitmap = bitmap
- # @battleback_sprite.ox = (bitmap.width - Graphics.width).abs / 2
- rescue
- create_battleback_map
- end
- end
- #--------------------------------------------------------------------------
- # * Create Battlefloor Sprite
- #--------------------------------------------------------------------------
- def create_battlefloor
- @battlefloor_sprite = Sprite.new(@viewport1)
- end
- #--------------------------------------------------------------------------
- # * Create Enemy Sprite
- #--------------------------------------------------------------------------
- def create_enemies
- @enemy_sprites = []
- for enemy in $game_troop.members
- @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
- end
- end
- #--------------------------------------------------------------------------
- # * Create Actor Sprite
- # By default, the actor image is not displayed, but a dummy sprite is
- # created for treating enemies and allies the same, if required.
- #--------------------------------------------------------------------------
- def create_actors
- @actor_sprites = []
- Game_Party::MAX_MEMBERS.times { |i|
- @actor_sprites.push(Sprite_Battler.new(@viewport1))
- @actor_sprites[i].battler = $game_party.members[i]
- }
- end
- #--------------------------------------------------------------------------
- # * Dispose
- #--------------------------------------------------------------------------
- def dispose
- #~ dispose_battleback_bitmap
- #~ dispose_battleback
- dispose_battlefloor
- dispose_enemies
- dispose_actors
- dispose_pictures
- dispose_timer
- end_fade
- dispose_battleback_bitmap
- dispose_battleback
- dispose_viewports
- end
- #--------------------------------------------------------------------------
- # * Dispose of Battleback Bitmap
- #--------------------------------------------------------------------------
- def dispose_battleback_bitmap
- @battleback_sprite.bitmap.dispose
- end
- #--------------------------------------------------------------------------
- # * Dispose of Battleback Sprite
- #--------------------------------------------------------------------------
- def dispose_battleback
- @battleback_sprite.dispose
- end
- #--------------------------------------------------------------------------
- # * Dispose of Battlefloor Sprite
- #--------------------------------------------------------------------------
- def dispose_battlefloor
- @battlefloor_sprite.dispose
- end
- #--------------------------------------------------------------------------
- # * Dispose of Enemy Sprite
- #--------------------------------------------------------------------------
- def dispose_enemies
- for sprite in @enemy_sprites
- sprite.dispose
- end
- end
- #--------------------------------------------------------------------------
- # * Dispose of Actor Sprite
- #--------------------------------------------------------------------------
- def dispose_actors
- for sprite in @actor_sprites
- sprite.dispose
- end
- end
- #--------------------------------------------------------------------------
- # * Dispose of Picture Sprite
- #--------------------------------------------------------------------------
- def dispose_pictures
- for sprite in @picture_sprites
- sprite.dispose
- end
- end
- #--------------------------------------------------------------------------
- # * Dispose of Timer Sprite
- #--------------------------------------------------------------------------
- def dispose_timer
- @timer_sprite.dispose
- end
- #--------------------------------------------------------------------------
- # * Dispose of Viewport
- #--------------------------------------------------------------------------
- def dispose_viewports
- @viewport1.dispose
- @viewport2.dispose
- @viewport3.dispose
- end
- #--------------------------------------------------------------------------
- # * Frame Update
- #--------------------------------------------------------------------------
- def update
- update_battleback
- update_battlefloor
- update_enemies
- update_actors
- update_pictures
- update_timer
- update_viewports
- end
- #--------------------------------------------------------------------------
- # * Update Battleback
- #--------------------------------------------------------------------------
- def update_battleback
- @battleback_sprite.update
- end
- #--------------------------------------------------------------------------
- # * Update Battlefloor
- #--------------------------------------------------------------------------
- def update_battlefloor
- @battlefloor_sprite.update
- end
- #--------------------------------------------------------------------------
- # * Update Enemy Sprite
- #--------------------------------------------------------------------------
- def update_enemies
- for sprite in @enemy_sprites
- sprite.update
- end
- end
- #--------------------------------------------------------------------------
- # * Update Actor Sprite
- #--------------------------------------------------------------------------
- def update_actors
- @actor_sprites.each_with_index { |sprite, i|
- sprite.battler = $game_party.members[i]
- sprite.update
- }
- end
- #--------------------------------------------------------------------------
- # *Update Picture Sprite
- #--------------------------------------------------------------------------
- def update_pictures
- for sprite in @picture_sprites
- sprite.update
- end
- end
- #--------------------------------------------------------------------------
- # * Update Timer Sprite
- #--------------------------------------------------------------------------
- def update_timer
- @timer_sprite.update
- end
- #--------------------------------------------------------------------------
- # * Update Viewport
- #--------------------------------------------------------------------------
- def update_viewports
- @viewport1.tone = $game_troop.screen.tone
- @viewport1.ox = $game_troop.screen.shake
- @viewport2.color = $game_troop.screen.flash_color
- @viewport3.color.set(0, 0, 0, 255 - $game_troop.screen.brightness)
- @viewport1.update
- @viewport2.update
- @viewport3.update
- end
- def end_fade
- tone = @battleback_sprite.tone
- tone_target = Tone.new(0, 0, 0, 0)
- @duration = BattleBack::MAP_FADE_TIME
- loop {
- if @duration > 0
- d = @duration
- tone.red = (tone.red * (d - 1) + tone_target.red) / d
- tone.green = (tone.green * (d - 1) + tone_target.green) / d
- tone.blue = (tone.blue * (d - 1) + tone_target.blue) / d
- tone.gray = (tone.gray * (d - 1) + tone_target.gray) / d
- @duration -= 1
- @battleback_sprite.tone = tone
- Graphics.update
- else
- break
- end
- }
- end
- #--------------------------------------------------------------------------
- # * Determine if animation is being displayed
- #--------------------------------------------------------------------------
- def animation?
- for sprite in @enemy_sprites + @actor_sprites
- return true if sprite.animation?
- end
- return false
- end
- end
- class Sprite_Battler
- def update_appear
- self.blend_type = 0
- self.color.set(0, 0, 0, 255 - (16 - @effect_duration) * 16)
- self.opacity = 255
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment