package Items
using RTDB, BaseStats, BaseStatPools, FistsAttacks, WeaponFxPackage

[ notQueryable ]
Base_Fists : Base_Blunt
{
	fk< ItemType > itemType = "ItemType.Wea_Fists";
	triggerEffectName = "te_off";
	iconPath = "fist_radial_short";
	CName dropObject = "";
	canDrop = false;
	fk< ItemBlueprint > blueprint = "Items.Base_Fists_Blueprint";
	tags += 
	[
		"SkipActivityLog", "FinisherFront", "FinisherBack"
	];
	string friendlyName = "w_melee_fists";
	fk< EquipmentArea > equipArea = "EquipmentArea.BaseFists";
	quality = "Quality.Common";
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.FistFxPackage";
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_knuckles_grip";
				}
			];
		}
	];
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Base_Fists_RPG_Stats", "Items.Base_Fists_Handling_Stats", "Items.Base_Fists_Misc_Stats", "Items.Base_Fists_Damage_Stats", "Items.Base_Melee_Weapon_Damage_Type_Physical", "Items.Base_Melee_Weapon_Damage_Type_Physical_Min_Max"
	];
	fk< GameplayLogicPackage >[] OnAttach += 
	[
		"GLP.HoldingFists"
	];
	fk< Attack >[] attacks += 
	[
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsComboAttack1, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsComboAttack2, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsComboAttack3, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsComboAttack4, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsComboAttack5, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsFinalAttack1, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsFinalAttack2, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsFinalAttack3, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsFinalAttack4, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsFinalAttack5, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsFinalAttack6, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsStrongAttack1, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsStrongAttack2, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsStrongAttack3, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsBlockAttack, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsJumpAttack, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsSprintAttack, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsCrouchAttack, 
		{
			string[] hitFlags = 
			[
				"Nonlethal"
			];
		} : FistsAttacks.FistsDeflectAttack, 
		"NPCAttacks.GrabAttack", "NPCAttacks.SpecialGrabAttackNetwatcher", "FistsAttacks.FistsBodySlamLevel1Attack", "FistsAttacks.FistsBodySlamLevel2Attack", "FistsAttacks.FistsBodySlamLevel3Attack", "FistsAttacks.FistsGroundSlamAttack"
	];
	audioWeaponConfiguration = "audio_melee_metadata_fists_normal";
	enableNpcRPGData = true;
	npcRPGData = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.Quality";
				modifierType = "Additive";
				id = "quality_curves";
				column = "iconic_level_to_random_range_mult_new";
				refObject = "Root";
				refStat = "BaseStats.LootLevel";
			} : CurveStatModifier
		];
	} : Base_Fists_NPC_Data;
	float weaponNearPlane = 12.88f;
	float weaponFarPlane = 50.0f;
	float weaponEdgesSharpness = 0.0f;
	float weaponVignetteIntensity = 0.0f;
	float weaponVignetteRadius = 0.0f;
	float weaponVignetteCircular = 0.0f;
	float weaponBlurIntensity = 1.0f;
}

Base_Fists_RPG_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Level";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.CanWeaponDeflect";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BlockFactor";
			modifierType = "Additive";
			value = 7f;
		} : ConstantStatModifier, 
		"Character.ScaleToPlayerPowerLevel", {
			statType = "BaseStats.Quality";
			modifierType = "Additive";
			id = "quality_curves";
			column = "iconic_level_to_random_range_mult_new";
			refStat = "BaseStats.PowerLevel";
		} : CurveStatModifier
	];
}

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

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

Base_Fists_Handling_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitReactionFactor";
			modifierType = "Multiplier";
			value = 1.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Multiplier";
			value = 0.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 0.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AttacksNumber";
			modifierType = "Additive";
			value = 3;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BlockFactor";
			modifierType = "Additive";
			value = 1.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AttacksNumber";
			modifierType = "Additive";
			id = "brawling_passives";
			column = "to_fists_attack_number";
			refStat = "BaseStats.Brawling";
			refObject = "Player";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.MeleeAttackDuration";
			modifierType = "Additive";
			value = 0.4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.MeleeAttackComboDuration";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier, 
		{
			float value = 10.f;
		} : KnockdownImpulseModifier, 
		{
			float value = 10.f;
		} : BaseKnockdownImpulseModifier, 
		{
			float value = 10.f;
		} : BaseEvadeImpulseModifier, 
		{
			float value = 6.f;
		} : PhysicalImpulseModifier, 
		{
			statType = "BaseStats.StaminaCostToBlock";
			modifierType = "Multiplier";
			value = 0.757f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BaseMeleeAttackStaminaCost";
			modifierType = "Additive";
			value = 8f;
		} : ConstantStatModifier
	];
}

Base_Fists_Misc_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.CanWeaponDash";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.CanWeaponInfinitlyCombo";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		"BaseStats.EquipDurationModifier", "BaseStats.UnequipDurationModifier", {
			statType = "BaseStats.ZoomLevel";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EquipDuration_First";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

Base_Fists_NPC_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaminaCostToBlock";
			modifierType = "Additive";
			value = 20.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 0.f;
		} : 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 = 10.f;
		} : KnockdownImpulseModifier, 
		{
			float value = 10.f;
		} : BaseKnockdownImpulseModifier, 
		{
			float value = 10.f;
		} : BaseEvadeImpulseModifier, 
		{
			float value = 6.f;
		} : PhysicalImpulseModifier, 
		{
			value = 0.0f;
		} : EquipItemTime_GangModifier, 
		{
			value = 0.533f;
		} : EquipAnimationDuration_GangModifier, 
		{
			value = 0.9f;
		} : EquipActionDuration_GangModifier, 
		{
			value = 0.0f;
		} : UnequipItemTime_GangModifier, 
		{
			value = 0.467f;
		} : UnequipAnimationDuration_GangModifier, 
		{
			value = 1.033f;
		} : UnequipDuration_GangModifier, 
		{
			value = 0.0f;
		} : EquipItemTime_CorpoModifier, 
		{
			value = 0.533f;
		} : EquipAnimationDuration_CorpoModifier, 
		{
			value = 0.9;
		} : EquipActionDuration_CorpoModifier, 
		{
			value = 0.0f;
		} : UnequipItemTime_CorpoModifier, 
		{
			value = 0.467f;
		} : UnequipAnimationDuration_CorpoModifier, 
		{
			value = 1.033f;
		} : UnequipDuration_CorpoModifier
	];
}

Base_Fists_NPC_Data : Base_NPC_RPG_Data
{
	statModifierGroups += 
	[
		"Items.Base_Fists_NPC_Stats", "Items.Base_Fists_NPC_Damage_Stats"
	];
}

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

