rott/kf_sources/KFMod/Classes/FlameImpact.uc
2026-07-14 20:27:09 +07:00

257 lines
10 KiB
Ucode

// The fire that gets spawned when a Fuel puddle is shot. This damages pawns and then dissipates.
class FlameImpact extends Emitter;
var () float BurnInterval; // Interval between burn damage.
var Actor Parent; // Parent Actor
var () int FlameDamage; // How much dmg the touchee takes.
static function PreInitialize( int Damage, float Interval )
{
// You can preserve the original default values in other default variables if you want, and restore them in prebeginplay. If you want.
default.BurnInterval = Interval;
default.FlameDamage = Damage;
}
simulated function PostBeginPlay()
{
SetTimer(BurnInterval,True);
}
function Timer()
{
local Material SurfaceMat;
local int HitSurface;
local Vector HitLocation, HitNormal;
local rotator EffectDir;
local Actor Other;
Other = Trace(HitLocation, HitNormal, Location + vector(Rotation) * 32, Location - vector(Rotation) * 16, true,, SurfaceMat);
EffectDir = rotator(MirrorVectorByNormal(vector(Rotation), HitNormal));
if(Vehicle(Other) != None && Other.SurfaceType == 0)
HitSurface = 3;
else if(Other != None && !Other.IsA('LevelInfo') && Other.SurfaceType != 0)
HitSurface = Other.SurfaceType;
else if(SurfaceMat != None)
HitSurface = SurfaceMat.SurfaceType;
if (SurfaceMat != none && Parent == none)
{
if (KFHumanPawn(Instigator) != none)
Kill();
}
if( Parent==none || Parent.DrawScale<=0.25 )
Kill();
}
defaultproperties
{
Begin Object Class=SpriteEmitter Name=SpriteEmitter0
UseColorScale=True
RespawnDeadParticles=False
SpinParticles=True
UseSizeScale=True
UseRegularSizeScale=False
UniformSize=True
AutomaticInitialSpawning=False
Acceleration=(Z=15.000000)
ColorScale(0)=(Color=(B=51,G=152,R=200))
ColorScale(1)=(RelativeTime=0.300000,Color=(B=48,G=91,R=222))
ColorScale(2)=(RelativeTime=1.000000)
MaxParticles=6
Name="SpriteEmitter0"
StartLocationShape=PTLS_Sphere
SphereRadiusRange=(Min=48.000000,Max=48.000000)
MeshScaleRange=(X=(Min=0.500000,Max=0.500000),Y=(Min=0.500000,Max=0.500000),Z=(Min=0.500000,Max=0.500000))
SpinsPerSecondRange=(X=(Max=0.100000))
StartSpinRange=(X=(Max=1.000000))
SizeScale(0)=(RelativeSize=0.700000)
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=5.000000)
StartSizeRange=(X=(Min=20.000000,Max=40.000000),Y=(Min=20.000000,Max=20.000000),Z=(Min=20.000000,Max=20.000000))
InitialParticlesPerSecond=1000.000000
DrawStyle=PTDS_Brighten
Texture=Texture'kf_fx_trip_t.Misc.smoke_animated'
TextureUSubdivisions=8
TextureVSubdivisions=8
SecondsBeforeInactive=0.000000
LifetimeRange=(Min=1.000000,Max=1.000000)
StartVelocityRange=(X=(Min=-100.000000,Max=100.000000),Y=(Min=-100.000000,Max=100.000000),Z=(Min=25.000000,Max=50.000000))
End Object
Emitters(0)=SpriteEmitter'SpriteEmitter0'
Begin Object Class=SpriteEmitter Name=SpriteEmitter1
UseColorScale=True
RespawnDeadParticles=False
SpinParticles=True
UseSizeScale=True
UseRegularSizeScale=False
UniformSize=True
AutomaticInitialSpawning=False
Acceleration=(Z=150.000000)
ColorScale(0)=(Color=(G=255,R=255,A=128))
ColorScale(1)=(RelativeTime=0.300000,Color=(B=47,G=80,R=179,A=255))
ColorScale(2)=(RelativeTime=0.600000,Color=(A=80))
ColorScale(3)=(RelativeTime=1.000000)
MaxParticles=6
Name="SpriteEmitter1"
StartLocationShape=PTLS_Sphere
SphereRadiusRange=(Min=20.000000,Max=20.000000)
SpinsPerSecondRange=(X=(Max=0.100000))
StartSpinRange=(X=(Max=1.000000))
SizeScale(0)=(RelativeSize=0.700000)
SizeScale(1)=(RelativeTime=1.000000,RelativeSize=5.000000)
StartSizeRange=(X=(Min=20.000000,Max=40.000000),Y=(Min=20.000000,Max=40.000000))
InitialParticlesPerSecond=800.000000
DrawStyle=PTDS_Brighten
Texture=Texture'kf_fx_trip_t.Misc.smoke_animated'
TextureUSubdivisions=8
TextureVSubdivisions=8
LifetimeRange=(Min=1.000000,Max=1.000000)
StartVelocityRange=(X=(Min=-100.000000,Max=100.000000),Y=(Min=-100.000000,Max=100.000000))
End Object
Emitters(1)=SpriteEmitter'SpriteEmitter1'
Begin Object Class=SpriteEmitter Name=SpriteEmitter2
FadeOut=True
FadeIn=True
RespawnDeadParticles=False
UseSizeScale=True
UseRegularSizeScale=False
UniformSize=True
AutomaticInitialSpawning=False
BlendBetweenSubdivisions=True
UseSubdivisionScale=True
Acceleration=(Z=50.000000)
ColorScale(0)=(Color=(B=255,G=255,R=255,A=255))
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
FadeOutStartTime=0.102500
FadeInEndTime=0.050000
MaxParticles=2
Name="SpriteEmitter5"
SizeScale(1)=(RelativeTime=0.140000,RelativeSize=1.000000)
SizeScale(2)=(RelativeTime=1.000000,RelativeSize=3.000000)
InitialParticlesPerSecond=30.000000
DrawStyle=PTDS_Brighten
Texture=Texture'Effects_Tex.explosions.impact_2frame'
TextureUSubdivisions=2
TextureVSubdivisions=1
LifetimeRange=(Min=0.200000,Max=0.200000)
StartVelocityRange=(Z=(Min=10.000000,Max=10.000000))
End Object
Emitters(2)=SpriteEmitter'SpriteEmitter2'
Begin Object Class=SpriteEmitter Name=SpriteEmitter3
FadeOut=True
FadeIn=True
SpinParticles=True
UseSizeScale=True
UseRegularSizeScale=False
UniformSize=True
UseRandomSubdivision=True
Acceleration=(Z=100.000000)
ColorScale(1)=(RelativeTime=0.300000,Color=(B=255,G=255,R=255))
ColorScale(2)=(RelativeTime=0.667857,Color=(B=89,G=172,R=247,A=255))
ColorScale(3)=(RelativeTime=1.000000,Color=(B=128,G=128,R=128,A=255))
ColorScale(4)=(RelativeTime=1.000000)
ColorScale(5)=(RelativeTime=1.000000)
FadeOutStartTime=0.520000
FadeInEndTime=0.140000
MaxParticles=8
Name="SpriteEmitter9"
StartLocationShape=PTLS_Sphere
SpinsPerSecondRange=(X=(Max=0.075000))
StartSpinRange=(X=(Min=-0.500000,Max=0.500000))
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=0.500000)
StartSizeRange=(X=(Min=70.000000),Y=(Min=0.000000,Max=0.000000),Z=(Min=0.000000,Max=0.000000))
ScaleSizeByVelocityMultiplier=(X=0.000000,Y=0.000000,Z=0.000000)
ScaleSizeByVelocityMax=0.000000
Texture=Texture'KillingFloorTextures.LondonCommon.fire3'
TextureUSubdivisions=4
TextureVSubdivisions=4
SecondsBeforeInactive=30.000000
LifetimeRange=(Min=1.000000,Max=1.000000)
StartVelocityRange=(X=(Min=-10.000000,Max=10.000000),Y=(Min=-10.000000,Max=10.000000),Z=(Min=25.000000,Max=75.000000))
End Object
Emitters(3)=SpriteEmitter'SpriteEmitter3'
Begin Object Class=SpriteEmitter Name=SpriteEmitter4
UseCollision=True
UseColorScale=True
FadeOut=True
RespawnDeadParticles=False
UniformSize=True
AutomaticInitialSpawning=False
Acceleration=(Z=-500.000000)
ColorScale(0)=(Color=(B=67,G=176,R=250,A=255))
ColorScale(1)=(RelativeTime=1.000000,Color=(B=255,G=255,R=255,A=255))
FadeOutStartTime=0.800000
MaxParticles=8
Name="SpriteEmitter10"
StartSizeRange=(X=(Min=2.000000,Max=2.000000),Y=(Min=2.000000,Max=2.000000),Z=(Min=2.000000,Max=2.000000))
InitialParticlesPerSecond=5000.000000
Texture=Texture'kf_fx_trip_t.Misc.healingFX'
LifetimeRange=(Min=2.000000,Max=2.000000)
StartVelocityRange=(X=(Min=-500.000000,Max=500.000000),Y=(Min=-500.000000,Max=500.000000),Z=(Max=500.000000))
End Object
Emitters(4)=SpriteEmitter'SpriteEmitter4'
Begin Object Class=SpriteEmitter Name=SpriteEmitter5
FadeOut=True
FadeIn=True
RespawnDeadParticles=False
SpinParticles=True
UseSizeScale=True
UseRegularSizeScale=False
UniformSize=True
AutomaticInitialSpawning=False
UseRandomSubdivision=True
Acceleration=(Z=125.000000)
ColorScale(1)=(RelativeTime=0.300000,Color=(B=255,G=255,R=255))
ColorScale(2)=(RelativeTime=0.667857,Color=(B=89,G=172,R=247,A=255))
ColorScale(3)=(RelativeTime=1.000000,Color=(B=128,G=128,R=128,A=255))
ColorScale(4)=(RelativeTime=1.000000)
ColorScale(5)=(RelativeTime=1.000000)
FadeOutStartTime=0.200000
FadeInEndTime=0.140000
MaxParticles=3
Name="SpriteEmitter11"
StartLocationRange=(Z=(Min=50.000000,Max=50.000000))
SpinsPerSecondRange=(X=(Max=0.100000))
StartSpinRange=(X=(Min=-0.500000,Max=0.500000))
SizeScale(0)=(RelativeTime=1.000000,RelativeSize=1.500000)
StartSizeRange=(X=(Min=70.000000),Y=(Min=0.000000,Max=0.000000),Z=(Min=0.000000,Max=0.000000))
ScaleSizeByVelocityMultiplier=(X=0.000000,Y=0.000000,Z=0.000000)
ScaleSizeByVelocityMax=0.000000
InitialParticlesPerSecond=5000.000000
Texture=Texture'KillingFloorTextures.LondonCommon.fire3'
TextureUSubdivisions=4
TextureVSubdivisions=4
SecondsBeforeInactive=30.000000
LifetimeRange=(Min=0.500000,Max=0.500000)
StartVelocityRange=(Z=(Min=75.000000,Max=75.000000))
End Object
Emitters(5)=SpriteEmitter'SpriteEmitter5'
bNoDelete = false
SoundVolume = 255
SoundRadius = 100
bFullVolume = false
AmbientSound = Sound'Amb_Destruction.Kessel_Fire_Small_Vehicle'//Sound'GeneralAmbience.firefx12' KFTODO: Replace this
LightRadius = 4
LightType = LT_Pulse
LightBrightness = 300
LightHue = 30
LightSaturation = 100
bDynamicLight = true
FlameDamage = 10
BurnInterval = 1
LifeSpan=6
}