This commit is contained in:
Shtoyan 2022-01-23 16:37:56 +04:00
parent 1fd77f1c15
commit 137b90ec25

View File

@ -5,19 +5,15 @@ const dmtype_bleed=class'NiceDamTypeStalkerBleed';
var private int maxBleedCount;
var private float fBleedPeriod;
var private float fNextBleedTime;
var float bleedLevel;
var MeanZombieCrawler stalker;
function Tick(float DeltaTime)
event PostBeginPlay()
{
fNextBleedTime = Level.TimeSeconds;
super.PostBeginPlay();
// start the timer
SetTimer(0.1, true);
// disable me, coz im too fast and resource hungry
Disable('Tick');
SetTimer(fBleedPeriod, true);
}
@ -34,33 +30,30 @@ event Timer()
if (!amAlive || maxBleedCount < 0)
Destroy();
if (fNextBleedTime < Level.TimeSeconds)
maxBleedCount--;
bleedDamage = calcBleedDamage(bleedLevel, rand(7));
if (bleedDamage < 1.0)
{
maxBleedCount--;
fNextBleedTime += fBleedPeriod;
maxBleedCount = 0;
return;
}
bleedDamage = calcBleedDamage(bleedLevel, rand(7));
if (bleedDamage < 1.0)
{
maxBleedCount = 0;
return;
}
if (stalker != none)
locpawn.TakeDamage(bleedDamage, stalker, locpawn.Location,
if (stalker != none)
locpawn.TakeDamage(bleedDamage, stalker, locpawn.Location,
vect(0, 0, 0), dmtype_bleed);
else
locpawn.TakeDamage(bleedDamage, locpawn, locpawn.Location,
else
locpawn.TakeDamage(bleedDamage, locpawn, locpawn.Location,
vect(0, 0, 0), dmtype_bleed);
if (locpawn.isA('KFPawn'))
{
KFPawn(locpawn).HealthToGive -= 2 * bleedLevel;
}
if (locpawn.isA('KFPawn'))
{
KFPawn(locpawn).HealthToGive -= 2 * bleedLevel;
}
}
// Returns bleed damage, corresponding to given bleed level and damage scale.
// Rand(7) should be used as a scale.
// Separate function created to allow for lowest/highest damage value computing.