package Items
using RTDB, Proficiencies, Attacks, BaseStats

GrenadeBlueprint : ItemBlueprint
{
	fk< ItemBlueprintElement > rootElement = 
	{
		fk< AttachmentSlot > slot = "AttachmentSlots.GrenadeCore";
		fk< ItemBlueprintElement >[] childElements = 
		[
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.GrenadeDelivery";
			}
		];
	};
}

[ notQueryable ]
GrenadeWithDeliveryMethods : Grenade
{
	entityName = "grenade_base";
	fk< ItemBlueprint > blueprint = "Items.GrenadeBlueprint";
	fk< SlotItemPartListElement >[] slotPartList += 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_frag_core";
				}, 
				{
					item = "Items.w_flash_core";
				}, 
				{
					item = "Items.w_smoke_core";
				}, 
				{
					item = "Items.w_emp_core";
				}, 
				{
					item = "Items.w_piercing_core";
				}, 
				{
					item = "Items.w_biohazard_core";
				}, 
				{
					item = "Items.w_incendiary_core";
				}, 
				{
					item = "Items.w_recon_core";
				}, 
				{
					item = "Items.w_cutting_core";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.GrenadeDelivery";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_sticky_delivery";
				}, 
				{
					item = "Items.w_homing_delivery";
				}
			];
		}
	];
	npcHitReactionAttack = "Attacks.GrenadeImpactOnNPC";
	waterSurfaceImpactImpulseRadius = 0.06f;
	waterSurfaceImpactImpulseStrength = 0.01f;
	waterDetonationImpulseRadiusCoef = 0.5f;
	waterDetonationImpulseStrength = 0.002f;
	tags += 
	[
		"Preload", "SkipActivityLogOnRemove"
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Multiplier";
			refObject = "Player";
			refStat = "BaseStats.GrenadeExplosionBonusRange";
			opSymbol = "*";
			value = 1;
		} : CombinedStatModifier
	];
}

[ notQueryable ]
GrenadeCore : ItemWeaponChild
{
	fk< ItemType > itemType = "ItemType.Prt_GrenadeCore";
	fk< AttachmentSlot >[] placementSlots = 
	[
		"AttachmentSlots.GrenadeCore"
	];
}

[ notQueryable ]
GrenadeDelivery : ItemWeaponChild
{
	fk< ItemType > itemType = "ItemType.Prt_DeliveryMethod";
	fk< AttachmentSlot >[] placementSlots = 
	[
		"AttachmentSlots.GrenadeDelivery"
	];
}

w_frag_core : GrenadeCore
{
	string friendlyName = "w_frag_core";
	CName appearanceResourceName = "w_frag_core";
}

w_flash_core : GrenadeCore
{
	string friendlyName = "w_flash_core";
	CName appearanceResourceName = "w_flash_core";
}

w_smoke_core : GrenadeCore
{
	string friendlyName = "w_smoke_core";
	CName appearanceResourceName = "w_smoke_core";
}

w_emp_core : GrenadeCore
{
	string friendlyName = "w_emp_core";
	CName appearanceResourceName = "w_emp_core";
}

w_piercing_core : GrenadeCore
{
	string friendlyName = "w_piercing_core";
	CName appearanceResourceName = "w_piercing_core";
}

w_biohazard_core : GrenadeCore
{
	string friendlyName = "w_biohazard_core";
	CName appearanceResourceName = "w_biohazard_core";
}

w_incendiary_core : GrenadeCore
{
	string friendlyName = "w_incendiary_core";
	CName appearanceResourceName = "w_incendiary_core";
}

w_recon_core : GrenadeCore
{
	string friendlyName = "w_recon_core";
	CName appearanceResourceName = "w_recon_core";
}

w_cutting_core : GrenadeCore
{
	string friendlyName = "w_cutting_core";
	CName appearanceResourceName = "w_cutting_core";
}

w_sticky_delivery : GrenadeDelivery
{
	string friendlyName = "w_sticky_delivery";
	CName appearanceResourceName = "w_sticky_delivery";
}

w_homing_delivery : GrenadeDelivery
{
	string friendlyName = "w_homing_delivery";
	CName appearanceResourceName = "w_homing_delivery";
}

[ notQueryable ]
Preset_Grenade_Frag_Default : GrenadeWithDeliveryMethods
{
	friendlyName = "frag";
	appearanceResourceName = "Preset_Grenade_Frag_Default";
	buyPrice += 
	[
		"Price.DamageGrenade"
	];
	displayName = "LocKey#5163";
	localizedDescription = "LocKey#5179";
	iconPath = "grenade_frag_normal";
	deliveryMethod = 
	{
	} : RegularGDM;
	detonationSound = "exploded";
	detonationStimRadius = 40.f;
	underwaterDetonationStimRadius = 35.f;
	detonationStimType = "StimTypes.Explosion";
	attackRadius = 0.25f;
	waterDetonationImpulseStrength = 0.005f;
	sinkingDetonationDelay = 3.f;
	storyDifficultySelfDamagePerTick = 15f;
	normalDifficultySelfDamagePerTick = 20f;
	hardDifficultySelfDamagePerTick = 25f;
	veryHardDifficultySelfDamagePerTick = 30f;
	npc_storyDifficultySelfDamagePerTick = 15f;
	npc_normalDifficultySelfDamagePerTick = 20f;
	npc_hardDifficultySelfDamagePerTick = 30f;
	npc_veryHardDifficultySelfDamagePerTick = 40f;
	shallowWaterAttack = "Attacks.FragGrenadeUnderwaterShallow";
	deepWaterAttack = "Attacks.FragGrenadeUnderwaterDeep";
	enhancedPerkAttack = "Attacks.PerkShotFragGrenade";
	visualTags = 
	[
		"Default"
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_frag_core";
		}
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Additive";
			value = 135f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			refObject = "Player";
			refStat = "BaseStats.GrenadeExplosionBonusDamage";
			opSymbol = "*";
			value = 1;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 4f;
		} : ConstantStatModifier, 
		{
			float value = 15.f;
		} : PhysicalImpulseModifier
	];
}

[ notQueryable ]
FragGrenades : Preset_Grenade_Frag_Default
{
	tags += 
	[
		"FragGrenade"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94489";
			};
		}
	];
}

[ notQueryable ]
GrenadeFragRegular : FragGrenades
{
	quality = "Quality.Common";
	attack = "Attacks.CommonFragGrenade";
	detonationStimRadius = 30.f;
	sinkingDetonationDelay = 2.f;
	tags += 
	[
		"Common"
	];
}

[ notQueryable ]
NPCGrenadeFragRegular : FragGrenades
{
	quality = "Quality.Common";
	attack = "Attacks.NPCFragGrenade";
	detonationStimRadius = 30.f;
	sinkingDetonationDelay = 2.f;
	tags += 
	[
		"Common"
	];
}

[ notQueryable ]
GrenadeFragRegular_VeryHard : FragGrenades
{
	quality = "Quality.Common";
	attack = "Attacks.NPCFragGrenade";
	detonationStimRadius = 30.f;
	sinkingDetonationDelay = 2.f;
	deliveryMethod = 
	{
		detonationTimer = 4.f;
		type = "GrenadeDeliveryMethodTypes.Regular";
	} : RegularGDM;
	tags += 
	[
		"Common"
	];
}

GrenadeFragCommonPlus : GrenadeFragRegular
{
	quality = "Quality.CommonPlus";
	tags += 
	[
		"CommonPlus"
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.24f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeFragUncommon : FragGrenades
{
	quality = "Quality.Uncommon";
	attack = "Attacks.UncommonFragGrenade";
	tags += 
	[
		"Uncommon"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.3f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.UncommonGrenadeCraftingData";
}

GrenadeFragUncommonPlus : GrenadeFragUncommon
{
	quality = "Quality.UncommonPlus";
	tags += 
	[
		"UncommonPlus"
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.27f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeFragSticky : FragGrenades
{
	quality = "Quality.Rare";
	attack = "Attacks.FragGrenade";
	tags += 
	[
		"Rare"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.9f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.RareGrenadeCraftingData";
}

GrenadeFragRarePlus : GrenadeFragSticky
{
	quality = "Quality.RarePlus";
	tags += 
	[
		"RarePlus"
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.156f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeFragEpic : FragGrenades
{
	quality = "Quality.Epic";
	attack = "Attacks.EpicFragGrenade";
	tags += 
	[
		"Epic"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 2.6f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
}

GrenadeFragEpicPlus : GrenadeFragEpic
{
	quality = "Quality.EpicPlus";
	tags += 
	[
		"EpicPlus"
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.22f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeFragLegendary : FragGrenades
{
	quality = "Quality.Legendary";
	attack = "Attacks.LegendaryFragGrenade";
	tags += 
	[
		"Legendary"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 3.4f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
}

GrenadeFragLegendaryPlus : GrenadeFragLegendary
{
	quality = "Quality.LegendaryPlus";
	tags += 
	[
		"LegendaryPlus"
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.209f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeOzobsNose : Preset_Grenade_Frag_Default
{
	displayName = "LocKey#51646";
	localizedDescription = "LocKey#51647";
	appearanceResourceName = "Preset_Grenade_Frag_Ozob";
	iconPath = "ozobs_nose_grenade";
	quality = "Quality.Legendary";
	tags += 
	[
		"Ozob", "Legendary"
	];
	npcHitReactionAttack = "Attacks.GrenadeImpactOnNPC";
	attack = "Attacks.OzobGrenade";
	detonationStimRadius = 45.f;
	deliveryMethod = 
	{
	} : RegularGDM;
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 3.4f;
		} : ConstantStatModifier, 
		{
			float value = 30.f;
		} : PhysicalImpulseModifier, 
		"Quality.IconicItem"
	];
}

[ notQueryable ]
GrenadeFragRegularHack : GrenadeFragRegular
{
	attack = "Attacks.FragGrenadeHack";
	shallowWaterAttack = "Attacks.FragGrenadeHackUnderwaterShallow";
	deepWaterAttack = "Attacks.FragGrenadeHackUnderwaterDeep";
	statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Additive";
			value = 150;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Preset_Grenade_Flash_Default : GrenadeWithDeliveryMethods
{
	friendlyName = "flash";
	appearanceResourceName = "Preset_Grenade_Flash_Default";
	tags += 
	[
		"FlashGrenade"
	];
	buyPrice += 
	[
		"Price.EffectGrenade"
	];
	displayName = "LocKey#5166";
	localizedDescription = "LocKey#5182";
	iconPath = "grenade_flash_normal";
	deliveryMethod = 
	{
		detonationTimer = 1.75f;
	} : RegularGDM;
	detonationSound = "exploded";
	detonationStimRadius = 25.f;
	underwaterDetonationStimRadius = 3.f;
	detonationStimType = "StimTypes.Explosion";
	underwaterDetonationRumbleName = "light_slow";
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	bool additionalAttackOnDetonate = true;
	enhancedPerkAttack = "Attacks.PerkShotFlashbangGrenade";
	visualTags = 
	[
		"Default"
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_flash_core";
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 7f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 0.f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeFlashRegular : Preset_Grenade_Flash_Default
{
	quality = "Quality.Common";
	attack = "Attacks.FlashbangGrenadeCommon";
	tags += 
	[
		"Common"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					3
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					20, 5
				];
			};
		}
	];
}

GrenadeFlashCommonPlus : Preset_Grenade_Flash_Default
{
	quality = "Quality.CommonPlus";
	attack = "Attacks.FlashbangGrenadeCommonPlus";
	tags += 
	[
		"CommonPlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					4
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					20, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeFlashUncommon : Preset_Grenade_Flash_Default
{
	quality = "Quality.Uncommon";
	attack = "Attacks.FlashbangGrenadeUncommon";
	tags += 
	[
		"Uncommon"
	];
	CraftingData = "Items.UncommonGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					4
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					40, 7
				];
			};
		}
	];
}

GrenadeFlashUncommonPlus : Preset_Grenade_Flash_Default
{
	quality = "Quality.UncommonPlus";
	attack = "Attacks.FlashbangGrenadeUncommonPlus";
	tags += 
	[
		"UncommonPlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					5
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					40, 7
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeFlashHoming : Preset_Grenade_Flash_Default
{
	quality = "Quality.Rare";
	attack = "Attacks.FlashbangGrenadeRare";
	detonationStimRadius = 30.f;
	tags += 
	[
		"Rare"
	];
	CraftingData = "Items.RareGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					5
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					60, 9
				];
			};
		}
	];
}

GrenadeFlashRarePlus : Preset_Grenade_Flash_Default
{
	quality = "Quality.RarePlus";
	attack = "Attacks.FlashbangGrenadeRarePlus";
	tags += 
	[
		"RarePlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					60, 9
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeFlashEpic : Preset_Grenade_Flash_Default
{
	quality = "Quality.Epic";
	attack = "Attacks.FlashbangGrenadeEpic";
	tags += 
	[
		"Epic"
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					80, 12
				];
			};
		}
	];
}

GrenadeFlashEpicPlus : Preset_Grenade_Flash_Default
{
	quality = "Quality.EpicPlus";
	attack = "Attacks.FlashbangGrenadeEpicPlus";
	tags += 
	[
		"EpicPlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					8
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					80, 12
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeFlashLegendary : Preset_Grenade_Flash_Default
{
	quality = "Quality.Legendary";
	attack = "Attacks.FlashbangGrenadeLegendary";
	tags += 
	[
		"Legendary"
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					9
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					90, 15
				];
			};
		}
	];
}

GrenadeFlashLegendaryPlus : Preset_Grenade_Flash_Default
{
	quality = "Quality.LegendaryPlus";
	attack = "Attacks.FlashbangGrenadeLegendaryPlus";
	tags += 
	[
		"LegendaryPlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34280";
				intValues = 
				[
					12
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91485";
				intValues = 
				[
					90, 15
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeFlashRegularHack : GrenadeFlashRegular
{
	attack = "Attacks.FlashbangGrenadeRegularHack";
}

[ notQueryable ]
Preset_Grenade_Smoke_Default : GrenadeWithDeliveryMethods
{
	friendlyName = "smoke";
	appearanceResourceName = "Preset_Grenade_Smoke_Default";
	visualTags = 
	[
		"Default"
	];
	tags += 
	[
		"SmokeGrenade"
	];
	buyPrice += 
	[
		"Price.EffectGrenade"
	];
	detonationSound = "grenade_biohazard";
	detonationStimRadius = 25.f;
	underwaterDetonationStimRadius = 3.f;
	detonationStimType = "StimTypes.DeviceExplosion";
	underwaterDetonationRumbleName = "light_slow";
	shootCollisionEnableDelay = -1.f;
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	releaseOnDetonation = false;
	removeMeshOnDetonation = false;
	float smokeEffectRadius = 4.f;
	float smokeEffectDuration = 15.f;
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_smoke_core";
		}
	];
}

[ notQueryable ]
GrenadeSmokeRegular : Preset_Grenade_Smoke_Default
{
	displayName = "LocKey#82583";
	localizedDescription = "LocKey#82584";
	iconPath = "grenade_smoke_normal";
	quality = "Quality.Uncommon";
	tags += 
	[
		"Uncommon"
	];
	attack = "Attacks.SmokeExplosion";
	deliveryMethod = 
	{
		detonationTimer = 2.f;
	} : RegularGDM;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 4f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.UncommonGrenadeCraftingData";
	smokeEffectDuration = 5.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeUncommonPlus : GrenadeSmokeRegular
{
	quality = "Quality.UncommonPlus";
	tags += 
	[
		"UncommonPlus"
	];
	smokeEffectDuration = 6.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					6
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeRare : GrenadeSmokeRegular
{
	quality = "Quality.Rare";
	tags += 
	[
		"Rare"
	];
	CraftingData = "Items.RareGrenadeCraftingData";
	smokeEffectDuration = 7.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					7
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeRarePlus : GrenadeSmokeRegular
{
	quality = "Quality.RarePlus";
	tags += 
	[
		"RarePlus"
	];
	smokeEffectDuration = 8f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					8
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeEpic : GrenadeSmokeRegular
{
	quality = "Quality.Epic";
	tags += 
	[
		"Epic"
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
	smokeEffectDuration = 9.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					9
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeEpicPlus : GrenadeSmokeRegular
{
	quality = "Quality.EpicPlus";
	tags += 
	[
		"EpicPlus"
	];
	smokeEffectDuration = 10f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					10
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeLegendary : GrenadeSmokeRegular
{
	quality = "Quality.Legendary";
	tags += 
	[
		"Legendary"
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	smokeEffectDuration = 12.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					12
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeSmokeLegendaryPlus : GrenadeSmokeRegular
{
	quality = "Quality.LegendaryPlus";
	tags += 
	[
		"LegendaryPlus"
	];
	smokeEffectDuration = 15f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94170";
				floatValues = 
				[
					15
				];
			};
		}
	];
}

[ notQueryable ]
Preset_Grenade_EMP_Default : GrenadeWithDeliveryMethods
{
	displayName = "LocKey#5169";
	localizedDescription = "LocKey#5185";
	iconPath = "grenade_emp_normal";
	deliveryMethod = 
	{
	} : RegularGDM;
	bool additionalAttackOnDetonate = true;
	friendlyName = "emp";
	appearanceResourceName = "Preset_Grenade_EMP_Default";
	tags += 
	[
		"EMPGrenade"
	];
	buyPrice += 
	[
		"Price.DamageGrenade"
	];
	visualTags = 
	[
		"Default"
	];
	detonationSound = "";
	detonationStimRadius = 40.f;
	underwaterDetonationStimRadius = 3.f;
	detonationStimType = "StimTypes.Explosion";
	underwaterDetonationRumbleName = "light_slow";
	attackRadius = 3.5f;
	attackDuration = 0.2f;
	storyDifficultySelfDamagePerTick = 1.0f;
	normalDifficultySelfDamagePerTick = 1.4f;
	hardDifficultySelfDamagePerTick = 2.f;
	veryHardDifficultySelfDamagePerTick = 2.4f;
	npc_storyDifficultySelfDamagePerTick = 1.2f;
	npc_normalDifficultySelfDamagePerTick = 1.7f;
	npc_hardDifficultySelfDamagePerTick = 2.4f;
	npc_veryHardDifficultySelfDamagePerTick = 3.4f;
	enhancedPerkAttack = "Attacks.PerkShotEMPGrenade";
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	float turretDisableDuration = 5f;
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_emp_core";
		}
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34285";
				intValues = 
				[
					5
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#94169";
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#95327";
			};
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 55f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			refObject = "Player";
			refStat = "BaseStats.GrenadeExplosionBonusDamage";
			opSymbol = "*";
			value = 1;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 3.5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeEMPRegular : Preset_Grenade_EMP_Default
{
	quality = "Quality.Common";
	attack = "Attacks.EMPGrenadeCommon";
	tags += 
	[
		"Common"
	];
	turretDisableDuration = 5f;
}

[ notQueryable ]
NPCGrenadeEMPRegular : Preset_Grenade_EMP_Default
{
	quality = "Quality.Common";
	attack = "Attacks.EMPGrenadeNPC";
	tags += 
	[
		"Common"
	];
}

GrenadeEMPCommonPlus : GrenadeEMPRegular
{
	quality = "Quality.CommonPlus";
	attack = "Attacks.EMPGrenadeCommon";
	tags += 
	[
		"CommonPlus"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.24f;
		} : ConstantStatModifier
	];
	turretDisableDuration = 6f;
}

[ notQueryable ]
GrenadeEMPRegular_VeryHard : Preset_Grenade_EMP_Default
{
	quality = "Quality.Common";
	attack = "Attacks.EMPGrenadeNPC";
	tags += 
	[
		"Common"
	];
	deliveryMethod = 
	{
		detonationTimer = 4.f;
		type = "GrenadeDeliveryMethodTypes.Regular";
	} : RegularGDM;
}

[ notQueryable ]
GrenadeEMPUncommon : Preset_Grenade_EMP_Default
{
	quality = "Quality.Uncommon";
	attack = "Attacks.EMPGrenadeUncommon";
	tags += 
	[
		"Uncommon"
	];
	turretDisableDuration = 8f;
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.3f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.UncommonGrenadeCraftingData";
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94168";
				floatValues = 
				[
					10
				];
			};
		}
	];
}

GrenadeEMPUncommonPlus : GrenadeEMPUncommon
{
	quality = "Quality.UncommonPlus";
	attack = "Attacks.EMPGrenadeUncommon";
	tags += 
	[
		"UncommonPlus"
	];
	turretDisableDuration = 9f;
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.27f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeEMPRare : Preset_Grenade_EMP_Default
{
	quality = "Quality.Rare";
	tags += 
	[
		"Rare"
	];
	attack = "Attacks.EMPGrenadeRare";
	turretDisableDuration = 12f;
	CraftingData = "Items.RareGrenadeCraftingData";
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.9f;
		} : ConstantStatModifier
	];
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94168";
				floatValues = 
				[
					10
				];
			};
		}
	];
}

GrenadeEMPRarePlus : GrenadeEMPRare
{
	quality = "Quality.RarePlus";
	attack = "Attacks.EMPGrenadeRare";
	tags += 
	[
		"RarePlus"
	];
	turretDisableDuration = 13f;
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.156f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeEMPSticky : Preset_Grenade_EMP_Default
{
	quality = "Quality.Epic";
	attack = "Attacks.EMPGrenadeEpic";
	tags += 
	[
		"Epic"
	];
	turretDisableDuration = 20f;
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 2.6f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94168";
				floatValues = 
				[
					20
				];
			};
		}
	];
}

GrenadeEMPEpicPlus : GrenadeEMPSticky
{
	quality = "Quality.EpicPlus";
	attack = "Attacks.EMPGrenadeEpic";
	tags += 
	[
		"EpicPlus"
	];
	turretDisableDuration = 22f;
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.22f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeEMPLegendary : Preset_Grenade_EMP_Default
{
	quality = "Quality.Legendary";
	tags += 
	[
		"Legendary"
	];
	attack = "Attacks.EMPGrenadeLegendary";
	turretDisableDuration = -1f;
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 3.4f;
		} : ConstantStatModifier
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#94168";
				floatValues = 
				[
					20
				];
			};
		}
	];
}

GrenadeEMPLegendaryPlus : GrenadeEMPLegendary
{
	quality = "Quality.LegendaryPlus";
	attack = "Attacks.EMPGrenadeLegendary";
	tags += 
	[
		"LegendaryPlus"
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.209f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeEMPRegularHack : GrenadeEMPRegular
{
	attack = "Attacks.EMPGrenadeHack";
	statModifiers += 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 60f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 0.6f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Preset_Grenade_Biohazard_Default : GrenadeWithDeliveryMethods
{
	displayName = "LocKey#17913";
	localizedDescription = "LocKey#17914";
	iconPath = "grenade_biohazard_normal";
	friendlyName = "biohazard";
	appearanceResourceName = "Preset_Grenade_Biohazard_Default";
	tags += 
	[
		"BiohazardGrenade"
	];
	buyPrice += 
	[
		"Price.DamageGrenade"
	];
	visualTags = 
	[
		"Default"
	];
	detonationSound = "";
	detonationStimRadius = 25.f;
	underwaterDetonationStimRadius = 3.f;
	detonationStimType = "StimTypes.Explosion";
	underwaterDetonationRumbleName = "light_slow";
	storyDifficultySelfDamagePerTick = 1.2f;
	normalDifficultySelfDamagePerTick = 1.5f;
	hardDifficultySelfDamagePerTick = 2.f;
	veryHardDifficultySelfDamagePerTick = 2.8f;
	npc_storyDifficultySelfDamagePerTick = 1.5f;
	npc_normalDifficultySelfDamagePerTick = 2f;
	npc_hardDifficultySelfDamagePerTick = 3f;
	npc_veryHardDifficultySelfDamagePerTick = 3.75f;
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	bool additionalAttackOnDetonate = true;
	attackDuration = 6.5f;
	enhancedPerkAttack = "Attacks.PerkShotBiotechGrenade";
	deliveryMethod = 
	{
	} : RegularGDM;
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_biohazard_core";
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 4f;
		} : ConstantStatModifier
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardRegular : Preset_Grenade_Biohazard_Default
{
	quality = "Quality.Rare";
	attack = "Attacks.RareBiotechGrenade";
	tags += 
	[
		"Rare"
	];
	CraftingData = "Items.RareGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91562";
				floatValues = 
				[
					50, 10
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91561";
				floatValues = 
				[
					10, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardYasha : Preset_Grenade_Biohazard_Default
{
	quality = "Quality.Rare";
	attack = "Attacks.YashaBiotechGrenade";
	attackDuration = 6.5f;
}

[ notQueryable ]
GrenadeBiohazardRegular_VeryHard : GrenadeBiohazardRegular
{
	deliveryMethod = 
	{
		detonationTimer = 4.f;
		type = "GrenadeDeliveryMethodTypes.Regular";
	} : RegularGDM;
}

[ notQueryable ]
GrenadeBiohazardRarePlus : GrenadeBiohazardRegular
{
	quality = "Quality.RarePlus";
	attack = "Attacks.RarePlusBioGrenadePlus";
	tags += 
	[
		"RarePlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91562";
				floatValues = 
				[
					50, 10
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91561";
				floatValues = 
				[
					10, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardHoming : Preset_Grenade_Biohazard_Default
{
	localizedDescription = "LocKey#17916";
	quality = "Quality.Epic";
	attack = "Attacks.EpicBiotechGrenade";
	tags += 
	[
		"Epic"
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91562";
				floatValues = 
				[
					65, 15
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91561";
				floatValues = 
				[
					10, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardEpicPlus : GrenadeBiohazardHoming
{
	quality = "Quality.EpicPlus";
	attack = "Attacks.EpicPlusBiotechGrenade";
	tags += 
	[
		"EpicPlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91562";
				floatValues = 
				[
					65, 15
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91561";
				floatValues = 
				[
					10, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardLegendary : Preset_Grenade_Biohazard_Default
{
	localizedDescription = "LocKey#17916";
	quality = "Quality.Legendary";
	attack = "Attacks.LegendaryBiotechGrenade";
	tags += 
	[
		"Legendary"
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91562";
				floatValues = 
				[
					80, 20
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91561";
				floatValues = 
				[
					10, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardLegendaryPlus : GrenadeBiohazardLegendary
{
	quality = "Quality.LegendaryPlus";
	attack = "Attacks.LegendaryPlusBiotechGrenade";
	tags += 
	[
		"LegendaryPlus"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34300";
				intValues = 
				[
					6
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91562";
				floatValues = 
				[
					95, 25
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#91561";
				floatValues = 
				[
					10, 5
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeBiohazardRegularHack : GrenadeBiohazardRegular
{
	attack = "Attacks.LightBiotechGrenadeHack";
	statModifiers += 
	[
		{
			statType = "BaseStats.ChemicalDamage";
			modifierType = "Multiplier";
			value = 0.6f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Preset_Grenade_Incendiary_Default : GrenadeWithDeliveryMethods
{
	tags += 
	[
		"IncendiaryGrenade"
	];
	buyPrice += 
	[
		"Price.DamageGrenade"
	];
	friendlyName = "incendiary_grenade";
	appearanceResourceName = "Preset_Grenade_Incendiary_Default";
	visualTags = 
	[
		"Default"
	];
	deliveryMethod = 
	{
	} : RegularGDM;
	displayName = "LocKey#5172";
	localizedDescription = "LocKey#5188";
	iconPath = "grenade_incendiary_normal";
	detonationSound = "";
	detonationStimRadius = 30.f;
	underwaterDetonationStimRadius = 3.f;
	detonationStimType = "StimTypes.Explosion";
	underwaterDetonationRumbleName = "light_slow";
	attackRadius = 3.5f;
	attackDuration = 1.4f;
	storyDifficultySelfDamagePerTick = 1.5f;
	normalDifficultySelfDamagePerTick = 2f;
	hardDifficultySelfDamagePerTick = 2.5f;
	veryHardDifficultySelfDamagePerTick = 3.5f;
	npc_storyDifficultySelfDamagePerTick = 1.8f;
	npc_normalDifficultySelfDamagePerTick = 2.5f;
	npc_hardDifficultySelfDamagePerTick = 3.5f;
	npc_veryHardDifficultySelfDamagePerTick = 4.8f;
	enhancedPerkAttack = "Attacks.PerkShotIncendiaryGrenade";
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34307";
				intValues = 
				[
					5
				];
			};
		}
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_incendiary_core";
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 3.5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeIncendiaryRegular : Preset_Grenade_Incendiary_Default
{
	quality = "Quality.Uncommon";
	attack = "Attacks.UncommonIncendiaryGrenade";
	tags += 
	[
		"Uncommon"
	];
	CraftingData = "Items.UncommonGrenadeCraftingData";
}

[ notQueryable ]
GrenadeIncendiaryRegular_VeryHard : Preset_Grenade_Incendiary_Default
{
	quality = "Quality.Uncommon";
	attack = "Attacks.UncommonIncendiaryGrenade";
	tags += 
	[
		"Uncommon"
	];
	deliveryMethod = 
	{
		detonationTimer = 4.f;
		type = "GrenadeDeliveryMethodTypes.Regular";
	} : RegularGDM;
	CraftingData = "Items.UncommonGrenadeCraftingData";
}

[ notQueryable ]
GrenadeIncendiaryUncommonPlus : Preset_Grenade_Incendiary_Default
{
	quality = "Quality.UncommonPlus";
	attack = "Attacks.UncommonPlusIncendiaryGrenade";
	tags += 
	[
		"UncommonPlus"
	];
}

[ notQueryable ]
GrenadeIncendiaryRare : Preset_Grenade_Incendiary_Default
{
	quality = "Quality.Rare";
	attack = "Attacks.RareIncendiaryGrenade";
	tags += 
	[
		"Rare"
	];
	CraftingData = "Items.RareGrenadeCraftingData";
}

[ notQueryable ]
GrenadeIncendiaryRarePlus : Preset_Grenade_Incendiary_Default
{
	quality = "Quality.RarePlus";
	attack = "Attacks.RarePlusIncendiaryGrenade";
	tags += 
	[
		"RarePlus"
	];
}

[ notQueryable ]
GrenadeIncendiarySticky : Preset_Grenade_Incendiary_Default
{
	quality = "Quality.Epic";
	attack = "Attacks.EpicIncendiaryGrenade";
	tags += 
	[
		"Epic"
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#91559";
			};
		}
	];
}

[ notQueryable ]
GrenadeIncendiaryEpicPlus : GrenadeIncendiarySticky
{
	quality = "Quality.EpicPlus";
	attack = "Attacks.EpicPlusIncendiaryGrenade";
	tags += 
	[
		"EpicPlus"
	];
}

[ notQueryable ]
GrenadeIncendiaryLegendary : GrenadeIncendiarySticky
{
	quality = "Quality.Legendary";
	attack = "Attacks.LegendaryIncendiaryGrenade";
	tags += 
	[
		"Legendary"
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
}

[ notQueryable ]
GrenadeIncendiaryLegendaryPlus : GrenadeIncendiarySticky
{
	quality = "Quality.LegendaryPlus";
	attack = "Attacks.LegendaryPlusIncendiaryGrenade";
	tags += 
	[
		"LegendaryPlus"
	];
}

[ notQueryable ]
GrenadeIncendiaryRegularHack : GrenadeIncendiaryRegular
{
	attack = "Attacks.IncendiaryGrenadeHack";
	statModifiers += 
	[
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Multiplier";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Preset_Grenade_Recon_Default : GrenadeWithDeliveryMethods
{
	displayName = "LocKey#5175";
	localizedDescription = "LocKey#5191";
	iconPath = "grenade_recon_normal";
	friendlyName = "recon";
	appearanceResourceName = "Preset_Grenade_Recon_Default";
	tags += 
	[
		"ReconGrenade"
	];
	buyPrice += 
	[
		"Price.EffectGrenade"
	];
	visualTags = 
	[
		"Default"
	];
	detonationSound = "exploded";
	detonationStimRadius = 0.f;
	underwaterDetonationStimRadius = 3.f;
	detonationStimType = "StimTypes.SoundDistraction";
	underwaterDetonationRumbleName = "light_slow";
	removeMeshOnDetonation = false;
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	bool additionalAttackOnDetonate = true;
	additionalAttack = "Attacks.ReconGrenadeXRay";
	attack = "Attacks.ReconGrenade";
	attackDuration = 15.f;
	deliveryMethod = 
	{
	} : RegularGDM;
	shootCollisionEnableDelay = -1.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#91560";
			};
		}
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_recon_core";
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeReconRegular : Preset_Grenade_Recon_Default
{
	quality = "Quality.Uncommon";
	tags += 
	[
		"ReconGrenade", "Uncommon"
	];
	additionalAttack = "Attacks.UncommonReconXRay";
	attackDuration = 5;
	attackRadius = 5;
	CraftingData = "Items.UncommonGrenadeCraftingData";
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#92939";
				intValues = 
				[
					20
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeReconUncommonPlus : GrenadeReconRegular
{
	quality = "Quality.UncommonPlus";
	tags += 
	[
		"UncommonPlus"
	];
	additionalAttack = "Attacks.UncommonPlusReconXRay";
	attackDuration = 7;
	attackRadius = 5.5;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeReconRare : Preset_Grenade_Recon_Default
{
	quality = "Quality.Rare";
	tags += 
	[
		"ReconGrenade", "Rare"
	];
	CraftingData = "Items.RareGrenadeCraftingData";
	additionalAttack = "Attacks.RareReconXRay";
	attackDuration = 7;
	attackRadius = 6;
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#92939";
				intValues = 
				[
					40
				];
			};
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeReconRarePlus : GrenadeReconRare
{
	quality = "Quality.RarePlus";
	tags += 
	[
		"RarePlus"
	];
	additionalAttack = "Attacks.RarePlusReconXRay";
	attackDuration = 9;
	attackRadius = 6.5;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeReconSticky : Preset_Grenade_Recon_Default
{
	quality = "Quality.Epic";
	tags += 
	[
		"ReconGrenade", "Epic"
	];
	CraftingData = "Items.EpicGrenadeCraftingData";
	additionalAttack = "Attacks.EpicReconXRay";
	attackDuration = 9;
	attackRadius = 7;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 2f;
		} : ConstantStatModifier
	];
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#92939";
				intValues = 
				[
					60
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeReconEpicPlus : GrenadeReconSticky
{
	quality = "Quality.EpicPlus";
	tags += 
	[
		"EpicPlus"
	];
	additionalAttack = "Attacks.EpicPlusReconXRay";
	attackDuration = 11;
	attackRadius = 7.5;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeReconLegendary : Preset_Grenade_Recon_Default
{
	quality = "Quality.Legendary";
	tags += 
	[
		"ReconGrenade", "Legendary"
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	additionalAttack = "Attacks.LegendaryReconXRay";
	attackDuration = 11;
	attackRadius = 8;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 3f;
		} : ConstantStatModifier
	];
	OnEquip += 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#92939";
				intValues = 
				[
					80
				];
			};
		}
	];
}

[ notQueryable ]
GrenadeReconLegendaryPlus : GrenadeReconLegendary
{
	quality = "Quality.LegendaryPlus";
	tags += 
	[
		"LegendaryPlus"
	];
	additionalAttack = "Attacks.LegendaryPlusReconXRay";
	attackDuration = 13;
	attackRadius = 9;
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeReconRegularHack : GrenadeReconRegular
{
	attack = "Attacks.CuttingGrenadeHack";
}

[ notQueryable ]
Preset_Grenade_Cutting_Default : GrenadeWithDeliveryMethods
{
	friendlyName = "cutting";
	appearanceResourceName = "Preset_Grenade_Cutting_Default";
	tags += 
	[
		"CuttingGrenade"
	];
	buyPrice += 
	[
		"Price.DamageGrenade"
	];
	visualTags = 
	[
		"Default"
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.GrenadeCore";
			fk< Item > itemPartPreset = "Items.w_cutting_core";
		}, 
		{
			slot = "AttachmentSlots.GrenadeDelivery";
			fk< Item > itemPartPreset = "Items.w_homing_delivery";
		}
	];
	detonationSound = "exploded";
	detonationStimRadius = 10.f;
	underwaterDetonationStimRadius = 3.f;
	underwaterDetonationRumbleName = "light_slow";
	releaseOnDetonation = false;
	removeMeshOnDetonation = false;
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	float stopAttackDelay = 1.f;
	float freezeDelayAfterBounce = 0.01f;
	float freezingDuration = 0.2f;
	float minimumDistanceFromFloor = 3.5f;
	float addAxisRotationDelay = 0.3f;
	float addAxisRotationSpeedMin = 55.f;
	float addAxisRotationSpeedMax = 90.f;
	float delayToDetonate = 0.4f;
	float effectCooldown = 0.08f;
	int numberOfHitsForAdditionalAttack = 4;
}

[ notQueryable ]
GrenadeCuttingRegular : Preset_Grenade_Cutting_Default
{
	displayName = "LocKey#5177";
	localizedDescription = "LocKey#5193";
	iconPath = "grenade_cutting_normal";
	detonationStimType = "StimTypes.Distract";
	quality = "Quality.Legendary";
	tags += 
	[
		"Legendary"
	];
	attack = "Attacks.CuttingGrenade";
	additionalAttack = "Attacks.CuttingGrenadeAdditionalAttack";
	attackDuration = 5.f;
	attackRadius = 5f;
	deliveryMethod = 
	{
		detonationTimer = 1.25f;
	} : RegularGDM;
	bool isContinuousEffect = true;
	shootCollisionEnableDelay = -1.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34323";
				intValues = 
				[
					32, 5
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#94171";
				floatValues = 
				[
					20
				];
			};
		}
	];
	CraftingData = "Items.LegendaryGrenadeCraftingData";
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 3f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Additive";
			value = 16f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
CuttingGrenadeLegendaryPlus : GrenadeCuttingRegular
{
	quality = "Quality.LegendaryPlus";
	tags += 
	[
		"LegendaryPlus"
	];
	attack = "Attacks.CuttingGrenadeLegendaryPlus";
	attackDuration = 7.f;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#34323";
				intValues = 
				[
					32, 8
				];
			};
		}, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#94171";
				floatValues = 
				[
					30
				];
			};
		}
	];
	statModifiers += 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
GrenadeCuttingRegularHack : GrenadeWithDeliveryMethods
{
}

GrenadeQuantity : ConstantStatModifier
{
	statType = "BaseStats.Quantity";
	modifierType = "Additive";
	value = 999f;
}

[ notQueryable ]
Mine : Gadget
{
	tags += 
	[
		"Mine"
	];
	fk< ItemType > itemType = "ItemType.Gad_Grenade";
	buyPrice += 
	[
		"Price.Mine"
	];
	sellPrice += 
	[
		"Price.Mine"
	];
}

[ notQueryable ]
claymore_mine : Mine
{
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 2;
	} : ConstantStatModifier;
	string friendlyName = "claymore_mine";
	CName entityName = "claymore_mine";
	CName dropObject = "mineDrop";
	fk< Quality > quality = "Quality.Common";
	displayName = "LocKey#50392";
	localizedDescription = "LocKey#50393";
}

[ notQueryable ]
C4 : Mine
{
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 2;
	} : ConstantStatModifier;
	string friendlyName = "C4";
	displayName = "LocKey#50394";
	localizedDescription = "LocKey#50395";
}

[ notQueryable ]
GrenadeSmokeOda : Preset_Grenade_Frag_Default
{
	displayName = "LocKey#5163";
	localizedDescription = "LocKey#5179";
	attack = "Attacks.OdaSmokeBomb";
	shallowWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	deepWaterAttack = "Attacks.DeactivatedGrenadeUnderwater";
	attackRadius = 4.f;
	deliveryMethod = 
	{
		detonationTimer = 0.1f;
	} : RegularGDM;
}

[ notQueryable ]
GrenadeSmokeOdaHarmless : GrenadeSmokeOda
{
	attack = "Attacks.OdaSmokeBombHarmless";
	attackRadius = 0.f;
}

[ notQueryable ]
Kurt_Knife_NPC : Preset_Grenade_Frag_Default
{
	displayName = "LocKey#5163";
	localizedDescription = "LocKey#5179";
	CName entityName = "kurt_npc_throwable_knife";
	npcHitReactionAttack = "Attacks.Kurt_Knife_Impact";
	deliveryMethod = 
	{
	} : RegularGDM;
	attack = "";
	shallowWaterAttack = "";
	deepWaterAttack = "";
	additionalAttack = "";
	enemyAttack = "";
	detonationSound = "";
	detonationStimRadius = 2.f;
	underwaterDetonationStimRadius = 2.f;
	detonationStimType = "StimTypes.SilencedGunshot";
	detonationRumbleName = "";
	underwaterDetonationRumbleName = "";
	waterSurfaceImpactImpulseRadius = 0.f;
	waterSurfaceImpactImpulseStrength = 0.f;
	waterDetonationImpulseRadiusCoef = 0.f;
	waterDetonationImpulseStrength = 0.f;
}

[ notQueryable ]
Kurt_Knife_NPC_KurtTakedown : Preset_Grenade_Frag_Default
{
	tags = 
	[
		"following"
	];
	displayName = "LocKey#5163";
	localizedDescription = "LocKey#5179";
	CName entityName = "kurt_npc_throwable_knife";
	npcHitReactionAttack = "Attacks.Kurt_Knife_TakedownImpact";
	deliveryMethod = 
	{
	} : KnifeThrowDelivery;
	attack = "";
	shallowWaterAttack = "";
	deepWaterAttack = "";
	additionalAttack = "";
	enemyAttack = "";
	detonationSound = "";
	detonationStimRadius = 2.f;
	underwaterDetonationStimRadius = 2.f;
	detonationStimType = "StimTypes.SilencedGunshot";
	detonationRumbleName = "";
	underwaterDetonationRumbleName = "";
	waterSurfaceImpactImpulseRadius = 0.f;
	waterSurfaceImpactImpulseStrength = 0.f;
	waterDetonationImpulseRadiusCoef = 0.f;
	waterDetonationImpulseStrength = 0.f;
}

[ notQueryable ]
Kurt_Knife_NPC_KurtTakedown_Dodgeable : Preset_Grenade_Frag_Default
{
	displayName = "LocKey#5163";
	localizedDescription = "LocKey#5179";
	CName entityName = "kurt_npc_throwable_knife";
	npcHitReactionAttack = "Attacks.Kurt_Knife_TakedownImpact";
	deliveryMethod = 
	{
	} : KnifeThrowDelivery;
	attack = "";
	shallowWaterAttack = "";
	deepWaterAttack = "";
	additionalAttack = "";
	enemyAttack = "";
	detonationSound = "";
	detonationStimRadius = 2.f;
	underwaterDetonationStimRadius = 2.f;
	detonationStimType = "StimTypes.SilencedGunshot";
	detonationRumbleName = "";
	underwaterDetonationRumbleName = "";
	waterSurfaceImpactImpulseRadius = 0.f;
	waterSurfaceImpactImpulseStrength = 0.f;
	waterDetonationImpulseRadiusCoef = 0.f;
	waterDetonationImpulseStrength = 0.f;
}

UncommonGrenadeCraftingData : CraftingPackage
{
	fk< RecipeElement >[] craftingRecipe = 
	[
		{
			ingredient = "Items.UncommonMaterial1";
			amount = 10;
		}
	];
}

RareGrenadeCraftingData : CraftingPackage
{
	craftingRecipe = 
	[
		{
			ingredient = "Items.RareMaterial1";
			amount = 10;
		}
	];
}

EpicGrenadeCraftingData : CraftingPackage
{
	craftingRecipe = 
	[
		{
			ingredient = "Items.EpicMaterial1";
			amount = 10;
		}
	];
}

LegendaryGrenadeCraftingData : CraftingPackage
{
	craftingRecipe = 
	[
		{
			ingredient = "Items.LegendaryMaterial1";
			amount = 10;
		}
	];
}

