//============================================================================= // 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 }