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

131 lines
2.3 KiB
Text

// Crusader -----------------------------------------------------------------
class Crusader : Actor
{
Default
{
Speed 8;
Radius 40;
Height 56;
Mass 400;
Health 400;
Painchance 128;
Monster;
+FLOORCLIP
+DONTMORPH
+MISSILEMORE
+INCOMBAT
+NOICEDEATH
+NOBLOOD
MinMissileChance 120;
MaxDropoffHeight 32;
DropItem "EnergyPod", 256, 20;
SeeSound "crusader/sight";
PainSound "crusader/pain";
DeathSound "crusader/death";
ActiveSound "crusader/active";
Obituary "$OB_CRUSADER";
}
native void A_CrusaderChoose ();
native void A_CrusaderSweepLeft ();
native void A_CrusaderSweepRight ();
native void A_CrusaderRefire ();
native void A_CrusaderDeath ();
States
{
Spawn:
ROB2 Q 10 A_Look;
Loop;
See:
ROB2 AABBCCDD 3 A_Chase;
Loop;
Missile:
ROB2 E 3 Slow A_FaceTarget;
ROB2 F 2 Slow Bright A_CrusaderChoose;
ROB2 E 2 Slow Bright A_CrusaderSweepLeft;
ROB2 F 3 Slow Bright A_CrusaderSweepLeft;
ROB2 EF 2 Slow Bright A_CrusaderSweepLeft;
ROB2 EFE 2 Slow Bright A_CrusaderSweepRight;
ROB2 F 2 Slow A_CrusaderRefire;
Loop;
Pain:
ROB2 D 1 Slow A_Pain;
Goto See;
Death:
ROB2 G 3 A_Scream;
ROB2 H 5 A_TossGib;
ROB2 I 4 Bright A_TossGib;
ROB2 J 4 Bright A_Explode(64,64,1,1);
ROB2 K 4 Bright A_Fall;
ROB2 L 4 A_Explode(64,64,1,1);
ROB2 MN 4 A_TossGib;
ROB2 O 4 A_Explode(64,64,1,1);
ROB2 P -1 A_CrusaderDeath;
Stop;
}
}
// Fast Flame Projectile (used by Crusader) ---------------------------------
class FastFlameMissile : FlameMissile
{
Default
{
Mass 50;
Damage 1;
Speed 35;
}
}
// Crusader Missile ---------------------------------------------------------
// This is just like the mini missile the player shoots, except it doesn't
// explode when it dies, and it does slightly less damage for a direct hit.
class CrusaderMissile : Actor
{
Default
{
Speed 20;
Radius 10;
Height 14;
Damage 7;
Projectile;
+STRIFEDAMAGE
MaxStepHeight 4;
SeeSound "crusader/misl";
DeathSound "crusader/mislx";
}
States
{
Spawn:
MICR A 6 Bright A_RocketInFlight;
Loop;
Death:
SMIS A 0 Bright A_SetTranslucent(1,1);
SMIS A 5 Bright;
SMIS B 5 Bright;
SMIS C 4 Bright;
SMIS DEFG 2 Bright;
Stop;
}
}
// Dead Crusader ------------------------------------------------------------
class DeadCrusader : Actor
{
States
{
Spawn:
ROB2 N 4;
ROB2 O 4;
ROB2 P -1;
Stop;
}
}