1
0
KF2-Dev-Scripts/KFGameContent/Classes/KFWeap_Flame_CaulkBurn.uc

233 lines
7.1 KiB
Ucode
Raw Normal View History

2020-12-13 15:01:13 +00:00
//=============================================================================
// KFWeap_Flame_CaulkBurn
//=============================================================================
// The "Incinerator" flamethrower
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
// Greg Felber
//=============================================================================
class KFWeap_Flame_CaulkBurn extends KFWeap_FlameBase;
/** Effect for the pilot light. */
var() protected KFParticleSystemComponent PSC_PilotLight2;
/** Socket to attach the pilot light to. */
var() name PilotLight2SocketName;
simulated protected function TurnOnPilot()
{
local float OwnerMeshFOV;
if (bPilotLightOn)
return;
OwnerMeshFOV = MySkelMesh.FOV;
// Attach and start up the pilot light
if( PSC_PilotLight2 != None )
{
MySkelMesh.AttachComponentToSocket( PSC_PilotLight2, PilotLight2SocketName );
PSC_PilotLight2.ActivateSystem();
// Turn on the low flame, turn off the high flame
PSC_PilotLight2.SetFloatParameter('Pilotlow', 1.0);
PSC_PilotLight2.SetFloatParameter('Pilothigh', 0.0);
PSC_PilotLight2.SetFOV(OwnerMeshFOV);
}
super.TurnOnPilot();
}
simulated protected function TurnOffPilot()
{
Super.TurnOffPilot();
if( PSC_PilotLight2 != None )
{
PSC_PilotLight2.DeActivateSystem();
}
}
/**
* Adjust the FOV for the first person weapon and arms.
*/
simulated event SetFOV( float NewFOV )
{
Super.SetFOV(NewFOV);
// Set the light emitter to the same FOV as the weapon mesh
if( MySkelMesh != none )
{
if( PSC_PilotLight2 != None )
{
PSC_PilotLight2.SetFOV(MySkelMesh.FOV);
}
}
}
defaultproperties
{
FlameSprayArchetype=SprayActor_Flame'WEP_CaulkBurn_ARCH.WEP_CaulkBurn_Flame'
Begin Object Name=PilotLight0
Template=ParticleSystem'WEP_CaulkBurn_EMIT.FX_CaulkBurn_pilot_light_01'
End Object
PilotLightSocketName=FXPilot1
PilotLight2SocketName=FXPilot2
// Pilot lights
Begin Object Class=PointLightComponent Name=PilotPointLight0
LightColor=(R=250,G=150,B=85,A=255)
Brightness=0.125f
FalloffExponent=4.f
Radius=128.f
CastShadows=False
CastStaticShadows=FALSE
CastDynamicShadows=TRUE
bCastPerObjectShadows=false
bEnabled=FALSE
LightingChannels=(Indoor=TRUE,Outdoor=TRUE,bInitialized=TRUE)
End Object
Begin Object Class=PointLightComponent Name=PilotPointLight1
LightColor=(R=250,G=150,B=85,A=255)
Brightness=0.125f
FalloffExponent=4.f
Radius=128.f
CastShadows=False
CastStaticShadows=FALSE
CastDynamicShadows=TRUE
bCastPerObjectShadows=false
bEnabled=FALSE
LightingChannels=(Indoor=TRUE,Outdoor=TRUE,bInitialized=TRUE)
End Object
PilotLights(0)=(Light=PilotPointLight0,FlickerIntensity=1.5f,FlickerInterpSpeed=0.5f,LightAttachBone=FXPilot1)
PilotLights(1)=(Light=PilotPointLight1,FlickerIntensity=1.5f,FlickerInterpSpeed=0.5f,LightAttachBone=FXPilot2)
Begin Object Class=KFParticleSystemComponent Name=PilotLight1
Template=ParticleSystem'WEP_CaulkBurn_EMIT.FX_CaulkBurn_pilot_light_01'
DepthPriorityGroup=SDPG_Foreground
bAutoActivate=TRUE
TickGroup=TG_PostUpdateWork
End Object
PSC_PilotLight2=PilotLight1
// Shooting Animations
FireSightedAnims[0]=Shoot
FireLoopSightedAnim=ShootLoop
// Advanced Looping (High RPM) Fire Effects
FireLoopStartSightedAnim=ShootLoop_Start
FireLoopEndSightedAnim=ShootLoop_End
// FOV
MeshIronSightFOV=75
PlayerIronSightFOV=80
// Depth of field
DOF_FG_FocalRadius=150
DOF_FG_MaxNearBlurSize=2
// Content
PackageKey="CaulkBurn"
FirstPersonMeshName="WEP_1P_CaulkBurn_MESH.Wep_1stP_CaulkBurn_Rig"
FirstPersonAnimSetNames(0)="WEP_1P_CaulkBurn_ANIM.Wep_1stP_CaulkBurn_Anim"
PickupMeshName="WEP_3P_CaulkBurn_MESH.Wep_CaulkBurn_Pickup"
AttachmentArchetypeName="WEP_CaulkBurn_ARCH.Wep_Caulkburn_B_3P"
MuzzleFlashTemplateName="WEP_CaulkBurn_ARCH.Wep_CaulkBurn_MuzzleFlash"
// Zooming/Position
PlayerViewOffset=(X=4.0,Y=10,Z=-4)
IronSightPosition=(X=-3,Y=7,Z=-2)
// Ammo
MagazineCapacity[0]=50
SpareAmmoCapacity[0]=500
InitialSpareMags[0]=5
AmmoPickupScale[0]=0.5
bCanBeReloaded=true
bReloadFromMagazine=true
// Recoil
maxRecoilPitch=100
minRecoilPitch=75
maxRecoilYaw=75
minRecoilYaw=-75
RecoilRate=0.065
RecoilMaxYawLimit=500
RecoilMinYawLimit=65035
RecoilMaxPitchLimit=900
RecoilMinPitchLimit=65035
RecoilISMaxYawLimit=75
RecoilISMinYawLimit=65460
RecoilISMaxPitchLimit=375
RecoilISMinPitchLimit=65460
RecoilViewRotationScale=0.25
IronSightMeshFOVCompensationScale=1.5
HippedRecoilModifier=1.5
// Inventory
InventorySize=5
GroupPriority=25
WeaponSelectTexture=Texture2D'WEP_UI_CaulkBurn_TEX.UI_WeaponSelect_CaulkNBurn'
// DEFAULT_FIREMODE
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_Flamethrower'
FiringStatesArray(DEFAULT_FIREMODE)=SprayingFire
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_Custom
FireInterval(DEFAULT_FIREMODE)=+0.07 // 850 RPM
FireOffset=(X=30,Y=4.5,Z=-5)
//MinFireDuration=0.25
MinAmmoConsumed=4
// ALT_FIREMODE
FiringStatesArray(ALTFIRE_FIREMODE)=WeaponSingleFiring
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_None
// BASH_FIREMODE
InstantHitDamageTypes(BASH_FIREMODE)=class'KFDT_Bludgeon_CaulkBurn'
InstantHitDamage(BASH_FIREMODE)=25
// Fire Effects
WeaponFireSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_3P_Loop', FirstPersonCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_1P_Loop')
WeaponFireLoopEndSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_3P_LoopEnd', FirstPersonCue=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Fire_1P_LoopEnd')
//@todo: add akevents when we have them
WeaponDryFireSnd(DEFAULT_FIREMODE)=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Handling_DryFire'
WeaponDryFireSnd(ALTFIRE_FIREMODE)=AkEvent'WW_WEP_SA_CaulkBurn.Play_SA_CaulkBurn_Handling_DryFire'
// Advanced (High RPM) Fire Effects
bLoopingFireAnim(DEFAULT_FIREMODE)=true
bLoopingFireSnd(DEFAULT_FIREMODE)=true
SingleFireSoundIndex=FIREMODE_NONE
// Attachments
bHasIronSights=true
bHasFlashlight=false
// AI Warning
bWarnAIWhenFiring=true
AssociatedPerkClasses(0)=class'KFPerk_Firebug'
WeaponFireWaveForm=ForceFeedbackWaveform'FX_ForceFeedback_ARCH.Gunfire.Weak_Recoil'
// Weapon Upgrade stat boosts
//WeaponUpgrades[1]=(IncrementDamage=1.1f,IncrementWeight=1)
//WeaponUpgrades[2]=(IncrementDamage=1.3f,IncrementWeight=2)
//WeaponUpgrades[3]=(IncrementDamage=1.4f,IncrementWeight=3)
//WeaponUpgrades[4]=(IncrementDamage=1.5f,IncrementWeight=4)
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.1f), (Stat=EWUS_Weight, Add=1)))
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Weight, Add=2)))
WeaponUpgrades[3]=(Stats=((Stat=EWUS_Damage0, Scale=1.4f), (Stat=EWUS_Weight, Add=3)))
WeaponUpgrades[4]=(Stats=((Stat=EWUS_Damage0, Scale=1.5f), (Stat=EWUS_Weight, Add=4)))
}