class KillMarkerGameController extends inkGameController
{
	private var m_targetNeutralized : CallbackHandle;
	private var m_blackboard : weak< IBlackboard >;
	private var m_animProxy : inkAnimProxy;

	protected event OnInitialize()
	{
		m_blackboard = GetBlackboardSystem().Get( GetAllBlackboardDefs().UI_Crosshair );
		m_targetNeutralized = m_blackboard.RegisterListenerVariant( GetAllBlackboardDefs().UI_Crosshair.EnemyNeutralized, this, 'OnNPCNeutralized' );
		GetRootWidget().SetAnchor( inkEAnchor.Centered );
	}

	protected event OnUninitialize()
	{
		m_blackboard.UnregisterListenerVariant( GetAllBlackboardDefs().UI_Crosshair.EnemyNeutralized, m_targetNeutralized );
	}

	protected event OnNPCNeutralized( value : Variant )
	{
		var incomingData : ENeutralizeType;
		incomingData = ( ( ENeutralizeType )value );
		if( incomingData != ENeutralizeType.None && !( m_animProxy.IsPlaying() ) )
		{
			m_animProxy = PlayLibraryAnimation( 'anim_kill_marker' );
			m_animProxy.RegisterToCallback( inkanimEventType.OnFinish, this, 'OnKillMarkerComplete' );
		}
	}

	protected event OnKillMarkerComplete( proxy : inkAnimProxy )
	{
		var data : ENeutralizeType;
		data = ENeutralizeType.None;
		m_blackboard.SetVariant( GetAllBlackboardDefs().UI_Crosshair.EnemyNeutralized, data );
	}

}

