gzdoom/wadsrc/static/zscript/actors/doom/doomhealth.zs

81 lines
1.4 KiB
Text

// Health bonus -------------------------------------------------------------
class HealthBonus : Health
{
Default
{
+COUNTITEM
+INVENTORY.ALWAYSPICKUP
Inventory.Amount 1;
Inventory.MaxAmount 200;
Inventory.PickupMessage "$GOTHTHBONUS";
}
States
{
Spawn:
BON1 ABCDCB 6;
Loop;
}
//===========================================================================
//
// TryPickup
//
//===========================================================================
override bool TryPickup (in out Actor other)
{
PrevHealth = other.player != NULL ? other.player.health : other.health;
// Dehacked max health is compatibility dependent because Boom interpreted this value wrong.
let maxamt = MaxAmount;
if (maxamt < 0)
{
maxamt = deh.MaxHealth;
if (!(Level.compatflags & COMPATF_DEHHEALTH)) maxamt *= 2;
}
if (other.GiveBody(Amount, maxamt))
{
GoAwayAndDie();
return true;
}
return false;
}
}
// Stimpack -----------------------------------------------------------------
class Stimpack : Health
{
Default
{
Inventory.Amount 10;
Inventory.PickupMessage "$GOTSTIM";
}
States
{
Spawn:
STIM A -1;
Stop;
}
}
// Medikit -----------------------------------------------------------------
class Medikit : Health
{
Default
{
Inventory.Amount 25;
Inventory.PickupMessage "$GOTMEDIKIT";
Health.LowMessage 25, "$GOTMEDINEED";
}
States
{
Spawn:
MEDI A -1;
Stop;
}
}