Healthbar tweaks for compatibility with mods that dynamically change monster tags.

This commit is contained in:
Mari the Deer 2024-01-31 10:13:38 +01:00
commit d93432f2ed
3 changed files with 22 additions and 3 deletions

View file

@ -276,7 +276,7 @@ TOOLTIP_SWWM_USEWEAPONBAR = "Habilita un método alternativo para hacer scroll p
TOOLTIP_SWWM_PERCENTSTATS = "Muestra las estadísticas de bajas/ítems/secretos en el HUD como porcentajes, en lugar de contadores.";
TOOLTIP_SWWM_TARGETVALS = "Las barras de salud mostrarán los valores de salud actual y máximo del objetivo.";
TOOLTIP_SWWM_HUDSCALE = "Si es mayor que cero, especifica manualmente la escala del HUD. Ten en cuenta que los elementos del HUD pueden solaparse si es muy alta.";
TOOLTIP_SWWM_HUDSCALE0 = "Si es mayor que cero, especifica manualmente la escala de los elementos de HUD auxiliares (texto centrado, ítems recogidos, etc.) y Números de Daño. Normalmente, es igual a la escala primaria del HUD.";
TOOLTIP_SWWM_HUDSCALE0 = "Si es mayor que cero, especifica manualmente la escala de los elementos auxiliares de HUD (texto centrado, ítems recogidos, etc.) y Números de Daño. Normalmente, es igual a la escala primaria del HUD.";
TOOLTIP_SWWM_HUDSCALE1 = "Si es mayor que cero, especifica manualmente la escala de las Barras de Salud, Números de Puntuación y Sensor de Ítems. Normalmente, es igual a dos menos que la escala primaria del HUD.";
TOOLTIP_SWWM_HUDSCALE2 = "Si es mayor que cero, especifica manualmente la escala de los Puntos de Interés. Normalmente, es igual a tres menos que la escala primaria del HUD.";
TOOLTIP_SWWM_ALTCLEAR = "Usa un efecto alternativo de menor intensidad visual al completar un nivel al 100%.";

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1099 \cu(Thu 25 Jan 15:53:57 CET 2024)\c-";
SWWM_SHORTVER="\cw1.3pre r1099 \cu(2024-01-25 15:53:57)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1100 \cu(Wed 31 Jan 10:13:38 CET 2024)\c-";
SWWM_SHORTVER="\cw1.3pre r1100 \cu(2024-01-31 10:13:38)\c-";

View file

@ -335,6 +335,7 @@ Class SWWMQuickCombatTracker : Inventory
SmoothLinearValueInterpolator intpl;
PlayerInfo myplayer; // for multiplayer compatibility (this breaks inventory logic, but alas...)
String mytag;
bool PMHack;
void UpdateTag( SWWMHandler hnd )
{
@ -367,6 +368,14 @@ Class SWWMQuickCombatTracker : Inventory
Super.AttachToOwner(other);
}
override bool HandlePickup( Inventory item )
{
// force update tag if Grace of Lilith has glitched our owner
if ( item.GetClassName() == 'CCards_Token_Glitched' )
UpdateTag();
return Super.HandlePickup(item);
}
static SWWMQuickCombatTracker Update( SWWMHandler hnd, PlayerInfo p, Actor target, int damage = 0 )
{
// no-damage entities get no healthbars
@ -421,6 +430,15 @@ Class SWWMQuickCombatTracker : Inventory
t.fadein = 0;
t.lvheight = target.Height;
t.UpdateTag(hnd);
// hack for some Project Malice void monsters that regularly change tags
switch ( target.GetClassName() )
{
case 'PM_EntropicAvatar':
case 'PM_Broken':
case 'PM_VoidFloater':
t.PMHack = true;
break;
}
return t;
}
@ -434,6 +452,7 @@ Class SWWMQuickCombatTracker : Inventory
Destroy();
return;
}
if ( PMHack && !Owner.isFrozen() ) UpdateTag();
// cap lifespan if owner is dead
if ( Owner.Health <= 0 ) lifespan = min(lifespan,35);
else lvheight = Owner.Height;