From 137b90ec252f4577f0ffbe9405acf85c155187d7 Mon Sep 17 00:00:00 2001 From: Shtoyan Date: Sun, 23 Jan 2022 16:37:56 +0400 Subject: [PATCH] a --- sources/Zeds/Mean/MeanBleedInventory.uc | 43 +++++++++++-------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/sources/Zeds/Mean/MeanBleedInventory.uc b/sources/Zeds/Mean/MeanBleedInventory.uc index b5d2701..0e067b2 100644 --- a/sources/Zeds/Mean/MeanBleedInventory.uc +++ b/sources/Zeds/Mean/MeanBleedInventory.uc @@ -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.