class Minotaur : Actor native
{
	Default
	{
		Health 3000;
		Radius 28;
		Height 100;
		Mass 800;
		Speed 16;
		Damage 7;
		Painchance 25;
		Monster;
		+DROPOFF
		+FLOORCLIP
		+BOSS
		+NORADIUSDMG
		+DONTMORPH
		+NOTARGET
		+BOSSDEATH
		SeeSound "minotaur/sight";
		AttackSound "minotaur/attack1";
		PainSound "minotaur/pain";
		DeathSound "minotaur/death";
		ActiveSound "minotaur/active";
		DropItem "ArtiSuperHealth", 51;
		DropItem "PhoenixRodAmmo", 84, 10;
	}

	native void A_MinotaurDecide();
	native void A_MinotaurAtk1();
	native void A_MinotaurAtk2();
	native void A_MinotaurAtk3();
	native void A_MinotaurCharge();
	native void A_MinotaurLook();
	native void A_MinotaurRoam();
	native void A_MinotaurChase();
	native void A_MinotaurDeath();

	States
	{
	Spawn:
		MNTR AB 10 A_MinotaurLook;
		Loop;
	Roam:
		MNTR ABCD 5 A_MinotaurRoam;
		Loop;
	See:
		MNTR ABCD 5 A_MinotaurChase;
		Loop;
	Melee:
		MNTR V 10 A_FaceTarget;
		MNTR W 7 A_FaceTarget;
		MNTR X 12 A_MinotaurAtk1;
		Goto See;
	Missile:
		MNTR V 10 A_MinotaurDecide;
		MNTR Y 4 A_FaceTarget;
		MNTR Z 9 A_MinotaurAtk2;
		Goto See;
	Hammer:
		MNTR V 10 A_FaceTarget;
		MNTR W 7 A_FaceTarget;
		MNTR X 12 A_MinotaurAtk3;
		Goto See;
	HammerLoop:
		MNTR X 12;
		Goto Hammer;
	Charge:
		MNTR U 2 A_MinotaurCharge;
		Loop;
	Pain:
		MNTR E 3;
		MNTR E 6 A_Pain;
		Goto See;
	Death:
		MNTR F 6 A_MinotaurDeath;
		MNTR G 5;
		MNTR H 6 A_Scream;
		MNTR I 5;
		MNTR J 6;
		MNTR K 5;
		MNTR L 6;
		MNTR M 5 A_NoBlocking;
		MNTR N 6;
		MNTR O 5;
		MNTR P 6;
		MNTR Q 5;
		MNTR R 6;
		MNTR S 5;
		MNTR T -1 A_BossDeath;
		Stop;
	FadeOut:
		MNTR E 6;
		MNTR E 2 A_Scream;
		MNTR E 5 A_SpawnItemEx("MinotaurSmokeExit");
		MNTR E 5;
		MNTR E 5 A_NoBlocking;
		MNTR E 5;
		MNTR E 5 A_SetTranslucent(0.66, 0);
		MNTR E 5 A_SetTranslucent(0.33, 0);
		MNTR E 10 A_BossDeath;
		Stop;
	}
}

class MinotaurFriend : Minotaur native
{
	Default
	{
		Health 2500;
		-DROPOFF
		-BOSS
		-DONTMORPH
		+FRIENDLY
		+NOTARGETSWITCH
		+STAYMORPHED
		+TELESTOMP
		+SUMMONEDMONSTER
		RenderStyle "Translucent";
		Alpha 0.3333;
		DropItem "None";
	}
	States
	{
	Spawn:
		MNTR A 15;
		MNTR A 15 A_SetTranslucent(0.66, 0);
		MNTR A 3 A_SetTranslucent(1, 0);
		Goto Super::Spawn;
	Idle:
		Goto Super::Spawn;
	Death:
		Goto FadeOut;
	}
}

// Minotaur FX 1 ------------------------------------------------------------

class MinotaurFX1 : Actor
{
	Default
	{
		Radius 10;
		Height 6;
		Speed 20;
		FastSpeed 26;
		Damage 3;
		DamageType "Fire";
		Projectile;
		-ACTIVATEIMPACT
		-ACTIVATEPCROSS
		RenderStyle "Add";
	}
	States
	{
	Spawn:
		FX12 AB 6 Bright;
		Loop;
	Death:
		FX12 CDEFGH 5 Bright;
		Stop;
	}
}


// Minotaur FX 2 ------------------------------------------------------------

class MinotaurFX2 : MinotaurFX1
{
	Default
	{
		Radius 5;
		Height 12;
		Speed 14;
		FastSpeed 20;
		Damage 4;
		+FLOORHUGGER
		ExplosionDamage 24;
		DeathSound "minotaur/fx2hit";
	}
	
	native void A_MntrFloorFire();
	
	states
	{
	Spawn:
		FX13 A 2 Bright A_MntrFloorFire;
		Loop;
	Death:
		FX13 I 4 Bright A_Explode;
		FX13 JKLM 4 Bright;
		Stop;
	}
}

// Minotaur FX 3 ------------------------------------------------------------

class MinotaurFX3 : MinotaurFX2
{
	Default
	{
		Radius 8;
		Height 16;
		Speed 0;
		DeathSound "minotaur/fx3hit";
		ExplosionDamage 128;
	}
	States
	{
	Spawn:
		FX13 DC 4 Bright;
		FX13 BCDE 5 Bright;
		FX13 FGH 4 Bright;
		Stop;
	}
}

// Minotaur Smoke Exit ------------------------------------------------------

class MinotaurSmokeExit : Actor
{
	Default
	{
		+NOBLOCKMAP
		+NOTELEPORT
		RenderStyle "Translucent";
		Alpha 0.4;
	}
	States
	{
	Spawn:
		MNSM ABCDEFGHIJIHGFEDCBA 3;
		Stop;
	}
}

