package Kurtz
using RTDB, Character, ReactionsActions, AIActionTarget

DefaultNodeMap : AINodeMap
{
	map = 
	[
		{
			node = "GenericArchetype.CoverDecisionDefault";
			isOverriddenBy = "Gang.CoverDecisionDefault";
		}, 
		{
			node = "GenericArchetype.CoverDecisionNoBlind";
			isOverriddenBy = "Gang.CoverDecisionNoBlind";
		}, 
		{
			node = "GenericArchetype.EnterIdle";
			isOverriddenBy = "Kurtz.EnterIdle";
		}, 
		{
			node = "GenericArchetype.EnterAlerted";
			isOverriddenBy = "Kurtz.EnterAlerted";
		}, 
		{
			node = "GenericArchetype.EnterCombat";
			isOverriddenBy = "Kurtz.EnterCombat";
		}
	];
}

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 = "Gang_Handgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Revolver";
			map = "Gang_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 = "Gang_SubmachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Rifle";
			map = "Gang_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_AssaultRifle";
			map = "Gang_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_Shotgun";
			map = "Gang_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_ShotgunDual";
			map = "Gang_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_PrecisionRifle";
			map = "Gang_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_SniperRifle";
			map = "Gang_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_LightMachineGun";
			map = "Gang_LightMachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_HeavyMachineGun";
			map = "Gang_LightMachineGun.Map";
		}
	];
	defaultMap = "Kurtz.DefaultNodeMap";
}

EnterIdle : AIActionSmartComposite
{
	nodes = 
	[
		"Kurtz.DisableScannerLight", "GenericArchetype.ImmediateSuccess"
	];
}

EnterAlerted : AIActionSmartComposite
{
	nodes = 
	[
		"Kurtz.DisableScannerLight", "GenericArchetype.ImmediateSuccess"
	];
}

EnterCombat : AIActionSmartComposite
{
	nodes = 
	[
		"Kurtz.EnableScannerLight", "GenericArchetype.ImmediateSuccess"
	];
}

EnableScannerLight : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			OR = 
			[
				"Condition.CombatTarget", "Condition.InStatesCombat"
			];
		} : AIActionOR;
	};
	loop = 
	{
		duration = 0.0f;
	};
	subActions = 
	[
		{
			name = "ScannerOn";
		} : AISubActionQueueAIEvent
	];
}

DisableScannerLight : AIAction
{
	activationCondition = 
	{
		condition = 
		{
			OR = 
			[
				"Condition.InStatesAlerted", "Condition.InStatesRelaxed", "Condition.NotInStatesCombat"
			];
		} : AIActionOR;
	};
	loop = 
	{
		duration = 0.0f;
	};
	subActions = 
	[
		{
			name = "ScannerOff";
		} : AISubActionQueueAIEvent
	];
}

