gzdoom-gles/wadsrc/static/zscript/strife/programmer.txt
Christoph Oelckers dc9ee0727a - scriptified a_spectral.cpp.
- consolidated A_Tracer and A_Tracer2.

Note that this commit temporarily disables a few features in order to make it compile.
2016-11-28 12:55:33 +01:00

136 lines
2.4 KiB
Text

// Programmer ---------------------------------------------------------------
class Programmer : Actor
{
Default
{
Health 1100;
PainChance 50;
Speed 26;
FloatSpeed 5;
Radius 45;
Height 60;
Mass 800;
Damage 4;
Monster;
+NOGRAVITY
+FLOAT
+NOBLOOD
+NOTDMATCH
+DONTMORPH
+NOBLOCKMONST
+LOOKALLAROUND
+NOICEDEATH
+NOTARGETSWITCH
DamageFactor "Fire", 0.5;
MinMissileChance 150;
AttackSound "programmer/attack";
PainSound "programmer/pain";
DeathSound "programmer/death";
ActiveSound "programmer/active";
Obituary "$OB_PROGRAMMER";
DropItem "Sigil1";
}
native void A_ProgrammerMelee ();
native void A_SpawnProgrammerBase ();
native void A_ProgrammerDeath ();
States
{
Spawn:
PRGR A 5 A_Look;
PRGR A 1 A_SentinelBob;
Loop;
See:
PRGR A 160 A_SentinelBob;
PRGR BCD 5 A_SentinelBob;
PRGR EF 2 A_SentinelBob;
PRGR EF 3 A_Chase;
Goto See+4;
Melee:
PRGR E 2 A_SentinelBob;
PRGR F 3 A_SentinelBob;
PRGR E 3 A_FaceTarget;
PRGR F 4 A_ProgrammerMelee;
Goto See+4;
Missile:
PRGR G 5 A_FaceTarget;
PRGR H 5 A_SentinelBob;
PRGR I 5 Bright A_FaceTarget;
PRGR J 5 Bright A_SpotLightning;
Goto See+4;
Pain:
PRGR K 5 A_Pain;
PRGR L 5 A_SentinelBob;
Goto See+4;
Death:
PRGR L 7 Bright A_TossGib;
PRGR M 7 Bright A_Scream;
PRGR N 7 Bright A_TossGib;
PRGR O 7 Bright A_NoBlocking;
PRGR P 7 Bright A_TossGib;
PRGR Q 7 Bright A_SpawnProgrammerBase;
PRGR R 7 Bright;
PRGR S 6 Bright;
PRGR TUVW 5 Bright;
PRGR X 32 Bright;
PRGR X -1 Bright A_ProgrammerDeath;
Stop;
}
//============================================================================
//
// A_SpotLightning
//
//============================================================================
void A_SpotLightning()
{
if (target == NULL) return;
Actor spot = Spawn("SpectralLightningSpot", (target.pos.xy, target.floorz), ALLOW_REPLACE);
if (spot != NULL)
{
spot.threshold = 25;
spot.target = self;
spot.FriendPlayer = 0;
spot.tracer = target;
}
}
}
// The Programmer's base for when he dies -----------------------------------
class ProgrammerBase : Actor
{
Default
{
+NOBLOCKMAP
+NOCLIP
+NOBLOOD
}
States
{
Spawn:
BASE A 5 Bright A_Explode(32,32,1,1);
BASE BCD 5 Bright;
BASE EFG 5;
BASE H -1;
Stop;
}
}
// The Programmer level ending thing ----------------------------------------
class ProgLevelEnder : Inventory native
{
Default
{
+INVENTORY.UNDROPPABLE
}
}