1
0
KF2-Dev-Scripts/KFGameContent/Classes/KFWeap_HRG_Nailgun.uc
2020-12-13 18:01:13 +03:00

206 lines
6.4 KiB
Ucode

//=============================================================================
// KFWeap_HRG_Nailgun
//=============================================================================
// A makeshift SMG that shoots nails
//=============================================================================
// Killing Floor 2
// Copyright (C) 2019 Tripwire Interactive LLC
//=============================================================================
class KFWeap_HRG_Nailgun extends KFWeap_Shotgun_Nailgun;
var(Animations) const editconst name AltFireLoopAnim;
var(Animations) const editconst name AltFireLoopSightedAnim;
var(Animations) const editconst name AltFireLoopStartAnim;
var(Animations) const editconst name AltFireLoopStartSightedAnim;
var(Animations) const editconst name AltFireLoopEndAnim;
var(Animations) const editconst name AltFireLoopEndSightedAnim;
/** Get name of the animation to play for PlayFireEffects */
simulated function name GetLoopingFireAnim(byte FireModeNum)
{
if (FireModeNum == ALTFIRE_FIREMODE)
{
if (bUsingSights)
{
return AltFireLoopSightedAnim;
}
return AltFireLoopAnim;
}
return super.GetLoopingFireAnim(FireModeNum);
}
/** Get name of the animation to play for PlayFireEffects */
simulated function name GetLoopStartFireAnim(byte FireModeNum)
{
if (FireModeNum == ALTFIRE_FIREMODE)
{
if (bUsingSights)
{
return AltFireLoopStartSightedAnim;
}
return AltFireLoopStartAnim;
}
return super.GetLoopStartFireAnim(FireModeNum);
}
/** Get name of the animation to play for PlayFireEffects */
simulated function name GetLoopEndFireAnim(byte FireModeNum)
{
if (FireModeNum == ALTFIRE_FIREMODE)
{
if (bUsingSights)
{
return AltFireLoopEndSightedAnim;
}
else
{
return AltFireLoopEndAnim;
}
}
return super.GetLoopEndFireAnim(FireModeNum);
}
simulated function ConsumeAmmo(byte FireModeNum)
{
local KFPerk InstigatorPerk;
`if(`notdefined(ShippingPC))
if (bInfiniteAmmo)
{
return;
}
`endif
InstigatorPerk = GetPerk();
if (InstigatorPerk != none && InstigatorPerk.GetIsUberAmmoActive(self))
{
return;
}
super.ConsumeAmmo(FireModeNum);
}
/*********************************************************************************************
* State WeaponAltFiringAuto
*
*********************************************************************************************/
simulated state WeaponAltFiringAuto extends WeaponFiring
{
/** Overrideen to include the DoubleFireRecoilModifier*/
simulated function ModifyRecoil(out float CurrentRecoilModifier)
{
super.ModifyRecoil(CurrentRecoilModifier);
CurrentRecoilModifier *= AltFireRecoilModifier;
}
/** Initialize the weapon as being active and ready to go. */
simulated function BeginState(Name PreviousStateName)
{
super.BeginState(PreviousStateName);
// Initialize recoil blend out settings
if (RecoilRate > 0 && RecoilBlendOutRatio > 0)
{
RecoilYawBlendOutRate = ((maxRecoilYaw*AltFireRecoilModifier)/RecoilRate) * RecoilBlendOutRatio;
RecoilPitchBlendOutRate = ((maxRecoilPitch*AltFireRecoilModifier)/RecoilRate) * RecoilBlendOutRatio;
}
}
}
defaultproperties
{
//Inventory
InventorySize=5
GroupPriority=75
FireLoopAnim=HRG_ShootLoop
FireLoopSightedAnim=HRG_ShootLoop_Iron
FireLoopStartAnim=HRG_ShootLoop_Start
FireLoopStartSightedAnim=HRG_ShootLoop_Iron_Start
FireLoopEndAnim=HRG_ShootLoop_End
FireLoopEndSightedAnim=HRG_ShootLoop_Iron_End
AltFireLoopAnim=HRG_Alt_ShootLoop
AltFireLoopSightedAnim=HRG_Alt_ShootLoop_Iron
AltFireLoopStartAnim=HRG_Alt_ShootLoop_Start
AltFireLoopStartSightedAnim=HRG_Alt_ShootLoop_Iron_Start
AltFireLoopEndAnim=HRG_Alt_ShootLoop_End
AltFireLoopEndSightedAnim=HRG_Alt_ShootLoop_Iron_End
// DEFAULT_FIREMODE
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_Nail'
FiringStatesArray(DEFAULT_FIREMODE)=WeaponFiring
InstantHitDamage(DEFAULT_FIREMODE)=40
Spread(DEFAULT_FIREMODE)=0.025
FireInterval(DEFAULT_FIREMODE)=0.07 //857 RPM
NumPellets(DEFAULT_FIREMODE)=1
PenetrationPower(DEFAULT_FIREMODE)=3.0
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_HRGNailgun'
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Nail_HRGNailgun'
// ALTFIRE_FIREMODE
FireModeIconPaths(ALTFIRE_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_NailsBurst'
FiringStatesArray(ALTFIRE_FIREMODE)=WeaponAltFiringAuto
InstantHitDamage(ALTFIRE_FIREMODE)=40
Spread(ALTFIRE_FIREMODE)=0.15
FireInterval(ALTFIRE_FIREMODE)=0.12 //500 RPM
NumPellets(ALTFIRE_FIREMODE)=3
PenetrationPower(ALTFIRE_FIREMODE)=3.0
InstantHitDamageTypes(ALTFIRE_FIREMODE)=class'KFDT_Ballistic_HRGNailgun'
WeaponProjectiles(ALTFIRE_FIREMODE)=class'KFProj_Nail_HRGNailgun'
AltFireRecoilModifier=2.5f
// BASH_FIREMODE
InstantHitDamageTypes(BASH_FIREMODE)=class'KFDT_Bludgeon_HRGNailgun'
bLoopingFireAnim(DEFAULT_FIREMODE)=true
bLoopingFireAnim(ALTFIRE_FIREMODE)=true
maxRecoilPitch=100
minRecoilPitch=85
maxRecoilYaw=60
minRecoilYaw=-60
RecoilRate=0.045
RecoilMaxYawLimit=500
RecoilMinYawLimit=65035
RecoilMaxPitchLimit=900
RecoilMinPitchLimit=65035
RecoilISMaxYawLimit=100
RecoilISMinYawLimit=65435
RecoilISMaxPitchLimit=375
RecoilISMinPitchLimit=65460
IronSightMeshFOVCompensationScale=1.5
WalkingRecoilModifier=1.1
JoggingRecoilModifier=1.2
AssociatedPerkClasses.Empty()
AssociatedPerkClasses(0)=class'KFPerk_Swat'
MagazineCapacity[0]=42
SpareAmmoCapacity[0]=336
InitialSpareMags[0]=2
WeaponSelectTexture=Texture2D'WEP_UI_HRG_Nailgun_PDW_TEX.UI_WeaponSelect_HRG_Nailgun_PDW'
WeaponUpgrades.Empty()
WeaponUpgrades[0]=(Stats=((Stat=EWUS_Damage0, Scale=1.f, Add=0), (Stat=EWUS_Weight, Scale=1.f, Add=0)))
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Damage1, Scale=1.15f), (Stat=EWUS_Weight, Add=1)))
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Damage1, Scale=1.3f), (Stat=EWUS_Weight, Add=2)))
// Content
PackageKey="HRG_Nailgun_PDW"
FirstPersonMeshName="WEP_1P_HRG_Nailgun_PDW_MESH.Wep_1stP_HRG_Nailgun_PDW_Rig"
FirstPersonAnimSetNames(0)="WEP_1P_HRG_Nailgun_PDW_ANIM.Wep_1stP_HRG_Nailgun_PDW_Anim"
PickupMeshName="WEP_3P_HRG_Nailgun_PDW_MESH.Wep_HRG_Nailgun_PDW_Pickup"
AttachmentArchetypeName="WEP_HRG_Nailgun_PDW_ARCH.Wep_HRG_Nailgun_PDW_3P"
MuzzleFlashTemplateName="WEP_HRG_Nailgun_PDW_ARCH.Wep_HRG_Nailgun_PDW_MuzzleFlash"
}