class HexasRanger : SquareMonster
{
	Default
	{
		Health 100;
		Obituary "$OB_HEXASRANGER";
		Speed 12;
		FastSpeed 18;
		PainChance 192;
		BloodColor "00 00 ff";
		DropItem 'AmmoCase';
		SeeSound "hexasranger/sight";
		ActiveSound "hexasranger/active";
		PainSound "hexasranger/pain";
		DeathSound "hexasranger/death";
	}
	States
	{
	Spawn:
		HXRA A 6 A_Look();
		Loop;
	See:
		HXRA ABCD 2 A_Chase();
		Loop;
	Missile:
		HXRA E 0 A_FaceTarget();
		HXRA E 4 A_PlaySound("hexasranger/attack", CHAN_VOICE);
	MissileRepeat:
		HXRA E 6 A_FaceTarget();
		HXRA F 3 Bright A_SpawnProjectile("HexasRangerBall", 24,-12);
		HXRA G 3 Bright A_SpawnProjectile("HexasRangerBall", 24, 12);
		HXRA G 0 A_Jump(80, "MissileEnd");
		HXRA G 0 A_MonsterRefire(0, "MissileEnd");
		Loop;
	MissileEnd:
		HXRA E 4 A_FaceTarget();
		Goto See;
	Pain:
		HXRA H 5;
		HXRA H 5 A_Pain();
		Goto See;
	Death:
		HXRA H 2 A_Scream();
		HXRA H 2 A_SpawnItem("GibSpawnerCircleJerk");
		HXRA HH 0 A_SpawnItemEx("GibEye", random[SquareGibRandom](-32,32), random[SquareGibRandom](-4,4), random[SquareGibRandom](4,12), random[SquareGibRandom](- 4, 4), random[SquareGibRandom](-4,4), random[SquareGibRandom](0, 8), 0);
		HXRA H 0 A_SpawnItemEx("GibTenGallonHat", random[SquareGibRandom](-8,8), random[SquareGibRandom](-4,4), random[SquareGibRandom](11,12) , random[SquareGibRandom](-2,2), random[SquareGibRandom](-2,2), random[SquareGibRandom](5 , 7), 0);
		LEGS A 0 A_Stop();
		LEGS A 18 A_NoBlocking();
		LEGS A -1 A_GiveToTarget("SquareVOEnemies", 1);
		Stop;
	}
}

class HexanSheriff : HexasRanger
{
	Default
	{
		Health 300;
		Obituary "$OB_HEXANSHERIFF";
		PainChance 60;
		SeeSound "hexansheriff/sight";
		ActiveSound "";
		PainSound "hexansheriff/pain";
		DeathSound "hexansheriff/death";
		DamageFactor "HellDamage", 0.33;
	}
	States
	{
	Spawn:
		HXSH A 1 A_Look();
		Loop;
	See:
		HXSH ABCD 2 A_Chase();
		Loop;
	Spawn2:
		HXSH A 1 A_UnSetInvulnerable();
		HXSH A 1 A_LookEx(0, 0, 0, 0, 360, "See");
		Wait;
	Missile:
		HXSH E 0 A_PlaySound("hexansheriff/attack", CHAN_VOICE);
		HXSH E 0 A_PlaySound("hexansheriff/ready", CHAN_ITEM);
		HXSH EEEE 4 A_FaceTarget();
		HXSH FFFFFFFFFF 0 Bright A_SpawnProjectile("SheriffShot", 24, -12, frandom(-5, 5), CMF_AIMOFFSET | CMF_OFFSETPITCH, frandom(-2, 2));
		HXSH F 4 Bright A_PlaySound("hexansheriff/shoot", CHAN_ITEM);
		HXSH EE 4 A_FaceTarget();
		HXSH FFFFFFFFFF 0 Bright A_SpawnProjectile("SheriffShot", 24, -12, frandom(-5, 5), CMF_AIMOFFSET | CMF_OFFSETPITCH, frandom(-2, 2));
		HXSH F 4 Bright A_PlaySound("hexansheriff/shoot", CHAN_ITEM);
		HXSH E 8 A_FaceTarget();
		HXSH B 6 A_PlaySound("hexansheriff/reload", CHAN_ITEM);
		HXSH E 6;
		Goto See;
	Pain:
		HXSH G 5;
		HXSH G 5 A_Pain();
		Goto See;
	Death:
		HXSH G 2 A_Scream();
		HXSH G 2 A_SpawnItem("GibSpawnerCircleJerk");
		HXSH GG 0 A_SpawnItemEx("GibEye", random[SquareGibRandom](-32,32), random[SquareGibRandom](-4,4), random[SquareGibRandom](4,12), random[SquareGibRandom](- 4, 4), random[SquareGibRandom](-4,4), random[SquareGibRandom](0, 8), 0);
		HXSH G 0 A_SpawnItemEx("GibSheriffHat", random[SquareGibRandom](-8,8), random[SquareGibRandom](-4,4), random[SquareGibRandom](11,12), random[SquareGibRandom](-2,2), random[SquareGibRandom](-2,2), random[SquareGibRandom](5 , 7), 0);
		LEGS A 0 A_Stop();
		LEGS A 18 A_NoBlocking();
		LEGS A -1 A_GiveToTarget("SquareVOEnemies", 1);
		Stop;
	Leap:
		HXSH H 0;
		HXSH H 35 A_SetInvulnerable();
		HXSH H 1 A_JumpIf(pos.z <= (floorz+4), "Spawn2");
		Wait;
	}
}
