
class Templar : Actor
{
	Default
	{
		Health 300;
		Painchance 100;
		Speed 8;
		Radius 20;
		Height 60;
		Mass 500;
		Monster;
		+NOBLOOD
		+SEESDAGGERS
		+NOSPLASHALERT
		MaxdropoffHeight 32;
		MinMissileChance 200;
		SeeSound "templar/sight";
		PainSound "templar/pain";
		DeathSound "templar/death";
		ActiveSound "templar/active";
		CrushPainSound "misc/pcrush";
		Tag "$TAG_TEMPLAR";
		HitObituary "$OB_TEMPLARHIT";
		Obituary "$OB_TEMPLAR";
		DropItem "EnergyPod";
	}

	States
	{
	Spawn:
		PGRD A 5 A_Look2;
		Loop;
		PGRD B 10;
		Loop;
		PGRD C 10;
		Loop;
		PGRD B 10 A_Wander;
		Loop;
	See:
		PGRD AABBCCDD 3 A_Chase;
		Loop;
	Melee:
		PGRD E 8 A_FaceTarget;
		PGRD F 8 A_CustomMeleeAttack(random[ReaverMelee](1,8)*3, "reaver/blade");
		Goto See;
	Missile:
		PGRD G 8 BRIGHT A_FaceTarget;
		PGRD H 8 BRIGHT A_TemplarAttack;
		Goto See;
	Pain:
		PGRD A 2;
		PGRD A 2 A_Pain;
		Goto See;
	Death:
		PGRD I 4 A_TossGib;
		PGRD J 4 A_Scream;
		PGRD K 4 A_TossGib;
		PGRD L 4 A_NoBlocking;
		PGRD MN 4;
		PGRD O 4 A_TossGib;
		PGRD PQRSTUVWXYZ[ 4;
		PGRD \ -1;
		Stop;
	}
	
	void A_TemplarAttack()
	{
		if (target != null)
		{
			A_PlaySound ("templar/shoot", CHAN_WEAPON);
			A_FaceTarget ();
			double pitch = AimLineAttack (angle, MISSILERANGE);

			for (int i = 0; i < 10; ++i)
			{
				int damage = (random[Templar]() & 4) * 2;
				double ang = angle + random2[Templar]() * (11.25 / 256);
				LineAttack (ang, MISSILERANGE+64., pitch + random2[Templar]() * (7.097 / 256), damage, 'Hitscan', "MaulerPuff");
			}
		}
	}
}

