package Items
using RTDB, BaseStats, Prereqs, Perks

[ notQueryable ]
Base_Machete : Base_Blade
{
	fk< ItemType > itemType = "ItemType.Wea_Machete";
	triggerEffectName = "te_wea_melee_swing_mid";
	string friendlyName = "w_melee_one_hand_blunt";
	CName audioName = "w_melee_001_katana";
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 2;
	} : ConstantStatModifier;
	fk< AttachmentSlot >[] placementSlots += 
	[
		"AttachmentSlots.ItemSlotSMG"
	];
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		{
			slot = "AttachmentSlots.Grip";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_kukri_common_grip";
				}, 
				{
					item = "Items.w_machete_common_grip";
				}, 
				{
					item = "Items.w_machete_borg_grip";
				}
			];
		}
	];
	tags += 
	[
		"One Hand Blade", "OneHandBladeFinisher", "FinisherFront", "FinisherBack", "DriverCombatBikeWeapon"
	];
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.KatanaFxPackage";
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Base_Machete_RPG_Stats", "Items.Base_Machete_Handling_Stats", "Items.Base_Machete_Misc_Stats", "Items.Base_Melee_Weapon_Damage_Type_Physical", "Items.Base_Melee_Weapon_Damage_Type_Physical_Min_Max"
	];
	enableNpcRPGData = true;
	npcRPGData = 
	{
		statModifierGroups += 
		[
		];
	} : Base_Machete_NPC_Data;
}

Base_Machete_RPG_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Weight";
			modifierType = "Additive";
			value = 4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BlockFactor";
			modifierType = "Additive";
			value = 3.5f;
		} : ConstantStatModifier, 
		"AttackModifier.WeaponArmorPenetrationLow"
	];
}

Base_Machete_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.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.MeleeAttackComboDuration";
			modifierType = "Additive";
			value = 0.586f;
		} : ConstantStatModifier, 
		{
			float value = 15.f;
		} : KnockdownImpulseModifier, 
		{
			float value = 15.f;
		} : BaseKnockdownImpulseModifier, 
		{
			float value = 15.f;
		} : BaseEvadeImpulseModifier, 
		{
			float value = 8.f;
		} : PhysicalImpulseModifier, 
		{
			statType = "BaseStats.StaminaCostToBlock";
			modifierType = "Multiplier";
			value = 1.212f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BaseMeleeAttackStaminaCost";
			modifierType = "Additive";
			value = 12f;
		} : ConstantStatModifier
	];
}

Borg_Machete_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.MeleeBorgStaminaDrain";
			modifierType = "Additive";
			value = 3f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Weight";
			modifierType = "Additive";
			value = 2.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Multiplier";
			value = 2.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 4.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AttackSpeed";
			modifierType = "Multiplier";
			value = 0.9;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownImpulse";
			modifierType = "Additive";
			value = 15.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BaseKnockdownImpulse";
			modifierType = "Additive";
			value = 15.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EvadeImpulse";
			modifierType = "Additive";
			value = 15.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.PhysicalImpulse";
			modifierType = "Additive";
			value = 9.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.VehicleMinHealthPercentWhenDamaged";
			modifierType = "Multiplier";
			value = 0f;
		} : ConstantStatModifier
	];
}

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

Base_Machete_NPC_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.Range";
			modifierType = "Additive";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			value = 8.f;
		} : PhysicalImpulseModifier, 
		{
			statType = "BaseStats.CanBlock";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaminaCostToBlock";
			modifierType = "Additive";
			value = 20f;
		} : 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 = 15.f;
		} : KnockdownImpulseModifier, 
		{
			float value = 15.f;
		} : BaseKnockdownImpulseModifier, 
		{
			float value = 15.f;
		} : BaseEvadeImpulseModifier, 
		{
			float value = 8.f;
		} : PhysicalImpulseModifier, 
		{
			value = 0.4f;
		} : EquipItemTime_GangModifier, 
		{
			value = 1.167f;
		} : EquipAnimationDuration_GangModifier, 
		{
			value = 1.9f;
		} : EquipActionDuration_GangModifier, 
		{
			value = 0.933f;
		} : UnequipItemTime_GangModifier, 
		{
			value = 1.067f;
		} : UnequipAnimationDuration_GangModifier, 
		{
			value = 1.4f;
		} : UnequipDuration_GangModifier, 
		{
			value = 0.4f;
		} : EquipItemTime_CorpoModifier, 
		{
			value = 1.167f;
		} : EquipAnimationDuration_CorpoModifier, 
		{
			value = 1.9f;
		} : EquipActionDuration_CorpoModifier, 
		{
			value = 0.933f;
		} : UnequipItemTime_CorpoModifier, 
		{
			value = 1.067f;
		} : UnequipAnimationDuration_CorpoModifier, 
		{
			value = 1.4f;
		} : UnequipDuration_CorpoModifier
	];
}

Base_Machete_NPC_Data : Base_Blade_NPC_RPG_Data
{
	statModifierGroups += 
	[
		"Items.Base_Machete_NPC_Stats"
	];
}

[ notQueryable ]
Base_Machete_Kukri : Base_Machete
{
	fk< Attack >[] attacks += 
	[
		"MacheteAttacks.MacheteComboAttack1", "MacheteAttacks.MacheteComboAttack2", "MacheteAttacks.MacheteComboAttack3", "MacheteAttacks.MacheteComboAttack4", "MacheteAttacks.MacheteMountedComboAttack1", "MacheteAttacks.MacheteMountedComboAttack2", "MacheteAttacks.MacheteMountedComboAttack3", "MacheteAttacks.MacheteMountedComboAttack4", "MacheteAttacks.MacheteFinalAttack1", "MacheteAttacks.MacheteFinalAttack2", "MacheteAttacks.MacheteFinalAttack3", "MacheteAttacks.MacheteMountedFinalAttack1", "MacheteAttacks.MacheteMountedFinalAttack2", "MacheteAttacks.MacheteMountedFinalAttack3", "MacheteAttacks.MacheteStrongAttack1", "MacheteAttacks.MacheteStrongAttack2", "MacheteAttacks.MacheteStrongAttack3", "MacheteAttacks.MacheteMountedStrongAttack1", "MacheteAttacks.MacheteMountedStrongAttack2", "MacheteAttacks.MacheteMountedStrongAttack3", "MacheteAttacks.MacheteJumpAttack", "MacheteAttacks.MacheteCrouchAttack", "MacheteAttacks.MacheteSprintAttack", "MacheteAttacks.MacheteSafeAttack", "MacheteAttacks.MacheteBlockAttack", "MacheteAttacks.MacheteDeflectAttack"
	];
}

[ notQueryable ]
Base_Machete_Borg : Base_Machete
{
	attacks += 
	[
		"MacheteAttacks.BorgMacheteComboAttack1", "MacheteAttacks.BorgMacheteComboAttack2", "MacheteAttacks.BorgMacheteComboAttack3", "MacheteAttacks.BorgMacheteComboAttack4", "MacheteAttacks.BorgMacheteMountedComboAttack1", "MacheteAttacks.BorgMacheteMountedComboAttack2", "MacheteAttacks.BorgMacheteMountedComboAttack3", "MacheteAttacks.BorgMacheteMountedComboAttack4", "MacheteAttacks.BorgMacheteFinalAttack1", "MacheteAttacks.BorgMacheteFinalAttack2", "MacheteAttacks.BorgMacheteFinalAttack3", "MacheteAttacks.BorgMacheteMountedFinalAttack1", "MacheteAttacks.BorgMacheteMountedFinalAttack2", "MacheteAttacks.BorgMacheteMountedFinalAttack3", "MacheteAttacks.BorgMacheteStrongAttack1", "MacheteAttacks.BorgMacheteStrongAttack2", "MacheteAttacks.BorgMacheteStrongAttack3", "MacheteAttacks.BorgMacheteMountedStrongAttack1", "MacheteAttacks.BorgMacheteMountedStrongAttack2", "MacheteAttacks.BorgMacheteMountedStrongAttack3", "MacheteAttacks.BorgMacheteJumpAttack", "MacheteAttacks.BorgMacheteCrouchAttack", "MacheteAttacks.BorgMacheteSprintAttack", "MacheteAttacks.BorgMacheteSafeAttack", "MacheteAttacks.BorgMacheteBlockAttack", "MacheteAttacks.BorgMacheteDeflectAttack"
	];
}

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

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

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

