package MeleeKnifeActions
using RTDB, MeleeActions, MovementActions, DashAndDodgeActions

DodgeHitReactionSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"MeleeKnifeActions.DodgeMeleeKerenzikovLeftDefinition", "MeleeKnifeActions.DodgeHitMeleeLeftDefinition", "MeleeKnifeActions.DodgeMeleeKerenzikovRightDefinition", "MeleeKnifeActions.DodgeHitMeleeRightDefinition", "MeleeKnifeActions.DodgeMeleeKerenzikovBackDefinition", "MeleeKnifeActions.DodgeHitMeleeBackDefinition"
	];
	defaultAction = "MeleeKnifeActions.SlowPushAttack01Definition";
}

DodgeMeleeSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"MeleeKnifeActions.DodgeMeleeKerenzikovLeftDefinition", "MeleeKnifeActions.DodgeMeleeLeftDefinition", "MeleeKnifeActions.DodgeMeleeKerenzikovRightDefinition", "MeleeKnifeActions.DodgeMeleeRightDefinition", "MeleeKnifeActions.DodgeMeleeKerenzikovBackDefinition"
	];
	defaultAction = "MeleeKnifeActions.DodgeMeleeBackDefinition";
}

DodgeForParryMeleeSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"MeleeKnifeActions.DodgeMeleeForParryMeleeBackDefinition"
	];
	defaultAction = "GenericArchetype.Success";
}

KerenzikovDodgeSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"MeleeKnifeActions.DodgeKerenzikovLeftOnSpotDefinition", "MeleeKnifeActions.DodgeKerenzikovRightOnSpotDefinition", "MeleeKnifeActions.DodgeKerenzikovRightFrontDefinition", "MeleeKnifeActions.DodgeKerenzikovLeftFrontDefinition"
	];
	defaultAction = "MeleeKnifeActions.DodgeKerenzikovBackDefinition";
}

DodgeMeleeLeftDefinition : DashAndDodgeActions.DodgeMeleeLeftDefinition
{
}

DodgeHitMeleeLeftDefinition : DashAndDodgeActions.DodgeHitMeleeLeftDefinition
{
}

DodgeMeleeKerenzikovLeftDefinition : DashAndDodgeActions.DodgeMeleeKerenzikovLeftDefinition
{
}

DodgeMeleeRightDefinition : DashAndDodgeActions.DodgeMeleeRightDefinition
{
}

DodgeHitMeleeRightDefinition : DashAndDodgeActions.DodgeHitMeleeRightDefinition
{
}

DodgeMeleeKerenzikovRightDefinition : DashAndDodgeActions.DodgeMeleeKerenzikovRightDefinition
{
}

DodgeMeleeBackDefinition : DashAndDodgeActions.DodgeMeleeBackDefinition
{
}

DodgeHitMeleeBackDefinition : DashAndDodgeActions.DodgeHitMeleeBackDefinition
{
}

DodgeMeleeKerenzikovBackDefinition : DashAndDodgeActions.DodgeMeleeKerenzikovBackDefinition
{
}

DodgeMeleeForParryMeleeBackDefinition : DashAndDodgeActions.DodgeMeleeForParryMeleeBackDefinition
{
	loop = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
			upperBodyState = "Taunt";
		};
	};
}

DodgeMeleeKerenzikovForParryMeleeBackDefinition : DashAndDodgeActions.DodgeMeleeKerenzikovForParryMeleeBackDefinition
{
	loop = 
	{
		duration = 1.43f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
			upperBodyState = "Taunt";
		};
	};
}

DodgeKerenzikovBackDefinition : DashAndDodgeActions.DodgeKerenzikovBackDefinition
{
}

DodgeKerenzikovLeftFrontDefinition : DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition
{
}

DodgeKerenzikovRightFrontDefinition : DashAndDodgeActions.DodgeKerenzikovRightFrontDefinition
{
}

DodgeKerenzikovLeftOnSpotDefinition : DashAndDodgeActions.DodgeKerenzikovLeftOnSpotDefinition
{
	animData = 
	{
		weaponOverride = 2;
		animFeature = "DodgeLeftOnSpotKerenzikov";
		animVariationSubAction = 
		{
			animVariationRandomize = 
			[
				0, 1, 2
			];
		} : AISubActionRandomize;
		animSlot = 
		{
			startupSlide = "DashAndDodgeActions.StepsSlideData";
			loopSlide = "DashAndDodgeActions.StepsSlideData";
			recoverySlide = "DashAndDodgeActions.StepsSlideData";
		};
	};
}

DodgeKerenzikovRightOnSpotDefinition : DashAndDodgeActions.DodgeKerenzikovRightOnSpotDefinition
{
	animData = 
	{
		weaponOverride = 2;
		animFeature = "DodgeRightOnSpotKerenzikov";
		animVariationSubAction = 
		{
			animVariationRandomize = 
			[
				0, 1, 2
			];
		} : AISubActionRandomize;
		animSlot = 
		{
			startupSlide = "DashAndDodgeActions.StepsSlideData";
			loopSlide = "DashAndDodgeActions.StepsSlideData";
			recoverySlide = "DashAndDodgeActions.StepsSlideData";
		};
	};
}

DeflectReactionSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"MeleeKnifeActions.DeflectedRightArmToRightDefinition", "MeleeKnifeActions.DeflectedRightArmToLeftDefinition"
	];
	defaultAction = "MeleeActions.DeflectedDefaultDefinition";
}

MeleeTauntSupportAreaDefinition : MeleeActions.MeleeTauntSupportAreaDefinition
{
	animData = 
	{
		animFeature = "MeleeSupportTaunt";
		animVariationSubAction = 
		{
			animVariationRandomize = 
			[
				0, 1
			];
		} : AISubActionRandomize;
		animSlot = 
		{
		};
	};
}

MeleeTauntCombatAreaDefinition : MeleeActions.MeleeTauntCombatAreaDefinition
{
	animData = 
	{
		animFeature = "MeleeCombatTaunt";
		animVariationSubAction = 
		{
			animVariationRandomize = 
			[
				0, 1, 2
			];
		} : AISubActionRandomize;
		animSlot = 
		{
		};
	};
}

MeleeTauntHitReactionDefinition : MeleeActions.MeleeTauntHitReactionDefinition
{
}

MeleeTauntPreAttackDefinition : MeleeActions.MeleeTauntPreAttackDefinition
{
	loop = 
	{
		duration = 1.35f;
		changeNPCState = 
		{
			upperBodyState = "Taunt";
		};
		toNextPhaseConditionCheckInterval = 0.5f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.CombatTarget"
					];
				} : AIActionOR;
			}
		];
	};
	animData = 
	{
		animFeature = "StepsIdle";
		animSlot = 
		{
		};
	};
}

MeleeTauntContactAreaDefinition : MeleeActions.MeleeTauntContactAreaDefinition
{
}

DashForwardToTarget : DashAndDodgeActions.DashForwardToTarget
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.CalculatePathStraightFullCheckToTarget", "Condition.TargetBetween2dot9and5dot1m", "Condition.NotPreviousAttackNameAtkFromSprint", "Condition.AbilityCanUseLegs"
			];
		} : AIActionAND;
	};
}

MeleeParry01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.ParryMeleeAttack01Definition"
	];
}

MeleeBlock01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.BlockMeleeAttack01Definition"
	];
}

MeleeKerenzikovDodge01Definition : AIActionSelector
{
	actions = 
	[
		"DashAndDodgeActions.DodgeMeleeKerenzikovLeftOnSpotDefinition", "DashAndDodgeActions.DodgeMeleeKerenzikovRightOnSpotDefinition", "MeleeKnifeActions.DodgeMeleeKerenzikovRightDefinition", "MeleeKnifeActions.DodgeMeleeKerenzikovLeftDefinition"
	];
	defaultAction = "MeleeKnifeActions.DodgeMeleeKerenzikovBackDefinition";
}

MeleeBlockDodge01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.BlockDodgeMeleeAttack01Definition"
	];
}

MeleeBlockDodgeToParry01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.BlockDodgeMeleeAttackToParry01Definition", "CombatDecorator.MeleeParryState", "GenericArchetype.Success"
	];
}

MeleePushAttack01Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.PushAttack01Definition"
	];
}

MeleeLightCloseSingleLeft01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.CloseSingleLeft01MeleeAttackLight01Definition"
	];
}

MeleeLightCloseSingleRight01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.CloseSingleRight01MeleeAttackLight01Definition"
	];
}

MeleeLightCloseSingleBack01Definition : AIActionSequence
{
	actions = 
	[
		"MeleeKnifeActions.CloseSingleBack01MeleeAttackLight01Definition"
	];
}

MeleeLightCloseCombo01Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToCloseAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.CloseCombo01MeleeAttackLight01Definition", "MeleeKnifeActions.CloseCombo01MeleeAttackLight01RecoverMissDefinition", "MeleeKnifeActions.CloseCombo01MeleeAttackLight02Definition", "MeleeKnifeActions.CloseCombo01MeleeAttackLight03Definition", "MeleeKnifeActions.CloseCombo01MeleeAttackLight03RecoverMissDefinition", "MeleeKnifeActions.CloseCombo01MeleeAttackLight03RecoverHitDefinition"
	];
}

MeleeLightCloseCombo02Definition : AIActionSequence
{
	actions = [];
}

SimpleMeleeCombatComboDefinition : AIActionSequence
{
	actions = 
	[
		"MovementActions.SimpleMeleeCombatWalkToCloseAttackRange", "MovementActions.SimpleMeleeCombatMoveToCloseAttackRange", "MovementActions.SimpleMeleeCombatWoundedMoveToCloseAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.Combo01MeleeAttackLight01FromIdleDefinition", "MeleeKnifeActions.Combo01MeleeAttackLight01Definition", "MeleeKnifeActions.Combo01MeleeAttackLight01RecoverMissDefinition", "MeleeKnifeActions.Combo01MeleeAttackLight02Definition", "MeleeKnifeActions.Combo01MeleeAttackLight03Definition", "MeleeKnifeActions.Combo01MeleeAttackLight04Definition", "MeleeKnifeActions.Combo01MeleeAttackLight04RecoverMissDefinition", "MeleeKnifeActions.Combo01MeleeAttackLight04RecoverHitDefinition"
	];
	hasMemory = false;
}

MeleeLightCombo01Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.Combo01MeleeAttackLight01FromIdleDefinition", "MeleeKnifeActions.Combo01MeleeAttackLight01Definition", "MeleeKnifeActions.Combo01MeleeAttackLight01RecoverMissDefinition", "MeleeKnifeActions.Combo01MeleeAttackLight02Definition", "MeleeKnifeActions.Combo01MeleeAttackLight03Definition", "MeleeKnifeActions.Combo01MeleeAttackLight04Definition", "MeleeKnifeActions.Combo01MeleeAttackLight04RecoverMissDefinition", "MeleeKnifeActions.Combo01MeleeAttackLight04RecoverHitDefinition"
	];
}

MeleeLightCombo02Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.Combo02MeleeAttackLight01FromIdleDefinition", "MeleeKnifeActions.Combo02MeleeAttackLight01Definition", "MeleeKnifeActions.Combo02MeleeAttackLight01RecoverMissDefinition", "MeleeKnifeActions.Combo02MeleeAttackLight02Definition", "MeleeKnifeActions.Combo02MeleeAttackLight02RecoverMissDefinition", "MeleeKnifeActions.Combo02MeleeAttackLight02RecoverHitDefinition"
	];
}

MeleeStrongSingle01Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToCloseAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.InfiniteGenericMeleeAttackStartup01Definition", "MeleeKnifeActions.InfiniteGenericMeleeAttackFromAttack01Definition"
	];
}

MeleeStrongSingle02Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToCloseAttackRange", "MovementActions.RotateInIdle", "MeleeActions.FailAttackRange", "MeleeActions.FriendlyFireMeleeCheck", "MeleeKnifeActions.InfiniteGenericMeleeAttackStartup02Definition", "MeleeKnifeActions.InfiniteGenericMeleeAttackFromAttack03Definition"
	];
}

MeleeChargeSingle01Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeMoveToChargeAttackRange", "MeleeKnifeActions.SingleMeleeAttackCharge01Definition", "MeleeKnifeActions.SingleMeleeAttackCharge01RecoverMissDefinition", "MeleeKnifeActions.SingleMeleeAttackCharge01RecoverHitDefinition"
	];
}

MeleeChargeSingle02Definition : AIActionSequence
{
	actions = [];
}

MeleeChargeJump01Definition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeMoveToChargeJumpAttackRange", "MovementActions.MeleeMoveToChargeJumpAttackStraightPath", "MeleeActions.FailAttackRangeChargedJump", "MeleeKnifeActions.SingleMeleeAttackChargeJump01TauntDefinition", "MeleeKnifeActions.SingleMeleeAttackChargeJump01Definition", "MeleeKnifeActions.SingleMeleeAttackChargeJump01RecoverHitDefinition"
	];
}

MeleeChargeJump02Definition : AIActionSequence
{
	actions = [];
}

MeleeWoundedCombo01RightHandDefinition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToCloseAttackRange", "MeleeActions.FailAttackRange", "MeleeKnifeActions.InfiniteGenericMeleeAttackStartup01Definition"
	];
}

MeleeWoundedCombo02RightHandDefinition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToCloseAttackRange", "MeleeActions.FailAttackRange", "MeleeKnifeActions.InfiniteGenericMeleeAttackStartup02Definition"
	];
}

MeleeWoundedCombo03RightHandDefinition : AIActionSequence
{
	actions = 
	[
		"MovementActions.MeleeWalkToCloseAttackRange", "MovementActions.MeleeMoveToCloseAttackRange", "MeleeActions.FailAttackRange", "MeleeKnifeActions.InfiniteGenericMeleeAttackFromAttack01Definition", "MeleeKnifeActions.InfiniteGenericMeleeAttackFromAttack04Definition"
	];
}

DeflectedRightArmToRightDefinition : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			OR = 
			[
				"Condition.PreviousAttackNameCloseSingleLeft01MeleeAttackLight01", "Condition.PreviousAttackNameCloseSingleBack01MeleeAttackLight01", "Condition.PreviousAttackNameCloseCombo01MeleeAttackLight01", "Condition.PreviousAttackNameCloseCombo01MeleeAttackLight03", "Condition.PreviousAttackNameCombo01MeleeAttackLight01", "Condition.PreviousAttackNameCombo01MeleeAttackLight03", "Condition.PreviousAttackNameCombo02MeleeAttackLight01", "Condition.PreviousAttackNameCombo02MeleeAttackLight02", "Condition.PreviousAttackNameSingleMeleeAttackCharge01", "Condition.PreviousAttackNameInfiniteGenericMeleeAttackFromAttack02", "Condition.PreviousAttackNameInfiniteGenericMeleeAttackFromAttack04", "Condition.PreviousAttackNameInfiniteGenericMeleeAttackStartup01", "Condition.PreviousAttackNameInfiniteGenericMeleeAttackStartup02"
			];
		} : AIActionOR;
	};
	loop = 
	{
		duration = 1.7f;
	};
	animData = 
	{
		animFeature = "DeflectedRightArmToRight";
		animSlot = 
		{
		};
	};
}

DeflectedRightArmToLeftDefinition : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			OR = 
			[
				"Condition.PreviousAttackNameCloseSingleRight01MeleeAttackLight01", "Condition.PreviousAttackNameCloseCombo01MeleeAttackLight02", "Condition.PreviousAttackNameCombo01MeleeAttackLight02", "Condition.PreviousAttackNameCombo01MeleeAttackLight04", "Condition.PreviousAttackNameCombo02MeleeAttackLight03", "Condition.PreviousAttackNameInfiniteGenericMeleeAttackFromAttack01", "Condition.PreviousAttackNameInfiniteGenericMeleeAttackFromAttack03"
			];
		} : AIActionOR;
	};
	loop = 
	{
		duration = 2.f;
	};
	animData = 
	{
		animFeature = "DeflectedRightArmToLeft";
		animSlot = 
		{
		};
	};
}

ParryMeleeAttack01Definition : MeleeActions.ParryMeleeAttack01Definition
{
	recovery = 
	{
		duration = 1.1f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "Unstoppable";
		};
	};
	subActions = 
	[
		{
			statusEffects = 
			[
				"BaseStatusEffect.Parry"
			];
			remove = false;
			target = "AIActionTarget.CombatTarget";
			delay = 1.25f;
		} : AISubActionStatusEffect
	];
	animData = 
	{
		animFeature = "PushMeleeAttack02";
		animSlot = 
		{
			loopSlide = "MeleeActions.MeleeAttackChargeSlideData";
		};
	};
}

BlockMeleeAttack01Definition : MeleeActions.BlockMeleeAttack01Definition
{
}

BlockDodgeMeleeAttack01Definition : MeleeActions.BlockDodgeMeleeAttack01Definition
{
	loop = 
	{
		duration = 0.73f;
		changeNPCState = 
		{
			upperBodyState = "Defend";
			hitReactionMode = "Unstoppable";
		};
	};
}

BlockDodgeMeleeAttackToParry01Definition : MeleeActions.BlockDodgeMeleeAttackToParry01Definition
{
}

SlowPushAttack01Definition : MeleeActions.SlowPushAttack01Definition
{
}

PushAttack01Definition : MeleeActions.PushAttack01Definition
{
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "StaggerMin";
		};
	};
	recovery = 
	{
		duration = 0.53f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
}

CloseCombo01MeleeAttackLight01Definition : MeleeActions.CloseCombo01MeleeAttackLight01Definition
{
	startup = 
	{
		duration = 0.467f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCloseCombo01MeleeAttackLight01DefinitionAttackData
	];
}

CloseCombo01MeleeAttackLight01FromDashDefinition : MeleeActions.CloseCombo01MeleeAttackLight01FromDashDefinition
{
	loopSubActions = 
	[
		{
		} : KnifeCloseCombo01MeleeAttackLight01FromDashDefinitionAttackData
	];
}

CloseCombo01MeleeAttackLight02Definition : MeleeActions.CloseCombo01MeleeAttackLight02Definition
{
	startup = 
	{
		duration = 0.333f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCloseCombo01MeleeAttackLight02DefinitionAttackData
	];
}

CloseCombo01MeleeAttackLight03Definition : MeleeActions.CloseCombo01MeleeAttackLight03Definition
{
	startup = 
	{
		duration = 0.3f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCloseCombo01MeleeAttackLight03DefinitionAttackData
	];
}

CloseCombo01MeleeAttackLight01RecoverMissDefinition : MeleeActions.CloseCombo01MeleeAttackLight01RecoverMissDefinition
{
	loop = 
	{
		duration = 1.633f;
	};
}

CloseCombo01MeleeAttackLight03RecoverMissDefinition : MeleeActions.CloseCombo01MeleeAttackLight03RecoverMissDefinition
{
	loop = 
	{
		duration = 1.9f;
	};
}

CloseCombo01MeleeAttackLight03RecoverHitDefinition : MeleeActions.CloseCombo01MeleeAttackLight03RecoverHitDefinition
{
	loop = 
	{
		duration = 0.967f;
	};
}

KnifeCloseCombo01MeleeAttackLight01DefinitionAttackData : CloseCombo01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.5f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCloseCombo01MeleeAttackLight01FromDashDefinitionAttackData : CloseCombo01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.5f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCloseCombo01MeleeAttackLight02DefinitionAttackData : CloseCombo01MeleeAttackLight02AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.5f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCloseCombo01MeleeAttackLight03DefinitionAttackData : CloseCombo01MeleeAttackLight03AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

CloseSingleLeft01MeleeAttackLight01Definition : MeleeActions.CloseSingleLeft01MeleeAttackLight01Definition
{
	startup = 
	{
		duration = 0.43f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCloseSingleLeft01MeleeAttackLight01AttackData
	];
}

CloseSingleRight01MeleeAttackLight01Definition : MeleeActions.CloseSingleRight01MeleeAttackLight01Definition
{
	startup = 
	{
		duration = 0.233f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCloseSingleRight01MeleeAttackLight01AttackData
	];
}

CloseSingleBack01MeleeAttackLight01Definition : MeleeActions.CloseSingleBack01MeleeAttackLight01Definition
{
	startup = 
	{
		duration = 0.7f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCloseSingleBack01MeleeAttackLight01AttackData
	];
}

KnifeCloseSingleLeft01MeleeAttackLight01AttackData : CloseSingleLeft01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCloseSingleRight01MeleeAttackLight01AttackData : CloseSingleRight01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCloseSingleBack01MeleeAttackLight01AttackData : CloseSingleBack01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

InfiniteGenericMeleeAttackStartup01Definition : MeleeActions.InfiniteGenericMeleeAttackStartup01Definition
{
	startup = 
	{
		duration = 0.3f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loop = 
	{
		duration = 0.433f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	recovery = 
	{
		duration = 0.333f;
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackStartup01AttackData
	];
}

InfiniteGenericMeleeAttackStartup02Definition : MeleeActions.InfiniteGenericMeleeAttackStartup02Definition
{
	startup = 
	{
		duration = 0.4f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackStartup02AttackData
	];
}

InfiniteGenericMeleeAttackFromAttack01Definition : MeleeActions.InfiniteGenericMeleeAttackFromAttack01Definition
{
	startup = 
	{
		duration = 0.167f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackFromAttack01Definition
	];
}

InfiniteGenericMeleeAttackFromAttack02Definition : MeleeActions.InfiniteGenericMeleeAttackFromAttack02Definition
{
	startup = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackFromAttack02Definition
	];
}

InfiniteGenericMeleeAttackFromAttack03Definition : MeleeActions.InfiniteGenericMeleeAttackFromAttack03Definition
{
	startup = 
	{
		duration = 0.133f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackFromAttack03Definition
	];
}

InfiniteGenericMeleeAttackFromAttack04Definition : MeleeActions.InfiniteGenericMeleeAttackFromAttack04Definition
{
	startup = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackFromAttack04Definition
	];
}

InfiniteGenericMeleeAttackFromAttack05Definition : MeleeActions.InfiniteGenericMeleeAttackFromAttack05Definition
{
	startup = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeInfiniteGenericMeleeAttackFromAttack05Definition
	];
}

KnifeInfiniteGenericMeleeAttackStartup01AttackData : InfiniteGenericMeleeAttackStartup01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeInfiniteGenericMeleeAttackStartup02AttackData : InfiniteGenericMeleeAttackStartup02AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeInfiniteGenericMeleeAttackFromAttack01Definition : InfiniteGenericMeleeAttackFromAttack01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeInfiniteGenericMeleeAttackFromAttack02Definition : InfiniteGenericMeleeAttackFromAttack02AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeInfiniteGenericMeleeAttackFromAttack03Definition : InfiniteGenericMeleeAttackFromAttack03AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeInfiniteGenericMeleeAttackFromAttack04Definition : InfiniteGenericMeleeAttackFromAttack04AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeInfiniteGenericMeleeAttackFromAttack05Definition : InfiniteGenericMeleeAttackFromAttack05AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

Combo01MeleeAttackLight01FromIdleDefinition : MeleeActions.Combo01MeleeAttackLight01FromIdleDefinition
{
	startup = 
	{
		duration = 0.333f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo01MeleeAttackLight01FromIdleAttackData
	];
}

Combo01MeleeAttackLight01FromDashDefinition : MeleeActions.Combo01MeleeAttackLight01FromDashDefinition
{
	loopSubActions = 
	[
		{
		} : KnifeCombo01MeleeAttackLight01FromIdleAttackData
	];
}

Combo01MeleeAttackLight01Definition : MeleeActions.Combo01MeleeAttackLight01Definition
{
	loopSubActions = 
	[
		{
		} : KnifeCombo01MeleeAttackLight01AttackData
	];
}

Combo01MeleeAttackLight02Definition : MeleeActions.Combo01MeleeAttackLight02Definition
{
	startup = 
	{
		duration = 0.233f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo01MeleeAttackLight02AttackData
	];
}

Combo01MeleeAttackLight03Definition : MeleeActions.Combo01MeleeAttackLight03Definition
{
	startup = 
	{
		duration = 0.333f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo01MeleeAttackLight03AttackData
	];
}

Combo01MeleeAttackLight04Definition : MeleeActions.Combo01MeleeAttackLight04Definition
{
	startup = 
	{
		duration = 0.267f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo01MeleeAttackLight04AttackData
	];
}

Combo01MeleeAttackLight01RecoverMissDefinition : MeleeActions.Combo01MeleeAttackLight01RecoverMissDefinition
{
	loop = 
	{
		duration = 1.637f;
	};
}

Combo01MeleeAttackLight04RecoverMissDefinition : MeleeActions.Combo01MeleeAttackLight04RecoverMissDefinition
{
	loop = 
	{
		duration = 1.667f;
	};
}

Combo01MeleeAttackLight04RecoverHitDefinition : MeleeActions.Combo01MeleeAttackLight04RecoverHitDefinition
{
	loop = 
	{
		duration = 1.133f;
	};
}

KnifeCombo01MeleeAttackLight01FromIdleAttackData : Combo01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.5f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo01MeleeAttackLight01AttackData : Combo01MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.5f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo01MeleeAttackLight02AttackData : Combo01MeleeAttackLight02AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.25f, 0.3f, 1.5f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo01MeleeAttackLight03AttackData : Combo01MeleeAttackLight03AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo01MeleeAttackLight04AttackData : Combo01MeleeAttackLight04AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

Combo02MeleeAttackLight01FromIdleDefinition : MeleeActions.Combo02MeleeAttackLight01FromIdleDefinition
{
	startup = 
	{
		duration = 0.7f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo02MeleeAttackLight01FromIdleAttackData
	];
}

Combo02MeleeAttackLight01FromDashDefinition : MeleeActions.Combo02MeleeAttackLight01FromDashDefinition
{
	loopSubActions = 
	[
		{
		} : KnifeCombo02MeleeAttackLight01FromIdleAttackData
	];
}

Combo02MeleeAttackLight01Definition : MeleeActions.Combo02MeleeAttackLight01Definition
{
	startup = 
	{
		duration = 0.7f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo02MeleeAttackLight01AttackData
	];
}

Combo02MeleeAttackLight02Definition : MeleeActions.Combo02MeleeAttackLight02Definition
{
	startup = 
	{
		duration = 0.367f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo02MeleeAttackLight02AttackData
	];
}

Combo02MeleeAttackLight03Definition : MeleeActions.Combo02MeleeAttackLight03Definition
{
	startup = 
	{
		duration = 0.067f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
		} : KnifeCombo02MeleeAttackLight03AttackData
	];
}

Combo02MeleeAttackLight01RecoverMissDefinition : MeleeActions.Combo02MeleeAttackLight01RecoverMissDefinition
{
}

Combo02MeleeAttackLight02RecoverMissDefinition : MeleeActions.Combo02MeleeAttackLight02RecoverMissDefinition
{
}

Combo02MeleeAttackLight02RecoverHitDefinition : MeleeActions.Combo02MeleeAttackLight02RecoverHitDefinition
{
}

KnifeCombo02MeleeAttackLight01FromIdleAttackData : Combo02MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo02MeleeAttackLight01AttackData : Combo02MeleeAttackLight01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo02MeleeAttackLight02AttackData : Combo02MeleeAttackLight02AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 0.75f, 0.3f, 2.f );
	attack = "NPCAttacks.StrongAttack";
}

KnifeCombo02MeleeAttackLight03AttackData : Combo02MeleeAttackLight03AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

SingleMeleeAttackCharge01TauntDefinition : MeleeActions.SingleMeleeAttackCharge01TauntDefinition
{
}

SingleMeleeAttackCharge01Definition : MeleeActions.SingleMeleeAttackCharge01Definition
{
	loopSubActions = 
	[
		{
		} : KnifeSingleMeleeAttackCharge01AttackData
	];
}

SingleMeleeAttackCharge01RecoverMissDefinition : MeleeActions.SingleMeleeAttackCharge01RecoverMissDefinition
{
}

SingleMeleeAttackCharge01RecoverHitDefinition : MeleeActions.SingleMeleeAttackCharge01RecoverHitDefinition
{
}

KnifeSingleMeleeAttackCharge01AttackData : MeleeChargeSingle01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 1.5f, 0.3f, 1.f );
	attack = "NPCAttacks.StrongAttack";
}

SingleMeleeAttackChargeJump01TauntDefinition : MeleeActions.SingleMeleeAttackChargeJump01TauntDefinition
{
}

SingleMeleeAttackChargeJump01Definition : MeleeActions.SingleMeleeAttackChargeJump01Definition
{
	startup = 
	{
		duration = 0.533f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "StaggerMin";
		};
	};
	startupSubActions += 
	[
		{
			name = "enemy_melee_charge";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
		} : KnifeSingleMeleeAttackChargeJump01AttackData
	];
}

SingleMeleeAttackChargeJump01RecoverHitDefinition : MeleeActions.SingleMeleeAttackChargeJump01RecoverHitDefinition
{
}

KnifeSingleMeleeAttackChargeJump01AttackData : SingleMeleeAttackChargeJump01AttackData
{
	weaponSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
	];
	attackDuration = 0.05f;
	attackRange = 3.f;
	attackTime = 0.05f;
	colliderBoxSize = ( 0.75f, 0.3f, 2.f );
	attack = "NPCAttacks.StrongAttack";
}

