diff --git a/language.version b/language.version index 9b9c6d43b..13331037c 100644 --- a/language.version +++ b/language.version @@ -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)"; diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 6abc41bb4..a0719022a 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -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() diff --git a/zscript/swwm_thinkers.zsc b/zscript/swwm_thinkers.zsc index 341ac5842..4ef7768e3 100644 --- a/zscript/swwm_thinkers.zsc +++ b/zscript/swwm_thinkers.zsc @@ -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 )