class OverclockHudEvent extends Event
{
	var m_activated : Bool;
}

class OverclockHudListener extends ScriptStatusEffectListener
{
	private var m_hudController : weak< inkHUDGameController >;

	public function BindHudController( hudController : weak< inkHUDGameController > )
	{
		m_hudController = hudController;
	}

	public virtual function OnStatusEffectApplied( statusEffect : weak< StatusEffect_Record > )
	{
		var overclockHudEvent : OverclockHudEvent;
		if( statusEffect.GetID() == QuickHackableHelper.GetOverclockedStateTweakDBID() )
		{
			overclockHudEvent = new OverclockHudEvent;
			overclockHudEvent.m_activated = true;
			m_hudController.QueueEvent( overclockHudEvent );
		}
	}

	public virtual function OnStatusEffectRemoved( statusEffect : weak< StatusEffect_Record > )
	{
		var overclockHudEvent : OverclockHudEvent;
		if( statusEffect.GetID() == QuickHackableHelper.GetOverclockedStateTweakDBID() )
		{
			overclockHudEvent = new OverclockHudEvent;
			overclockHudEvent.m_activated = false;
			m_hudController.QueueEvent( overclockHudEvent );
		}
	}

}

