175 lines
5.5 KiB
Ucode
175 lines
5.5 KiB
Ucode
//=============================================================================
|
|
// KFWeap_AssaultRifle_G36C
|
|
//=============================================================================
|
|
// Class Description
|
|
//=============================================================================
|
|
// Killing Floor 2
|
|
// Copyright (C) 2022 Tripwire Interactive LLC
|
|
//=============================================================================
|
|
|
|
class KFWeap_AssaultRifle_G36C extends KFWeap_SMGBase;
|
|
|
|
simulated function ZoomIn(bool bAnimateTransition, float ZoomTimeToGo)
|
|
{
|
|
super.ZoomIn(bAnimateTransition, ZoomTimeToGo);
|
|
|
|
if (LaserSight != none)
|
|
{
|
|
LaserSight.ChangeVisibility(false);
|
|
}
|
|
}
|
|
|
|
simulated function ZoomOut( bool bAnimateTransition, float ZoomTimeToGo )
|
|
{
|
|
super.ZoomOut( bAnimateTransition, ZoomTimeToGo );
|
|
|
|
if (LaserSight != none)
|
|
{
|
|
LaserSight.ChangeVisibility(true);
|
|
}
|
|
}
|
|
|
|
simulated function AttachLaserSight()
|
|
{
|
|
if( WorldInfo.NetMode == NM_DedicatedServer )
|
|
{
|
|
return;
|
|
}
|
|
|
|
super.AttachLaserSight();
|
|
|
|
if (LaserSight != none)
|
|
{
|
|
LaserSight.bForceDotToMatch = true;
|
|
}
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
bHasFireLastAnims=true
|
|
BonesToLockOnEmpty=(RW_Bolt, RW_Charging_Handle)
|
|
|
|
// Shooting Animations
|
|
FireSightedAnims[0]=Shoot_Iron
|
|
FireSightedAnims[1]=Shoot_Iron2
|
|
FireSightedAnims[2]=Shoot_Iron3
|
|
|
|
// FOV
|
|
MeshFOV=70
|
|
MeshIronSightFOV=20
|
|
PlayerIronSightFOV=70
|
|
|
|
// Depth of field
|
|
DOF_FG_FocalRadius=150
|
|
DOF_FG_MaxNearBlurSize=3
|
|
|
|
// Zooming/Position
|
|
IronSightPosition=(X=40,Y=0.1,Z=-4.57)
|
|
PlayerViewOffset=(X=14,Y=11,Z=-5)
|
|
|
|
// Content
|
|
PackageKey="G36C"
|
|
FirstPersonMeshName="WEP_1P_G36C_MESH.Wep_1stP_G36C_Rig"
|
|
FirstPersonAnimSetNames(0)="WEP_1P_G36C_ANIM.Wep_1stP_G36C_Anim"
|
|
PickupMeshName="WEP_3P_G36C_MESH.Wep_G36C_Pickup"
|
|
AttachmentArchetypeName="WEP_G36C_ARCH.Wep_G36C_3P"
|
|
MuzzleFlashTemplateName="WEP_G36C_ARCH.Wep_G36C_MuzzleFlash"
|
|
|
|
LaserSightTemplate=KFLaserSightAttachment'FX_LaserSight_ARCH.LaserSight_WithAttachment_1P'
|
|
|
|
// Ammo
|
|
MagazineCapacity[0]=30
|
|
SpareAmmoCapacity[0]=450
|
|
InitialSpareMags[0]=3
|
|
bCanBeReloaded=true
|
|
bReloadFromMagazine=true
|
|
|
|
// Recoil
|
|
maxRecoilPitch=50
|
|
minRecoilPitch=40
|
|
maxRecoilYaw=70
|
|
minRecoilYaw=-70
|
|
RecoilRate=0.085
|
|
RecoilMaxYawLimit=500
|
|
RecoilMinYawLimit=65035
|
|
RecoilMaxPitchLimit=900
|
|
RecoilMinPitchLimit=65035
|
|
RecoilISMaxYawLimit=100
|
|
RecoilISMinYawLimit=65460
|
|
RecoilISMaxPitchLimit=350
|
|
RecoilISMinPitchLimit=65460
|
|
IronSightMeshFOVCompensationScale=6.0
|
|
|
|
// Old Recoil Data
|
|
// maxRecoilPitch=80
|
|
// minRecoilPitch=65
|
|
// maxRecoilYaw=60
|
|
// minRecoilYaw=-60
|
|
// RecoilRate=0.063
|
|
// RecoilMaxYawLimit=400
|
|
// RecoilMinYawLimit=65135
|
|
// RecoilMaxPitchLimit=800
|
|
// RecoilMinPitchLimit=65035
|
|
// RecoilISMaxYawLimit=150
|
|
// RecoilISMinYawLimit=65385
|
|
// RecoilISMaxPitchLimit=350
|
|
// RecoilISMinPitchLimit=65435
|
|
// IronSightMeshFOVCompensationScale=1.5
|
|
|
|
// Inventory
|
|
InventorySize=7
|
|
GroupPriority=100
|
|
WeaponSelectTexture=Texture2D'wep_ui_g36c_tex.UI_WeaponSelect_G36C'
|
|
|
|
// DEFAULT_FIREMODE
|
|
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_BulletAuto'
|
|
FiringStatesArray(DEFAULT_FIREMODE)=WeaponFiring
|
|
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_InstantHit
|
|
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_AssaultRifle'
|
|
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_G36C'
|
|
PenetrationPower(DEFAULT_FIREMODE)=4.0
|
|
FireInterval(DEFAULT_FIREMODE)=+0.08 // 750 RPM
|
|
Spread(DEFAULT_FIREMODE)=0.005
|
|
InstantHitDamage(DEFAULT_FIREMODE)=45.0
|
|
FireOffset=(X=30,Y=4.5,Z=-5)
|
|
|
|
// ALT_FIREMODE
|
|
FireModeIconPaths(ALTFIRE_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_BulletSingle'
|
|
FiringStatesArray(ALTFIRE_FIREMODE)=WeaponSingleFiring
|
|
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_InstantHit
|
|
WeaponProjectiles(ALTFIRE_FIREMODE)=class'KFProj_Bullet_AssaultRifle'
|
|
InstantHitDamageTypes(ALTFIRE_FIREMODE)=class'KFDT_Ballistic_G36C'
|
|
PenetrationPower(ALTFIRE_FIREMODE)=4.0
|
|
FireInterval(ALTFIRE_FIREMODE)=+0.08 // 750 RPM
|
|
InstantHitDamage(ALTFIRE_FIREMODE)=45.0
|
|
Spread(ALTFIRE_FIREMODE)=0.005
|
|
|
|
// BASH_FIREMODE
|
|
InstantHitDamageTypes(BASH_FIREMODE)=class'KFDT_Bludgeon_G36C'
|
|
InstantHitDamage(BASH_FIREMODE)=26
|
|
|
|
// Fire Effects
|
|
WeaponFireSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_G36C.Play_WEP_G36C_3P_Shoot_LP', FirstPersonCue=AkEvent'WW_WEP_G36C.Play_WEP_G36C_1P_Shoot_LP')
|
|
WeaponFireSnd(ALTFIRE_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_G36C.Play_WEP_G36C_3P_Shoot_Single', FirstPersonCue=AkEvent'WW_WEP_G36C.Play_WEP_G36C_1P_Shoot_Single')
|
|
WeaponDryFireSnd(DEFAULT_FIREMODE)=AkEvent'WW_WEP_SA_AK12.Play_WEP_SA_AK12_Handling_DryFire' //@TODO: Replace me
|
|
WeaponDryFireSnd(ALTFIRE_FIREMODE)=AkEvent'WW_WEP_SA_AK12.Play_WEP_SA_AK12_Handling_DryFire' //@TODO: Replace me
|
|
// WeaponDryFireSnd(DEFAULT_FIREMODE)=AkEvent'WW_WEP_G36C.Play_WEP_G36C_Dry_Fire'
|
|
// WeaponDryFireSnd(ALTFIRE_FIREMODE)=AkEvent'WW_WEP_G36C.Play_WEP_G36C_Dry_Fire'
|
|
|
|
// Advanced (High RPM) Fire Effects
|
|
bLoopingFireAnim(DEFAULT_FIREMODE)=true
|
|
bLoopingFireSnd(DEFAULT_FIREMODE)=true
|
|
WeaponFireLoopEndSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_G36C.Play_WEP_G36C_3P_End_LP', FirstPersonCue=AkEvent'WW_WEP_G36C.Play_WEP_G36C_1P_End_LP')
|
|
SingleFireSoundIndex=ALTFIRE_FIREMODE
|
|
|
|
// Attachments
|
|
bHasIronSights=true
|
|
bHasFlashlight=false
|
|
bHasLaserSight=true
|
|
|
|
AssociatedPerkClasses(0)=class'KFPerk_Swat'
|
|
|
|
// Weapon Upgrade stat boosts
|
|
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Damage1, Scale=1.15f), (Stat=EWUS_Weight, Add=1)))
|
|
}
|