qzdoom-gpl/wadsrc/static/zscript/doom/doomartifacts.txt
Christoph Oelckers 12915b5f6e - use an inventory flag to decide what items are slipped by DF_NO_HEALTH and DF_NO_ARMOR. With all the changes over the last 10 years this had become too spotty.
- use an enum type for ItemFlags, just like it was done for actor flags. Since the flag word is almost full it may soon be necessary to add a second one and then this kind of security check may become necessary.
2017-02-28 21:45:47 +01:00

204 lines
3.5 KiB
Text

// Invulnerability Sphere ---------------------------------------------------
class InvulnerabilitySphere : PowerupGiver
{
Default
{
+COUNTITEM
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.BIGPOWERUP
Inventory.MaxAmount 0;
Powerup.Type "PowerInvulnerable";
Powerup.Color "InverseMap";
Inventory.PickupMessage "$GOTINVUL";
}
States
{
Spawn:
PINV ABCD 6 Bright;
Loop;
}
}
// Soulsphere --------------------------------------------------------------
class Soulsphere : Health
{
Default
{
+COUNTITEM;
+INVENTORY.AUTOACTIVATE;
+INVENTORY.ALWAYSPICKUP;
+INVENTORY.FANCYPICKUPSOUND;
Inventory.Amount 100;
Inventory.MaxAmount 200;
Inventory.PickupMessage "$GOTSUPER";
Inventory.PickupSound "misc/p_pkup";
}
States
{
Spawn:
SOUL ABCDCB 6 Bright;
Loop;
}
}
// Mega sphere --------------------------------------------------------------
class MegasphereHealth : Health // for manipulation by Dehacked
{
Default
{
Inventory.Amount 200;
Inventory.MaxAmount 200;
+INVENTORY.ALWAYSPICKUP
}
}
// DeHackEd can only modify the blue armor's type, not the megasphere's.
class BlueArmorForMegasphere : BlueArmor
{
Default
{
Armor.SavePercent 50;
Armor.SaveAmount 200;
}
}
class Megasphere : CustomInventory
{
Default
{
+COUNTITEM
+INVENTORY.ALWAYSPICKUP
+INVENTORY.ISHEALTH
+INVENTORY.ISARMOR
Inventory.PickupMessage "$GOTMSPHERE";
Inventory.PickupSound "misc/p_pkup";
}
States
{
Spawn:
MEGA ABCD 6 BRIGHT;
Loop;
Pickup:
TNT1 A 0 A_GiveInventory("BlueArmorForMegasphere", 1);
TNT1 A 0 A_GiveInventory("MegasphereHealth", 1);
Stop;
}
}
// Invisibility -------------------------------------------------------------
class BlurSphere : PowerupGiver
{
Default
{
+COUNTITEM
+VISIBILITYPULSE
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.BIGPOWERUP
Inventory.MaxAmount 0;
Powerup.Type "PowerInvisibility";
RenderStyle "Translucent";
Inventory.PickupMessage "$GOTINVIS";
}
States
{
Spawn:
PINS ABCD 6 Bright;
Loop;
}
}
// Radiation suit (aka iron feet) -------------------------------------------
class RadSuit : PowerupGiver
{
Default
{
Height 46;
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
Inventory.MaxAmount 0;
Inventory.PickupMessage "$GOTSUIT";
Powerup.Type "PowerIronFeet";
}
States
{
Spawn:
SUIT A -1 Bright;
Stop;
}
}
// infrared -----------------------------------------------------------------
class Infrared : PowerupGiver
{
Default
{
+COUNTITEM
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
Inventory.MaxAmount 0;
Powerup.Type "PowerLightAmp";
Inventory.PickupMessage "$GOTVISOR";
}
States
{
Spawn:
PVIS A 6 Bright;
PVIS B 6;
Loop;
}
}
// Allmap -------------------------------------------------------------------
class Allmap : MapRevealer
{
Default
{
+COUNTITEM
+INVENTORY.FANCYPICKUPSOUND
+INVENTORY.ALWAYSPICKUP
Inventory.MaxAmount 0;
Inventory.PickupSound "misc/p_pkup";
Inventory.PickupMessage "$GOTMAP";
}
States
{
Spawn:
PMAP ABCDCB 6 Bright;
Loop;
}
}
// Berserk ------------------------------------------------------------------
class Berserk : CustomInventory
{
Default
{
+COUNTITEM
+INVENTORY.ALWAYSPICKUP
+INVENTORY.ISHEALTH
Inventory.PickupMessage "$GOTBERSERK";
Inventory.PickupSound "misc/p_pkup";
}
States
{
Spawn:
PSTR A -1;
Stop;
Pickup:
TNT1 A 0 A_GiveInventory("PowerStrength");
TNT1 A 0 HealThing(100, 0);
TNT1 A 0 A_SelectWeapon("Fist");
Stop;
}
}