Replace flat damage bonus to burning zeds with scorchmark mechanic

This commit is contained in:
Anton Tarasenko 2024-09-01 17:59:26 +07:00
parent 6eb879f0d1
commit b4b3111440

View File

@ -127,6 +127,7 @@ var float heatDissipationRate;
var float heatTicksPerSecond; var float heatTicksPerSecond;
// Tracks last time heat tick occured // Tracks last time heat tick occured
var float lastHeatTick; var float lastHeatTick;
var float scorchmarkDamage;
var float MIN_HEAT, MAX_HEAT; var float MIN_HEAT, MAX_HEAT;
//============================================================================== //==============================================================================
@ -499,6 +500,11 @@ simulated function FakeHeatTick(float deltaTime){
local float oFrame; local float oFrame;
local float oRate; local float oRate;
local NiceMonsterController niceZedController; local NiceMonsterController niceZedController;
if (bOnFire) {
// 100 of the scorchmark damage should restore every 1/10 of a second
scorchmarkDamage += deltaTime * 10 * 100;
scorchmarkDamage = FMin(scorchmarkDamage, 100);
}
if(lastHeatTick + (1 / HeatTicksPerSecond) < Level.TimeSeconds){ if(lastHeatTick + (1 / HeatTicksPerSecond) < Level.TimeSeconds){
if(bOnFire && !bBurningBehavior) if(bOnFire && !bBurningBehavior)
SetBurningBehavior(); SetBurningBehavior();
@ -1024,7 +1030,8 @@ function DealHeadDamage( int damage,
if(HeadHealth <= 0) return; if(HeadHealth <= 0) return;
// Additional weakpoint damage to burning zeds from non-flame weapons // Additional weakpoint damage to burning zeds from non-flame weapons
if (bOnFire) { if (bOnFire) {
damage += 100 * (1 - damageType.default.heatPart); damage += scorchmarkDamage * (1 - damageType.default.heatPart);
scorchmarkDamage *= damageType.default.heatPart;
} }
HeadHealth -= damage; HeadHealth -= damage;
if(nicePlayer != none && IsFinisher(damage, damageType, nicePlayer, true)) if(nicePlayer != none && IsFinisher(damage, damageType, nicePlayer, true))