gzdoom/wadsrc/static/zscript/strife/alienspectres.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

223 lines
3.8 KiB
Text

// Alien Spectre 1 -----------------------------------------------------------
class AlienSpectre1 : SpectralMonster
{
Default
{
Health 1000;
Painchance 250;
Speed 12;
Radius 64;
Height 64;
FloatSpeed 5;
Mass 1000;
MinMissileChance 150;
RenderStyle "Translucent";
Alpha 0.666;
SeeSound "alienspectre/sight";
AttackSound "alienspectre/blade";
PainSound "alienspectre/pain";
DeathSound "alienspectre/death";
ActiveSound "alienspectre/active";
Obituary "$OB_ALIENSPECTRE";
+NOGRAVITY
+FLOAT
+SHADOW
+NOTDMATCH
+DONTMORPH
+NOBLOCKMONST
+INCOMBAT
+LOOKALLAROUND
+NOICEDEATH
}
native void A_AlienSpectreDeath ();
States
{
Spawn:
ALN1 A 10 A_Look;
ALN1 B 10 A_SentinelBob;
Loop;
See:
ALN1 AB 4 Bright A_Chase;
ALN1 C 4 Bright A_SentinelBob;
ALN1 DEF 4 Bright A_Chase;
ALN1 G 4 Bright A_SentinelBob;
ALN1 HIJ 4 Bright A_Chase;
ALN1 K 4 Bright A_SentinelBob;
Loop;
Melee:
ALN1 J 4 Bright A_FaceTarget;
ALN1 I 4 Bright A_CustomMeleeAttack((random[SpectreMelee](0,255)&9)*5);
ALN1 H 4 Bright;
Goto See;
Missile:
ALN1 J 4 Bright A_FaceTarget;
ALN1 I 4 Bright A_SpotLightning;
ALN1 H 4 Bright;
Goto See+10;
Pain:
ALN1 J 2 A_Pain;
Goto See+6;
Death:
AL1P A 6 Bright A_SpectreChunkSmall;
AL1P B 6 Bright A_Scream;
AL1P C 6 Bright A_SpectreChunkSmall;
AL1P DE 6 Bright;
AL1P F 6 Bright A_SpectreChunkSmall;
AL1P G 6 Bright;
AL1P H 6 Bright A_SpectreChunkSmall;
AL1P IJK 6 Bright;
AL1P LM 5 Bright;
AL1P N 5 Bright A_SpectreChunkLarge;
AL1P OPQ 5 Bright;
AL1P R 5 Bright A_AlienSpectreDeath;
Stop;
}
}
// Alien Spectre 2 -----------------------------------------------------------
class AlienSpectre2 : AlienSpectre1
{
Default
{
Health 1200;
Painchance 50;
Radius 24;
DropItem "Sigil2";
}
States
{
Missile:
ALN1 F 4 A_FaceTarget;
ALN1 I 4 A_CustomMissile("SpectralLightningH3", 32, 0);
ALN1 E 4;
Goto See+10;
}
}
// Alien Spectre 3 ----------------------------------------------------------
// This is the Oracle's personal spectre, so it's a little different.
class AlienSpectre3 : AlienSpectre1
{
Default
{
Health 1500;
Painchance 50;
Radius 24;
+SPAWNCEILING
DropItem "Sigil3";
DamageFactor "SpectralLow", 0;
}
States
{
Spawn:
ALN1 ABCDEFGHIJK 5;
Loop;
See:
ALN1 AB 5 A_Chase;
ALN1 C 5 A_SentinelBob;
ALN1 DEF 5 A_Chase;
ALN1 G 5 A_SentinelBob;
ALN1 HIJ 5 A_Chase;
ALN1 K 5 A_SentinelBob;
Loop;
Melee:
ALN1 J 4 A_FaceTarget;
ALN1 I 4 A_CustomMeleeAttack((random[SpectreMelee](0,255)&9)*5);
ALN1 C 4;
Goto See+2;
Missile:
ALN1 F 4 A_FaceTarget;
ALN1 I 4 A_Spectre3Attack;
ALN1 E 4;
Goto See+10;
Pain:
ALN1 J 2 A_Pain;
Goto See+6;
}
}
// Alien Spectre 4 -----------------------------------------------------------
class AlienSpectre4 : AlienSpectre1
{
Default
{
Health 1700;
Painchance 50;
Radius 24;
DropItem "Sigil4";
}
States
{
Missile:
ALN1 F 4 A_FaceTarget;
ALN1 I 4 A_CustomMissile("SpectralLightningBigV2", 32, 0);
ALN1 E 4;
Goto See+10;
}
}
// Alien Spectre 5 -----------------------------------------------------------
class AlienSpectre5 : AlienSpectre1
{
Default
{
Health 2000;
Painchance 50;
Radius 24;
DropItem "Sigil5";
}
States
{
Missile:
ALN1 F 4 A_FaceTarget;
ALN1 I 4 A_CustomMissile("SpectralLightningBigBall2", 32, 0);
ALN1 E 4;
Goto See+10;
}
}
// Small Alien Chunk --------------------------------------------------------
class AlienChunkSmall : Actor
{
Default
{
+NOBLOCKMAP
+NOCLIP
}
States
{
Spawn:
NODE ABCDEFG 6 Bright;
Stop;
}
}
// Large Alien Chunk --------------------------------------------------------
class AlienChunkLarge : Actor
{
Default
{
+NOBLOCKMAP
+NOCLIP
}
States
{
Spawn:
MTHD ABCDEFGHIJK 5 Bright;
Stop;
}
}