package Character
using RTDB, BaseStats

Lizzy_Wizzy_ep1 : Quest_Combat_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "ep1\quest\tertiary_characters\lizzy_wizzy_ep1.ent";
	savable = true;
	tags = 
	[
		"Immortal"
	];
	displayName = "LocKey#34544";
	fullDisplayName = "LocKey#34545";
	alternativeDisplayName = "LocKey#50646";
	alternativeFullDisplayName = "LocKey#50646";
	CName voiceTag = "lizzy_wizzy";
	reactionPreset = "ReactionPresets.NoReaction";
	baseAttitudeGroup = "friendly";
	fk< Affiliation > affiliation = "Factions.Unaffiliated";
}

jurij : militech_strongarms_hmelee3_fists_mb_elite
{
	priority = "SpawnableObjectPriority.Quest";
	archetypeName = "jurij";
	entityTemplatePath = "ep1\quest\tertiary_characters\jurij.ent";
	baseAttitudeGroup = "friendly";
	reactionPreset = "ReactionPresets.NoReaction";
	displayName = "LocKey#80578";
	fullDisplayName = "LocKey#80578";
	voiceTag = "Jurij";
	rarity = "NPCRarity.Boss";
	attachmentSlots += 
	[
		"AttachmentSlots.JurijMineThrowSpot"
	];
	savable = true;
	affiliation = "Factions.Barghest";
	objectActions += 
	[
		"GenericInteraction.ReturnTalk"
	];
	skipDisplayArchetype = true;
	dropsWeaponOnDeath = false;
	lootDrop = "LootTables.mq301_jurij_weapons_loot";
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Lexington_Krausser_Jurij";
				equipSlot = "AttachmentSlots.WeaponRight";
				onBodySlot = "AttachmentSlots.ItemSlotHandgunLeftJackie";
			} : NPCEquipmentItem, 
			{
				item = "Items.Preset_Omaha_Krausser_Jurij";
				equipSlot = "AttachmentSlots.WeaponLeft";
				onBodySlot = "AttachmentSlots.ItemSlotHandgunRightJackie";
			} : NPCEquipmentItem
		];
	};
	bountyDrawTable = 
	{
		bountyChoices = 
		[
			{
				bountySetter = "Factions.Militech";
				transgressions = 
				[
					{
						localizedDescription = "LocKey#48956";
					}
				];
				reward = "QuestRewards.mq301_jurij_reward";
			}
		];
	};
	statModifiers += 
	[
		{
			statType = "BaseStats.TBHsBaseSourceMultiplierCoefficient";
			modifierType = "Multiplier";
			value = 0.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.TBHsMinimumLineOfSightTime";
			modifierType = "Multiplier";
			value = 0.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Accuracy";
			modifierType = "Multiplier";
			value = 2f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DPS";
			modifierType = "Multiplier";
			value = 0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RandomCurveInput";
			modifierType = "Multiplier";
			value = 0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Additive";
			value = 20f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Quality";
			modifierType = "Additive";
			id = "quality_curves";
			column = "iconic_level_to_random_range_mult_new";
			refStat = "BaseStats.PowerLevel";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			id = "puppet_powerLevelToDPS";
			column = "puppet_weaponQualityToDPS";
			refStat = "BaseStats.Quality";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			id = "puppet_powerLevelToDPS";
			column = "puppet_intrinsic_levelToDPS";
			refStat = "BaseStats.PowerLevel";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			id = "boss_power_level_to_dps_mult";
			column = "jurij_level_to_dps_mult";
			refStat = "BaseStats.PowerLevel";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.ProjectilesPerShot";
			modifierType = "Additive";
			value = -1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 2.5f;
		} : ConstantStatModifier
	];
	statModifierGroups += 
	[
		"Character.Boss_Poise_Primary_Stat_ModGroup"
	];
	effectors = 
	[
		{
			prereqRecord = 
			{
				statType = "ProjectilesPerShotBase";
				valueToCheck = 4;
				comparisonType = "Greater";
			} : StatPrereq;
			fk< StatModifierGroup > statGroup = 
			{
				fk< StatModifier >[] statModifiers = 
				[
					{
						statType = "BaseStats.ProjectilesPerShot";
						modifierType = "Additive";
						value = -1f;
					} : ConstantStatModifier
				];
			};
		} : ApplyStatGroupEffector
	];
}

kruger : militech_tech_franged2_omaha_ma_rare
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "ep1\quest\tertiary_characters\kruger.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	displayName = "LocKey#80579";
	fullDisplayName = "LocKey#80580";
	CName voiceTag = "Kruger";
	skipDisplayArchetype = true;
	baseAttitudeGroup = "friendly";
	bountyDrawTable = 
	{
		bountyChoices = 
		[
			"Bounty.Q304_Kruger_Bounty"
		];
	};
	savable = true;
	fk< Affiliation > affiliation = "Factions.Barghest";
	objectActions += 
	[
		"GenericInteraction.ReturnTalk"
	];
}

babs : kurtz_soldier1_ranged2_rifle_wa
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "ep1\quest\tertiary_characters\babs.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	displayName = "LocKey#80581";
	fullDisplayName = "LocKey#80582";
	CName voiceTag = "Babs";
	baseAttitudeGroup = "friendly";
	savable = true;
	fk< Affiliation > affiliation = "Factions.Barghest";
	skipDisplayArchetype = true;
	bountyDrawTable = 
	{
		bountyChoices = 
		[
			{
				bountySetter = "Factions.NCPD";
				transgressions = 
				[
					{
						localizedDescription = "LocKey#48959";
					}
				];
				reward = "BountyReward.Generic";
			}
		];
	};
}

paco : Gameplay_NPC_Base
{
	quest = "NPCQuestAffiliation.MinorQuest";
	reactionPreset = "ReactionPresets.NoReaction";
	entityTemplatePath = "ep1\quest\tertiary_characters\paco.ent";
	displayName = "LocKey#80583";
	fullDisplayName = "LocKey#80584";
	CName voiceTag = "Paco";
	savable = true;
	baseAttitudeGroup = "paco";
	priority = "SpawnableObjectPriority.Quest";
	fk< Affiliation > affiliation = "Factions.Barghest";
	skipDisplayArchetype = true;
	bountyDrawTable = 
	{
		bountyChoices = 
		[
			{
				bountySetter = "Factions.NCPD";
				transgressions = 
				[
					{
						localizedDescription = "LocKey#51839";
					}
				];
				reward = "BountyReward.Generic";
			}
		];
	};
	actionMap = "Gang.Map";
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Character.NPCBaseRandomizers", "NPCStatPreset.AllDOTImmunity"
	];
	isBumpable = true;
	archetypeData = "ArchetypeData.GenericMeleeT2";
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.NPC_Strong_Arms";
				equipSlot = "AttachmentSlots.WeaponRight";
			} : NPCEquipmentItem
		];
	};
	secondaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Umbra_Bebe";
				equipSlot = "AttachmentSlots.WeaponRight";
			} : NPCEquipmentItem
		];
	};
}

bree : Quest_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "ep1\quest\tertiary_characters\bree.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	displayName = "LocKey#81602";
	fullDisplayName = "LocKey#81603";
	alternativeDisplayName = "LocKey#32390";
	alternativeFullDisplayName = "LocKey#32390";
	CName voiceTag = "Bree";
	baseAttitudeGroup = "friendly";
	savable = true;
	fk< Affiliation > affiliation = "Factions.Unaffiliated";
	objectActions += 
	[
		"GenericInteraction.ReturnTalk"
	];
	effectors = 
	[
		{
			fk< StatusEffect > statusEffect = "BaseStatusEffect.BlockGrapple";
		} : ApplyStatusEffectEffector
	];
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"HitReactionThresholdModifiers.Unstoppable"
	];
	contentAssignment = "DeviceContentAssignment.Autoscaling";
	lootDrop = "LootTables.Empty";
	dropsWeaponOnDeath = false;
	items = [];
	itemGroups = [];
}

dante : Quest_Combat_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "ep1\quest\tertiary_characters\dante.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	rarity = "NPCRarity.Elite";
	displayName = "LocKey#81604";
	fullDisplayName = "LocKey#81605";
	alternativeDisplayName = "LocKey#83813";
	alternativeFullDisplayName = "LocKey#83813";
	CName voiceTag = "Dante";
	baseAttitudeGroup = "friendly";
	savable = true;
	fk< Affiliation > affiliation = "Factions.Militech";
	objectActions += 
	[
		"GenericInteraction.ReturnTalk"
	];
	effectors = 
	[
		{
			fk< StatusEffect > statusEffect = "BaseStatusEffect.BlockGrapple";
		} : ApplyStatusEffectEffector
	];
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"HitReactionThresholdModifiers.Unstoppable"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.WoundedImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier
	];
	lootDrop = "LootTables.Empty";
	dropsWeaponOnDeath = false;
	items = [];
	itemGroups = [];
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Overture_Dante";
				equipSlot = "AttachmentSlots.WeaponRight";
				equipCondition = 
				[
					"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
				];
				unequipCondition = 
				[
					"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
				];
			} : NPCEquipmentItem
		];
	};
}

