package MaxTacNetrunner
using RTDB, ItemType, MovementActions, CombatDecorator, ItemHandling, NetrunnerActions, CoverActions, ShootActions, GangNetrunner, MaxTacNetrunner_Handgun

DefaultNodeMap : AINodeMap
{
	map = 
	[
		{
			node = "MovementActions.RangedAvoidLOSCondition";
			isOverriddenBy = "GangNetrunner.RangedAvoidLOSCondition";
		}, 
		{
			node = "MovementActions.RangedAvoidLOSSequence";
			isOverriddenBy = "GangNetrunner.RangedAvoidLOSSequence";
		}, 
		{
			node = "MovementActions.RangedAvoidLOSHoldPosition";
			isOverriddenBy = "GangNetrunner.RangedAvoidLOSHoldPosition";
		}, 
		{
			node = "GenericArchetype.RingSelector";
			isOverriddenBy = "GangNetrunner.RingSelector";
		}, 
		{
			node = "GenericArchetype.SimpleRingSelector";
			isOverriddenBy = "GangNetrunner.SimpleRingSelector";
		}, 
		{
			node = "MovementActions.SprintToCover";
			isOverriddenBy = "GangNetrunner.SprintToCover";
		}, 
		{
			node = "CoverActions.CoverBehaviorComposite";
			isOverriddenBy = "MaxTacNetrunner.CoverBehaviorComposite";
		}, 
		{
			node = "GenericArchetype.CoverPresetDecoratorSelector";
			isOverriddenBy = "GangNetrunner.CoverPresetDecoratorSelector";
		}, 
		{
			node = "GenericArchetype.WeaponHandlingComposite";
			isOverriddenBy = "MaxTacNetrunner.WeaponHandlingComposite";
		}, 
		{
			node = "GenericArchetype.ShootSelector";
			isOverriddenBy = "GangNetrunner.ShootSelector";
		}, 
		{
			node = "GenericArchetype.ChargedShoot";
			isOverriddenBy = "GangNetrunner.ChargedShoot";
		}, 
		{
			node = "GenericArchetype.CrouchPreciseShoot";
			isOverriddenBy = "GangNetrunner.CrouchPreciseShoot";
		}, 
		{
			node = "GenericArchetype.Shoot";
			isOverriddenBy = "GangNetrunner.Shoot";
		}, 
		{
			node = "ItemHandling.ShootingSpotBehaviorComposite";
			isOverriddenBy = "GangNetrunner.ShootingSpotBehaviorComposite";
		}, 
		{
			node = "ItemHandling.CoverReloadSelector";
			isOverriddenBy = "GangNetrunner.CoverReloadSelector";
		}, 
		{
			node = "CoverActions.StayInDesiredCover";
			isOverriddenBy = "GangNetrunner.StayInDesiredCover";
		}, 
		{
			node = "CoverActions.RegularCoverActivationCheckSuccess";
			isOverriddenBy = "GangNetrunner.RegularCoverActivationCheckSuccess";
		}, 
		{
			node = "CoverActions.CoverActivationCheckSuccess";
			isOverriddenBy = "GangNetrunner.CoverActivationCheckSuccess";
		}, 
		{
			node = "CoverActions.CoverGetBackSelector";
			isOverriddenBy = "GangNetrunner.CoverGetBackSelector";
		}, 
		{
			node = "CoverActions.CoverCommandForceShootSelector";
			isOverriddenBy = "GangNetrunner.CoverCommandForceShootSelector";
		}, 
		{
			node = "CoverActions.SimpleCoverShootSelector";
			isOverriddenBy = "GangNetrunner.SimpleCoverShootSelector";
		}, 
		{
			node = "CoverActions.CoverShootSelector";
			isOverriddenBy = "GangNetrunner.CoverShootSelector";
		}, 
		{
			node = "CoverActions.CoverGetOutSelector";
			isOverriddenBy = "GangNetrunner.CoverGetOutSelector";
		}, 
		{
			node = "CombatDecorator.InsideCoverDecorator";
			isOverriddenBy = "GangNetrunner.InsideCoverDecorator";
		}, 
		{
			node = "CoverActions.SetDesiredCoverSelector";
			isOverriddenBy = "GangNetrunner.SetDesiredCoverSelector";
		}, 
		{
			node = "MovementActions.ExtremeRing2ndFilterCoverAny";
			isOverriddenBy = "GangNetrunner.ExtremeRing2ndFilterCoverAny";
		}, 
		{
			node = "MovementActions.FarRing2ndFilterCoverAny";
			isOverriddenBy = "GangNetrunner.FarRing2ndFilterCoverAny";
		}, 
		{
			node = "MovementActions.MediumRing2ndFilterCoverAny";
			isOverriddenBy = "GangNetrunner.MediumRing2ndFilterCoverAny";
		}, 
		{
			node = "MovementActions.ExtremeRing2ndFilterNoLimit";
			isOverriddenBy = "GangNetrunner.ExtremeRing2ndFilterNoLimit";
		}, 
		{
			node = "MovementActions.FarRing2ndFilterNoLimit";
			isOverriddenBy = "GangNetrunner.FarRing2ndFilterNoLimit";
		}, 
		{
			node = "MovementActions.MediumRing2ndFilterNoLimit";
			isOverriddenBy = "GangNetrunner.MediumRing2ndFilterNoLimit";
		}, 
		{
			node = "CoverActions.ExitCoverSelector";
			isOverriddenBy = "GangNetrunner.ExitCoverSelector";
		}, 
		{
			node = "CoverActions.WaitInCover";
			isOverriddenBy = "GangNetrunner.WaitInCover";
		}, 
		{
			node = "CoverActions.ChillInCover";
			isOverriddenBy = "GangNetrunner.ChillInCover";
		}, 
		{
			node = "CoverActions.CoverPeek";
			isOverriddenBy = "GangNetrunner.CoverPeek";
		}, 
		{
			node = "CoverActions.CoverPeekNoTarget";
			isOverriddenBy = "GangNetrunner.CoverPeekNoTarget";
		}
	];
}

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 = "MaxTacNetrunner_Handgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Revolver";
			map = "MaxTacNetrunner_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 = "GangNetrunner_SubmachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_Rifle";
			map = "GangNetrunner_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_AssaultRifle";
			map = "GangNetrunner_Rifle.Map";
		}, 
		{
			itemType = "ItemType.Wea_Shotgun";
			map = "GangNetrunner_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_ShotgunDual";
			map = "GangNetrunner_Shotgun.Map";
		}, 
		{
			itemType = "ItemType.Wea_PrecisionRifle";
			map = "GangNetrunner_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_SniperRifle";
			map = "GangNetrunner_Sniper.Map";
		}, 
		{
			itemType = "ItemType.Wea_LightMachineGun";
			map = "GangNetrunner_LightMachineGun.Map";
		}, 
		{
			itemType = "ItemType.Wea_HeavyMachineGun";
			map = "GangNetrunner_LightMachineGun.Map";
		}
	];
	defaultMap = "MaxTacNetrunner.DefaultNodeMap";
}

WeaponHandlingComposite : ItemHandling.WeaponHandlingComposite
{
	nodes = 
	[
		"ItemHandling.SuccessIfSprinting", "ItemHandling.SuccessIfEquipping", "CoverActions.RegularCoverActivationCheckSuccess", "NetrunnerActions.HackActionSelector_MaxTac_Alone", "NetrunnerActions.HackActionSelector_MaxTac", "ItemHandling.CommandThrowGrenadeSelector", "ItemHandling.ThrowGrenadeSelector", "MeleeActions.QuickMelee", "SpecialActions.UseCombatStimConsumable", "GenericArchetype.ReloadSelector", "GenericArchetype.CommandForceShootSelector", "GangNetrunner.ShootSelector", "GenericArchetype.Success"
	];
}

CoverBehaviorComposite : AIActionSmartComposite
{
	nodes = 
	[
		"SpecialActions.CoverUseCombatStimConsumable", "CoverActions.WaitInCoverSelector", "NetrunnerActions.CoverHackSelector_MaxTac_Alone", "NetrunnerActions.CoverHackSelector_MaxTac", "CoverActions.CoverDecisionSelector", "CoverActions.CoverPeekSelector", "SpecialActions.TauntHiddenPlayer", "CoverActions.CoverThrowGrenadeSelector", "GenericArchetype.CoverReloadSelector", "CoverActions.ExitCoverSelector", "CoverActions.ImmediateSuccess"
	];
	type = "AISmartCompositeType.Sequence";
}

