class BabyGear: Crusader
{
	Default
	{
		Speed 12;
		Radius 40;
        Height 56;
		Mass 400;
		Health 500;
		Painchance 128;
		Monster;
		+FLOORCLIP
		+DONTMORPH
		+MISSILEMORE
		+INCOMBAT
		+NOICEDEATH
		+NOBLOOD
		+NOINFIGHTING
		MinMissileChance 120;
		MaxDropoffHeight 32;
		DropItem "EnergyPod", 256, 20;
		Tag "$TAG_CRUSADER";
		SeeSound "crusader/sight";
		PainSound "crusader/pain";
		DeathSound "crusader/death";
		ActiveSound "crusader/active";
		Obituary "$OB_CRUSADER";
	}

	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, alert:true);
		ROB2 K 4 Bright A_Fall;
		ROB2 L 4 A_Explode(64, 64, alert:true);
		ROB2 MN 4 A_TossGib;
		ROB2 O 4 A_Explode(64, 64, alert:true);
		ROB2 P -1 A_CrusaderDeath;
		Stop;
	}
}

class Panther : Reaver
{
	Default
	{
		Health 100;
		Painchance 128;
		Speed 12;
		Radius 20;
		Height 60;
		Monster;
		+NOBLOOD
		+INCOMBAT
		+NOINFIGHTING
		MinMissileChance 150;
		MaxDropoffHeight 32;
		Mass 500;
		Tag "$TAG_REAVER";
		SeeSound "reaver/sight";
		PainSound "reaver/pain";
		DeathSound "reaver/death";
		ActiveSound "reaver/active";
		HitObituary "$OB_REAVERHIT";
		Obituary "$OB_REAVER";
	}
	
	States
	{
	Spawn:
		ROB1 A 10 A_Look;
		Loop;
	See:
		ROB1 BBCCDDEE 3 A_Chase;
		Loop;
	Melee:
		ROB1 H 6 Slow A_FaceTarget;
		ROB1 I 8 Slow A_CustomMeleeAttack(random[ReaverMelee](1,8)*3, "reaver/blade");
		ROB1 H 6 Slow;
		Goto See;
	Missile:
		ROB1 F 8 Slow A_FaceTarget;
		ROB1 F 0 A_StartSound ("reaver/attack");
		ROB1 G 11 BRIGHT A_CustomBulletAttack(11, 0, 3, 6, "StrifePuff"); //18-54 damage
		Goto See;
	Pain:
		ROB1 A 2 Slow;
		ROB1 A 2 A_Pain;
		Goto See;
	Death:
		ROB1 J 6;
		ROB1 K 6 A_Scream;
		ROB1 L 5;
		ROB1 M 5 A_NoBlocking;
		ROB1 NOP 5;
		ROB1 Q 6 A_Explode(32, 32, alert:true);
		ROB1 R -1;
		Stop;
	XDeath:
		ROB1 L 5 A_TossGib;
		ROB1 M 5 A_Scream;
		ROB1 N 5 A_TossGib;
		ROB1 O 5 A_NoBlocking;
		ROB1 P 5 A_TossGib;
		Goto Death+7;
	}
}

Class LaserScout : Actor
{
	Default
	{
		Health 70;
		Speed 11;
		Radius 40;
		Height 56;
		Mass 450;
		PainChance 150;
		Monster;
		+NOBLOOD
		-FLOAT
		-SPAWNCEILING
		-NOGRAVITY
		-DROPOFF
		+NOINFIGHTING
		Tag "Laser-Scout";
		SeeSound "scout/sight";
		DeathSound "scout/death";
		ActiveSound "scout/active";
		PainSound "scout/pain";
		AttackSound "scout/shoot";
		Obituary "%o was vaporized by a laser-scout.";
		GibHealth 100;
	}
	States
	{
	Spawn:
		MECH H 1 A_Look;
		loop;
	See:
		MECH ABCD 4 A_Chase;
		loop;
	Missile:
		MECH E 2 A_FaceTarget;
		AGRD F 0 A_PlaySound ("scout/shoot", CHAN_WEAPON);
		MECH F 4 Bright A_SpawnProjectile("SentinelFX3", 48, -8);
		Goto See;
	Pain:
		MECH G 4 A_Pain;
		Goto See;
	Death:
		MECH I 6 A_Scream;
		MECH J 6 A_Fall;
		MECH K 6;
		MECH L 12;
		MECH MNO 5 Bright;
		MECH L -1;
	Stop;
		XDeath:
		MECH Q 5 Bright A_PlaySound("scout/death", CHAN_BODY);
		MECH Q 0 A_Explode;
		MECH Q 0 A_Fall;
		MECH RRSSTT 2 Bright A_TossGib;
		MECH UVW 5 Bright A_TossGib;
		MECH X -1;
		Stop;
	}
}

Class SentinelFX3 : SentinelFX2
{
	Default
	{+BRIGHT;
	Damage 6;
	}
	States
	{
		Spawn:
		SHT1 AABB 2 A_SpawnItemEx("LaserTrail", -10);
		loop;
	}
}

Class LaserTrail : Actor
{
	Default
	{
		+BRIGHT
		+NOGRAVITY
	}
	States
	{
		Spawn:
		SHT1 AAAABBBB 4 A_FadeOut(0.5);
		loop;
	}
}

Class Head1 : Actor
{
Default {
  Radius 20;
  Height 4;
}
  States
  {
  Spawn:
    HED1 A -1;
    Loop;
  }
}

Class Head2 : Actor
{
Default {
  Radius 20;
  Height 4;
}
  
  States
  {
  Spawn:
    HED2 A -1;
    Loop;
  }
}

Class Head3 : Actor
{
Default {
  Radius 20;
  Height 4;
}
  
  States
  {
  Spawn:
    HED3 A -1;
    Loop;
  }
}

Class Head4 : Actor
{
Default {
  Radius 20;
  Height 4;
}
  States
  {
  Spawn:
    HED4 A -1;
    Loop;
  }
}

class SpiderRobot : Stalker
{
	Default
	{
		Health 40;
		Painchance 100;
		Speed 16;
		Radius 20;
		Height 16;
		Scale 0.5;
		Monster;
		-NOGRAVITY
		-SPAWNCEILING
		+NOBLOOD
		+INCOMBAT
		Tag "$TAG_STALKER";
		SeeSound "stalker/sight";
		AttackSound "stalker/attack";
		PainSound "stalker/pain";
		DeathSound "stalker/death";
		ActiveSound "stalker/active";
		HitObituary "$OB_STALKER";
	}

	States
	{
	Spawn:
		STLK K 1 A_Look;
		Loop;
		
	See:
		STLK J 3 A_StalkerWalk;
		STLK KK 3 A_Chase;
		STLK L 3 A_StalkerWalk;
		STLK L 3 A_Chase;
		Loop;
	
	Melee:
		STLK J 3 Slow A_FaceTarget;
		STLK K 3 Slow A_StalkerAttack;
	
	Pain:
		STLK L 1 A_Pain;
		Goto See;
	Death:
		STLK O 4;
		STLK P 4 A_Scream;
		STLK QRST 4;
		STLK U 4 A_NoBlocking;
		STLK VW 4;
		STLK XYZ[ 4 Bright;
		Stop;
	}
}

Class DeadMSci : Actor
{
Default {
  Radius 16;
  Height 48;
}
  
  States {
  Spawn:
    MSCI N -1;
    Stop;
  }
}

Class DeadFSci : Actor
{
Default {
  Radius 16;
  Height 48;
}
  
  States {
  Spawn:
    FSCI N -1;
    Stop;
  }
}

Class JunkP1 : Actor
{
Default {
Radius 25;
Height 20;
+SOLID
}
States
{
Spawn:
	JPIL A -1;
	Stop;
}
}

Class JunkP2 : Actor
{
Default {
Radius 28;
Height 28;
+SOLID
}
States
{
Spawn:
	JPIL B -1;
	Stop;
}
}