206 lines
6.4 KiB
Ucode
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"
|
||
|
}
|