package GangAndroid
using RTDB, ItemType, MovementActions, CombatDecorator, ShootActions

DefaultNodeMap : AINodeMap
{
	map = 
	[
		{
			node = "GenericArchetype.EnterIdle";
			isOverriddenBy = "CorpoAndroid.EnterIdle";
		}, 
		{
			node = "GenericArchetype.EnterAlerted";
			isOverriddenBy = "CorpoAndroid.EnterAlerted";
		}, 
		{
			node = "GenericArchetype.EnterCombat";
			isOverriddenBy = "CorpoAndroid.EnterCombat";
		}, 
		{
			node = "GenericArchetype.RingSelector";
			isOverriddenBy = "GangAndroid.RingSelector";
		}, 
		{
			node = "GenericArchetype.SimpleRingSelector";
			isOverriddenBy = "GangAndroid.SimpleRingSelector";
		}, 
		{
			node = "GenericArchetype.CoverPresetDecoratorSelector";
			isOverriddenBy = "GangAndroid.CoverPresetDecoratorSelector";
		}, 
		{
			node = "GenericArchetype.ShootSelector";
			isOverriddenBy = "CorpoAndroid.ShootSelector";
		}, 
		{
			node = "GenericArchetype.CommandForceShootSelector";
			isOverriddenBy = "CorpoAndroid.CommandForceShootSelector";
		}, 
		{
			node = "MovementActions.StrafeSelector";
			isOverriddenBy = "GangAndroid.StrafeSelector";
		}, 
		{
			node = "GenericArchetype.SandevistanDashShotgunShoot";
			isOverriddenBy = "GangAndroid.SandevistanDashShotgunShoot";
		}, 
		{
			node = "GenericArchetype.SandevistanDashShootDefault";
			isOverriddenBy = "GangAndroid.SandevistanDashShootDefault";
		}, 
		{
			node = "GenericArchetype.SandevistanDashSemiAutoShoot";
			isOverriddenBy = "GangAndroid.SandevistanDashSemiAutoShoot";
		}, 
		{
			node = "ReactionsActions.LookAroundForIntruder";
			isOverriddenBy = "CorpoAndroid.LookAroundForIntruder";
		}, 
		{
			node = "ReactionsActions.LookAroundForIntruderUnarmed";
			isOverriddenBy = "CorpoAndroid.LookAroundForIntruderUnarmed";
		}, 
		{
			node = "ReactionsActions.LookAroundForWhistle";
			isOverriddenBy = "CorpoAndroid.LookAroundForWhistle";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigation";
			isOverriddenBy = "CorpoAndroid.DeviceInvestigation";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationUnarmed";
			isOverriddenBy = "CorpoAndroid.DeviceInvestigationUnarmed";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationHigh";
			isOverriddenBy = "CorpoAndroid.DeviceInvestigationHigh";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationHighUnarmed";
			isOverriddenBy = "CorpoAndroid.DeviceInvestigationHighUnarmed";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationLow";
			isOverriddenBy = "CorpoAndroid.DeviceInvestigationLow";
		}, 
		{
			node = "ReactionsActions.DeviceInvestigationLowUnarmed";
			isOverriddenBy = "CorpoAndroid.DeviceInvestigationLowUnarmed";
		}, 
		{
			node = "ReactionsActions.BodyInvestigationSearch";
			isOverriddenBy = "CorpoAndroid.BodyInvestigationSearch";
		}, 
		{
			node = "ReactionsActions.BodyInvestigationSearchUnarmed";
			isOverriddenBy = "CorpoAndroid.BodyInvestigationSearchUnarmed";
		}, 
		{
			node = "ReactionsActions.BodyInvestigationPatrol";
			isOverriddenBy = "CorpoAndroid.BodyInvestigationPatrol";
		}, 
		{
			node = "ReactionsActions.BodyInvestigationPatrolUnarmed";
			isOverriddenBy = "CorpoAndroid.BodyInvestigationPatrolUnarmed";
		}, 
		{
			node = "ReactionsActions.CallSquadTalk";
			isOverriddenBy = "CorpoAndroid.CallSquadTalk";
		}, 
		{
			node = "ReactionsActions.LookAtExplosionSource";
			isOverriddenBy = "ReactionsActions.RotateToStimSource";
		}, 
		{
			node = "ReactionsActions.LookAwayFromWhistle";
			isOverriddenBy = "ReactionsActions.LookAwayFromWhistleNoBodyLookat";
		}, 
		{
			node = "GenericArchetype.SE_SetFriendly";
			isOverriddenBy = "CorpoAndroid.SE_SetFriendly";
		}
	];
}

Map : ActionMap
{
	map = 
	[
		{
			itemType = "ItemType.Wea_Fists";
			map = "GangAndroid_Fists.Map";
		}, 
		{
			itemType = "ItemType.Cyb_StrongArms";
			map = "GangAndroid_Fists.Map";
		}, 
		{
			itemType = "ItemType.Wea_Hammer";
			map = "Gang_Hammer.Map";
		}, 
		{
			itemType = "ItemType.Wea_Handgun";
			map = "GangAndroid_Handgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Revolver";
			map = "GangAndroid_Handgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Katana";
			map = "Gang_Katana.Map";
		}, 
		{
			itemType = "ItemType.Wea_Sword";
			map = "Gang_Katana.Map";
		}, 
		{
			itemType = "ItemType.Wea_Knife";
			map = "Gang_Knife.Map";
		}, 
		{
			itemType = "ItemType.Wea_ShortBlade";
			map = "Gang_Knife.Map";
		}, 
		{
			itemType = "ItemType.Wea_LongBlade";
			map = "Gang_LongBlade.Map";
		}, 
		{
			itemType = "ItemType.Wea_Axe";
			map = "Gang_LongBlade.Map";
		}, 
		{
			itemType = "ItemType.Wea_Chainsword";
			map = "Gang_LongBlade.Map";
		}, 
		{
			itemType = "ItemType.Wea_Machete";
			map = "Gang_LongBlade.Map";
		}, 
		{
			itemType = "ItemType.Cyb_MantisBlades";
			map = "Gang_MantisBlades.Map";
		}, 
		{
			itemType = "ItemType.Wea_OneHandedClub";
			map = "Gang_OneHandedClub.Map";
		}, 
		{
			itemType = "ItemType.Wea_TwoHandedClub";
			map = "Gang_TwoHandedClub.Map";
		}, 
		{
			itemType = "ItemType.Wea_SubmachineGun";
			map = "GangAndroid_SubmachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Rifle";
			map = "GangAndroid_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_AssaultRifle";
			map = "GangAndroid_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_Shotgun";
			map = "GangAndroid_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_ShotgunDual";
			map = "GangAndroid_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_PrecisionRifle";
			map = "GangAndroid_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_SniperRifle";
			map = "GangAndroid_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_LightMachineGun";
			map = "GangAndroid_LightMachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_HeavyMachineGun";
			map = "GangAndroid_LightMachineGun.Map";
		}
	];
	defaultMap = "GangAndroid.DefaultNodeMap";
}

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

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

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

ShootSelector : ShootActions.ShootSelector
{
	actions = 
	[
		"ShootActions.WoundedShoot", "GenericArchetype.WoundedShootLeg", "GenericArchetype.ChargedShoot", "GenericArchetype.Shoot"
	];
}

CommandForceShootSelector : ShootActions.CommandForceShootSelector
{
	actions = 
	[
		"ShootActions.CommandForceWoundedShoot", "GenericArchetype.CommandForceWoundedShootLeg", "GenericArchetype.CommandForceChargedShoot", "GenericArchetype.CommandForceShoot"
	];
}

StrafeSelector : MovementActions.StrafeSelector
{
	activationCondition = 
	{
		condition = 
		{
			AND = 
			[
				"Condition.NotAndroid"
			];
		} : AIActionAND;
	};
	actions = 
	[
		"GenericArchetype.Success"
	];
}

SandevistanDashShootDefault : ShootActions.SandevistanDashShootDefault
{
	startup = 
	{
		duration = 0.f;
		changeNPCState = 
		{
			upperBodyState = "Shoot";
			locomotionMode = "Static";
		};
	};
	recovery = 
	{
		duration = 0.f;
		changeNPCState = 
		{
			upperBodyState = "Shoot";
			locomotionMode = "Static";
		};
	};
	animData = 
	{
		animFeature = "ShootAction";
	};
	allowBlendDuration = 0.f;
}

SandevistanDashSemiAutoShoot : GangAndroid.SandevistanDashShootDefault
{
}

SandevistanDashShotgunShoot : GangAndroid.SandevistanDashShootDefault
{
}

