package Items
using RTDB, BaseStats

[ notQueryable ]
Panzer_Base_Weapon : Base_Weapon
{
	tags += 
	[
		"PanzerWeapon"
	];
}

[ notQueryable ]
Panzer_Cannon : Panzer_Base_Weapon
{
	string friendlyName = "w_panzer_cannon";
	displayName = "LocKey#50343";
	localizedDescription = "LocKey#50343";
	CName audioName = "v_av_panzer_wea_set_cannon";
	CName entityName = "blank_weapon";
	CName[] tags += 
	[
		"Preload", "Weapon", "Unique", "HeavyWeapon"
	];
	fk< TriggerMode >[] triggerModes = 
	[
		"TriggerMode.FullAuto"
	];
	fk< ItemType > itemType = "ItemType.Wea_HeavyMachineGun";
	fk< AttachmentSlot >[] placementSlots = 
	[
		"AttachmentSlots.PanzerCannon"
	];
	fk< Attack >[] attacks = 
	[
		"Attacks.ExplodingPanzerBulletProjectile"
	];
	fk< Crosshair > crosshair = "Crosshairs.Custom_HMG";
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerLargeCaliber";
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Base_Panzer_Weapon_Stats", "Items.Base_HMG_Damage_Stats"
	];
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.HitReactionFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Panzer_Missile_Launcher : Panzer_Base_Weapon
{
	string friendlyName = "w_panzer_missile_launcher";
	displayName = "LocKey#50344";
	localizedDescription = "LocKey#50344";
	CName audioName = "v_av_panzer_wea_set_missiles";
	CName entityName = "blank_weapon";
	CName[] tags += 
	[
		"Preload", "Weapon", "Unique", "HeavyWeapon"
	];
	fk< TriggerMode >[] triggerModes = 
	[
		"TriggerMode.FullAuto"
	];
	fk< ItemType > itemType = "ItemType.Wea_HeavyMachineGun";
	fk< AttachmentSlot >[] placementSlots = 
	[
		"AttachmentSlots.PanzerHomingMissiles"
	];
	fk< WeaponEvolution > evolution = "WeaponEvolution.Smart";
	fk< Attack >[] attacks = 
	[
		"Attacks.PanzerRainMissile"
	];
	rangedAttacks = "Attacks.RainMissilePackage";
	fk< Crosshair > crosshair = "Crosshairs.Custom_HMG";
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerLargeCaliber";
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Base_Smart_Stats", "Items.Base_Panzer_Weapon_Stats", "Items.Base_Panzer_Missile_Launcher_Stats", "Items.Base_HMG_Damage_Stats"
	];
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.HitReactionFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		"BaseStats.SmartGunTargetAcquisitionRangeModifier"
	];
}

[ notQueryable ]
Panzer_Counter_Measures_Launcher : Panzer_Base_Weapon
{
	string friendlyName = "w_panzer_counter_measures_launcher";
	displayName = "LocKey#50345";
	localizedDescription = "LocKey#50345";
	CName audioName = "v_av_panzer_wea_set_countermeasures";
	CName entityName = "blank_weapon";
	CName[] tags += 
	[
		"Preload", "Weapon", "Unique", "HeavyWeapon"
	];
	fk< TriggerMode >[] triggerModes = 
	[
		"TriggerMode.FullAuto"
	];
	fk< ItemType > itemType = "ItemType.Wea_HeavyMachineGun";
	fk< AttachmentSlot >[] placementSlots = 
	[
		"AttachmentSlots.PanzerCounterMeasuresLeft", "AttachmentSlots.PanzerCounterMeasuresRight"
	];
	fk< Attack >[] attacks = 
	[
		"Attacks.PanzerCounterMeasures"
	];
	fk< Crosshair > crosshair = "Crosshairs.Custom_HMG";
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerLargeCaliber";
	fk< StatModifierGroup >[] statModifierGroups += 
	[
		"Items.Base_Panzer_Weapon_Stats", "Items.Base_HMG_Damage_Stats"
	];
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.HitReactionFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitWoundsFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 3.f;
		} : ConstantStatModifier
	];
}

Base_Panzer_Weapon_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Multiplier";
			value = 6.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BaseDamage";
			modifierType = "Additive";
			refStat = "BaseStats.DPS";
			opSymbol = "*";
			value = 1.f;
		} : CombinedStatModifier
	];
}

Base_Panzer_Missile_Launcher_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 75.f;
		} : EffectiveRangeModifier, 
		{
			value = 30.f;
		} : SmartGunHipLockingAnglePitchModifier, 
		{
			value = 30.f;
		} : SmartGunHipLockingAngleYawModifier, 
		{
			value = 30.f;
		} : SmartGunHipTargetableAnglePitchModifier, 
		{
			value = 30.f;
		} : SmartGunHipTargetableAngleYawModifier, 
		{
			value = 7.f;
		} : SmartGunHipMaxLockedTargetsModifier, 
		{
			value = 1.f;
		} : SmartGunHipTimeToLockModifier, 
		{
			value = 1.f;
		} : SmartGunHipTimeToUnlockModifier, 
		{
			value = 0.f;
		} : SmartGunTimeToRemoveOccludedTargetModifier, 
		{
			value = 1.f;
		} : SmartGunUseEvenDistributionTargetingModifier, 
		{
			value = 0.15f;
		} : SmartGunEvenDistributionPeriodModifier
	];
}

