gzdoom/wadsrc/static/zscript/actors/heretic/hereticartifacts.zs
Rachael Alexanderson c7bba2a126
Revert "Improvements to death and cheat handling"
This reverts commit 3033fafaa7.

Revert "Improved ZScript interface for morphing"

This reverts commit 6c64a4403c.

Revert "Further morphing clean up"

This reverts commit 12dc5c1506.

Revert "Fixed inconsistencies between player and monster morphing"

This reverts commit 30730647fe.

Revert "Reworked Morphing"

This reverts commit 2c09a443b4.

- fix compile
2024-04-17 17:55:24 -04:00

156 lines
2.6 KiB
Text

// Super map ----------------------------------------------------------------
Class SuperMap : MapRevealer
{
Default
{
+COUNTITEM
+INVENTORY.ALWAYSPICKUP
+FLOATBOB
Inventory.MaxAmount 0;
Inventory.PickupMessage "$TXT_ITEMSUPERMAP";
}
States
{
Spawn:
SPMP A -1;
Stop;
}
}
// Invisibility -------------------------------------------------------------
Class ArtiInvisibility : PowerupGiver
{
Default
{
+COUNTITEM
+FLOATBOB
Inventory.PickupFlash "PickupFlash";
RenderStyle "Translucent";
Alpha 0.4;
Inventory.RespawnTics 4230;
Inventory.Icon "ARTIINVS";
Powerup.Type "PowerGhost";
Inventory.PickupMessage "$TXT_ARTIINVISIBILITY";
Tag "$TAG_ARTIINVISIBILITY";
}
States
{
Spawn:
INVS A 350 Bright;
Loop;
}
}
// Tome of power ------------------------------------------------------------
Class ArtiTomeOfPower : PowerupGiver
{
Default
{
+COUNTITEM
+FLOATBOB
Inventory.PickupFlash "PickupFlash";
Inventory.Icon "ARTIPWBK";
Powerup.Type "PowerWeaponlevel2";
Inventory.PickupMessage "$TXT_ARTITOMEOFPOWER";
Tag "$TAG_ARTITOMEOFPOWER";
}
States
{
Spawn:
PWBK A 350;
Loop;
}
override bool Use (bool pickup)
{
Playerinfo p = Owner.player;
if (p && p.morphTics && (p.MorphStyle & MRF_UNDOBYTOMEOFPOWER))
{ // Attempt to undo chicken
if (!p.mo.UndoPlayerMorph (p, MRF_UNDOBYTOMEOFPOWER))
{ // Failed
if (!(p.MorphStyle & MRF_FAILNOTELEFRAG))
{
Owner.DamageMobj (null, null, TELEFRAG_DAMAGE, 'Telefrag');
}
}
else
{ // Succeeded
Owner.A_StartSound ("*evillaugh", CHAN_VOICE);
}
return true;
}
else
{
return Super.Use (pickup);
}
}
}
// Time bomb ----------------------------------------------------------------
Class ActivatedTimeBomb : Actor
{
Default
{
+NOGRAVITY
RenderStyle "Translucent";
Alpha 0.4;
DeathSound "misc/timebomb";
}
States
{
Spawn:
FBMB ABCD 10;
FBMB E 6 A_Scream;
XPL1 A 4 BRIGHT A_Timebomb;
XPL1 BCDEF 4 BRIGHT;
Stop;
}
void A_TimeBomb()
{
AddZ(32, false);
A_SetRenderStyle(1., STYLE_Add);
A_Explode();
}
}
Class ArtiTimeBomb : Inventory
{
Default
{
+COUNTITEM
+FLOATBOB
Inventory.PickupFlash "PickupFlash";
+INVENTORY.INVBAR
+INVENTORY.FANCYPICKUPSOUND
Inventory.Icon "ARTIFBMB";
Inventory.PickupSound "misc/p_pkup";
Inventory.PickupMessage "$TXT_ARTIFIREBOMB";
Tag "$TAG_ARTIFIREBOMB";
Inventory.DefMaxAmount;
}
States
{
Spawn:
FBMB E 350;
Loop;
}
override bool Use (bool pickup)
{
Actor mo = Spawn("ActivatedTimeBomb", Owner.Vec3Angle(24., Owner.angle, - Owner.Floorclip), ALLOW_REPLACE);
if (mo != null) mo.target = Owner;
return true;
}
}