gzdoom/wadsrc/static/zscript/strife/acolyte.txt
Christoph Oelckers 633da6e5d8 - scriptified two of the Acolyte's functions.
- added a DActorIterator class.
- fixed: It was not possible to have functions of the same name in two different classes because the name they were searched for was not qualified by the class. Changed so that the class name is included now, but to avoid renaming several hundreds of functions all at once, if the search fails, it will repeat with 'Actor' as class name.

This commit contains preparations for scriptifying Hexen's Dragon, but that doesn't work yet so it's not included.
2016-11-16 01:36:21 +01:00

254 lines
4 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_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;
}
//============================================================================
//
// A_BeShadowyFoe
//
//============================================================================
void A_BeShadowyFoe()
{
A_SetRenderStyle(HR_SHADOW, STYLE_Translucent);
bFriendly = false;
}
//============================================================================
//
// A_AcolyteBits
//
//============================================================================
void A_AcolyteBits()
{
if (SpawnFlags & MTF_SHADOW)
{
A_BeShadowyFoe();
}
if (SpawnFlags & MTF_ALTSHADOW)
{
if (bShadow)
{
// I dunno.
}
else
{
A_SetRenderStyle(0, STYLE_None);
}
}
}
}
// 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;
}
}