// 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; } }