diff --git a/sources/Zeds/NiceMonster.uc b/sources/Zeds/NiceMonster.uc index b673714..46b700a 100644 --- a/sources/Zeds/NiceMonster.uc +++ b/sources/Zeds/NiceMonster.uc @@ -1785,35 +1785,33 @@ simulated function ZombieCrispUp(){ Skins[3]=Combiner'PatchTex.Common.BurnSkinEmbers_cmb'; } simulated function HeatTick(){ - local float iceDamage, heatDamage; + local float iceDamage; + local float heatRelativeLevel, heatMultiplier; + heatRelativeLevel = FMin(heat, flameFuel) / initFlameFuel; + if (heatRelativeLevel < 0.05) { + heatMultiplier = 1.5; + } else { + heatMultiplier = 1.1; + } // Update heat value if(!bOnFire || flameFuel <= 0) heat *= heatDissipationRate; else { if(flameFuel < heat) { - heat = flameFuel * 1.1 + (heat - flameFuel) * heatDissipationRate; + heat = flameFuel * heatMultiplier + (heat - flameFuel) * heatDissipationRate; } else { - heat = heat * 1.1; - } - if (flameFuel >= 0) { - // Burning always deals at least 5% damage (of the total fuel), - // up to additional 5%, depending on the heat levels. - heatDamage = 5 + 5 * FMin(heat, flameFuel) / initFlameFuel; // calc % - heatDamage = FMin(flameFuel, healthMax * heatDamage / 100.0); - flameFuel -= heatDamage; - } else { - // 5 damage for burning without fuel - heatDamage = 5.0; + heat = heat * heatMultiplier; } } + flameFuel = FMax(0, flameFuel - heat); CapHeat(); if(Abs(heat) < 1) heat = 0.0; // Update on-fire status if(bOnFire){ if(heat > 0) { - TakeFireDamage(heatDamage, burnInstigator); + TakeFireDamage(heat, burnInstigator); } else { bBurnified = false; @@ -2341,7 +2339,7 @@ defaultproperties maxStoppingEffect=0.25 minStoppingThreshold=0.0 MIN_HEAT = -150.0 - MAX_HEAT = 135.0 + MAX_HEAT = 200.0 Begin Object Class=KarmaParamsSkel Name=KarmaParamsSkelN KConvulseSpacing=(Max=2.200000) KLinearDamping=0.150000