package GangAssault
using RTDB, ItemType, MovementActions, CombatDecorator

DefaultNodeMap : AINodeMap
{
	map = 
	[
		{
			node = "GenericArchetype.RingSelector";
			isOverriddenBy = "GangAssault.RingSelector";
		}, 
		{
			node = "GenericArchetype.SimpleRingSelector";
			isOverriddenBy = "GangAssault.SimpleRingSelector";
		}, 
		{
			node = "GenericArchetype.CoverPresetDecoratorSelector";
			isOverriddenBy = "GangAssault.CoverPresetDecoratorSelector";
		}
	];
}

Map : ActionMap
{
	map = 
	[
		{
			itemType = "ItemType.Wea_Fists";
			map = "Gang_Fists.Map";
		}, 
		{
			itemType = "ItemType.Cyb_StrongArms";
			map = "Gang_Fists.Map";
		}, 
		{
			itemType = "ItemType.Wea_Hammer";
			map = "Gang_Hammer.Map";
		}, 
		{
			itemType = "ItemType.Wea_Handgun";
			map = "GangAssault_Handgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Revolver";
			map = "GangAssault_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 = "GangAssault_SubmachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Rifle";
			map = "GangAssault_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_AssaultRifle";
			map = "GangAssault_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_Shotgun";
			map = "GangAssault_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_ShotgunDual";
			map = "GangAssault_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_PrecisionRifle";
			map = "GangAssault_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_SniperRifle";
			map = "GangAssault_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_LightMachineGun";
			map = "GangAssault_LightMachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_HeavyMachineGun";
			map = "GangAssault_LightMachineGun.Map";
		}
	];
	defaultMap = "GangAssault.DefaultNodeMap";
}

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 = 
	[
		"GangAssault.AssaultCompoundCoverSelectionPreset"
	];
}

AssaultCompoundCoverSelectionPreset : AIAction
{
	loop = 
	{
		toNextPhaseConditionCheckInterval = 1.f;
		toNextPhaseCondition = 
		[
			{
				condition = 
				{
					OR = 
					[
						"Condition.IsFollower"
					];
				} : AIActionOR;
			}
		];
	};
	subActions = 
	[
		{
			preset = "ShotgunnerCompound";
			initialPreset = "ShotgunnerCompoundInitial";
		} : AISubActionChangeCoverSelectionPreset
	];
}

