mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-18 16:41:24 +00:00
371712c53a
- 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.
131 lines
2.3 KiB
Text
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;
|
|
}
|
|
}
|
|
|