package Character
using RTDB, BaseStats

female_tpp_V : Quest_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "base\characters\entities\player\player_wa_tpp.ent";
}

female_tpp_V_headless : Quest_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "base\cinematics\entities\player_woman_headless.ent";
}

johnny_replacer : Player_Replacer_Puppet_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "base\characters\entities\player\replacer\johnny_silverhand_replacer.ent";
	displayName = "LocKey#34405";
	fullDisplayName = "LocKey#34406";
	alternativeDisplayName = "LocKey#37907";
	CName voiceTag = "johnny";
	savable = true;
	persistentName = "";
	fk< StatPool >[] statPools = 
	[
		"BaseStatPools.Johnny_Health_Base", "BaseStatPools.Player_Stamina_Base", "BaseStatPools.Player_Oxygen_Base", "BaseStatPools.Player_Adrenaline_Base", "BaseStatPools.Memory"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 2.048;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthInCombatRegenEnabled";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthInCombatRegenEndThreshold";
			modifierType = "Additive";
			value = 100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthOutOfCombatRegenEndThreshold";
			modifierType = "Additive";
			value = 100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthOutOfCombatRegenRate";
			modifierType = "Multiplier";
			value = 10;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthInCombatRegenRate";
			modifierType = "Multiplier";
			value = 10;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthInCombatStartDelay";
			modifierType = "Additive";
			value = 3;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HealthOutOfCombatRegenDelayOnChange";
			modifierType = "Additive";
			value = 3;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasCybereye";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.MaxSpeed";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier
	];
	effectors = 
	[
		{
			fk< StatusEffect > statusEffect = "GameplayRestriction.InfiniteAmmo";
		} : ApplyStatusEffectEffector, 
		{
			prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
			statGroup = 
			{
				statModifiers = 
				[
					{
						statType = "BaseStats.DPS";
						modifierType = "Multiplier";
						value = 6.8f;
					} : ConstantStatModifier
				];
			};
			applicationTarget = "Weapon";
		} : ApplyStatGroupEffector
	];
	fk< GenderEntity >[] genders = 
	[
		{
			initial = true;
			gender = "Gender.Male";
			entity = "base\characters\entities\player\replacer\johnny_silverhand_replacer.ent";
		}
	];
	fk< AttachmentSlot >[] attachmentSlots = 
	[
		"AttachmentSlots.WeaponRight", "AttachmentSlots.WeaponLeft", "AttachmentSlots.TppHead", "AttachmentSlots.PersonalLink", "AttachmentSlots.Consumable", "AttachmentSlots.Splinter"
	];
}

braindance_replacer : Player_Replacer_Puppet_Base
{
	priority = "SpawnableObjectPriority.Quest";
	entityTemplatePath = "base\characters\entities\player\replacer\braindance_replacer.ent";
	displayName = "LocKey#34407";
	savable = true;
	fk< GenderEntity >[] genders = 
	[
		{
			initial = true;
			gender = "Gender.Default";
			entity = "base\characters\entities\player\replacer\braindance_replacer.ent";
		}
	];
	persistentName = "V";
	attachmentSlots = [];
	EquipmentAreas = [];
	itemGroups = [];
	items = [];
}

Delamain : Quest_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	tags = 
	[
		"Invulnerable"
	];
	entityTemplatePath = "base\quest\primary_characters\delamain.ent";
	displayName = "LocKey#34408";
	fullDisplayName = "LocKey#34409";
	CName voiceTag = "delamain";
	savable = true;
	fk< Affiliation > affiliation = "Factions.Unaffiliated";
}

Evelyn : Quest_Combat_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	tags = 
	[
		"Invulnerable"
	];
	entityTemplatePath = "base\quest\primary_characters\evelyn.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	baseAttitudeGroup = "friendly";
	displayName = "LocKey#34410";
	fullDisplayName = "LocKey#34411";
	alternativeDisplayName = "LocKey#32233";
	alternativeFullDisplayName = "LocKey#32235";
	CName voiceTag = "evelyn";
	rarity = "NPCRarity.Elite";
	savable = true;
	fk< Affiliation > affiliation = "Factions.Unaffiliated";
	statModifiers = 
	[
		{
			statType = "BaseStats.HackingResistance";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

Panam : aldecaldos_grunt2_sniper2_sor22_wa_elite
{
	priority = "SpawnableObjectPriority.Quest";
	tags += 
	[
		"Invulnerable"
	];
	entityTemplatePath = "base\quest\primary_characters\panam.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	isBumpable = false;
	displayName = "LocKey#34412";
	fullDisplayName = "LocKey#34413";
	CName voiceTag = "panam";
	baseAttitudeGroup = "panam";
	archetypeData = "ArchetypeData.SniperT2";
	sensePreset = "Senses.panam_sniper_relaxed";
	relaxedSensesPreset = "panam_sniper_relaxed";
	alertedSensesPreset = "panam_sniper_alerted";
	combatSensesPreset = "panam_sniper_combat";
	skipDisplayArchetype = true;
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.BurningImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier
	];
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Grad_Panam";
				equipSlot = "AttachmentSlots.WeaponRight";
				onBodySlot = "AttachmentSlots.ItemSlotGenericRanged";
				equipCondition = 
				[
					"WeaponConditions.SniperPrimaryWeaponSniperEquipCondition"
				];
				unequipCondition = 
				[
					"WeaponConditions.SniperPrimaryWeaponSniperUnequipCondition"
				];
			} : NPCEquipmentItem, 
			{
				item = "Items.Preset_Base_Copperhead";
				equipSlot = "AttachmentSlots.WeaponRight";
				onBodySlot = "AttachmentSlots.ItemSlotGenericRanged";
				equipCondition = 
				[
					"WeaponConditions.BaseRangedPrimaryWeaponEquipCondition"
				];
				unequipCondition = 
				[
					"WeaponConditions.BaseRangedPrimaryWeaponUnequipCondition"
				];
			} : NPCEquipmentItem
		];
	};
	statModifierGroups += 
	[
		"NPCStatPreset.VeryHighHealth", "NPCStatPreset.PanamSniperDamage", "NPCStatPreset.FollowerDamageAgainstBosses"
	];
	savable = true;
	bountyDrawTable = 
	{
		bountyChoices = 
		[
			{
				bountySetter = "Factions.NCPD";
				transgressions = 
				[
					{
						localizedDescription = "LocKey#48952";
					}
				];
				reward = "BountyReward.bounty_panam";
			}
		];
	};
}

Silverhand : Quest_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	tags = 
	[
		"Invulnerable"
	];
	[ EP1 ]
	entityTemplatePath = "ep1\quest\primary_characters\johnny_ep1.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	displayName = "LocKey#34414";
	fullDisplayName = "LocKey#34415";
	alternativeDisplayName = "LocKey#37907";
	alternativeFullDisplayName = "LocKey#37907";
	CName voiceTag = "johnny";
	baseAttitudeGroup = "friendly";
	savable = true;
	statModifiers += 
	[
		{
			statType = "BaseStats.PowerLevel";
			modifierType = "Additive";
			value = 55;
		} : ConstantStatModifier
	];
	fk< Affiliation > affiliation = "Factions.Unaffiliated";
}

johnny_mirror : Quest_NPC_Base
{
	priority = "SpawnableObjectPriority.Quest";
	tags = 
	[
		"Invulnerable"
	];
	entityTemplatePath = "base\quest\primary_characters\johnny_mirror.ent";
	reactionPreset = "ReactionPresets.NoReaction";
	displayName = "LocKey#34416";
	fullDisplayName = "LocKey#34417";
	CName voiceTag = "johnny";
	baseAttitudeGroup = "friendly";
	savable = true;
	fk< Affiliation > affiliation = "Factions.Unaffiliated";
}

Sobchak : ncpd_police_ranged2_lexington_ma
{
	priority = "SpawnableObjectPriority.Quest";
	tags = 
	[
		"Invulnerable"
	];
	displayName = "LocKey#34418";
	fullDisplayName = "LocKey#34419";
	CName voiceTag = "sobchak";
	statModifierGroups += 
	[
		"NPCStatPreset.VeryHighHealth"
	];
	baseAttitudeGroup = "sobchak";
	entityTemplatePath = "base\quest\primary_characters\sobchak.ent";
	savable = true;
	reactionPreset = "ReactionPresets.NoReaction";
	isBumpable = false;
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Overture_River";
				equipSlot = "AttachmentSlots.WeaponRight";
			} : NPCEquipmentItem
		];
	};
	skipDisplayArchetype = true;
	statModifiers += 
	[
		{
			statType = "BaseStats.BurningImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier
	];
	objectActions += 
	[
		"GenericInteraction.ReturnTalk"
	];
}

Takemura : arasaka_bodyguard_ranged3_masamune_mb_rare
{
	priority = "SpawnableObjectPriority.Quest";
	tags = 
	[
		"Invulnerable"
	];
	primaryEquipment = 
	{
		equipmentItems = 
		[
			{
				item = "Items.Preset_Shingen_Default";
				equipSlot = "AttachmentSlots.WeaponRight";
			} : NPCEquipmentItem
		];
	};
	abilities += 
	[
		"Ability.HasKerenzikov"
	];
	entityTemplatePath = "base\quest\primary_characters\takemura.ent";
	savable = true;
	reactionPreset = "ReactionPresets.NoReaction";
	isBumpable = false;
	baseAttitudeGroup = "takemura";
	displayName = "LocKey#34420";
	fullDisplayName = "LocKey#34421";
	CName voiceTag = "takemura";
	skipDisplayArchetype = true;
	statModifiers += 
	[
		{
			statType = "BaseStats.BonusDamageAgainstBosses";
			modifierType = "Additive";
			value = -40f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BurningImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier
	];
}

