package Character
using RTDB, BaseStats, Factions, ArchetypeData, ArchetypeType

militech_base : Gameplay_NPC_Base
{
	reactionPreset = "ReactionPresets.Ganger_Aggressive";
	baseAttitudeGroup = "militech";
	actionMap = "Corpo.Map";
	fk< AISquadParams > squadParamsID = "FactionSquads.MilitechSquad";
	fk< Affiliation > affiliation = "Factions.Militech";
	visualTags = 
	[
		"Militech"
	];
	statModifierGroups += 
	[
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			column = "militech";
		} : FactionNPCRarityBonus
	];
	isBumpable = true;
	abilities += 
	[
		"Ability.IsDefensive", "Ability.CanUseFlashbangGrenades"
	];
	lootBagEntity = "militechDropBag";
}

militech_base_ma : militech_base
{
	[ EP1 ]
	entityTemplatePath = "ep1\characters\entities\corpo\corpo__ep1_militech_ma.ent";
}

militech_base_mah : militech_base
{
	[ EP1 ]
	entityTemplatePath = "ep1\characters\entities\corpo\corpo__ep1_militech_mah.ent";
}

militech_base_mb : militech_base
{
	visualTags += 
	[
		"Big"
	];
	[ EP1 ]
	entityTemplatePath = "ep1\characters\entities\corpo\corpo__ep1_militech_mb.ent";
}

militech_base_drone_bombus : Drone_Bombus_Base
{
	squadParamsID = "FactionSquads.MilitechSquad";
	affiliation = "Factions.Militech";
	visualTags = 
	[
		"Militech"
	];
}

militech_base_drone_wyvern : Drone_Wyvern_Base
{
	squadParamsID = "FactionSquads.MilitechSquad";
	affiliation = "Factions.Militech";
	visualTags = 
	[
		"Militech"
	];
}

militech_base_drone_griffin : Drone_Griffin_Base
{
	squadParamsID = "FactionSquads.MilitechSquad";
	affiliation = "Factions.Militech";
	visualTags = 
	[
		"Militech"
	];
}

militech_base_drone_octant : Drone_Octant_Base
{
	squadParamsID = "FactionSquads.MilitechSquad";
	affiliation = "Factions.Militech";
	visualTags = 
	[
		"Militech"
	];
}

militech_base_android : Android_NPC_Base
{
	[ EP1 ]
	entityTemplatePath = "ep1\characters\entities\corpo\corpo__ep1_android_ma.ent";
	displayName = "Militech Droid";
	actionMap = "CorpoAndroid.Map";
	fk< AISquadParams > squadParamsID = "FactionSquads.MilitechSquad";
	fk< Affiliation > affiliation = "Factions.Militech";
	visualTags = 
	[
		"Militech"
	];
}

militech_base_minotaur : Mech_NPC_Base
{
	displayName = "Militech Minotaur";
	actionMap = "MinotaurMech.Map";
	visualTags = 
	[
		"Militech"
	];
	fk< AISquadParams > squadParamsID = "FactionSquads.MilitechSquad";
	fk< Affiliation > affiliation = "Factions.Militech";
	uiNameplate = "UINameplate.QuestSettings";
}

militech_ranger1_ranged1_lexington_ma : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechPrimaryHandgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	visualTags += 
	[
		"Lvl1", "Ranger"
	];
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22654";
		} : ArchetypeType.GenericRangedT1;
	} : ArchetypeData.GenericRangedT1;
	lootDrop = "Loot.MilitechGenericRangedRangerT1_handgun";
	rarity = "NPCRarity.Weak";
}

militech_ranger1_ranged1_saratoga_ma : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSMGPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	visualTags += 
	[
		"Lvl1", "Ranger"
	];
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22654";
		} : ArchetypeType.GenericRangedT1;
	} : ArchetypeData.GenericRangedT1;
	lootDrop = "Loot.MilitechGenericRangedRangerT1_smg";
	rarity = "NPCRarity.Weak";
}

militech_ranger2_ranged2_ajax_ma : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechAssaultRiflePool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	visualTags += 
	[
		"Lvl2", "Ranger"
	];
	rarity = "NPCRarity.Normal";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22655";
		} : ArchetypeType.GenericRangedT2;
	} : ArchetypeData.GenericRangedT2;
	lootDrop = "Loot.MilitechGenericRangedRangerT2";
}

militech_ranger2_ranged2_omaha_ma : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechPrimaryHandgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	visualTags += 
	[
		"Lvl2", "Ranger"
	];
	rarity = "NPCRarity.Normal";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22655";
		} : ArchetypeType.GenericRangedT2;
	} : ArchetypeData.GenericRangedT2;
	lootDrop = "Loot.MilitechGenericRangedRangerT1_smg";
}

militech_enforcer2_shotgun2_tactician_mah_rare : militech_base_mah
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechShotgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	visualTags += 
	[
		"Lvl2", "Enforcer"
	];
	rarity = "NPCRarity.Rare";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22658";
		} : ArchetypeType.ShotgunnerT2;
	} : ArchetypeData.ShotgunnerT2;
	lootDrop = "Loot.MilitechShotgunEnforcerT2";
}

militech_soldier3_shotgun3_crusher_mah_elite : militech_base_mah
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechShotgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	rarity = "NPCRarity.Elite";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22664";
		} : ArchetypeType.ShotgunnerT3;
	} : ArchetypeData.ShotgunnerT3;
	lootDrop = "Loot.MilitechShotgunSoldierT3";
	visualTags += 
	[
		"Lvl3", "Soldier"
	];
}

militech_enforcer3_gunner3_HMG_mb_elite : militech_base_mb
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_HMG_Military";
				equipSlot = "AttachmentSlots.WeaponRight";
			} : NPCEquipmentItem
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22666";
		} : ArchetypeType.HeavyRangedT3;
	} : ArchetypeData.HeavyRangedT3;
	lootDrop = "Loot.MilitechGunnerEnforcerT3";
	visualTags += 
	[
		"Enforcer", "Lvl3"
	];
	rarity = "NPCRarity.Elite";
	useForcedTBHZOffset = true;
	forcedTBHZOffset = -0.3f;
}

militech_strongarms_hmelee3_fists_mb_elite : militech_base_mb
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.NPC_Strong_Arms";
				equipSlot = "AttachmentSlots.WeaponRight";
				equipCondition = 
				[
					"WeaponConditions.BaseMeleePrimaryWeaponEquipCondition"
				];
				unequipCondition = 
				[
					"WeaponConditions.BaseMeleePrimaryWeaponUnequipCondition"
				];
			} : NPCEquipmentItem
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	archetypeData = "ArchetypeData.HeavyMeleeT3";
	visualTags += 
	[
		"Martial", "Lvl3"
	];
	rarity = "NPCRarity.Elite";
	dropsWeaponOnDeath = false;
}

militech_tech_franged2_omaha_ma_rare : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechPrimaryHandgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#42634";
		} : ArchetypeType.FastRangedT2;
	} : ArchetypeData.FastRangedT2;
	rarity = "NPCRarity.Rare";
	visualTags += 
	[
		"Tech"
	];
	lootDrop = "Loot.MilitechFastRangedTechT2";
}

militech_tech_grenadier2_omaha_ma_rare : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechPrimaryHandgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22671";
		} : ArchetypeType.TechieT2;
	} : ArchetypeData.TechieT2;
	rarity = "NPCRarity.Rare";
	visualTags += 
	[
		"Tech"
	];
	lootDrop = "Loot.MilitechGrenadierTechT2";
}

militech_recon_sniper2_achilles_ma_rare : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSniperRiflePool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	sensePreset = "Senses.SniperRelaxed50m";
	relaxedSensesPreset = "SniperRelaxed50m";
	alertedSensesPreset = "SniperAlerted50m";
	combatSensesPreset = "SniperCombat50m";
	visualTags += 
	[
		"Recon"
	];
	rarity = "NPCRarity.Rare";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22669";
		} : ArchetypeType.SniperT2;
	} : ArchetypeData.SniperT2;
	lootDrop = "Loot.MilitechSniperReconT2";
}

militech_android_android2_ajax_ma : militech_base_android
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechAssaultRiflePool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	rarity = "NPCRarity.Normal";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22674";
		} : ArchetypeType.AndroidRangedT2;
	} : ArchetypeData.AndroidRangedT2;
}

militech_android_android2_crusher_ma : militech_base_android
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechShotgunPool
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
			} : MilitechSecondaryHandgunPool
		];
	};
	rarity = "NPCRarity.Normal";
	archetypeData = 
	{
		type = 
		{
			localizedName = "LocKey#22674";
		} : ArchetypeType.AndroidRangedT2;
	} : ArchetypeData.AndroidRangedT2;
}

militech_officer_officer_omaha_ma : militech_base_ma
{
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Omaha_Military";
				equipSlot = "AttachmentSlots.WeaponRight";
				onBodySlot = "AttachmentSlots.ItemSlotHandgunRight";
				equipCondition = 
				[
					"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
				];
				unequipCondition = 
				[
					"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
				];
			} : NPCEquipmentItem
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Lexington_Military";
				equipSlot = "AttachmentSlots.WeaponRight";
			} : NPCEquipmentItem
		];
	};
	rarity = "NPCRarity.Officer";
	visualTags += 
	[
		"Officer"
	];
}

militech_drone_bombus_easy : militech_base_drone_bombus
{
}

militech_drone_bombus_medium : militech_base_drone_bombus
{
}

militech_drone_bombus_hard : militech_base_drone_bombus
{
}

militech_drone_wyvern_easy : militech_base_drone_wyvern
{
}

militech_drone_wyvern_medium : militech_base_drone_wyvern
{
}

militech_drone_wyvern_hard : militech_base_drone_wyvern
{
}

militech_drone_griffin_easy : militech_base_drone_griffin
{
}

militech_drone_griffin_medium : militech_base_drone_griffin
{
}

militech_drone_griffin_hard : militech_base_drone_griffin
{
}

militech_drone_octant_easy : militech_base_drone_octant
{
}

militech_drone_octant_medium : militech_base_drone_octant
{
}

militech_drone_octant_hard : militech_base_drone_octant
{
}

militech_minotaur : militech_base_minotaur
{
	actionMap = "MinotaurMech.Map";
	CName weaponSlot = "AttachmentSlots.WeaponRight";
	displayName = "LocKey#48900";
	fk< InventoryItem >[] items = 
	[
		{
			item = "Items.Minotaur_HMG_Right";
			quantity = 1;
		}, 
		{
			item = "Items.Minotaur_HMG_Left";
			quantity = 1;
		}, 
		{
			item = "Items.Minotaur_Launcher_Right";
			quantity = 1;
		}, 
		{
			item = "Items.Minotaur_Launcher_Left";
			quantity = 1;
		}
	];
}

MilitechPrimaryHandgunPool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Lexington_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Omaha_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry
	];
}

MilitechSecondaryHandgunPool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Lexington_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
				} : NPCEquipmentItem
			];
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Omaha_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
				} : NPCEquipmentItem
			];
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry
	];
}

MilitechAssaultRiflePool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Umbra_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Ajax_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 999;
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Kyubi_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 999;
			minLevel = 33;
		} : NPCEquipmentItemsPoolEntry
	];
}

MilitechSMGPool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Pulsar_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Saratoga_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 999;
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry
	];
}

MilitechShotgunPool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Tactician_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Crusher_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 999;
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry
	];
}

MilitechSniperRiflePool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Sor22_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponSniperEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponSniperUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 10;
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Achilles_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponSniperEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponSniperUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 999;
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Nekomata_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					onBodySlot = "AttachmentSlots.ItemSlotGenericRanged";
					equipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponSniperEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponSniperUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 1;
		} : NPCEquipmentItemsPoolEntry
	];
}

MilitechSniperSMGPool : NPCEquipmentItemPool
{
	pool = 
	[
		{
			items = 
			[
				{
					item = "Items.Preset_Saratoga_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					equipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponRangedEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponRangedUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 999;
			minLevel = 17;
		} : NPCEquipmentItemsPoolEntry, 
		{
			items = 
			[
				{
					item = "Items.Preset_Pulsar_Military";
					equipSlot = "AttachmentSlots.WeaponRight";
					onBodySlot = "AttachmentSlots.ItemSlotGenericRanged";
					equipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponRangedEquipCondition"
					];
					unequipCondition = 
					[
						"WeaponConditions.SniperPrimaryWeaponRangedUnequipCondition"
					];
				} : NPCEquipmentItem
			];
			weight = 1;
		} : NPCEquipmentItemsPoolEntry
	];
}

