class HitDamageOverTimePrereqState extends GenericHitPrereqState
{

	public override function Evaluate( hitEvent : gameHitEvent ) : Bool
	{
		var attackRecord : Attack_GameEffect_Record;
		var attackTag : CName;
		const var prereq : HitDamageOverTimePrereq;
		prereq = ( ( HitDamageOverTimePrereq )( GetPrereq() ) );
		if( hitEvent.attackData.GetAttackType() == gamedataAttackType.Effect )
		{
			attackRecord = ( ( Attack_GameEffect_Record )( hitEvent.attackData.GetAttackDefinition().GetRecord() ) );
			if( attackRecord )
			{
				attackTag = attackRecord.AttackTag();
			}
			return ( ( gamedataStatusEffectType )( ( ( Int32 )( EnumValueFromName( 'gamedataStatusEffectType', attackTag ) ) ) ) ) == prereq.m_dotType;
		}
		return false;
	}

}

class HitDamageOverTimePrereq extends GenericHitPrereq
{
	default m_callbackType = gameDamageCallbackType.HitTriggered;
	default m_isSync = true;
	var m_dotType : gamedataStatusEffectType;

	protected override function Initialize( recordID : TweakDBID )
	{
		var str : String;
		str = TweakDBInterface.GetString( recordID + T".dotType", "" );
		m_dotType = ( ( gamedataStatusEffectType )( ( ( Int32 )( EnumValueFromString( "gamedataStatusEffectType", str ) ) ) ) );
		str = TweakDBInterface.GetString( recordID + T".pipelineStage", "" );
		m_pipelineStage = ( ( gameDamagePipelineStage )( ( ( Int32 )( EnumValueFromString( "gameDamagePipelineStage", str ) ) ) ) );
		str = TweakDBInterface.GetString( recordID + T".callbackType", "" );
		m_callbackType = ( ( gameDamageCallbackType )( ( ( Int32 )( EnumValueFromString( "gameDamageCallbackType", str ) ) ) ) );
	}

}

