Rebalance Archangelus.

Fix healthbars lagging behind when monster health is enhanced on spawn.
This commit is contained in:
Mari the Deer 2020-11-28 22:14:35 +01:00
commit e415c621e5
3 changed files with 17 additions and 21 deletions

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r646 \cu(Sat 28 Nov 22:03:01 CET 2020)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r647 \cu(Sat 28 Nov 22:14:35 CET 2020)";

View file

@ -1595,7 +1595,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 3;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_BRUISERS";
}
@ -1605,7 +1604,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_CYBIE";
}
@ -1615,7 +1613,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 6;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_SPIDER";
}
@ -1625,7 +1622,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 4;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_SPIDER2";
}
@ -1635,7 +1631,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 2;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_DIMPLE";
}
@ -1646,7 +1641,6 @@ Class SWWMHandler : EventHandler
bossbrainactor = e.Thing;
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 40; // goodbye, instakills
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
if ( e.Thing is 'BossEye' )
bossviewactor = e.Thing;
@ -1658,7 +1652,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 4;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_LICHES";
}
@ -1668,7 +1661,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 3;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
}
bosstag = "$BT_MINOTAUR";
}
@ -1678,7 +1670,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 2;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_DSPARIL";
}
else if ( e.Thing is 'Sorcerer2' )
@ -1688,7 +1679,6 @@ Class SWWMHandler : EventHandler
initialized = false;
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 8;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_DSPARIL2";
}
}
@ -1698,7 +1688,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 2;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_CLERIC";
}
}
@ -1708,7 +1697,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 2;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_FIGHTER";
}
}
@ -1718,7 +1706,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 2;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_MAGE";
}
}
@ -1728,7 +1715,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 4;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_DRAGON";
}
}
@ -1738,7 +1724,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 8;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_HERESIARCH";
}
}
@ -1748,7 +1733,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 10;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_KORAX";
}
}
@ -1758,7 +1742,6 @@ Class SWWMHandler : EventHandler
{
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_ARCHANGELUS";
}
else if ( e.Thing.GetClassName() == "ArchangelusB" )
@ -1768,10 +1751,15 @@ Class SWWMHandler : EventHandler
initialized = false;
bossactors.Push(e.Thing);
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
if ( trk ) trk.maxhealth = trk.lasthealth = e.Thing.Health;
bosstag = "$BT_ARCHANGELUS";
}
}
// inflation check
if ( trk )
{
trk.maxhealth = trk.lasthealth = e.Thing.Health;
trk.intp.Reset(trk.lasthealth);
}
}
override void PostUiTick()

View file

@ -917,7 +917,11 @@ Class SWWMCombatTracker : Thinker
if ( (tcnt == 1) && !mytarget.player )
{
// post-spawn health inflation check
if ( lasthealth > maxhealth ) maxhealth = lasthealth;
if ( lasthealth > maxhealth )
{
maxhealth = lasthealth;
intp.Reset(lasthealth);
}
}
if ( (tcnt == 6) && !mytarget.player )
{
@ -927,7 +931,11 @@ Class SWWMCombatTracker : Thinker
if ( i.GetClassName() != "LDLegendaryMonsterToken" ) continue;
legged = true;
// adjust for health inflation
if ( lasthealth > maxhealth ) maxhealth = lasthealth;
if ( lasthealth > maxhealth )
{
maxhealth = lasthealth;
intp.Reset(lasthealth);
}
}
}
if ( legged && !mutated )