struct EffectExecutor_SlashEffect_Entry
{
	editable var m_attackNumber : Int32;
	const editable var m_effectNames : array< CName >;
}

class EffectExecutor_SlashEffect extends EffectExecutor_Scripted
{
	private const editable var m_entries : array< EffectExecutor_SlashEffect_Entry >;

	public export function Process( ctx : EffectScriptContext, applierCtx : EffectExecutionScriptContext ) : Bool
	{
		var puppet : ScriptedPuppet;
		var attackNumber : Int32;
		var i : Int32;
		var j : Int32;
		EffectData.GetInt( EffectScriptContext.GetSharedData( ctx ), GetAllBlackboardDefs().EffectSharedData.attackNumber, attackNumber );
		puppet = ( ( ScriptedPuppet )( EffectExecutionScriptContext.GetTarget( applierCtx ) ) );
		if( puppet )
		{
			for( i = 0; i < m_entries.Size(); i += 1 )
			{
				if( m_entries[ i ].m_attackNumber == attackNumber )
				{
					for( j = 0; j < m_entries[ i ].m_effectNames.Size(); j += 1 )
					{
						GameObjectEffectHelper.StartEffectEvent( ( ( GameObject )( EffectScriptContext.GetWeapon( ctx ) ) ), m_entries[ i ].m_effectNames[ j ] );
					}
					break;
				}
			}
		}
		return true;
	}

}

