gzdoom/wadsrc/static/zscript/strife/spectral.txt
Christoph Oelckers 371712c53a - turned everything I could into non-action functions.
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
2016-10-22 17:49:08 +02:00

307 lines
4.6 KiB
Text

// base for all spectral monsters which hurt when being touched--------------
class SpectralMonster : Actor native
{
Default
{
Monster;
+SPECIAL
+SPECTRAL
+NOICEDEATH
}
native void A_SpectreChunkSmall ();
native void A_SpectreChunkLarge ();
native void A_Spectre3Attack ();
native void A_SpotLightning ();
}
// Container for all spectral lightning deaths ------------------------------
class SpectralLightningBase : Actor
{
Default
{
+NOTELEPORT
+ACTIVATEIMPACT
+ACTIVATEPCROSS
+STRIFEDAMAGE
MaxStepHeight 4;
RenderStyle "Add";
SeeSound "weapons/sigil";
DeathSound "weapons/sigilhit";
}
States
{
Death:
ZAP1 B 3 A_Explode(32,32);
ZAP1 A 3 A_AlertMonsters;
ZAP1 BCDEFE 3;
ZAP1 DCB 2;
ZAP1 A 1;
Stop;
}
}
// Spectral Lightning death that does not explode ---------------------------
class SpectralLightningDeath1 : SpectralLightningBase
{
States
{
Death:
Goto Super::Death+1;
}
}
// Spectral Lightning death that does not alert monsters --------------------
class SpectralLightningDeath2 : SpectralLightningBase
{
States
{
Death:
Goto Super::Death+2;
}
}
// Spectral Lightning death that is shorter than the rest -------------------
class SpectralLightningDeathShort : SpectralLightningBase
{
States
{
Death:
Goto Super::Death+6;
}
}
// Spectral Lightning (Ball Shaped #1) --------------------------------------
class SpectralLightningBall1 : SpectralLightningBase
{
Default
{
Speed 30;
Radius 8;
Height 16;
Damage 70;
Projectile;
+SPECTRAL
}
States
{
Spawn:
ZOT3 ABCDE 4 Bright;
Loop;
}
}
// Spectral Lightning (Ball Shaped #2) --------------------------------------
class SpectralLightningBall2 : SpectralLightningBall1
{
Default
{
Damage 20;
}
}
// Spectral Lightning (Horizontal #1) ---------------------------------------
class SpectralLightningH1 : SpectralLightningBase
{
Default
{
Speed 30;
Radius 8;
Height 16;
Damage 70;
Projectile;
+SPECTRAL
}
native void A_SpectralLightningTail ();
States
{
Spawn:
ZAP6 A 4 Bright;
ZAP6 BC 4 Bright A_SpectralLightningTail;
Loop;
}
}
// Spectral Lightning (Horizontal #2) -------------------------------------
class SpectralLightningH2 : SpectralLightningH1
{
Default
{
Damage 20;
}
}
// Spectral Lightning (Horizontal #3) -------------------------------------
class SpectralLightningH3 : SpectralLightningH1
{
Default
{
Damage 10;
}
}
// ASpectralLightningHTail --------------------------------------------------
class SpectralLightningHTail : Actor
{
Default
{
+NOBLOCKMAP
+NOGRAVITY
+DROPOFF
RenderStyle "Add";
}
States
{
Spawn:
ZAP6 ABC 5 Bright;
Stop;
}
}
// Spectral Lightning (Big Ball #1) -----------------------------------------
class SpectralLightningBigBall1 : SpectralLightningDeath2
{
Default
{
Speed 18;
Radius 20;
Height 40;
Damage 130;
Projectile;
+SPECTRAL
}
native void A_SpectralBigBallLightning ();
States
{
Spawn:
ZAP7 AB 4 Bright A_SpectralBigBallLightning;
ZAP7 CDE 6 Bright A_SpectralBigBallLightning;
Loop;
}
}
// Spectral Lightning (Big Ball #2 - less damaging) -------------------------
class SpectralLightningBigBall2 : SpectralLightningBigBall1
{
Default
{
Damage 30;
}
}
// Sigil Lightning (Vertical #1) --------------------------------------------
class SpectralLightningV1 : SpectralLightningDeathShort
{
Default
{
Speed 22;
Radius 8;
Height 24;
Damage 100;
Projectile;
DamageType "SpectralLow";
+SPECTRAL
}
States
{
Spawn:
ZOT1 AB 4 Bright;
ZOT1 CDE 6 Bright;
Loop;
}
}
// Sigil Lightning (Vertical #2 - less damaging) ----------------------------
class SpectralLightningV2 : SpectralLightningV1
{
Default
{
Damage 50;
}
}
// Sigil Lightning Spot (roams around dropping lightning from above) --------
class SpectralLightningSpot : SpectralLightningDeath1
{
Default
{
Speed 18;
ReactionTime 70;
+NOBLOCKMAP
+NOBLOCKMONST
+NODROPOFF
RenderStyle "Translucent";
Alpha 0.6;
}
native void A_SpectralLightning ();
States
{
Spawn:
ZAP5 A 4 Bright A_Countdown;
ZAP5 B 4 Bright A_SpectralLightning;
ZAP5 CD 4 Bright A_Countdown;
Loop;
}
}
// Sigil Lightning (Big Vertical #1) ----------------------------------------
class SpectralLightningBigV1 : SpectralLightningDeath1
{
Default
{
Speed 28;
Radius 8;
Height 16;
Damage 120;
Projectile;
+SPECTRAL
}
States
{
Spawn:
ZOT2 ABCDE 4 Bright A_Tracer2;
Loop;
}
}
// Actor 90 -----------------------------------------------------------------
class SpectralLightningBigV2 : SpectralLightningBigV1
{
Default
{
Damage 60;
}
}