245 lines
8.4 KiB
Ucode
245 lines
8.4 KiB
Ucode
//=============================================================================
|
|
// KFWeap_GrenadeLauncher_M32
|
|
//=============================================================================
|
|
// An M32 Grenade Launcher
|
|
//=============================================================================
|
|
// Killing Floor 2
|
|
// Copyright (C) 2017 Tripwire Interactive LLC
|
|
//=============================================================================
|
|
|
|
class KFWeap_GrenadeLauncher_M32 extends KFWeap_GrenadeLauncher_CylinderBase;
|
|
|
|
defaultproperties
|
|
{
|
|
ForceReloadTime=0.0f
|
|
|
|
// Inventory
|
|
InventoryGroup=IG_Primary
|
|
GroupPriority=125
|
|
InventorySize=9
|
|
WeaponSelectTexture=Texture2D'WEP_UI_M32_MGL_TEX.UI_WeaponSelect_M32_MGL'
|
|
|
|
|
|
// FOV
|
|
MeshIronSightFOV=52
|
|
PlayerIronSightFOV=73
|
|
|
|
// Zooming/Position
|
|
PlayerViewOffset=(X=19.0,Y=13,Z=-2)
|
|
FastZoomOutTime=0.2
|
|
|
|
// Content
|
|
PackageKey="M32_MGL"
|
|
FirstPersonMeshName="WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Rig"
|
|
FirstPersonAnimSetNames(0)="WEP_1P_M32_MGL_ANIM.Wep_1stP_M32_MGL_Anim"
|
|
PickupMeshName="WEP_3P_M32_MGL_MESH.Wep_3rdP_M32_MGL_Pickup"
|
|
AttachmentArchetypeName="WEP_M32_MGL_ARCH.Wep_M32_MGL_3P"
|
|
MuzzleFlashTemplateName="WEP_M32_MGL_ARCH.Wep_M32_MGL_MuzzleFlash" // Need to replace
|
|
|
|
Begin Object Name=FirstPersonMesh
|
|
// new anim tree with skelcontrol to rotate cylinders
|
|
AnimTreeTemplate=AnimTree'CHR_1P_Arms_ARCH.WEP_1stP_Animtree_Master_Revolver'
|
|
End Object
|
|
|
|
// Zooming/Position
|
|
IronSightPosition=(X=0,Y=0,Z=0)
|
|
|
|
// Ammo
|
|
MagazineCapacity[0]=6
|
|
SpareAmmoCapacity[0]=36
|
|
InitialSpareMags[0]=2
|
|
AmmoPickupScale[0]=1.0
|
|
bCanBeReloaded=true
|
|
bReloadFromMagazine=false
|
|
|
|
// Recoil
|
|
maxRecoilPitch=900
|
|
minRecoilPitch=775
|
|
maxRecoilYaw=500
|
|
minRecoilYaw=-500
|
|
RecoilRate=0.085
|
|
RecoilBlendOutRatio=0.35
|
|
RecoilMaxYawLimit=500
|
|
RecoilMinYawLimit=65035
|
|
RecoilMaxPitchLimit=1500
|
|
RecoilMinPitchLimit=64785
|
|
RecoilISMaxYawLimit=50
|
|
RecoilISMinYawLimit=65485
|
|
RecoilISMaxPitchLimit=500
|
|
RecoilISMinPitchLimit=65485
|
|
RecoilViewRotationScale=0.8
|
|
FallingRecoilModifier=1.5
|
|
HippedRecoilModifier=1.25
|
|
|
|
// DEFAULT_FIREMODE
|
|
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_Grenade'
|
|
FiringStatesArray(DEFAULT_FIREMODE)=WeaponSingleFiring
|
|
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_Projectile
|
|
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_HighExplosive_M32'
|
|
FireInterval(DEFAULT_FIREMODE)=+0.25
|
|
InstantHitDamage(DEFAULT_FIREMODE)=150.0
|
|
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_M32Impact'
|
|
Spread(DEFAULT_FIREMODE)=0.015
|
|
FireOffset=(X=23,Y=4.0,Z=-3)
|
|
|
|
// ALT_FIREMODE
|
|
FiringStatesArray(ALTFIRE_FIREMODE)=WeaponSingleFiring
|
|
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_None
|
|
|
|
// BASH_FIREMODE
|
|
InstantHitDamageTypes(BASH_FIREMODE)=class'KFDT_Bludgeon_M32'
|
|
InstantHitDamage(BASH_FIREMODE)=26
|
|
|
|
// Fire Effects
|
|
WeaponFireSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_M32.Play_M32_Fire_3P_Single', FirstPersonCue=AkEvent'WW_WEP_M32.Play_M32_Fire_1P_Single')
|
|
|
|
//@todo: add akevent when we have it
|
|
WeaponDryFireSnd(DEFAULT_FIREMODE)=AkEvent'WW_WEP_M32.Play_M32_DryFire'
|
|
|
|
// Animation
|
|
bHasFireLastAnims=true
|
|
|
|
// Attachments
|
|
bHasIronSights=true
|
|
bHasFlashlight=false
|
|
|
|
AssociatedPerkClasses(0)=class'KFPerk_Demolitionist'
|
|
|
|
WeaponFireWaveForm=ForceFeedbackWaveform'FX_ForceFeedback_ARCH.Gunfire.Heavy_Recoil_SingleShot'
|
|
|
|
// Revolver
|
|
bRevolver=true
|
|
CylinderRotInfo=(Inc=60, Time=0.0875/*about 0.35 in the anim divided by ratescale of 4*/)
|
|
|
|
// Revolver shell/cap replacement
|
|
|
|
BulletFXSocketNames=(RW_Bullet_FX_1, RW_Bullet_FX_2, RW_Bullet_FX_3, RW_Bullet_FX_4, RW_Bullet_FX_5, RW_Bullet_FX_6)
|
|
ShellBoneNames=(RW_Shell3, RW_Shell2, RW_Shell1, RW_Shell6, RW_Shell5, RW_Shell4)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp0
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp0)
|
|
BulletMeshComponents.Add(BulletMeshComp0)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp1
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp1)
|
|
BulletMeshComponents.Add(BulletMeshComp1)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp2
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp2)
|
|
BulletMeshComponents.Add(BulletMeshComp2)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp3
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp3)
|
|
BulletMeshComponents.Add(BulletMeshComp3)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp4
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp4)
|
|
BulletMeshComponents.Add(BulletMeshComp4)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp5
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate = SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp5)
|
|
BulletMeshComponents.Add(BulletMeshComp5)
|
|
|
|
Begin Object Class=KFBulletSkeletalMeshComponent Name=BulletMeshComp6
|
|
SkeletalMesh=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UnusedBulletMeshTemplate=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Shell'
|
|
UsedBulletMeshTemplate=SkeletalMesh'WEP_1P_M32_MGL_MESH.Wep_1stP_M32_MGL_Empty_Shell'
|
|
CollideActors=false
|
|
BlockActors=false
|
|
BlockZeroExtent=false
|
|
BlockNonZeroExtent=false
|
|
BlockRigidBody=false
|
|
bAcceptsStaticDecals=false
|
|
bAcceptsDecals=false
|
|
CastShadow=false
|
|
bUseAsOccluder=false
|
|
DepthPriorityGroup=SDPG_Foreground // First person only
|
|
End Object
|
|
Components.Add(BulletMeshComp6)
|
|
ReloadShell=BulletMeshComp6
|
|
}
|