Change heat and fire damage calculations

This commit is contained in:
Anton Tarasenko 2024-09-01 20:06:55 +07:00
parent da810d50f1
commit 3d0315b28b

View File

@ -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