ACTOR MinotaurBro : Minotaur
{
	Health 750
	Speed 17
	Damage 7
	PainChance 25
	RenderStyle "Translucent"
	DamageType "MinoBroSpecial"
	DamageFactor "MinoBroSpecial", 0
	SeeSound "MINSIT"
	AttackSound "MINAT1"
	PainSound "MINPAI"
	DeathSound "MINDTH"
	ActiveSound "MINACT"
	Alpha 0.8
	//MeleeThreshold 256
	+FORCERADIUSDMG
	+MISSILEMORE
	+MISSILEEVENMORE
	+NOBLOOD
	+FRIENDLY
	Tag "Maulotaur"
	
	States
	{
		Spawn:
			MNTF ABCD 3 
			{
				A_Look;
				A_Wander;
			}
			TNT1 A 0 A_JumpIfInventory("MinoTimerToken",100,"Goodbye")
			TNT1 A 0 A_GiveInventory("MinoTimerToken",1)
			Loop
		Roam:
			MNTF ABCD 3 A_Chase
			Loop
		See:
			MNTF ABCD 3 A_Chase
			TNT1 A 0 A_JumpIfInventory("MinoTimerToken",100,"Goodbye")
			TNT1 A 0 A_GiveInventory("MinoTimerToken",1)
			Loop
		Melee:
			TNT1 A 0 A_Jump(128,"Missile")
			MNTF V 5 A_FaceTarget
			TNT1 A 0 A_Jump(128,"Melee2")
			MNTF W 5 A_FaceTarget
			MNTF X 1
			{
				A_CustomMeleeAttack(random(5, 10) * 5, "MINAT1");
				//A_RadiusThrust(150,256,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE | RTF_THRUSTZ);
				A_RadiusThrust(6000,256,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE);
				A_QuakeEx(2,2,2,20,0,512,"world/quake",QF_SCALEDOWN,0,0,0,64);
			}
			MNTF X 5
			MNTF W 2
			Goto See
		Melee2:
			MNTF Y 3 A_FaceTarget
			MNTF Z 1
			{
				A_CustomMeleeAttack(random(1, 8) * 4, "MINAT1");
				A_RadiusThrust(200,256,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE | RTF_THRUSTZ);
				A_RadiusThrust(6000,256,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE);
				A_QuakeEx(2,2,2,20,0,512,"world/quake",QF_SCALEDOWN,0,0,0,64);
			}
			MNTF Z 4
			MNTF Y 2
			Goto See
		Missile:
			TNT1 A 0 A_Jump(32,"Charge")
			TNT1 A 0 A_Jump(64,"HammerSlam")
			MNTF V 4 A_FaceTarget
			MNTF YYY 1 A_FaceTarget
			MNTF Z 1
			{
				A_PlaySound("MINAT2",0);
				A_CustomMissile("BroMinotaurFX1",52,-20,6);
				A_CustomMissile("BroMinotaurFX1",52,-10,3);
				A_CustomMissile("BroMinotaurFX1",52,0,0);
				A_CustomMissile("BroMinotaurFX1",52,10,-3);
				A_CustomMissile("BroMinotaurFX1",52,20,-6);
			}
			MNTF Z 2
			Goto See
		HammerSlam:
			MNTF V 4 A_FaceTarget
			MNTF W 3 A_FaceTarget
			MNTF X 7 
			{
				A_PlaySound("MINAT3",0);
				A_CustomMissile("BroMinotaurFX2",0,0,-14);
				A_CustomMissile("BroMinotaurFX2",0,0,-7);
				A_CustomMissile("BroMinotaurFX2");
				A_CustomMissile("BroMinotaurFX2",0,0,7);
				A_CustomMissile("BroMinotaurFX2",0,0,14);
				A_RadiusThrust(150,256,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE | RTF_THRUSTZ);
				A_RadiusThrust(6000,256,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE);
				A_QuakeEx(2,2,2,20,0,512,"world/quake",QF_SCALEDOWN,0,0,0,64);
			}
			//TNT1 A 0 A_Jump(64,"Hammer")
			Goto See
		Headbutt:
			TNT1 A 0 A_ChangeFlag(THRUACTORS, FALSE)
			TNT1 A 0 
			{
				A_ScaleVelocity(0);
				A_Explode(10,128,XF_NOTMISSILE);
				A_RadiusThrust(200,128,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE | RTF_THRUSTZ,128);
				A_RadiusThrust(6000,128,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE,128);
				A_QuakeEx(2,2,2,20,0,512,"world/quake",QF_SCALEDOWN,0,0,0,64);
			}
			TNT1 A 0 A_SetSpeed(16) 
			MNTF U 15 A_ChangeFlag(NOPAIN, FALSE)
			Goto See
		HammerLoop:
			MNTF X 6
			Goto Hammer
		Charge:
			//MNTF U 2 A_MinotaurCharge
			TNT1 A 0 A_ChangeFlag(NOPAIN, TRUE)
			TNT1 A 0 A_PlaySound("MINSIT",0)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(1.1,1.1)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(1.0,1.0)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(0.9,0.9)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(1.0,1.0)
			TNT1 A 0 A_PlaySound("MINSIT",0)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(1.1,1.1)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(1.0,1.0)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(0.9,0.9)
			MNTF UUU 1 A_FaceTarget
			TNT1 A 0 A_SetScale(1.0,1.0)
			TNT1 A 0 A_PlaySound("MINSIT",0)
			TNT1 A 0 A_SkullAttack(20)
			TNT1 A 0 A_ChangeFlag(THRUACTORS, TRUE)
		RunningLoop:
			MNTF U 1
			{
				A_ScaleVelocity(1.1);
				A_RadiusThrust(100,98,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE | RTF_THRUSTZ,64);
				A_RadiusThrust(1000,98,RTF_NOIMPACTDAMAGE | RTF_NOTMISSILE,64);
				
				If (A_JumpIfCloser(128,"Headbutt") || ((VelX == 0) && (VelY == 0)))
				{
					Return State("Headbutt");
				}
				Else
				{
					Return State("");
				}
			}
			Loop
		Pain:
			//TNT1 A 0 A_Jump(16,"Charge")
			MNTF E 3
			MNTF E 6 A_Pain
			Goto See
		Goodbye:
			MNTF ABCDABCDABCD 2 A_SetAngle(Angle+15)
			TNT1 A 0 A_ClearTarget
			MNTF A 1 A_RearrangePointers(AAPTR_PLAYER1)
			MNTF AUAUAUAUAUAUAUAUAUAUAUAUAUAUAU 3 
			{
				A_Fadeout(0.02);
				A_FaceTarget;
			}
			TNT1 A 0 A_Remove(0)
			Stop
		Death:
		XDeath:
			MNTF F 6 A_Fadeout(0.05)
			MNTF G 5 A_Fadeout(0.05)
			MNTF H 6 A_Fadeout(0.05)
			MNTF I 5 A_Fadeout(0.05)
			MNTF J 6 A_Fadeout(0.05)
			MNTF K 5 A_Fadeout(0.05)
			MNTF L 6 A_Fadeout(0.05)
			MNTF M 5 A_Fadeout(0.05)
			MNTF N 6 A_Fadeout(0.05)
			MNTF O 5 A_Fadeout(0.05)
			MNTF P 6 A_Fadeout(0.05)
			MNTF Q 5 A_Fadeout(0.05)
			MNTF R 6 A_Fadeout(0.05)
			MNTF S 5 A_Fadeout(0.05)
			MNTF TTT 3 A_Fadeout(0.1)
			Stop
	}
}




ACTOR BroMinotaurFX1 : MinotaurFX1
{
	Speed 25
	FastSpeed 35
	
	Damage 2
	DamageType "MinoBroSpecial"
	Projectile
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	RenderStyle Add

	States
	{
		Spawn:
			FX04 AAA 2 Bright A_GiveInventory("BroMinotaurFireballFX",1)
			Loop
		Death:
			TNT1 A 0 A_ScaleVelocity(0)
			TNT1 A 0 A_ChangeFlag("NOGRAVITY", FALSE)
			FXPR CCCDDDEEEFFFGGGHHH 2 Bright
			{
				A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160));
				A_SpawnItemEx("BroSmolMinotaurFX1",0,0,0,frandom(-10.0, 10.0),frandom(-10.0, 10.0),frandom(5.0, 15.0));
			}
			Stop
	}
}

Actor BroMinotaurFireballFX : CustomInventory
{
	Inventory.PickupMessage ""
	Inventory.PickupSound ""
	-COUNTITEM
	
	States
	{
		Spawn:
			TNT1 A 1
			Fail
		Pickup:
			TNT1 A 0 A_SpawnItemEx("BroSmokeTrail1",0,0,0,frandom(-0.7,0.7),frandom(-0.7,0.7),frandom(-0.7,0.7))
			Stop
			TNT1 A 0 A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
	}
}

ACTOR BroSmolMinotaurFX1 : MinotaurFX1
{
	Radius 12
	Height 12
	-NOGRAVITY
	Gravity 1
	DamageType "MinoBroSpecial"
	
	States
	{
		Spawn:
			MFX1 ABC 4 Bright
			Loop
		Death:
			MFX1 DEFG 4 Bright
			Stop
	}
}

ACTOR BroMinotaurFX2 : MinotaurFX2
{
	Speed 20
	FastSpeed 30
	ExplosionDamage 12
	DamageType "MinoBroSpecial"
	+THRUACTORS

	States
	{
		Spawn:
			MFX2 A 1 Bright 
			{
				A_SpawnItemEx("BroSmolMinotaurFX3");
				//A_Weave(6, 0, 4.0, 0.0);
			}
			Loop
		Death:
			MFX2 I 4 Bright A_Explode
			MFX2 JKLM 4 Bright
			Stop
	}
}

ACTOR BroSmolMinotaurFX3 : MinotaurFX3
{
	ExplosionDamage 24
	YScale 1.5
	XScale 3
	DamageType "MinoBroSpecial"
	
	States
	{
		Spawn:
		Death:
			MFX2 DC 4 Bright
			MFX2 BCDE 5 Bright
			MFX2 FGH 4 Bright
			Stop
	}
}