package Items
using RTDB, BaseStats, WeaponFxPackage, AttackModifier

[ notQueryable ]
Wyvern_Rifle : Base_Weapon
{
	CName entityName = "wyvern_rifle";
	evolution = "WeaponEvolution.Smart";
	fk< TriggerMode >[] triggerModes = 
	[
		"TriggerMode.Burst"
	];
	tags += 
	[
		"HideInUI", "HideAtVendor"
	];
	shootingPatternPackages = 
	[
		"ShootingPatterns.WyvernRifleShootingPackage"
	];
	fk< RangedAttackPackage > rangedAttacks = "Attacks.SmartBulletDronePackage";
	fk< AttachmentSlot >[] placementSlots = 
	[
		"AttachmentSlots.WeaponRight"
	];
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerRifleAssault";
	CName audioName = "dev_drone_wyvern_wea_set_rifle";
	enableNpcRPGData = true;
	canDrop = false;
	npcRPGData = 
	{
		statModifierGroups += 
		[
			"Items.Wyvern_Rifle_Technical_Stats", "Items.Wyvern_Rifle_SmartGun_Stats", "Items.Wyvern_Rifle_Projectile_Stats", "Items.Wyvern_Rifle_NPC_Damage_Stats"
		];
	} : Base_NPC_RPG_Data;
}

Wyvern_Rifle_Technical_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.f;
		} : NumShotsToFireModifier, 
		{
			value = 3.f;
		} : NumShotsInBurstModifier, 
		{
			value = 1.f;
		} : ProjectilesPerShotModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier", {
			value = 0.9f;
		} : CycleTimeModifier, 
		{
			value = 0.2f;
		} : CycleTime_BurstModifier, 
		{
			value = 300.f;
		} : MagazineCapacityModifier, 
		{
			value = 50.f;
		} : EffectiveRangeModifier, 
		{
			value = 0.8f;
		} : RangeModifier, 
		{
			value = 0.33f;
		} : MinTBHModifier, 
		{
			value = 20.f;
		} : PhysicalImpulseModifier
	];
}

Wyvern_Rifle_SmartGun_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.0f;
		} : SmartGunNPCLockOnTimeModifier, 
		{
			value = 1.0f;
		} : SmartGunNPCLockTimeoutModifier, 
		{
			value = 45f;
		} : SmartGunNPCLockingAnglePitchModifier, 
		{
			value = 45f;
		} : SmartGunNPCLockingAngleYawModifier, 
		{
			value = 0.0f;
		} : SmartGunNPCShootProjectilesOnlyStraightModifier, 
		{
			value = 0.1f;
		} : SmartGunNPCTrajectoryCurvatureMultiplierModifier, 
		{
			value = 3.0f;
		} : SmartGunNPCProjectileStartingOrientationAngleOffsetModifier, 
		{
			value = 0.0f;
		} : SmartGunNPCApplySpreadAtHitplaneModifier, 
		{
			value = 0.1f;
		} : SmartGunNPCSpreadMultiplierModifier, 
		{
			value = 35.f;
		} : SmartGunNPCProjectileVelocityModifier
	];
}

Wyvern_Rifle_Projectile_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.0f;
		} : SmartGunAddSpiralTrajectoryModifier, 
		{
			value = 0.06f;
		} : SmartGunSpiralRadiusModifier, 
		{
			value = 0.04f;
		} : SmartGunSpiralCycleTimeMinModifier, 
		{
			value = 0.08f;
		} : SmartGunSpiralCycleTimeMaxModifier, 
		{
			value = 0.0f;
		} : SmartGunSpiralRampDistanceStartModifier, 
		{
			value = 1.0f;
		} : SmartGunSpiralRampDistanceEndModifier, 
		{
			value = 1.0f;
		} : SmartGunSpiralRandomizeDirectionModifier, 
		{
			value = 1.0f;
		} : SmartGunHitProbabilityModifier, 
		{
			value = 0.05f;
		} : SmartGunMissDelayModifier, 
		{
			value = 6.5f;
		} : SmartGunMissRadiusModifier
	];
}

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

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

