package Items
using RTDB, BaseStats, Prereqs, Perks, Effectors

[ notQueryable ]
Base_Two_Hand_Hammer : Base_Blunt
{
	fk< ItemType > itemType = "ItemType.Wea_Hammer";
	triggerEffectName = "te_wea_melee_swing_heavy";
	dropObject = "bigItemDrop";
	displayName = "LocKey#51232";
	localizedDescription = "LocKey#51233";
	gameplayDescription = "LocKey#92668";
	string friendlyName = "w_melee_hammer";
	fk< UIIcon > hudIcon = "HUDWeaponIcons.Hammer";
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_hammer_common_grip";
				}, 
				{
					item = "Items.w_shovel_grip";
				}
			];
		}
	];
	previewBBoxOverride = 
	[
		( -0.077f, -0.124f, -0.219f ), ( 0.078f, 0.136f, 0.692f )
	];
	CName audioName = "w_melee_001_katana";
	CName[] tags += 
	[
		"TakedownWeapon", "Two Hand Hammer", "FinisherFront", "FinisherBack"
	];
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 2;
	} : ConstantStatModifier;
	fk< AttachmentSlot >[] placementSlots += 
	[
		"AttachmentSlots.ItemSlotSMG"
	];
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.HammerFxPackage";
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Base_Two_Hand_Hammer_RPG_Stats", "Items.Base_Two_Hand_Hammer_Handling_Stats", "Items.Base_Two_Hand_Hammer_Misc_Stats", "Items.Base_Melee_Weapon_Damage_Type_Physical", "Items.Base_Melee_Weapon_Damage_Type_Physical_Min_Max"
	];
	fk< Attack >[] attacks += 
	[
		"TwoHandHammerAttacks.TwoHandHammerComboAttack1", "TwoHandHammerAttacks.TwoHandHammerComboAttack2", "TwoHandHammerAttacks.TwoHandHammerComboAttack3", "TwoHandHammerAttacks.TwoHandHammerComboAttack4", "TwoHandHammerAttacks.TwoHandHammerFinalAttack1", "TwoHandHammerAttacks.TwoHandHammerFinalAttack2", "TwoHandHammerAttacks.TwoHandHammerFinalAttack3", "TwoHandHammerAttacks.TwoHandHammerFinalAttack4", "TwoHandHammerAttacks.TwoHandHammerFinalAttack5", "TwoHandHammerAttacks.TwoHandHammerFinalAttack6", "TwoHandHammerAttacks.TwoHandHammerStrongAttack1", "TwoHandHammerAttacks.TwoHandHammerStrongAttack2", "TwoHandHammerAttacks.TwoHandHammerStrongAttack3", "TwoHandHammerAttacks.TwoHandHammerBlockAttack", "TwoHandHammerAttacks.TwoHandHammerSafeAttack", "TwoHandHammerAttacks.TwoHandHammerJumpAttack", "TwoHandHammerAttacks.TwoHandHammerCrouchAttack", "TwoHandHammerAttacks.TwoHandHammerDeflectAttack", "TwoHandHammerAttacks.TwoHandHammerBodySlamLevel1Attack", "TwoHandHammerAttacks.TwoHandHammerBodySlamLevel2Attack", "TwoHandHammerAttacks.TwoHandHammerBodySlamLevel3Attack", "TwoHandHammerAttacks.TwoHandHammerGroundSlamAttack"
	];
	audioWeaponConfiguration = "audio_melee_metadata_sledgehammer";
	fk< Crosshair > crosshair = "Crosshairs.Melee_Hammer";
	dropSettings = "Items.HammerDropSettings";
	float weaponNearPlane = 23.88f;
	float weaponFarPlane = 55.0f;
	float weaponEdgesSharpness = 0.0f;
	float weaponVignetteIntensity = 0.0f;
	float weaponVignetteRadius = 0.0f;
	float weaponVignetteCircular = 0.0f;
	float weaponBlurIntensity = 1.0f;
	float weaponNearPlane_aim = 18.7f;
	float weaponFarPlane_aim = 19.5f;
	float weaponEdgesSharpness_aim = 0.0f;
	float weaponVignetteIntensity_aim = 0.55f;
	float weaponVignetteRadius_aim = 0.42f;
	float weaponVignetteCircular_aim = 0.0f;
	float weaponBlurIntensity_aim = 1.f;
	enableNpcRPGData = true;
	npcRPGData = 
	{
		statModifierGroups += 
		[
		];
	} : Base_Two_Hand_Hammer_NPC_Data;
}

Base_Two_Hand_Hammer_RPG_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Weight";
			modifierType = "Additive";
			value = 6.8f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BlockFactor";
			modifierType = "Additive";
			value = 5f;
		} : ConstantStatModifier, 
		"AttackModifier.WeaponArmorPenetrationLow", {
			statType = "BaseStats.VehicleMinHealthPercentWhenDamaged";
			modifierType = "Multiplier";
			value = 0f;
		} : ConstantStatModifier
	];
}

Base_Two_Hand_Hammer_Handling_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 2.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AttacksNumber";
			modifierType = "Additive";
			value = 3;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.MeleeAttackDuration";
			modifierType = "Additive";
			value = 0.4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.MeleeAttackComboDuration";
			modifierType = "Additive";
			value = 0.835f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 1.f;
		} : ConstantStatModifier, 
		{
			float value = 25.f;
		} : PhysicalImpulseModifier, 
		{
			float value = 40.f;
		} : KnockdownImpulseModifier, 
		{
			float value = 40.f;
		} : BaseKnockdownImpulseModifier, 
		{
			float value = 40.f;
		} : BaseEvadeImpulseModifier, 
		{
			statType = "BaseStats.StaminaCostToBlock";
			modifierType = "Multiplier";
			value = 1.515f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BaseMeleeAttackStaminaCost";
			modifierType = "Additive";
			value = 20f;
		} : ConstantStatModifier
	];
}

Base_Two_Hand_Hammer_Misc_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.EquipDuration";
			modifierType = "Additive";
			value = 1.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.UnequipDuration";
			modifierType = "Additive";
			value = 0.7f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ZoomLevel";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EquipDuration_First";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

Base_Two_Hand_Hammer_NPC_Data : Base_Blunt_NPC_RPG_Data
{
	statModifierGroups += 
	[
		"Items.Base_Two_Hand_Hammer_NPC_Stats"
	];
}

Base_Two_Hand_Hammer_NPC_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			value = 25.f;
		} : PhysicalImpulseModifier, 
		{
			statType = "BaseStats.CanBlock";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasDodge";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaminaCostToBlock";
			modifierType = "Additive";
			value = 80.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitReactionFactor";
			modifierType = "Additive";
			value = 2.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			float value = 25.f;
		} : PhysicalImpulseModifier, 
		{
			float value = 40.f;
		} : KnockdownImpulseModifier, 
		{
			float value = 40.f;
		} : BaseKnockdownImpulseModifier, 
		{
			float value = 40.f;
		} : BaseEvadeImpulseModifier, 
		{
			value = 0.467f;
		} : EquipItemTime_GangModifier, 
		{
			value = 1.0f;
		} : EquipAnimationDuration_GangModifier, 
		{
			value = 1.533f;
		} : EquipActionDuration_GangModifier, 
		{
			value = 0.967f;
		} : UnequipItemTime_GangModifier, 
		{
			value = 1.467f;
		} : UnequipAnimationDuration_GangModifier, 
		{
			value = 1.667f;
		} : UnequipDuration_GangModifier, 
		{
			value = 0.467f;
		} : EquipItemTime_CorpoModifier, 
		{
			value = 1.0f;
		} : EquipAnimationDuration_CorpoModifier, 
		{
			value = 1.533f;
		} : EquipActionDuration_CorpoModifier, 
		{
			value = 0.967f;
		} : UnequipItemTime_CorpoModifier, 
		{
			value = 1.467f;
		} : UnequipAnimationDuration_CorpoModifier, 
		{
			value = 1.667f;
		} : UnequipDuration_CorpoModifier
	];
}

Preset_Kanabo_Default : Base_Two_Hand_Blunt
{
	displayName = "LocKey#40219";
	localizedDescription = "LocKey#40220";
	CName[] visualTags = 
	[
		"Default"
	];
	tags += 
	[
		"Kanabo"
	];
	CName appearanceResourceName = "Preset_Kanabo_Default";
	audioWeaponConfiguration = "audio_melee_metadata_baseballbat";
	fk< GameplayLogicPackage >[] OnAttach += 
	[
		{
			animationWrapperOverrides = 
			[
				"w_kanabo"
			];
		} : GameplayLogicPackage, 
		"GLP.HoldingKanabo"
	];
	fk< UIIcon > hudIcon = "HUDWeaponIcons.Kanabo";
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< Item > itemPartPreset = "Items.w_hammer_kanabo_grip";
		}, 
		{
			slot = "AttachmentSlots.Blunt_WeaponMod1";
		} : BluntModList_Slot1, 
		{
			slot = "AttachmentSlots.Blunt_WeaponMod2";
		} : BluntModList_Slot2
	];
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Kanabo_Damage_Stats"
	];
	npcRPGData = 
	{
		statModifierGroups += 
		[
			"Items.Kanabo_NPC_Damage_Stats"
		];
	} : Base_Two_Hand_Hammer_NPC_Data;
}

Kanabo_Damage_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Additive";
			value = 67f;
		} : ConstantStatModifier
	];
}

Kanabo_NPC_Damage_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Additive";
			value = 67f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Craftable_Common_Kanabo : Preset_Kanabo_Default
{
	quality = "Quality.Common";
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< Item > itemPartPreset = "Items.w_hammer_kanabo_grip";
		}
	];
	CraftingData = "Items.Big_Common_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Uncommon_Kanabo : Craftable_Common_Kanabo
{
	quality = "Quality.Uncommon";
	CraftingData = "Items.Big_Uncommon_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Rare_Kanabo : Craftable_Uncommon_Kanabo
{
	quality = "Quality.Rare";
	CraftingData = "Items.Big_Rare_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Epic_Kanabo : Craftable_Uncommon_Kanabo
{
	quality = "Quality.Epic";
	CraftingData = "Items.Big_Epic_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Legendary_Kanabo : Craftable_Uncommon_Kanabo
{
	quality = "Quality.Legendary";
	CraftingData = "Items.Big_Legendary_Crafting_Materials_Weapon";
}

Preset_Hammer_Default : Base_Two_Hand_Hammer
{
	displayName = "LocKey#40221";
	localizedDescription = "LocKey#40222";
	CName[] visualTags = 
	[
		"Default"
	];
	CName appearanceResourceName = "Preset_Hammer_Default";
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< Item > itemPartPreset = "Items.w_hammer_common_grip";
		}, 
		{
			slot = "AttachmentSlots.Blunt_WeaponMod1";
		} : BluntModList_Slot1, 
		{
			slot = "AttachmentSlots.Blunt_WeaponMod2";
		} : BluntModList_Slot2
	];
	OnAttach = 
	[
		"GLP.HoldingBorgMelee"
	];
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Hammer_Damage_Stats"
	];
	npcRPGData = 
	{
		statModifierGroups += 
		[
			"Items.Hammer_NPC_Damage_Stats"
		];
	} : Base_Two_Hand_Hammer_NPC_Data;
}

Hammer_Damage_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Additive";
			value = 67f;
		} : ConstantStatModifier
	];
}

Hammer_NPC_Damage_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Additive";
			value = 67f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Craftable_Common_Hammer : Preset_Hammer_Default
{
	quality = "Quality.Common";
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< Item > itemPartPreset = "Items.w_hammer_common_grip";
		}
	];
	CraftingData = "Items.Big_Common_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Uncommon_Hammer : Craftable_Common_Hammer
{
	quality = "Quality.Uncommon";
	CraftingData = "Items.Big_Uncommon_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Rare_Hammer : Craftable_Uncommon_Hammer
{
	quality = "Quality.Rare";
	CraftingData = "Items.Big_Rare_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Epic_Hammer : Craftable_Uncommon_Hammer
{
	quality = "Quality.Epic";
	CraftingData = "Items.Big_Epic_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Legendary_Hammer : Craftable_Uncommon_Hammer
{
	quality = "Quality.Legendary";
	CraftingData = "Items.Big_Legendary_Crafting_Materials_Weapon";
}

[ notQueryable ]
Preset_Hammer_Sasquatch : Preset_Hammer_Default
{
	localizedDescription = "LocKey#40223";
	displayName = "LocKey#54032";
	CName[] visualTags = 
	[
		"Sasquatch_Hammer"
	];
	quality = "Quality.Legendary";
	CName specific_player_appearance = "w_sledge_hammer_player";
	statModifiers += 
	[
		{
			statType = "BaseStats.Level";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
	bool scaleToPlayer = true;
}

[ notQueryable ]
w_melee_hammer2h : Preset_Hammer_Default
{
}

[ notQueryable ]
w_melee_boss_hammer : Base_Two_Hand_Hammer
{
	OnLooted += 
	[
		{
			effectors = 
			[
				{
					fact = "w_melee_boss_hammer_owned";
					value = 1;
				} : SetFactEffector
			];
		}
	];
	fk< ItemBlueprint > blueprint = "Items.Iconic_Melee_Blueprint";
	displayName = "LocKey#54032";
	quality = "Quality.Random";
	localizedDescription = "LocKey#40223";
	gameplayDescription = "LocKey#93758";
	tags += 
	[
		"Sasquatch_Hammer", "IconicWeapon"
	];
	npcRPGData = 
	{
		statModifiers += 
		[
			"Quality.IconicItem", "AttackModifier.WeaponArmorPenetrationLow"
		];
		statModifierGroups += 
		[
			"Items.Hammer_NPC_Damage_Stats"
		];
	} : Items.Base_Two_Hand_Hammer_NPC_Data;
	CName entityName = "w_melee_boss_hammer";
	appearanceName = "w_sledge_hammer_boss";
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 561;
	} : ConstantStatModifier;
	audioWeaponConfiguration = "audio_melee_metadata_animal_miniboss_hammer";
	fk< Crosshair > crosshair = "Crosshairs.Melee_Hammer";
	slotPartListPreset += 
	[
		{
			slot = "AttachmentSlots.Grip";
			itemPartPreset = "Items.w_hammer_common_grip";
		}, 
		{
			slot = "AttachmentSlots.IconicMeleeWeaponMod1";
			itemPartPreset = "Items.Hammer_Sasquatch_Mod";
		}
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.HitReactionFactor";
			modifierType = "Multiplier";
			value = 2.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Weight";
			modifierType = "Additive";
			value = 23.2f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.CanWeaponIgnoreArmor";
			modifierType = "Additive";
			value = 0.50f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DamagePerHit";
			modifierType = "Multiplier";
			value = 2.19;
		} : ConstantStatModifier, 
		"Quality.IconicItem"
	];
	CName specific_player_appearance = "w_sledge_hammer_player";
	fk< Attack >[] attacks += 
	[
		"NPCAttacks.SasquatchHammerStrongAttack", "NPCAttacks.SasquatchHammerStrongAttackKnockdown"
	];
	fk< StatModifierGroup >[] statModifierGroups = 
	[
		"Items.IconicQualityRandomization", "Items.Blunts_Stun_Application_Stats", "Items.Hammer_Damage_Stats", "Items.Base_Two_Hand_Hammer_RPG_Stats", "Items.Base_Two_Hand_Hammer_Handling_Stats", "Items.Base_Two_Hand_Hammer_Misc_Stats", "Items.Base_Melee_Weapon_Damage_Type_Physical", "Items.Base_Melee_Weapon_Damage_Type_Physical_Min_Max"
	];
	OnAttach = 
	[
		"GLP.HoldingSasquatchHammer"
	];
	bool scaleToPlayer = true;
}

w_hammer_kanabo_grip : ItemWeaponRoot
{
	string friendlyName = "w_hammer_kanabo_grip";
	CName appearanceResourceName = "w_hammer_kanabo_grip";
}

w_hammer_common_grip : ItemWeaponRoot
{
	string friendlyName = "w_hammer_common_grip";
	CName appearanceResourceName = "w_hammer_common_grip";
}

w_shovel_grip : ItemWeaponRoot
{
	string friendlyName = "w_shovel_grip";
	CName appearanceResourceName = "w_shovel_grip";
}

