// 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;
	}
}