1
0
KF2-Dev-Scripts/KFGameContent/Classes/KFWeapAttach_Flamethrower.uc
2020-12-13 18:01:13 +03:00

172 lines
5.0 KiB
Ucode

//=============================================================================
// KFWeapAttach_Flamethrower
//=============================================================================
// Custom weapon attachment for the third person flamethrower
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
// - John "Ramm-Jaeger" Gibson
//=============================================================================
class KFWeapAttach_Flamethrower extends KFWeapAttach_SprayBase;
/** Effect for the pilot light. */
var() protected KFParticleSystemComponent PSC_SpineLights[4];
/** Socket to attach the pilot light to. */
var() name SpineLightSocketNames[4];
simulated protected function TurnOnPilot()
{
local int i;
if (bPilotLightOn)
return;
// Attach and start up the pilot lights
for (i = 0; i < 4; i++)
{
if( PSC_SpineLights[i] != None )
{
WeapMesh.AttachComponentToSocket( PSC_SpineLights[i], SpineLightSocketNames[i] );
PSC_SpineLights[i].ActivateSystem();
// Turn on the low flame, turn off the high flame
PSC_SpineLights[i].SetFloatParameter('Pilotlow', 1.0);
PSC_SpineLights[i].SetFloatParameter('Pilothigh', 0.0);
}
}
super.TurnOnPilot();
}
simulated protected function TurnOffPilot()
{
local int i;
Super.TurnOffPilot();
for (i = 0; i < 4; i++)
{
if( PSC_SpineLights[i] != None )
{
PSC_SpineLights[i].DeActivateSystem();
}
}
}
simulated protected function TurnOnFireSpray()
{
local int i;
if (!bFireSpraying)
{
// Start up the pilot lights on top
for (i = 0; i < 4; i++)
{
if( PSC_SpineLights[i] != None )
{
// Turn off the low flame, turn on the high flame
PSC_SpineLights[i].SetFloatParameter('Pilotlow', 0.0);
PSC_SpineLights[i].SetFloatParameter('Pilothigh', 1.0);
}
}
}
Super.TurnOnFireSpray();
}
simulated protected function TurnOffFireSpray()
{
local int i;
for (i = 0; i < 4; i++)
{
if( PSC_SpineLights[i] != None )
{
// Turn on the low flame, turn off the high flame
PSC_SpineLights[i].SetFloatParameter('Pilotlow', 1.0);
PSC_SpineLights[i].SetFloatParameter('Pilothigh', 0.0);
}
}
Super.TurnOffFireSpray();
}
defaultproperties
{
FlameSprayArchetype=SprayActor_Flame'WEP_Flamethrower_ARCH.WEP_Flamethrower_Flame'
Begin Object Name=PilotLight0
Template=ParticleSystem'WEP_Flamethrower_EMIT.FX_pilot_light_01'
End Object
PilotLightSocketName=FXPilot1
Begin Object Class=KFParticleSystemComponent Name=SpineLight0
Template=ParticleSystem'WEP_Flamethrower_EMIT.FX_pilot_light_01'
bAutoActivate=TRUE
TickGroup=TG_PostUpdateWork
End Object
PSC_SpineLights(0)=SpineLight0
Begin Object Class=KFParticleSystemComponent Name=SpineLight1
Template=ParticleSystem'WEP_Flamethrower_EMIT.FX_pilot_light_01'
bAutoActivate=TRUE
TickGroup=TG_PostUpdateWork
End Object
PSC_SpineLights(1)=SpineLight1
Begin Object Class=KFParticleSystemComponent Name=SpineLight2
Template=ParticleSystem'WEP_Flamethrower_EMIT.FX_pilot_light_01'
bAutoActivate=TRUE
TickGroup=TG_PostUpdateWork
End Object
PSC_SpineLights(2)=SpineLight2
Begin Object Class=KFParticleSystemComponent Name=SpineLight3
Template=ParticleSystem'WEP_Flamethrower_EMIT.FX_pilot_light_01'
bAutoActivate=TRUE
TickGroup=TG_PostUpdateWork
End Object
PSC_SpineLights(3)=SpineLight3
SpineLightSocketNames(0)=FXPilot2
SpineLightSocketNames(1)=FXPilot3
SpineLightSocketNames(2)=FXPilot4
SpineLightSocketNames(3)=FXPilot5
PilotLightPlayEvent=AkEvent'WW_WEP_SA_Flamethrower.Play_WEP_SA_Flamethrower_PilotLight_Loop'
PilotLightStopEvent=AkEvent'WW_WEP_SA_Flamethrower.Stop_WEP_SA_Flamethrower_PilotLight_Loop'
// Muzzle Flash point light
// want this light to illuminate characters only, so Marcus gets the glow
Begin Object Class=PointLightComponent Name=PilotPointLight0
LightColor=(R=250,G=150,B=85,A=255)
Brightness=1.5f
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=1.5f
FalloffExponent=8.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=LightPilot1)
PilotLights(1)=(Light=PilotPointLight1,FlickerIntensity=4.f,FlickerInterpSpeed=3.f,LightAttachBone=LightPilot2)
}