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

Map : Gang.DefaultNodeMap
{
	map += 
	[
		{
			node = "GenericArchetype.RingSelector";
			isOverriddenBy = "Gang_Shotgun.RingSelector";
		}, 
		{
			node = "GenericArchetype.SimpleRingSelector";
			isOverriddenBy = "Gang_Shotgun.SimpleRingSelector";
		}, 
		{
			node = "GenericArchetype.CoverPresetDecoratorSelector";
			isOverriddenBy = "Gang_Shotgun.CoverPresetDecoratorSelector";
		}, 
		{
			node = "GenericArchetype.SimpleReloadSelector";
			isOverriddenBy = "Gang_Shotgun.SimpleReloadSelector";
		}, 
		{
			node = "GenericArchetype.SimpleCoverReloadSelector";
			isOverriddenBy = "Gang_Shotgun.SimpleCoverReloadSelector";
		}, 
		{
			node = "GenericArchetype.ReloadSelector";
			isOverriddenBy = "Gang_Shotgun.ReloadSelector";
		}, 
		{
			node = "GenericArchetype.CoverReloadSelector";
			isOverriddenBy = "Gang_Shotgun.CoverReloadSelector";
		}, 
		{
			node = "GenericArchetype.SandevistanDashReloadSelector";
			isOverriddenBy = "Gang_Shotgun.SandevistanDashReloadSelector";
		}, 
		{
			node = "MovementActions.SprintHarassEnd";
			isOverriddenBy = "Gang_Shotgun.SprintHarassEnd";
		}, 
		{
			node = "GenericArchetype.Shoot";
			isOverriddenBy = "Gang_Shotgun.Shoot";
		}, 
		{
			node = "GenericArchetype.SimpleShoot";
			isOverriddenBy = "Gang_Shotgun.SimpleShoot";
		}, 
		{
			node = "GenericArchetype.ChargedShoot";
			isOverriddenBy = "Gang_Shotgun.ChargedShoot";
		}, 
		{
			node = "GenericArchetype.CrouchPreciseShoot";
			isOverriddenBy = "Gang_Shotgun.CrouchPreciseShoot";
		}, 
		{
			node = "GenericArchetype.SandevistanDashShotgunShoot";
			isOverriddenBy = "Gang_Shotgun.SandevistanDashShotgunShoot";
		}, 
		{
			node = "GenericArchetype.WoundedShootLeg";
			isOverriddenBy = "Gang_Shotgun.WoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.SimpleWoundedShootLeg";
			isOverriddenBy = "Gang_Shotgun.SimpleWoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.CommandForceSimpleWoundedShootLeg";
			isOverriddenBy = "Gang_Shotgun.CommandForceSimpleWoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.CommandForceSimpleShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceSimpleShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceWoundedShootLeg";
			isOverriddenBy = "Gang_Shotgun.CommandForceWoundedShootLeg";
		}, 
		{
			node = "GenericArchetype.CommandForceSandevistanDashShotgunShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceSandevistanDashShotgunShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceChargedShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceChargedShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceCrouchPreciseShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceCrouchPreciseShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceShoot";
		}, 
		{
			node = "GenericArchetype.CoverGetOutDefault";
			isOverriddenBy = "Gang_Shotgun.CoverGetOutDefault";
		}, 
		{
			node = "GenericArchetype.HighCoverChargedShoot";
			isOverriddenBy = "Gang_Shotgun.HighCoverChargedShoot";
		}, 
		{
			node = "GenericArchetype.CoverChargedShootDefault";
			isOverriddenBy = "Gang_Shotgun.CoverChargedShootDefault";
		}, 
		{
			node = "GenericArchetype.HighCoverShoot";
			isOverriddenBy = "Gang_Shotgun.HighCoverShoot";
		}, 
		{
			node = "GenericArchetype.CoverShootDefault";
			isOverriddenBy = "Gang_Shotgun.CoverShootDefault";
		}, 
		{
			node = "GenericArchetype.CommandForceHighCoverChargedShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceHighCoverChargedShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceCoverChargedShootDefault";
			isOverriddenBy = "Gang_Shotgun.CommandForceCoverChargedShootDefault";
		}, 
		{
			node = "GenericArchetype.CommandForceHighCoverShoot";
			isOverriddenBy = "Gang_Shotgun.CommandForceHighCoverShoot";
		}, 
		{
			node = "GenericArchetype.CommandForceCoverShootDefault";
			isOverriddenBy = "Gang_Shotgun.CommandForceCoverShootDefault";
		}, 
		{
			node = "GenericArchetype.CoverGetBackDefault";
			isOverriddenBy = "Gang_Shotgun.CoverGetBackDefault";
		}, 
		{
			node = "GenericArchetype.ReloadShotgun";
			isOverriddenBy = "Gang_Shotgun.ReloadShotgun";
		}, 
		{
			node = "GenericArchetype.ReloadShotgunDual";
			isOverriddenBy = "Gang_Shotgun.ReloadShotgunDual";
		}, 
		{
			node = "GenericArchetype.ReloadDefault";
			isOverriddenBy = "Gang_Shotgun.ReloadDefault";
		}, 
		{
			node = "GenericArchetype.CoverReloadShotgun";
			isOverriddenBy = "Gang_Shotgun.CoverReloadShotgun";
		}, 
		{
			node = "GenericArchetype.CoverReloadShotgunDual";
			isOverriddenBy = "Gang_Shotgun.CoverReloadShotgunDual";
		}, 
		{
			node = "GenericArchetype.CoverReloadDefault";
			isOverriddenBy = "Gang_Shotgun.CoverReloadDefault";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovRightFrontDefinition";
			isOverriddenBy = "Gang_Shotgun.DodgeKerenzikovRightFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition";
			isOverriddenBy = "Gang_Shotgun.DodgeKerenzikovLeftFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovLeftOnSpotDefinition";
			isOverriddenBy = "Gang_Shotgun.DodgeKerenzikovLeftOnSpotDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovRightOnSpotDefinition";
			isOverriddenBy = "Gang_Shotgun.DodgeKerenzikovRightOnSpotDefinition";
		}, 
		{
			node = "DashAndDodgeActions.GrenadeDodgeKerenzikovBackDefinition";
			isOverriddenBy = "Gang_Shotgun.GrenadeDodgeKerenzikovBackDefinition";
		}, 
		{
			node = "DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition";
			isOverriddenBy = "Gang_Shotgun.DodgeKerenzikovLeftFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.GrenadeDodgeKerenzikovLeftFrontDefinition";
			isOverriddenBy = "Gang_Shotgun.GrenadeDodgeKerenzikovLeftFrontDefinition";
		}, 
		{
			node = "DashAndDodgeActions.GrenadeDodgeKerenzikovRightFrontDefinition";
			isOverriddenBy = "Gang_Shotgun.GrenadeDodgeKerenzikovRightFrontDefinition";
		}, 
		{
			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";
		}
	];
}

RingSelector : MovementActions.RingSelector
{
	actions = 
	[
		"MovementActions.MeleeRing2ndFilter", "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"
	];
}

SimpleReloadSelector : ItemHandling.SimpleReloadSelector
{
	actions = 
	[
		"ItemHandling.InstantReloadSprint", "GenericArchetype.ReloadShotgun", "GenericArchetype.ReloadShotgunDual"
	];
}

ReloadSelector : ItemHandling.ReloadSelector
{
	actions = 
	[
		"ItemHandling.InstantReloadSprint", "GenericArchetype.ReloadShotgun", "GenericArchetype.ReloadShotgunDual"
	];
}

SimpleCoverReloadSelector : ItemHandling.SimpleCoverReloadSelector
{
	actions = 
	[
		"GenericArchetype.CoverReloadShotgun", "GenericArchetype.CoverReloadShotgunDual"
	];
}

CoverReloadSelector : ItemHandling.CoverReloadSelector
{
	actions = 
	[
		"GenericArchetype.CoverReloadShotgun", "GenericArchetype.CoverReloadShotgunDual"
	];
}

SandevistanDashReloadSelector : ItemHandling.SandevistanDashReloadSelector
{
	actions = 
	[
		"GenericArchetype.ReloadShotgun", "GenericArchetype.ReloadShotgunDual"
	];
}

SprintHarassEnd : MovementActions.SprintHarassEnd
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

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"
	];
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

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"
	];
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

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;
			}
		];
	};
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CrouchPreciseShoot : ShootActions.CrouchPreciseShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

SandevistanDashShotgunShoot : ShootActions.SandevistanDashShotgunShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

SandevistanDashSemiAutoShoot : ShootActions.SandevistanDashSemiAutoShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

SandevistanDashShootDefault : ShootActions.SandevistanDashShootDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

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"
	];
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

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"
	];
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceSimpleWoundedShootLeg : ShootActions.CommandForceSimpleWoundedShootLeg
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceSimpleShoot : ShootActions.CommandForceSimpleShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceWoundedShootLeg : ShootActions.CommandForceWoundedShootLeg
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceSandevistanDashShotgunShoot : ShootActions.CommandForceSandevistanDashShotgunShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceWoundedShoot : ShootActions.CommandForceWoundedShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceChargedShoot : ShootActions.CommandForceChargedShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CommandForceCrouchPreciseShoot : ShootActions.CommandForceCrouchPreciseShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceShoot : ShootActions.CommandForceShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CommandForceSniperShoot : ShootActions.CommandForceSniperShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CommandForceSniperShootTech : ShootActions.CommandForceSniperShootTech
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CommandForceCrouchSniperShoot : ShootActions.CommandForceCrouchSniperShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CommandForceCrouchSniperShootTech : ShootActions.CommandForceCrouchSniperShootTech
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CoverGetOutDefault : CoverActions.CoverGetOutDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

HighCoverChargedShoot : CoverActions.HighCoverChargedShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CoverChargedShootDefault : CoverActions.CoverChargedShootDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

HighCoverShoot : CoverActions.HighCoverShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

CoverShootDefault : CoverActions.CoverShootDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

CommandForceHighCoverChargedShoot : CoverActions.CommandForceHighCoverChargedShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CommandForceCoverChargedShootDefault : CoverActions.CommandForceCoverChargedShootDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
			timeDelay = 0.25f;
			offset = ( 0.0f, 0.0f, 1.0f );
		}
	];
}

CommandForceHighCoverShoot : CoverActions.CommandForceHighCoverShoot
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

CommandForceCoverShootDefault : CoverActions.CommandForceCoverShootDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

CoverGetBackDefault : CoverActions.CoverGetBackDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = 
			{
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

ReloadShotgun : ItemHandling.ReloadShotgun
{
	startup = 
	{
		duration = 0.333f;
	} : ItemHandling.ReloadDefaultStartup;
	loop = 
	{
		duration = 0.533f;
	} : ItemHandling.ReloadDefaultLoop;
	recovery = 
	{
		duration = 1.067f;
	} : ItemHandling.ReloadDefaultRecovery;
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

ReloadShotgunDual : ItemHandling.ReloadShotgunDual
{
	startup = 
	{
		duration = 0.333f;
	} : ItemHandling.ReloadDefaultStartup;
	loop = 
	{
		duration = 0.533f;
	} : ItemHandling.ReloadDefaultLoop;
	recovery = 
	{
		duration = 1.067f;
	} : ItemHandling.ReloadDefaultRecovery;
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

ReloadDefault : ItemHandling.ReloadDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

CoverReloadShotgun : ItemHandling.CoverReloadShotgun
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

CoverReloadShotgunDual : ItemHandling.CoverReloadShotgunDual
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

CoverReloadDefault : ItemHandling.CoverReloadDefault
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
				trackingMode = "TargetTracking.RealPosition";
			} : AIActionTarget.CombatTarget;
		}
	];
}

DodgeMeleeKerenzikovBackDefinition : DashAndDodgeActions.DodgeMeleeKerenzikovBackDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

DodgeKerenzikovBackDefinition : DashAndDodgeActions.DodgeKerenzikovBackDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

DodgeKerenzikovLeftFrontDefinition : DashAndDodgeActions.DodgeKerenzikovLeftFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

DodgeKerenzikovRightFrontDefinition : DashAndDodgeActions.DodgeKerenzikovRightFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

DodgeKerenzikovLeftOnSpotDefinition : DashAndDodgeActions.DodgeKerenzikovLeftOnSpotDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

DodgeKerenzikovRightOnSpotDefinition : DashAndDodgeActions.DodgeKerenzikovRightOnSpotDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

GrenadeDodgeKerenzikovBackDefinition : DashAndDodgeActions.GrenadeDodgeKerenzikovBackDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

GrenadeDodgeKerenzikovRightFrontDefinition : DashAndDodgeActions.GrenadeDodgeKerenzikovRightFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

GrenadeDodgeKerenzikovLeftFrontDefinition : DashAndDodgeActions.GrenadeDodgeKerenzikovLeftFrontDefinition
{
	lookats = 
	[
		{
			preset = "LookatPreset.Gang_Shotgun_Body_LootAt";
			target = 
			{
				targetSlot = "Head";
			} : AIActionTarget.CombatTarget;
		}, 
		{
			preset = "LookatPreset.Gang_Shotgun_Arms_LootAt";
			target = "AIActionTarget.CombatTarget";
		}
	];
}

