package Gang_HMGHybrid
using RTDB, CoverActions, ShootActions, MovementActions, CombatDecorator, Gang, ItemHandling, DashAndDodgeActions, AIActionTarget, StatusEffectActions

Map : Gang.DefaultNodeMap
{
	map += 
	[
		{
			node = "GenericArchetype.RingSelector";
			isOverriddenBy = "Gang_HMGHybrid.RingSelector";
		}, 
		{
			node = "GenericArchetype.SimpleRingSelector";
			isOverriddenBy = "Gang_HMGHybrid.SimpleRingSelector";
		}, 
		{
			node = "GenericArchetype.CoverPresetDecoratorSelector";
			isOverriddenBy = "Gang_HMGHybrid.CoverPresetDecoratorSelector";
		}, 
		{
			node = "GenericArchetype.ReloadSelector";
			isOverriddenBy = "Gang_HMGHybrid.ReloadSelector";
		}, 
		{
			node = "GenericArchetype.SandevistanDashReloadSelector";
			isOverriddenBy = "Gang_HMGHybrid.SandevistanDashReloadSelector";
		}, 
		{
			node = "MovementActions.SprintHarassEnd";
			isOverriddenBy = "Gang_HMGHybrid.SprintHarassEnd";
		}, 
		{
			node = "GenericArchetype.Shoot";
			isOverriddenBy = "Gang_HMGHybrid.Shoot";
		}, 
		{
			node = "GenericArchetype.SimpleShoot";
			isOverriddenBy = "Gang_HMGHybrid.SimpleShoot";
		}, 
		{
			node = "GenericArchetype.ChargedShoot";
			isOverriddenBy = "Gang_HMGHybrid.ChargedShoot";
		}, 
		{
			node = "GenericArchetype.CrouchPreciseShoot";
			isOverriddenBy = "Gang_HMGHybrid.CrouchPreciseShoot";
		}, 
		{
			node = "GenericArchetype.SandevistanDashSemiAutoShoot";
			isOverriddenBy = "Gang_HMGHybrid.SandevistanDashSemiAutoShoot";
		}, 
		{
			node = "GenericArchetype.SandevistanDashShootDefault";
			isOverriddenBy = "Gang_HMGHybrid.SandevistanDashShootDefault";
		}, 
		{
			node = "GenericArchetype.WoundedShootLeg";
			isOverriddenBy = "Gang_HMGHybrid.WoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.SimpleWoundedShootLeg";
			isOverriddenBy = "Gang_HMGHybrid.SimpleWoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.CommandForceSimpleWoundedShootLeg";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceSimpleWoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.CommandForceSimpleShoot";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceSimpleShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceWoundedShootLeg";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceWoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.CommandForceSandevistanDashSemiAutoShoot";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceSandevistanDashSemiAutoShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceSandevistanDashShootDefault";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceSandevistanDashShootDefault";
		}, 
		{
			node = "GenericArchetype.CommandForceChargedShoot";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceChargedShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceCrouchPreciseShoot";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceCrouchPreciseShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceShoot";
			isOverriddenBy = "Gang_HMGHybrid.CommandForceShoot";
		}, 
		{
			node = "GenericArchetype.ReloadLightMachineGun";
			isOverriddenBy = "Gang_HMGHybrid.ReloadLightMachineGun";
		}, 
		{
			node = "GenericArchetype.ReloadHeavyMachineGun";
			isOverriddenBy = "Gang_HMGHybrid.ReloadHeavyMachineGun";
		}, 
		{
			node = "GenericArchetype.ReloadDefault";
			isOverriddenBy = "Gang_HMGHybrid.ReloadDefault";
		}, 
		{
			node = "GenericArchetype.CoverReloadLightMachineGun";
			isOverriddenBy = "Gang_HMGHybrid.CoverReloadLightMachineGun";
		}, 
		{
			node = "GenericArchetype.CoverReloadHeavyMachineGun";
			isOverriddenBy = "Gang_HMGHybrid.CoverReloadHeavyMachineGun";
		}, 
		{
			node = "GenericArchetype.CoverReloadDefault";
			isOverriddenBy = "Gang_HMGHybrid.CoverReloadDefault";
		}, 
		{
			node = "ItemHandling.WaitToUnequip";
			isOverriddenBy = "Gang_HMGHybrid.WaitToUnequip";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovRightFrontDefinition";
			isOverriddenBy = "Gang_HMGHybrid.DodgeKerenzikovRightFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition";
			isOverriddenBy = "Gang_HMGHybrid.DodgeKerenzikovLeftFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovLeftOnSpotDefinition";
			isOverriddenBy = "Gang_HMGHybrid.DodgeKerenzikovLeftOnSpotDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovRightOnSpotDefinition";
			isOverriddenBy = "Gang_HMGHybrid.DodgeKerenzikovRightOnSpotDefinition";
		}, 
		{
			node = "DashAndDodgeActions.GrenadeDodgeKerenzikovBackDefinition";
			isOverriddenBy = "Gang_HMGHybrid.GrenadeDodgeKerenzikovBackDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition";
			isOverriddenBy = "Gang_HMGHybrid.DodgeKerenzikovLeftFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.GrenadeDodgeKerenzikovLeftFrontDefinition";
			isOverriddenBy = "Gang_HMGHybrid.GrenadeDodgeKerenzikovLeftFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.GrenadeDodgeKerenzikovRightFrontDefinition";
			isOverriddenBy = "Gang_HMGHybrid.GrenadeDodgeKerenzikovRightFrontDefinition";
		}, 
		{
			node = "StatusEffectActions.SE_WoundedLLegEntrySelectorDefinition";
			isOverriddenBy = "Gang_HMGHybrid.SE_WoundedLLegEntrySelector";
		}, 
		{
			node = "StatusEffectActions.SE_WoundedRLegEntrySelectorDefinition";
			isOverriddenBy = "Gang_HMGHybrid.SE_WoundedRLegEntrySelector";
		}, 
		{
			node = "ReactionsActions.GunshotIdleSelector";
			isOverriddenBy = "ReactionsActions.GunshotIdleArmedSelector";
		}, 
		{
			node = "ReactionsActions.GunshotWalkSelector";
			isOverriddenBy = "ReactionsActions.GunshotWalkArmedSelector";
		}, 
		{
			node = "ReactionsActions.BodyInvestigatePatrolUnarmed";
			isOverriddenBy = "ReactionsActions.BodyInvestigatePatrol";
		}, 
		{
			node = "ReactionsActions.BodyInvestigateSearchUnarmed";
			isOverriddenBy = "ReactionsActions.BodyInvestigateSearch";
		}, 
		{
			node = "ReactionsActions.PanicSelector";
			isOverriddenBy = "ReactionsActions.PanicArmedSelector";
		}, 
		{
			node = "ReactionsActions.PanicSelector02";
			isOverriddenBy = "ReactionsActions.PanicArmedSelector02";
		}, 
		{
			node = "ReactionsActions.HearDeviceNoiseSelector";
			isOverriddenBy = "ReactionsActions.HearDeviceNoiseArmedSelector";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationSelector";
			isOverriddenBy = "ReactionsActions.DeviceInvestigationArmedSelector";
		}
	];
}

SE_WoundedLLegEntrySelector : SE_WoundedLArmEntrySelectorDefinition
{
}

SE_WoundedRLegEntrySelector : SE_WoundedLArmEntrySelectorDefinition
{
}

RingSelector : MovementActions.RingSelector
{
	actions = 
	[
		"MovementActions.CloseRing2ndFilterNoLimit", "MovementActions.MediumRing2ndFilterNoLimit", "MovementActions.FarRing2ndFilterNoLimit", "MovementActions.ExtremeRing2ndFilterNoLimit", "MovementActions.SquadRingDefault"
	];
}

SimpleRingSelector : MovementActions.SimpleRingSelector
{
	actions = 
	[
		"MovementActions.SimpleCloseRing", "MovementActions.HoldPosition"
	];
}

CoverPresetDecoratorSelector : CombatDecorator.CoverPresetDecoratorSelector
{
	actions = 
	[
		"CombatDecorator.AssaultCompoundCoverSelectionPreset", "CombatDecorator.SandevistanCompoundCoverSelectionPreset", "CombatDecorator.DefaultCompoundCoverSelectionPreset"
	];
}

ReloadSelector : ItemHandling.ReloadSelector
{
	actions = 
	[
		"ItemHandling.InstantReloadSprint", "GenericArchetype.ReloadLightMachineGun", "GenericArchetype.ReloadHeavyMachineGun"
	];
}

SandevistanDashReloadSelector : ItemHandling.SandevistanDashReloadSelector
{
	actions = 
	[
		"GenericArchetype.ReloadLightMachineGun", "GenericArchetype.ReloadHeavyMachineGun"
	];
}

SprintHarassEnd : MovementActions.SprintHarassEnd
{
}

Shoot : ShootActions.Shoot
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.ValidTargetOrAimCommandCondition", "Condition.ShootActivationCondition"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Shoot";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotValidTargetOrAimCommandCondition", "Condition.AmmoCount0", "Condition.ShootDeactivationCondition", "Condition.ShootInterruptionCondition"
					];
				} : AIActionOR;
			}
		];
	};
	loopSubActions = 
	[
		"ShootActions.SubActionShootWithWeaponFromHip"
	];
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

SimpleShoot : ShootActions.SimpleShoot
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.ValidTargetOrAimCommandCondition", "Condition.ShootActivationCondition"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Shoot";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotValidTargetOrAimCommandCondition", "Condition.AmmoCount0", "Condition.RightArmLookAtOff", "Condition.CombatTargetChanged", "Condition.TargetAbove270deg", "Condition.IsUsingOffMeshLink"
					];
				} : AIActionOR;
			}
		];
	};
	loopSubActions = 
	[
		"ShootActions.SubActionShootWithWeaponFromHip"
	];
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

ChargedShoot : ShootActions.ChargedShoot
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.ValidTargetPositionCheckFromHipOrAimCommandCondition", "Condition.ShootActivationCondition", "Condition.ChargedShootActivationCondition"
			];
		} : AIActionAND;
	};
	loop = 
	{
		duration = 3.f;
		useDurationFromAnimSlot = false;
		repeat = 0;
		changeNPCState = 
		{
			upperBodyState = "Shoot";
		};
		notRepeatPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotValidTargetPositionCheckFromHipOrAimCommandCondition", "Condition.MinAccuracyValue0dot95", "Condition.AmmoCount0", "Condition.ShootInterruptionCondition"
					];
				} : AIActionOR;
			}
		];
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.ShootDeactivationCondition"
					];
				} : AIActionOR;
			}
		];
	};
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

CrouchPreciseShoot : ShootActions.CrouchPreciseShoot
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

SandevistanDashShotgunShoot : ShootActions.SandevistanDashShotgunShoot
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.HasShotgun", "Condition.ValidTargetPositionCheckFromHipOrAimCommandCondition"
			];
		} : AIActionAND;
	};
}

SandevistanDashSemiAutoShoot : ShootActions.SandevistanDashSemiAutoShoot
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.HasSemiAutoWeapon", "Condition.ValidTargetPositionCheckFromHipOrAimCommandCondition"
			];
		} : AIActionAND;
	};
}

SandevistanDashShootDefault : ShootActions.SandevistanDashShootDefault
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.ValidTargetPositionCheckFromHipOrAimCommandCondition"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Shoot";
		};
		useDurationFromAnimSlot = false;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotValidTargetPositionCheckFromHipOrAimCommandCondition", "Condition.PreciseShootDeactivationCondition", "Condition.IsMoving"
					];
				} : AIActionOR;
			}
		];
	};
}

WoundedShootLeg : ShootActions.WoundedShootLeg
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				{
					OR = 
					[
						"Condition.WoundedLegs", "Condition.IsNPCUnderLocomotionMalfunctionQuickhack"
					];
				} : AIActionOR, 
				"Condition.AbilityCanShootWhileMoving", "Condition.ValidTargetOrAimCommandCondition", "Condition.TargetBelow270deg"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Shoot";
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotValidTargetOrAimCommandCondition", "Condition.AmmoCount0", "Condition.ShootDeactivationCondition"
					];
				} : AIActionOR;
			}
		];
	};
	loopSubActions = 
	[
		"ShootActions.SubActionShootWithWeaponFromHip"
	];
}

SimpleWoundedShootLeg : ShootActions.SimpleWoundedShootLeg
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				{
					OR = 
					[
						"Condition.WoundedLegs", "Condition.IsNPCUnderLocomotionMalfunctionQuickhack"
					];
				} : AIActionOR, 
				"Condition.AbilityCanShootWhileMoving", "Condition.ValidTargetOrAimCommandCondition", "Condition.TargetBelow270deg"
			];
		} : AIActionAND;
	};
	loop = 
	{
		changeNPCState = 
		{
			upperBodyState = "Shoot";
		};
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotValidTargetOrAimCommandCondition", "Condition.AmmoCount0", "Condition.RightArmLookAtOff", "Condition.CombatTargetChanged", "Condition.TargetAbove270deg", "Condition.IsUsingOffMeshLink"
					];
				} : AIActionOR;
			}
		];
	};
	loopSubActions = 
	[
		"ShootActions.SubActionShootWithWeaponFromHip"
	];
}

CommandForceSimpleWoundedShootLeg : ShootActions.CommandForceSimpleWoundedShootLeg
{
}

CommandForceSimpleShoot : ShootActions.CommandForceSimpleShoot
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

CommandForceWoundedShootLeg : ShootActions.CommandForceWoundedShootLeg
{
}

CommandForceSandevistanDashSemiAutoShoot : ShootActions.CommandForceSandevistanDashSemiAutoShoot
{
}

CommandForceSandevistanDashShootDefault : ShootActions.CommandForceSandevistanDashShootDefault
{
}

CommandForceChargedShoot : ShootActions.CommandForceChargedShoot
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

CommandForceCrouchPreciseShoot : ShootActions.CommandForceCrouchPreciseShoot
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

CommandForceShoot : ShootActions.CommandForceShoot
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyShooting";
		} : AISubActionQueueCommunicationEvent
	];
}

ReloadLightMachineGun : ItemHandling.ReloadLightMachineGun
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyReload";
		} : AISubActionQueueCommunicationEvent
	];
}

ReloadHeavyMachineGun : ItemHandling.ReloadHeavyMachineGun
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyReload";
		} : AISubActionQueueCommunicationEvent
	];
}

ReloadDefault : ItemHandling.ReloadDefault
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyReload";
		} : AISubActionQueueCommunicationEvent
	];
}

CoverReloadLightMachineGun : ItemHandling.CoverReloadLightMachineGun
{
	startup = 
	{
		duration = 0.833f;
	} : ItemHandling.ReloadDefaultStartup;
	loop = 
	{
		duration = 1.333f;
	} : ItemHandling.ReloadDefaultLoop;
	recovery = 
	{
		duration = 0.667f;
	} : ItemHandling.ReloadDefaultRecovery;
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyReload";
		} : AISubActionQueueCommunicationEvent
	];
}

CoverReloadHeavyMachineGun : ItemHandling.CoverReloadHeavyMachineGun
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyReload";
		} : AISubActionQueueCommunicationEvent
	];
}

CoverReloadDefault : ItemHandling.CoverReloadDefault
{
	subActions += 
	[
		{
			targetListener = "AIActionTarget.CombatTarget";
			name = "HeavyReload";
		} : AISubActionQueueCommunicationEvent
	];
}

DodgeMeleeKerenzikovBackDefinition : DashAndDodgeActions.DodgeMeleeKerenzikovBackDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

DodgeKerenzikovBackDefinition : DashAndDodgeActions.DodgeKerenzikovBackDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

DodgeKerenzikovLeftFrontDefinition : DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

DodgeKerenzikovRightFrontDefinition : DashAndDodgeActions.DodgeKerenzikovRightFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

DodgeKerenzikovLeftOnSpotDefinition : DashAndDodgeActions.DodgeKerenzikovLeftOnSpotDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

DodgeKerenzikovRightOnSpotDefinition : DashAndDodgeActions.DodgeKerenzikovRightOnSpotDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

GrenadeDodgeKerenzikovBackDefinition : DashAndDodgeActions.GrenadeDodgeKerenzikovBackDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

GrenadeDodgeKerenzikovRightFrontDefinition : DashAndDodgeActions.GrenadeDodgeKerenzikovRightFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

GrenadeDodgeKerenzikovLeftFrontDefinition : DashAndDodgeActions.GrenadeDodgeKerenzikovLeftFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Handgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunBothArmsLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Right_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunRightArmLookatCondition";
		}, 
		{
			preset = "LookatPreset.Gang_Handgun_Left_Arm_LootAt";
			target = "AIActionTarget.CombatTarget";
			activationCondition = "Corpo_Handgun.HandgunLeftArmLookatCondition";
		}
	];
}

WaitToUnequip : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.HasAnyItem"
			];
		} : AIActionAND;
	};
	startup = 
	{
		duration = 1.5f;
		toNextPhaseConditionCheckInterval = 0.25f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.NotHasAnyItem"
					];
				} : AIActionOR;
			}
		];
	};
	loop = 
	{
		toNextPhaseConditionCheckInterval = 0.1f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					AND = 
					[
						"Condition.NotTicketReload", "Condition.NotMeleeStatesConditions", "Condition.NotInCover", "Condition.NotIsEnteringCover", "Condition.NotIsInWorkspot", "Condition.NotIsUsingOffMeshLink", "Condition.NotWounded"
					];
				} : AIActionAND;
			}
		];
	};
}

