#-------------------------------------------------------------------------------
# New Quesst Message Hud component
#-------------------------------------------------------------------------------
class VPM_NewQuestHud < Component
def initialize
@counter = 0
end
def start_component(viewport, menu)
super(viewport, menu)
@sprites["overlay"] = BitmapSprite.new(Graphics.width / 2, 32, viewport)
@sprites["overlay"].ox = @sprites["overlay"].bitmap.width
@sprites["overlay"].x = Graphics.width
@sprites["overlay"].y = 96
@sprites["overlay"].oy = 32
@base_color = $PokemonSystem.from_current_menu_theme(MENU_TEXTCOLOR, Color.new(248, 248, 248))
@shdw_color = $PokemonSystem.from_current_menu_theme(MENU_TEXTOUTLINE, Color.new(48, 48, 48))
end
def should_draw?
return false if !defined?(hasAnyQuests?)
return false if !$PokemonGlobal
return false if !$PokemonGlobal.respond_to?(:quests)
return $PokemonGlobal.quests.active_quests.any? { |quest| quest.respond_to?(:new) && quest.new }
end
def update
super
return unless @sprites["overlay"]
@counter += 1
if @counter > Graphics.frame_rate / 2
@sprites["overlay"].y += 1 if @counter % (Graphics.frame_rate / 8) == 0
else
@sprites["overlay"].y -= 1 if @counter % (Graphics.frame_rate / 8) == 0
end
@counter = 0 if @counter >= Graphics.frame_rate
end
def refresh
quest_count = $PokemonGlobal.quests.active_quests.count { |quest| quest.respond_to?(:new) && quest.new }
@sprites["overlay"].bitmap.clear
if quest_count > 0
if quest_count == 1
text = _INTL("You have {1} new quest!",quest_count)
else
text = _INTL("You have {1} new quests!",quest_count)
end
pbSetSmallFont(@sprites["overlay"].bitmap)
pbDrawTextPositions(@sprites["overlay"].bitmap, [[text, (Graphics.width / 2) - 8, 12, 1, @base_color, @shdw_color]])
end
end
end