package AnimalsBoss_Hammer
using RTDB, VehicleActions, SpecialActions, DashAndDodgeActions, MeleeActions, MovementActions, AnimalsBoss_Fists, AnimalsBoss, AIActionTarget, StatusEffectActions

Map : AINodeMap
{
	map = 
	[
		{
			node = "AnimalsBoss.ThrowWeaponSequence";
			isOverriddenBy = "AnimalsBoss_Hammer.ThrowWeaponSequence";
		}, 
		{
			node = "AnimalsBoss.ThrowWeapon";
			isOverriddenBy = "AnimalsBoss_Hammer.ThrowWeapon";
		}, 
		{
			node = "DashAndDodgeActions.KerenzikovDodgeCompositeSelectorDefinition";
			isOverriddenBy = "AnimalsBoss.KerenzikovDodgeCompositeSelector";
		}, 
		{
			node = "GenericArchetype.DodgeBulletSelectorCondition";
			isOverriddenBy = "AnimalsBoss.DodgeBulletSelectorCondition";
		}, 
		{
			node = "GenericArchetype.SE_Stun";
			isOverriddenBy = "AnimalsBoss.SE_Stun";
		}, 
		{
			node = "GenericArchetype.SE_Blind";
			isOverriddenBy = "AnimalsBoss.SE_Blind";
		}, 
		{
			node = "GenericArchetype.SE_Pain";
			isOverriddenBy = "AnimalsBoss.SE_Pain";
		}, 
		{
			node = "GenericArchetype.SE_PainWorkspot";
			isOverriddenBy = "AnimalsBoss.SE_PainWorkspot";
		}, 
		{
			node = "StatusEffectActions.SE_QuickHackFreezeLocomotion";
			isOverriddenBy = "AnimalsBoss.SE_QuickHackStaggerLocomotion";
		}, 
		{
			node = "StatusEffectActions.SE_QuickHackStaggerLocomotion";
			isOverriddenBy = "AnimalsBoss.SE_QuickHackStaggerLocomotion";
		}, 
		{
			node = "AnimalsBoss.PatternSequence01";
			isOverriddenBy = "AnimalsBoss_Hammer.PatternSequence01";
		}, 
		{
			node = "AnimalsBoss.PatternSequence02";
			isOverriddenBy = "AnimalsBoss_Hammer.PatternSequence02";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationHigh";
			isOverriddenBy = "AnimalsBoss.SingleMeleeAttackStrongDeviceHammer";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationHighUnarmed";
			isOverriddenBy = "AnimalsBoss.SingleMeleeAttackStrongDeviceFists";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationLow";
			isOverriddenBy = "AnimalsBoss.SingleMeleeAttackStrongDeviceHammer";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationLowUnarmed";
			isOverriddenBy = "AnimalsBoss.SingleMeleeAttackStrongDeviceFistsEquip";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigation";
			isOverriddenBy = "AnimalsBoss.SingleMeleeAttackStrongDeviceHammer";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationUnarmed";
			isOverriddenBy = "AnimalsBoss.SingleMeleeAttackStrongDeviceFistsEquip";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationLookat";
			isOverriddenBy = "AnimalsBoss.DeviceInvestigationLookat";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationBossCustomSequence";
			isOverriddenBy = "AnimalsBoss.BossInvestigateCustomComposite";
		}, 
		{
			node = "ReactionsActions.MoveToStimSourceInvestigate";
			isOverriddenBy = "ReactionsActions.Success";
		}, 
		{
			node = "ItemHandling.IsPatrolling";
			isOverriddenBy = "AnimalsBoss.PatrolUnequipWeaponConditions";
		}, 
		{
			node = "ReactionsActions.OverloadBossCustomAction";
			isOverriddenBy = "AnimalsBoss.SE_Pain";
		}, 
		{
			node = "StatusEffectActions.SE_SuicideWithGunMech";
			isOverriddenBy = "AnimalsBoss.SE_SuicideWithGunRifleEquipped";
		}, 
		{
			node = "StatusEffectActions.SE_SuicideWithGunHandgunEquipped";
			isOverriddenBy = "AnimalsBoss.SE_SuicideWithGunRifleEquipped";
		}, 
		{
			node = "StatusEffectActions.SE_SuicideWithMeleeShortBladeEquipped";
			isOverriddenBy = "AnimalsBoss.SE_SuicideWithGunRifleEquipped";
		}, 
		{
			node = "StatusEffectActions.SE_SuicideWithMeleeLongWeaponEquipped";
			isOverriddenBy = "AnimalsBoss.SE_SuicideWithGunRifleEquipped";
		}, 
		{
			node = "StatusEffectActions.SE_SuicideWithGunRifleEquipped";
			isOverriddenBy = "AnimalsBoss.SE_SuicideWithGunRifleEquipped";
		}, 
		{
			node = "StatusEffectActions.SE_SuicideWithGunUnarmed";
			isOverriddenBy = "AnimalsBoss.SE_SuicideWithGunRifleEquipped";
		}, 
		{
			node = "ItemHandling.EquipPrimaryWeaponAfterSuicideSequence";
			isOverriddenBy = "OdaBoss.EquipPrimaryWeaponAfterSuicideSequence";
		}, 
		{
			node = "StatusEffectActions.SE_SystemCollapseAndroid";
			isOverriddenBy = "AnimalsBoss.SE_SystemCollapse";
		}, 
		{
			node = "StatusEffectActions.SE_SystemCollapseMech";
			isOverriddenBy = "AnimalsBoss.SE_SystemCollapse";
		}, 
		{
			node = "StatusEffectActions.SE_SystemCollapseBossMitigated";
			isOverriddenBy = "AnimalsBoss.SE_SystemCollapse";
		}, 
		{
			node = "StatusEffectActions.SE_SystemCollapseBoss";
			isOverriddenBy = "AnimalsBoss.SE_SystemCollapse";
		}, 
		{
			node = "StatusEffectActions.SE_SystemCollapse";
			isOverriddenBy = "AnimalsBoss.SE_SystemCollapse";
		}, 
		{
			node = "StatusEffectActions.SuicideWithGrenadeEMP";
			isOverriddenBy = "AnimalsBoss_Hammer.SE_SuicideWithGrenade";
		}, 
		{
			node = "StatusEffectActions.SuicideWithGrenadeBiohazard";
			isOverriddenBy = "AnimalsBoss_Hammer.SE_SuicideWithGrenade";
		}, 
		{
			node = "StatusEffectActions.SuicideWithGrenadeFallback";
			isOverriddenBy = "AnimalsBoss_Hammer.SE_SuicideWithGrenade";
		}, 
		{
			node = "StatusEffectActions.SuicideWithGrenadeIncendiary";
			isOverriddenBy = "AnimalsBoss_Hammer.SE_SuicideWithGrenade";
		}, 
		{
			node = "GenericArchetype.SE_Madness";
			isOverriddenBy = "AnimalsBoss.SE_Madness";
		}, 
		{
			node = "StatusEffectActions.SE_BurningArmed";
			isOverriddenBy = "AnimalsBoss.SE_BurningResidualArmed";
		}, 
		{
			node = "StatusEffectActions.SE_BurningUnarmed";
			isOverriddenBy = "AnimalsBoss.SE_BurningResidualArmed";
		}, 
		{
			node = "StatusEffectActions.SE_BurningResidualArmedTwitch";
			isOverriddenBy = "AnimalsBoss.SE_BurningResidualArmed";
		}, 
		{
			node = "StatusEffectActions.SE_BurningResidualUnarmedTwitch";
			isOverriddenBy = "AnimalsBoss.SE_BurningResidualArmed";
		}
	];
}

SE_SuicideWithGrenade : AIQuickhackDefaultAction
{
	startup = 
	{
		duration = 1.3f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		duration = 1.96f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	startupSubActions = 
	[
		{
			attachmentSlot = "AttachmentSlots.GrenadeRight";
			name = "fx_beeping";
			delay = 1.1f;
		} : AISubActionSpawnFX, 
		{
			delay = 0.75f;
			attachmentSlot = "AttachmentSlots.WeaponLeft";
			itemID = "Items.GrenadeIncendiaryRegularHack";
		} : AISubActionForceEquip
	];
	loopSubActions = 
	[
		{
			attachmentSlot = "AttachmentSlots.WeaponRight";
			delay = 0.f;
			dropItem = true;
		} : AISubActionForceUnequip, 
		{
			delay = -1f;
			attachmentSlot = "AttachmentSlots.WeaponLeft";
		} : AISubActionTriggerItemActivation
	];
	subActions += 
	[
		{
			stimSource = "AIActionTarget.Owner";
			stimType = "StimTypes.Scream";
		} : AISubActionTriggerStim
	];
	animData = 
	{
		animFeature = "SE_SuicideWithGrenade";
		animSlot = 
		{
		};
	};
}

PatternSequence01 : AIActionSmartComposite
{
	type = "AISmartCompositeType.SequenceWithSmartMemory";
	nodes = 
	[
		"AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeChargeSingle01", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeStrongSingleSequence", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeChargeSingle02", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeLightCombo01", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeStrongSingleSequence", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence", "AnimalsBoss.LookAroundForIntruderSpotFight", "GenericArchetype.Success"
	];
}

PatternSequence02 : AIActionSmartComposite
{
	type = "AISmartCompositeType.SequenceWithSmartMemory";
	nodes = 
	[
		"AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeChargeSingle02", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence02", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeStrongSingleSequence", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence02", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeChargeSingle01", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence02", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeLightCombo02", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence02", "AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.MeleeStrongSingleSequence", "AnimalsBoss.LookAroundForIntruderSpotFight", "AnimalsBoss_Hammer.ThrowWeaponSequence02", "AnimalsBoss.LookAroundForIntruderSpotFight", "GenericArchetype.Success"
	];
}

DebugSequence : AIActionSmartComposite
{
	type = "AISmartCompositeType.SequenceWithSmartMemory";
	nodes = 
	[
		"AnimalsBoss_Hammer.WalkToTarget", "AnimalsBoss_Hammer.MeleeChargeSingle01", "GenericArchetype.Success"
	];
}

MeleeCombatDecorator : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.HasMeleeWeapon"
			];
		} : AIActionAND;
	};
	loop = 
	{
	};
	lookats = 
	[
		{
			preset = "LookatPreset.MeleeCombatLookAtPreset";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

KerenzikovDodgeCompositeSelector : KerenzikovDodgeCompositeSelectorDefinition
{
	nodes = 
	[
		"AnimalsBoss_Hammer.KerenzikovDodgeLeftDefinition", "AnimalsBoss_Hammer.KerenzikovDodgeRightDefinition"
	];
}

KerenzikovDodgeLeftDefinition : AIActionSelector
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.DodgeKerenzikovLeftFront"
	];
	defaultAction = "AnimalsBoss_Hammer.DodgeKerenzikovLeftFront";
}

KerenzikovDodgeRightDefinition : AIActionSelector
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.DodgeKerenzikovRightFront"
	];
	defaultAction = "AnimalsBoss_Hammer.DodgeKerenzikovRightFront";
}

DodgeKerenzikovLeftFront : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.CalculatePathStraightFullCheckLeftClose", "Condition.TargetAbove4m", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	subActions = 
	[
		{
			name = "fx_sandevistan_left";
		} : AISubActionSpawnFX, 
		{
			multiplier = 5.f;
			duration = 0.9f;
			overrideMultiplerWhenPlayerInTimeDilation = 4.f;
		} : AISubActionApplyTimeDilation, 
		{
		} : AISubActionDisableAimAssist, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 0.0000000000001f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "DodgeLeftKerenzikov";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

DodgeKerenzikovRightFront : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.CalculatePathStraightFullCheckRightClose", "Condition.TargetAbove4m", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.933f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		duration = 0.733f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	subActions = 
	[
		{
			name = "fx_sandevistan_right";
		} : AISubActionSpawnFX, 
		{
			multiplier = 5.f;
			duration = 0.9f;
			overrideMultiplerWhenPlayerInTimeDilation = 4.f;
		} : AISubActionApplyTimeDilation, 
		{
		} : AISubActionDisableAimAssist, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 0.0000000000001f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "DodgeRightKerenzikov";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

DodgeSelectorCondition : AIAction
{
	cooldowns = 
	[
		{
			name = "DodgeCooldown";
			duration = 10.f;
		}
	];
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasKerenzikov", "AnimalsBoss_Hammer.GenericDodgeCondition"
			];
		} : AIActionAND;
	};
	loop = 
	{
	};
}

GenericDodgeCondition : AIActionAND
{
	AND = 
	[
		"Condition.NotInStatesAttack", "Condition.TargetAbove3m", "Condition.TargetBelow45deg", "Condition.NotIsNPCUnderCyberwareMalfunctionQuickhack", "Condition.NotStatusEffectTypeMadness"
	];
}

DodgeKerenzikovLeftOnSpot : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasKerenzikov", "Condition.TargetLeft", "Condition.CalculatePathStraightRightClose", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	subActions = 
	[
		{
			name = "fx_sandevistan_left";
		} : AISubActionSpawnFX, 
		{
			multiplier = 5.f;
			duration = 0.1f;
			overrideMultiplerWhenPlayerInTimeDilation = 4.f;
		} : AISubActionApplyTimeDilation, 
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "DodgeLeftKerenzikov";
		animSlot = 
		{
		};
	};
}

DodgeKerenzikovRightOnSpot : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasKerenzikov", "Condition.TargetRight", "Condition.CalculatePathStraightLeftClose", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.933f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		duration = 0.733f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	subActions = 
	[
		{
			name = "fx_sandevistan_right";
		} : AISubActionSpawnFX, 
		{
			multiplier = 5.f;
			duration = 0.1f;
			overrideMultiplerWhenPlayerInTimeDilation = 4.f;
		} : AISubActionApplyTimeDilation, 
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "DodgeRightKerenzikov";
		animSlot = 
		{
		};
	};
}

WalkToTargetSequence : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove5m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.WalkToTarget", "GenericArchetype.Success"
	];
}

MeleeLightCombo01 : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTarget", "AnimalsBoss_Hammer.SandevistanStartup01", "AnimalsBoss_Hammer.MeleeMoveToAttackRangeSandevistan", "AnimalsBoss_Hammer.MeleeMoveToAttackRange", "AnimalsBoss_Hammer.DashForwardToTarget", "AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.Combo01MeleeAttackLight01InPlace", "AnimalsBoss_Hammer.Combo01MeleeAttackLight01", "AnimalsBoss_Hammer.Combo01MeleeAttackLight02", "AnimalsBoss_Hammer.Combo01MeleeAttackLight03", "AnimalsBoss_Hammer.MeleeLightCombo01Part03Recover", "GenericArchetype.Success"
	];
}

MeleeLightCombo01Madness : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.Combo01MeleeAttackLight01InPlace", "AnimalsBoss_Hammer.Combo01MeleeAttackLight01", "AnimalsBoss_Hammer.Combo01MeleeAttackLight02", "AnimalsBoss_Hammer.Combo01MeleeAttackLight03", "AnimalsBoss_Hammer.MeleeLightCombo01Part03RecoverMadness", "GenericArchetype.Success"
	];
}

MeleeLightCombo02 : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTarget", "AnimalsBoss_Hammer.SandevistanStartup01", "AnimalsBoss_Hammer.MeleeMoveToAttackRangeSandevistan", "AnimalsBoss_Hammer.MeleeMoveToAttackRange", "AnimalsBoss_Hammer.DashForwardToTarget", "AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.Combo02MeleeAttackLight01InPlace", "AnimalsBoss_Hammer.Combo02MeleeAttackLight01", "AnimalsBoss_Hammer.Combo02MeleeAttackLight02", "AnimalsBoss_Hammer.Combo02MeleeAttackLight03", "AnimalsBoss_Hammer.Combo02MeleeAttackLight04", "AnimalsBoss_Hammer.MeleeLightCombo02Part04Recover", "GenericArchetype.Success"
	];
}

MeleeLightCombo02Madness : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.Combo02MeleeAttackLight01", "AnimalsBoss_Hammer.Combo02MeleeAttackLight02", "AnimalsBoss_Hammer.Combo02MeleeAttackLight03", "AnimalsBoss_Hammer.Combo02MeleeAttackLight04", "AnimalsBoss_Hammer.MeleeLightCombo02Part04RecoverMadness", "GenericArchetype.Success"
	];
}

MeleeStrongSingle01 : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove5m", "Condition.TargetBelow10m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTarget", "AnimalsBoss_Hammer.SandevistanStartup01", "AnimalsBoss_Hammer.MeleeMoveToStrongAttackRangeSandevistan", "AnimalsBoss_Hammer.MeleeMoveToStrongAttackRange", "AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.SingleMeleeAttackStrong01", "AnimalsBoss_Hammer.SingleMeleeAttackStrong01RecoverMiss", "GenericArchetype.Success"
	];
}

MeleeStrongSingle02 : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove10m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTarget", "AnimalsBoss_Hammer.SandevistanStartup01", "AnimalsBoss_Hammer.MeleeMoveToJumpAttackRangeSandevistan", "AnimalsBoss_Hammer.MeleeMoveToJumpAttackRange", "AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.SingleMeleeAttackStrong02", "AnimalsBoss_Hammer.SingleMeleeAttackStrong02RecoverMiss", "GenericArchetype.Success"
	];
}

MeleeStrongSingle03 : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTarget", "AnimalsBoss_Hammer.DashForwardToTarget", "AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.SingleMeleeAttackStrong03", "AnimalsBoss_Hammer.SingleMeleeAttackStrong03RecoverMiss", "GenericArchetype.Success"
	];
}

MeleeLocomotionSelector : AIActionSelector
{
	actions = 
	[
		"AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.SprintToTargetMelee", "GenericArchetype.Success"
	];
}

MeleeDashLocomotionSelector : AIActionSelector
{
	actions = 
	[
		"AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.SprintToTargetMelee", "GenericArchetype.Success"
	];
}

MeleeDashForwardSelector : AIActionSelector
{
	actions = 
	[
		"AnimalsBoss_Hammer.MeleeMoveAroundObstacles", "AnimalsBoss_Hammer.DashForwardToTarget", "GenericArchetype.Success"
	];
}

SprintToTargetMelee : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				{
					OR = 
					[
						"AnimalsBoss_Hammer.MeleeMoveToAttackRangeConditions"
					];
				} : AIActionOR
			];
		} : AIActionAND;
	};
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	loop = 
	{
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			movementType = "Sprint";
			dontUseStop = true;
			avoidThreatRange = 0.f;
		};
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow3m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
}

MeleeStrongSingleSequence : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.SingleMeleeAttackStrong03", "AnimalsBoss_Hammer.SingleMeleeAttackStrong03RecoverMiss", "AnimalsBoss_Hammer.SingleMeleeAttackStrong02", "AnimalsBoss_Hammer.SingleMeleeAttackStrong02RecoverMiss", "AnimalsBoss_Hammer.SingleMeleeAttackStrong01", "AnimalsBoss_Hammer.SingleMeleeAttackStrong01RecoverMiss", "GenericArchetype.Success"
	];
}

MeleeChargeSingle01Start : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove12m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTarget", "AnimalsBoss_Hammer.SingleMeleeAttackCharge01Taunt", "AnimalsBoss_Hammer.MeleeMoveToJumpAttackRangeSandevistanStart", "AnimalsBoss_Hammer.MeleeMoveToChargeAttackRangeSandevistan", "AnimalsBoss_Hammer.MeleeMoveToChargeAttackRange", "AnimalsBoss_Hammer.SingleMeleeAttackCharge01", "AnimalsBoss_Hammer.SingleMeleeAttackCharge01RecoverMiss", "GenericArchetype.Success"
	];
}

MeleeChargeSingleCondition : AIAction
{
	cooldowns = 
	[
		"AnimalsBoss.MeleeChargeSingleCooldown"
	];
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove12m"
			];
		} : AIActionAND;
	};
}

MeleeChargeSingle01 : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove12m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.SingleMeleeAttackCharge01", "AnimalsBoss_Hammer.SingleMeleeAttackCharge01RecoverMiss", "GenericArchetype.Success"
	];
}

MeleeChargeSingle02 : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove15m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.SingleMeleeAttackCharge02", "AnimalsBoss_Hammer.SingleMeleeAttackCharge02RecoverMiss", "GenericArchetype.Success"
	];
}

RotateToTarget : AIAction
{
	cooldowns = 
	[
		"AnimalsBoss.ShortDodgeCooldown"
	];
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove90deg"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		duration = 2.f;
		movePolicy = 
		{
			strafingTarget = "AIActionTarget.CombatTarget";
			avoidThreatRange = 0.f;
		};
		toNextPhaseConditionCheckInterval = 0.5f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow90deg"
					];
				} : AIActionOR;
			}
		];
	};
	lookats = 
	[
		{
			preset = "LookatPreset.MeleeCombatLookAtPreset";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

RotateToTargetNoDefense : AIAction
{
	cooldowns = 
	[
		"AnimalsBoss.ShortDodgeCooldown"
	];
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove90deg"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		duration = 2.f;
		movePolicy = 
		{
			strafingTarget = "AIActionTarget.CombatTarget";
			avoidThreatRange = 0.f;
		};
		toNextPhaseConditionCheckInterval = 0.5f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow90deg"
					];
				} : AIActionOR;
			}
		];
	};
	lookats = 
	[
		{
			preset = "LookatPreset.MeleeCombatLookAtPreset";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

WalkToTarget : AIAction
{
	cooldowns = 
	[
		"AnimalsBoss_Hammer.WalkCooldown"
	];
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNamePickUpHammer", "Condition.TargetAbove5m"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		duration = 1.f;
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			strafingTarget = "AIActionTarget.CombatTarget";
			movementType = "Walk";
			tolerance = 0.f;
			distance = 2.f;
			dontUseStop = true;
			avoidThreatRange = 0.f;
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow2m"
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 1.f;
	};
	subActions = 
	[
		{
			delay = -1.f;
			cooldowns = 
			[
				"AnimalsBoss_Hammer.WalkCooldown"
			];
		} : AISubActionStartCooldown
	];
	lookats = 
	[
		{
			preset = "LookatPreset.MeleeCombatLookAtPreset";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

WalkToTargetLocomotionMalfunction : AIAction
{
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		duration = -1.f;
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			strafingTarget = "AIActionTarget.CombatTarget";
			movementType = "Walk";
			tolerance = 0.f;
			distance = 2.f;
			dontUseStop = true;
			avoidThreatRange = 0.f;
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow2m", "Condition.NotStatusEffectTypeLocomotionMalfunction"
					];
				} : AIActionOR;
			}
		];
	};
	lookats = 
	[
		{
			preset = "LookatPreset.MeleeCombatLookAtPreset";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

FindLos : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotTargetIsVisible", "Condition.NotIsNPCBlinded"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "Unstoppable";
		};
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			strafingTarget = "AIActionTarget.CombatTarget";
			movementType = "Walk";
			distance = 2.f;
			avoidThreatRange = 0.f;
		};
		toNextPhaseConditionCheckInterval = 0.2f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow2m", "Condition.TargetIsVisible"
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "Unstoppable";
		};
	};
	lookats = 
	[
		{
			preset = "LookatPreset.MeleeCombatLookAtPreset";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

MeleeMoveAroundObstacles : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			OR = 
			[
				{
					AND = 
					[
						"Condition.NotCalculatePathToTarget", "Condition.NotTargetIsVisible"
					];
				} : AIActionAND, 
				{
					AND = 
					[
						"Condition.NotCalculatePathStraight5m", "Condition.NotCalculateStraightPathToTarget"
					];
				} : AIActionAND
			];
		} : AIActionOR;
	};
	loop = 
	{
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			movementType = "Sprint";
			dontUseStop = true;
			avoidThreatRange = 0.f;
		};
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow5m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	subActions = 
	[
		"AnimalsBoss.LowerCovers", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
}

MeleeMoveToAttackRangeConditions : AIActionAND
{
	AND = 
	[
		"Condition.TargetAbove5m", "Condition.CalculatePathStraightToTarget"
	];
}

MeleeMoveToAttackRangeConditionsBehindAnObstacle : AIActionAND
{
	AND = 
	[
		"Condition.TargetIsVisible", "Condition.NotCalculatePathStraightToTarget"
	];
}

MeleeMoveToAttackRange : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNameMove", {
					OR = 
					[
						"AnimalsBoss_Hammer.MeleeMoveToAttackRangeConditions", "AnimalsBoss_Hammer.MeleeMoveToAttackRangeConditionsBehindAnObstacle"
					];
				} : AIActionOR
			];
		} : AIActionAND;
	};
	loop = 
	{
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			movementType = "Sprint";
			dontUseStop = true;
			avoidThreatRange = 0.f;
			distance = 1.2f;
			tolerance = 0.2f;
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow3m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	subActions = 
	[
		"AnimalsBoss.LowerCovers", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
}

MeleeMoveToStrongAttackRange : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove8m"
			];
		} : AIActionAND;
	};
	loop = 
	{
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			movementType = "Sprint";
			dontUseStop = true;
			distance = 1.2f;
			tolerance = 0.2f;
			avoidThreatRange = 0.f;
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow3m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	subActions = 
	[
		"AnimalsBoss.LowerCovers", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
}

MeleeMoveToChargeAttackRange : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove8m"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			movementType = "Sprint";
			dontUseStop = true;
			distance = 1.2f;
			tolerance = 0.2f;
			avoidThreatRange = 0.f;
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow3m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	subActions = 
	[
		"AnimalsBoss.LowerCovers", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
}

MeleeMoveToJumpAttackRange : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove10m"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		movePolicy = 
		{
			target = "AIActionTarget.CombatTarget";
			movementType = "Sprint";
			dontUseStop = true;
			avoidThreatRange = 0.f;
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow3m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	subActions = 
	[
		"AnimalsBoss.LowerCovers", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
}

SandevistanChargeCompositeSequence : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	repeat = 0;
	nodes = 
	[
		"AnimalsBoss.SandevistanChargeDashLeftSelectorDefinition", "AnimalsBoss.SandevistanChargeDashRightSelectorDefinition", "GenericArchetype.Success"
	];
	gracefulInterruptionCondition = 
	[
		{
			condition = 
			{
				OR = 
				[
					"Condition.TargetBelow4m"
				];
			} : AIActionOR;
		}
	];
}

SandevistanStrongCompositeSequence : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	repeat = 0;
	nodes = 
	[
		"AnimalsBoss.SandevistanChargeDashLeftSelectorDefinition", "AnimalsBoss.SandevistanChargeDashRightSelectorDefinition", "GenericArchetype.Success"
	];
	gracefulInterruptionCondition = 
	[
		{
			condition = 
			{
				OR = 
				[
					"Condition.TargetBelow4m"
				];
			} : AIActionOR;
		}
	];
}

SandevistanJumpCompositeSequence : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	repeat = 0;
	nodes = 
	[
		"AnimalsBoss.SandevistanChargeDashLeftSelectorDefinition", "AnimalsBoss.SandevistanChargeDashRightSelectorDefinition", "GenericArchetype.Success"
	];
	gracefulInterruptionCondition = 
	[
		{
			condition = 
			{
				OR = 
				[
					"Condition.TargetBelow4m"
				];
			} : AIActionOR;
		}
	];
}

SandevistanLightCompositeSequence : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	repeat = 0;
	nodes = 
	[
		"AnimalsBoss.SandevistanChargeDashLeftSelectorDefinition", "AnimalsBoss.SandevistanChargeDashRightSelectorDefinition", "GenericArchetype.Success"
	];
	gracefulInterruptionCondition = 
	[
		{
			condition = 
			{
				OR = 
				[
					"Condition.TargetBelow4m"
				];
			} : AIActionOR;
		}
	];
}

SandevistanChargeNoOverrideCompositeSequence : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	repeat = 0;
	nodes = 
	[
		"AnimalsBoss_Hammer.SandevistanChargeDashLeftNoOverrideSelectorDefinition", "AnimalsBoss_Hammer.SandevistanChargeDashRightNoOverrideSelectorDefinition", "GenericArchetype.Success"
	];
	gracefulInterruptionCondition = 
	[
		{
			condition = 
			{
				OR = 
				[
					"Condition.TargetBelow4m"
				];
			} : AIActionOR;
		}
	];
}

SandevistanChargeDashLeftNoOverrideSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"AnimalsBoss.SandevistanChargeDashLeftDefinition", "AnimalsBoss.SandevistanChargeDashFrontLDefinition"
	];
	defaultAction = "AnimalsBoss.DefaultSandevistanChargeLocomotionDefinition";
}

SandevistanChargeDashRightNoOverrideSelectorDefinition : AIActionSelector
{
	actions = 
	[
		"AnimalsBoss.SandevistanChargeDashRightDefinition", "AnimalsBoss.SandevistanChargeDashFrontRDefinition"
	];
	defaultAction = "AnimalsBoss.DefaultSandevistanChargeLocomotionDefinition";
}

DashForwardToTarget : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNameMove", "Condition.CalculatePathStraightToTarget", "Condition.TargetAbove3m", "Condition.TargetBelow5m"
			];
		} : AIActionAND;
	};
	startup = 
	{
		useDurationFromAnimSlot = false;
		duration = 0.8f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		useDurationFromAnimSlot = false;
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	subActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "OnPlace";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "DashForwardLong";
		animSlot = 
		{
			loopSlide = "AnimalsBoss_Hammer.DashForwardSlideData";
		};
	};
}

SandevistanStartup01 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove12m", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	loop = 
	{
		useDurationFromAnimSlot = false;
		duration = 1.233f;
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
	};
	loopSubActions = 
	[
		"AnimalsBoss.LowerCovers"
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "DashSandevistanStartup";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

DashAttackLocomotionStartup01 : AIAction
{
	loop = 
	{
		duration = 0.767f;
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
	};
	loopSubActions = 
	[
		"AnimalsBoss.LowerCovers"
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "DashSandevistanStartup";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

MeleeMoveToAttackRangeSandevistan : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove10m", "Condition.TargetIsVisible", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	loop = 
	{
		duration = 15.f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow4m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 0.0000001f;
	};
	loopSubActions = 
	[
		{
			name = "StartSandevistaningLight";
		} : AISubActionQueueAIEvent, 
		{
			name = "StopSandevistaningLight";
			delay = -1;
		} : AISubActionQueueAIEvent, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
}

MeleeMoveToStrongAttackRangeSandevistan : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove10m", "Condition.TargetIsVisible", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		duration = 15.f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow4m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 0.0000001f;
	};
	loopSubActions = 
	[
		{
			name = "StartSandevistaningStrong";
		} : AISubActionQueueAIEvent, 
		{
			name = "StopSandevistaningStrong";
			delay = -1;
		} : AISubActionQueueAIEvent, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
}

MeleeMoveToChargeAttackRangeSandevistan : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove10m", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		duration = 15.f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow4m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 0.0000001f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
			name = "StartSandevistaningCharge";
		} : AISubActionQueueAIEvent, 
		{
			name = "StopSandevistaningCharge";
			delay = -1;
		} : AISubActionQueueAIEvent, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
}

MeleeMoveToChargeAttackRangeSandevistanNoOverride : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove10m", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		duration = 15.f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow4m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 0.0000001f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	loopSubActions = 
	[
		{
			name = "StartSandevistaningNoOverride";
		} : AISubActionQueueAIEvent, 
		{
			name = "StopSandevistaningNoOverride";
			delay = -1;
		} : AISubActionQueueAIEvent, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist, 
		{
			multiplier = 5.f;
			overrideMultiplerWhenPlayerInTimeDilation = 4.f;
		} : AISubActionApplyTimeDilation, 
		{
			name = "sandevistan_loop";
		} : AISubActionSpawnFX
	];
	animationWrapperOverrides = 
	[
		"Sandevistan"
	];
}

MeleeMoveToJumpAttackRangeSandevistanStart : MeleeMoveToJumpAttackRangeSandevistan
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove12m", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
}

MeleeMoveToJumpAttackRangeSandevistan : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasSandevistan", "Condition.TargetAbove12m", "Condition.TargetIsVisible", "Condition.StatusEffectPainInhibitors", "Condition.NotHackingInterruptedStatusEffects"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Normal";
		};
		duration = 15.f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.TargetBelow1dot5m", "Condition.NotCalculatePathToTarget", {
							AND = 
							[
								"Condition.TargetBelow4m", "Condition.TargetIsVisible"
							];
						} : AIActionAND
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 0.0000001f;
	};
	loopSubActions = 
	[
		{
			name = "StartSandevistaningJump";
		} : AISubActionQueueAIEvent, 
		{
			name = "StopSandevistaningJump";
			delay = -1;
		} : AISubActionQueueAIEvent
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Move";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
}

MeleeComboCondition : AIAction
{
	cooldowns = 
	[
		"AnimalsBoss.MeleeComboCooldown"
	];
}

Combo01MeleeAttackLight01 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.8f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "ComboAttack";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackRange = 5.f;
			attackName = "Combo01MeleeAttackLight01";
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo01MeleeAttackLight01";
		animVariation = 0;
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo01MeleeAttackLight01InPlace : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.8f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "ComboAttack";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackRange = 5.f;
			attackName = "Combo01MeleeAttackLight01";
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo01MeleeAttackLight01";
		animVariation = 1;
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo01MeleeAttackLight02 : AIAction
{
	startup = 
	{
		duration = 0.8f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "ComboAttack";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackRange = 5.f;
			attackName = "Combo01MeleeAttackLight02";
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo01MeleeAttackLight02";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo01MeleeAttackLight03 : AIAction
{
	startup = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			attackName = "Combo01MeleeAttackLight03";
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
			attack = "NPCAttacks.SasquatchHammerStrongAttackKnockdown";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo01MeleeAttackLight03";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

MeleeLightCombo01Part03Recover : AIAction
{
	startup = 
	{
		duration = 1.5f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 3.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		toNextPhaseConditionCheckInterval = 0.25f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.StatusEffectTargetKnockdown"
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 2.967f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "Info_C_Placide";
		} : AISubActionPlayVoiceOver, 
		"AnimalsBoss.RaiseCoversAroundShort"
	];
	loopSubActions = 
	[
		{
			name = "AttackComboCompleted";
			value = 1;
		} : AISubActionSetInt, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	recoverySubActions = 
	[
		{
			name = "AttackComboCompleted";
			value = 1;
		} : AISubActionSetInt
	];
	animData = 
	{
		animFeature = "Combo01MeleeAttackLight03Recover";
		animSlot = 
		{
		};
	};
}

MeleeLightCombo01Part03RecoverMadness : AIAction
{
	startup = 
	{
		duration = 1.5f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = true;
	};
	loop = 
	{
		duration = 0.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	recovery = 
	{
		duration = 1.5f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = true;
	};
	loopSubActions = 
	[
		{
			name = "AttackComboCompleted";
			value = 1;
		} : AISubActionSetInt, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	recoverySubActions = 
	[
		{
			name = "AttackComboCompleted";
			value = 1;
		} : AISubActionSetInt
	];
	animData = 
	{
		animFeature = "Combo01MeleeAttackLight03Recover";
		animSlot = 
		{
		};
	};
}

Combo02MeleeAttackLight01 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.8f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "ComboAttack";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackName = "Combo02MeleeAttackLight01";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo02MeleeAttackLight01";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo02MeleeAttackLight01InPlace : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.233f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "ComboAttack";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackName = "Combo02MeleeAttackLight01";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animVariation = 1;
		animFeature = "Combo02MeleeAttackLight01";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo02MeleeAttackLight02 : AIAction
{
	startup = 
	{
		duration = 1.1f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
			attackName = "Combo02MeleeAttackLight02";
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo02MeleeAttackLight02";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo02MeleeAttackLight03 : AIAction
{
	startup = 
	{
		duration = 1.4f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.5f, 0.3f, 0.05f );
			attackName = "Combo02MeleeAttackLight03";
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo02MeleeAttackLight03";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

Combo02MeleeAttackLight04 : AIAction
{
	startup = 
	{
		duration = 0.8f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			attackName = "Combo02MeleeAttackLight04";
			colliderBoxSize = ( 2.5f, 0.3f, 0.05f );
			attack = "NPCAttacks.SasquatchHammerStrongAttackKnockdown";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "Combo02MeleeAttackLight04";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

MeleeLightCombo02Part04Recover : AIAction
{
	startup = 
	{
		duration = 2.367f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 3.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		toNextPhaseConditionCheckInterval = 0.25f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.StatusEffectTargetKnockdown"
					];
				} : AIActionOR;
			}
		];
	};
	recovery = 
	{
		duration = 3.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		"AnimalsBoss.RaiseCoversAroundShort", {
			name = "Info_C_Placide";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			name = "AttackComboCompleted";
			value = 1;
		} : AISubActionSetInt, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "Combo02MeleeAttackLight04Recover";
		animSlot = 
		{
		};
	};
}

MeleeLightCombo02Part04RecoverMadness : AIAction
{
	startup = 
	{
		duration = 2.367f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = true;
	};
	loop = 
	{
		duration = 0.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	recovery = 
	{
		duration = 1.5f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = true;
	};
	loopSubActions = 
	[
		{
			name = "AttackComboCompleted";
			value = 1;
		} : AISubActionSetInt, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "Combo02MeleeAttackLight04Recover";
		animSlot = 
		{
		};
	};
}

SingleMeleeAttackStrong01 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 1.1f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			multiplier = 1.1f;
		} : AISubActionApplyTimeDilation
	];
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackName = "SingleMeleeAttackStrong01";
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.5f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong01";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

SingleMeleeAttackStrong01RecoverMiss : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameSingleMeleeAttackStrong01"
			];
		} : AIActionAND;
	};
	loop = 
	{
		duration = 2.7f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					AND = 
					[
						"Condition.TargetPOVAbove180deg", "Condition.TargetAbove5mPrediction"
					];
				} : AIActionAND;
			}
		];
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong01RecoverMiss";
		animSlot = 
		{
		};
	};
}

SingleMeleeAttackStrong02 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameMove", "Condition.TargetAbove5m", "Condition.TargetBelow8m"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			multiplier = 1.1f;
		} : AISubActionApplyTimeDilation
	];
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackName = "SingleMeleeAttackStrong02";
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong02";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

SingleMeleeAttackStrong02RecoverMiss : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameSingleMeleeAttackStrong02"
			];
		} : AIActionAND;
	};
	loop = 
	{
		duration = 3.2f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					AND = 
					[
						"Condition.TargetPOVAbove180deg", "Condition.TargetAbove5mPrediction"
					];
				} : AIActionAND;
			}
		];
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong02RecoverMiss";
		animSlot = 
		{
		};
	};
}

SingleMeleeAttackStrong03 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 1.1;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.267f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			multiplier = 1.1f;
		} : AISubActionApplyTimeDilation
	];
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackName = "SingleMeleeAttackStrong03";
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong03";
		animVariation = 1;
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
			loopSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

SingleMeleeAttackStrong03RecoverMiss : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameSingleMeleeAttackStrong03"
			];
		} : AIActionAND;
	};
	loop = 
	{
		duration = 2.533f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong03RecoverHit";
		animSlot = 
		{
		};
	};
}

SingleMeleeAttackStrong04 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotPreviousAttackNameMove"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 1.1;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.267f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			multiplier = 1.1f;
		} : AISubActionApplyTimeDilation
	];
	loopSubActions = 
	[
		{
			CName name = "weakspot_indicator";
		} : AISubActionSpawnFX, 
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attack = "NPCAttacks.SasquatchHammerStrongAttack";
			attackName = "SingleMeleeAttackStrong04";
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong03";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

SingleMeleeAttackStrong04RecoverMiss : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.PreviousAttackNameSingleMeleeAttackStrong04"
			];
		} : AIActionAND;
	};
	loop = 
	{
		duration = 2.533f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					AND = 
					[
						"Condition.TargetPOVAbove180deg", "Condition.TargetAbove5mPrediction"
					];
				} : AIActionAND;
			}
		];
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackStrong03RecoverMiss";
		animSlot = 
		{
		};
	};
}

SingleMeleeAttackCharge01Taunt : AIAction
{
	startup = 
	{
		duration = 1.233f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "Charge";
		} : AISubActionPlayVoiceOver
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackChargeTaunt01";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

SingleMeleeAttackCharge01 : AIAction
{
	startup = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.233;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			multiplier = 1.1f;
		} : AISubActionApplyTimeDilation
	];
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 1.5f );
			attackName = "SingleMeleeAttackCharge01";
			attack = "NPCAttacks.SasquatchHammerStrongAttackKnockdown";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
			name = "public_demo_rise";
		} : AISubActionAddFact, 
		{
			delay = -1;
			name = "end_public_demo";
		} : AISubActionAddFact, 
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackCharge01";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
		marginToPlayer = 0.4f;
	};
}

SingleMeleeAttackCharge01RecoverMiss : AIAction
{
	loop = 
	{
		duration = 3.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					AND = 
					[
						"Condition.TargetPOVAbove180deg", "Condition.TargetAbove5mPrediction"
					];
				} : AIActionAND;
			}
		];
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackCharge01RecoverMiss";
		animSlot = 
		{
		};
	};
}

SingleMeleeAttackCharge02Taunt : AIAction
{
	startup = 
	{
		duration = 3.333f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			name = "Charge";
		} : AISubActionPlayVoiceOver
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackChargeTaunt02";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

SingleMeleeAttackCharge02 : AIAction
{
	startup = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.2;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			multiplier = 1.1f;
		} : AISubActionApplyTimeDilation
	];
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 5.f;
			attackTime = 0.f;
			colliderBoxSize = ( 2.f, 0.3f, 2.f );
			attackName = "SingleMeleeAttackCharge02";
			attack = "NPCAttacks.SasquatchHammerStrongAttackKnockdown";
		} : AISubActionAttackWithWeapon
	];
	subActions = 
	[
		{
		} : AISubActionDisableAimAssist
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackCharge02";
		marginToPlayer = 0.4f;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.SasquatchMeleeAttackSlideData";
		};
	};
}

SingleMeleeAttackCharge02RecoverMiss : AIAction
{
	loop = 
	{
		duration = 3.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					AND = 
					[
						"Condition.TargetPOVAbove180deg", "Condition.TargetAbove5mPrediction"
					];
				} : AIActionAND;
			}
		];
	};
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "SingleMeleeAttackCharge02RecoverMiss";
		animSlot = 
		{
		};
	};
}

ThrowWeaponSequence : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityCanThrowWeapon", "Condition.AnimalsBossThrowHammerCooldown"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.SpecialTaunt02", "AnimalsBoss_Hammer.FindLos", "AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.HammerThrowDodgeBack", "AnimalsBoss_Hammer.ThrowWeapon", "GenericArchetype.Success"
	];
}

ThrowWeaponSequence02 : AnimalsBoss_Hammer.ThrowWeaponSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.SpecialTaunt02", "AnimalsBoss_Hammer.FindLos", "AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.HammerThrowDodgeBack", "AnimalsBoss_Hammer.ThrowWeapon02", "GenericArchetype.Success"
	];
}

HammerThrowDodgeBack : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityHasKerenzikov", "Condition.TargetBelow8m", "Condition.CalculatePathStraightBackClose"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.333f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	loop = 
	{
		duration = 0.333f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	recovery = 
	{
		duration = 0.333f;
		changeNPCState = 
		{
			hitReactionMode = "Unstoppable";
		};
	};
	animData = 
	{
		animFeature = "DodgeBack";
		animSlot = 
		{
		};
	};
}

ThrowWeaponCondition : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityCanThrowWeapon", "Condition.AnimalsBossThrowHammerCooldown"
			];
		} : AIActionAND;
	};
}

SetThrowWeaponCooldown : AIAction
{
	subActions = 
	[
		{
			delay = -1.f;
			cooldowns = 
			[
				"AnimalsBoss.ThrowHammerCooldownLight"
			];
		} : AISubActionStartCooldown
	];
}

ThrowWeapon : AIAction
{
	cooldowns = 
	[
		"AnimalsBoss.ThrowHammerCooldown"
	];
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityCanThrowWeapon", "Condition.HasHammer", "Condition.NotIsNPCBlinded", "Condition.CanThrowAtTarget"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 2.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	recovery = 
	{
		duration = 1.3f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		{
			delay = 0;
			name = "PatternLoop";
			value = 1;
		} : AISubActionSetInt, 
		"AnimalsBoss.LowerCovers", "AnimalsBoss.RaiseCoversBehindPlayer", {
			name = "ThrowHammer";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		"AnimalsBoss.RaiseCoversBehindPlayer", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Hammer";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon, 
		{
			attachmentSlot = "AttachmentSlots.WeaponRight";
			delay = 0.55f;
			target = "AIActionTarget.CombatTarget";
			positionPredictionTime = 0.33f;
			throwAngle = 0.1f;
			trajectoryGravity = -40.f;
		} : AISubActionThrowItem
	];
	recoverySubActions = 
	[
		{
			attachmentSlot = "AttachmentSlots.WeaponRight";
			itemCategory = "ItemCategory.Weapon";
			itemType = "ItemType.Wea_Fists";
		} : AISubActionForceEquip
	];
	animData = 
	{
		animFeature = "ThrowWeapon";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
	lookats = 
	[
		{
			target = "AIActionTarget.CombatTarget";
			preset = "LookatPreset.HammerThrow";
		}
	];
}

ThrowWeapon02 : SpecialActions.ThrowWeapon
{
	startupSubActions = 
	[
		{
			delay = 0;
			name = "PatternLoop";
			value = 2;
		} : AISubActionSetInt, 
		"AnimalsBoss.LowerCovers", "AnimalsBoss.RaiseCoversBehindPlayer", {
			name = "ThrowHammer";
		} : AISubActionPlayVoiceOver
	];
}

ThrowWeapon03 : SpecialActions.ThrowWeapon
{
	startupSubActions = 
	[
		{
			delay = 0;
			name = "PatternLoop";
			value = 0;
		} : AISubActionSetInt, 
		"AnimalsBoss.LowerCovers", "AnimalsBoss.RaiseCoversBehindPlayer", {
			name = "ThrowHammer";
		} : AISubActionPlayVoiceOver
	];
}

ThrowWeaponLoop : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.AbilityCanThrowWeapon", "Condition.HasHammer", "Condition.NotIsNPCBlinded", "Condition.CanThrowAtTarget"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 2.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	loop = 
	{
		duration = 0.833;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	recovery = 
	{
		duration = 1.3f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
		useDurationFromAnimSlot = false;
	};
	startupSubActions = 
	[
		"AnimalsBoss.LowerCovers", "AnimalsBoss.RaiseCoversBehindPlayer", {
			name = "ThrowHammer";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		"AnimalsBoss.RaiseCoversBehindPlayer", {
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "Hammer";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon, 
		{
			attachmentSlot = "AttachmentSlots.WeaponRight";
			delay = 0.55f;
			target = "AIActionTarget.CombatTarget";
			positionPredictionTime = 0.33f;
			throwAngle = 0.1f;
			trajectoryGravity = -40.f;
		} : AISubActionThrowItem
	];
	recoverySubActions = 
	[
		{
			attachmentSlot = "AttachmentSlots.WeaponRight";
			itemCategory = "ItemCategory.Weapon";
			itemType = "ItemType.Wea_Fists";
		} : AISubActionForceEquip
	];
	animData = 
	{
		animFeature = "ThrowWeapon";
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
	lookats = 
	[
		{
			target = "AIActionTarget.CombatTarget";
			preset = "LookatPreset.HammerThrow";
		}
	];
}

EnableTired : AIAction
{
	loop = 
	{
		duration = 5.967;
		changeNPCState = 
		{
			upperBodyState = "Attack";
		};
	};
	animData = 
	{
		animFeature = "Tired";
		animVariation = 0;
		animSlot = 
		{
			useRootMotion = false;
		};
	};
}

SasquatchMeleeAttackSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 2.f;
	finalRotationAngle = 0.f;
}

MeleeAttackLightSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackLight01Part1SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.9f;
	slideStartDelay = 0.f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackLight01Part1OnPlaceSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.4f;
	slideStartDelay = 0.5f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
	useRotationSlide = false;
}

MeleeAttackLight01Part2SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.4f;
	slideStartDelay = 0.2f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 22.5;
}

MeleeAttackLight01Part3SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.5f;
	slideStartDelay = 0.3f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 22.5;
}

MeleeAttackLight02Part1SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.7f;
	slideStartDelay = 0.f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackLight02Part1OnPlaceSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.3f;
	slideStartDelay = 0.6f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
	useRotationSlide = false;
}

MeleeAttackLight02Part2SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.4f;
	slideStartDelay = 0.2f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackLight02Part3SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.4f;
	slideStartDelay = 0.2f;
	distance = 2.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackLight02Part4SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.5f;
	slideStartDelay = 0.f;
	distance = 1.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackStrongSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	distance = 5.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackStrongOnPlaceSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	usePositionSlide = false;
	distance = 3.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackStrong01SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackStrong02SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackStrong03SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.2f;
	slideStartDelay = 0.f;
	distance = 1.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
	useRotationSlide = false;
}

MeleeAttackChargeSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackCharge01SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackCharge02SlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeAttackJumpSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

MeleeSlideCollsionPrevention : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	distance = 1.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.f;
}

RotateSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	distance = 0.1f;
	offsetToTarget = 3.f;
	finalRotationAngle = 90;
	usePositionSlide = false;
}

DashForwardSlideData : AIActionSlideData
{
	target = "AIActionTarget.CombatTarget";
	duration = 0.f;
	slideStartDelay = 0.f;
	distance = 5.f;
	positionSpeed = 2.f;
	offsetToTarget = 1.5f;
	finalRotationAngle = 90;
}

WalkCooldown : AIActionCooldown
{
	name = "WalkCooldown";
	duration = 7.5f;
}

Attack01Cooldown : AIActionCooldown
{
	name = "Attack01Cooldown";
	duration = 15.f;
}

Attack02Cooldown : AIActionCooldown
{
	name = "Attack02Cooldown";
	duration = 3.f;
}

Attack03Cooldown : AIActionCooldown
{
	name = "Attack03Cooldown";
	duration = 0.f;
}

StrongAttack01Cooldown : AIActionCooldown
{
	name = "StrongAttack01Cooldown";
	duration = 10.f;
}

SpecialTaunt01Sequence : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.SpecialTaunt01", "GenericArchetype.Success"
	];
}

SpecialTaunt02Sequence : AIActionSequence
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove8m"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.SpecialTaunt02", "GenericArchetype.Success"
	];
}

SpecialTaunt03Sequence : AIActionSequence
{
	actions = 
	[
		"AnimalsBoss_Hammer.RotateToTargetNoDefense", "AnimalsBoss_Hammer.SpecialTaunt03", "GenericArchetype.Success"
	];
}

SpecialTaunt01 : AIAction
{
	startup = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	loop = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	recovery = 
	{
		duration = 1.033;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	startupSubActions = 
	[
		"AnimalsBoss.RaiseCoversAround", {
			name = "Taunt";
		} : AISubActionPlayVoiceOver
	];
	animData = 
	{
		animFeature = "Taunt";
		animVariation = 0;
		weaponOverride = 1;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

SpecialTaunt02 : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.TargetAbove8m"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 0.5f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	loop = 
	{
		duration = 0.833f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	recovery = 
	{
		duration = 0.467f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	startupSubActions = 
	[
		{
			name = "Taunt";
		} : AISubActionPlayVoiceOver
	];
	animData = 
	{
		animFeature = "Taunt";
		animVariation = 1;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

SpecialTaunt03 : AIAction
{
	startup = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	loop = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	recovery = 
	{
		duration = 1.f;
		changeNPCState = 
		{
			upperBodyState = "Attack";
			hitReactionMode = "UnstoppableTwitchMin";
		};
	};
	startupSubActions = 
	[
		"AnimalsBoss.RaiseCoversBehindPlayer", {
			name = "Taunt";
		} : AISubActionPlayVoiceOver
	];
	loopSubActions = 
	[
		{
			weaponSlots = 
			[
				"AttachmentSlots.WeaponRight"
			];
			attackDuration = 0.1f;
			attackRange = 2.f;
			attackTime = 0.f;
			attackName = "reset";
			colliderBoxSize = ( 0, 0, 0 );
		} : AISubActionAttackWithWeapon
	];
	animData = 
	{
		animFeature = "Taunt";
		animVariation = 2;
		animSlot = 
		{
			startupSlide = "AnimalsBoss_Hammer.RotateSlideData";
			loopSlide = "AnimalsBoss_Hammer.RotateSlideData";
			recoverySlide = "AnimalsBoss_Hammer.RotateSlideData";
		};
	};
}

