class Sprite_TurnNumber < Sprite
def initialize(viewport)
super(viewport)
self.x = Graphics.width - Graphics.width / 4
self.y = 0
self.opacity = 0
@opacity_rate = 0
@turn_number = 0
refresh
end
def update
return unless SceneManager.scene_is?(Scene_Battle)
self.opacity += @opacity_rate if @turn_number
if @turn_number != $game_troop.turn_count
@turn_number = $game_troop.turn_count
refresh
end
end
def show_up
@opacity_rate = 15
end
def hide_down
@opacity_rate = -15
end
def refresh
number = $game_troop.turn_count
bitmap = Bitmap.new(Graphics.width / 4, 26)
bitmap.font.bold = true
bitmap.font.out_color.set(0, 0, 0, 255)
bitmap.font.color.set(255, 255, 255)
text = sprintf("Turn Number: %d", number)
bitmap.draw_text(0, 0, Graphics.width / 4, 26, text, 2)
self.bitmap.dispose if self.bitmap
self.bitmap = bitmap
end
end
class Spriteset_Battle
attr_accessor :viewportTurnNumber
#--------------------------------------------------------------------------
# alias method: create_viewports
#--------------------------------------------------------------------------
alias turn_number_viewport_create_viewports create_viewports
def create_viewports
turn_number_viewport_create_viewports
@viewportTurnNumber = Viewport.new
@viewportTurnNumber.z = 250
end
end
class Scene_Battle < Scene_Base
alias turn_number_create_all_windows create_all_windows
def create_all_windows
turn_number_create_all_windows
@tn_sprite = Sprite_TurnNumber.new(@spriteset.viewportTurnNumber)
end
alias turn_number_dispose_spriteset dispose_spriteset
def dispose_spriteset
turn_number_dispose_spriteset
@tn_sprite.dispose
end
alias turn_number_update_basic update_basic
def update_basic
turn_number_update_basic
@tn_sprite.update if @tn_sprite
end
alias turn_number_turn_end turn_end
def turn_end
turn_number_turn_end
@tn_sprite.hide_down
end
alias turn_number_turn_start turn_start
def turn_start
turn_number_turn_start
@tn_sprite.show_up
end
end