1
0
KF2-Dev-Scripts/KFGameContent/Classes/KFWeapActor_CranialPopper_Tube.uc
2022-05-11 18:13:25 +03:00

72 lines
1.8 KiB
Ucode

//=============================================================================
// KFWeapActor_CranialPopper_Tube
//=============================================================================
// Attach class to handle visual burrowing of a tube into the hit zed
//=============================================================================
// Killing Floor 2
// Copyright (C) 2017 Tripwire Interactive LLC
//=============================================================================
class KFWeapActor_CranialPopper_Tube extends Actor;
//Visual tube mesh that embeds into the enemy
var() StaticMeshComponent TubeMesh;
//Lifetime until destroy is called
var float Lifetime;
//Size in the X direction - @TODO - get this at runtime
var float TubeLength;
//Destroy Delay
var float DestroyDelay;
var bool bStopTick;
event PostBeginPlay()
{
super.PostBeginPlay();
Lifetime = class'KFDT_Bleeding_Hemogoblin'.default.DoT_Duration;
SetTimer(Lifetime, false, nameof(TearDown));
}
function TearDown()
{
bStopTick = true;
//Because Mark wants his sound things to fade
SetTimer(DestroyDelay, false, nameof(ActualDestroy));
}
function ActualDestroy()
{
Destroy();
}
event Tick(float DeltaTime)
{
local Vector NewRelativeLocation;
super.Tick(DeltaTime);
if (!bStopTick)
{
//Push the actor into the body based on relative rotation
NewRelativeLocation = RelativeLocation + (Vector(RelativeRotation) * (TubeLength / Lifetime) * DeltaTime);
SetRelativeLocation(NewRelativeLocation);
}
}
defaultproperties
{
Begin Object Class=StaticMeshComponent Name=Mesh0
StaticMesh=StaticMesh'FX_Projectile_MESH.FX_Projectile_Leech'
End Object
Components.Add(Mesh0)
TubeMesh=Mesh0
TubeLength=10
bStopTick=false
DestroyDelay=0.5
}