qzdoom-gpl/wadsrc/static/zscript/strife/acolyte.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

218 lines
3.3 KiB
Text

// Base class for the acolytes ----------------------------------------------
class Acolyte : StrifeHumanoid
{
Default
{
Health 70;
PainChance 150;
Speed 7;
Radius 24;
Height 64;
Mass 400;
Monster;
+SEESDAGGERS
+NOSPLASHALERT
+FLOORCLIP
+NEVERRESPAWN
MinMissileChance 150;
Tag "$TAG_ACOLYTE";
SeeSound "acolyte/sight";
PainSound "acolyte/pain";
AttackSound "acolyte/rifle";
DeathSound "acolyte/death";
ActiveSound "acolyte/active";
Obituary "$OB_ACOLYTE";
}
native void A_BeShadowyFoe ();
native void A_AcolyteBits ();
native void A_AcolyteDie ();
States
{
Spawn:
AGRD A 5 A_Look2;
Wait;
AGRD B 8 A_ClearShadow;
Loop;
AGRD D 8;
Loop;
AGRD ABCDABCD 5 A_Wander;
Loop;
See:
AGRD A 6 Fast Slow A_AcolyteBits;
AGRD BCD 6 Fast Slow A_Chase;
Loop;
Missile:
AGRD E 8 Fast Slow A_FaceTarget;
AGRD FE 4 Fast Slow A_ShootGun;
AGRD F 6 Fast Slow A_ShootGun;
Goto See;
Pain:
AGRD O 8 Fast Slow A_Pain;
Goto See;
Death:
AGRD G 4;
AGRD H 4 A_Scream;
AGRD I 4;
AGRD J 3;
AGRD K 3 A_NoBlocking;
AGRD L 3;
AGRD M 3 A_AcolyteDie;
AGRD N -1;
Stop;
XDeath:
GIBS A 5 A_NoBlocking;
GIBS BC 5 A_TossGib;
GIBS D 4 A_TossGib;
GIBS E 4 A_XScream;
GIBS F 4 A_TossGib;
GIBS GH 4;
GIBS I 5;
GIBS J 5 A_AcolyteDie;
GIBS K 5;
GIBS L 1400;
Stop;
}
}
// Acolyte 1 ----------------------------------------------------------------
class AcolyteTan : Acolyte
{
Default
{
+MISSILEMORE +MISSILEEVENMORE
DropItem "ClipOfBullets";
}
}
// Acolyte 2 ----------------------------------------------------------------
class AcolyteRed : Acolyte
{
Default
{
+MISSILEMORE +MISSILEEVENMORE
Translation 0;
}
}
// Acolyte 3 ----------------------------------------------------------------
class AcolyteRust : Acolyte
{
Default
{
+MISSILEMORE +MISSILEEVENMORE
Translation 1;
}
}
// Acolyte 4 ----------------------------------------------------------------
class AcolyteGray : Acolyte
{
Default
{
+MISSILEMORE +MISSILEEVENMORE
Translation 2;
}
}
// Acolyte 5 ----------------------------------------------------------------
class AcolyteDGreen : Acolyte
{
Default
{
+MISSILEMORE +MISSILEEVENMORE
Translation 3;
}
}
// Acolyte 6 ----------------------------------------------------------------
class AcolyteGold : Acolyte
{
Default
{
+MISSILEMORE +MISSILEEVENMORE
Translation 4;
}
}
// Acolyte 7 ----------------------------------------------------------------
class AcolyteLGreen : Acolyte
{
Default
{
Health 60;
Translation 5;
}
}
// Acolyte 8 ----------------------------------------------------------------
class AcolyteBlue : Acolyte
{
Default
{
Health 60;
Translation 6;
}
}
// Shadow Acolyte -----------------------------------------------------------
class AcolyteShadow : Acolyte
{
Default
{
+MISSILEMORE
DropItem "ClipOfBullets";
}
States
{
See:
AGRD A 6 A_BeShadowyFoe;
Goto Super::See+1;
Pain:
AGRD O 0 Fast Slow A_SetShadow;
AGRD O 8 Fast Slow A_Pain;
Goto See;
}
}
// Some guy turning into an acolyte -----------------------------------------
class AcolyteToBe : Acolyte
{
Default
{
Health 61;
Radius 20;
Height 56;
DeathSound "becoming/death";
-COUNTKILL
-ISMONSTER
}
native void A_HideDecepticon ();
States
{
Spawn:
ARMR A -1;
Stop;
Pain:
ARMR A -1 A_HideDecepticon;
Stop;
Death:
Goto XDeath;
}
}