
//==============================================================================
//============================ Firemace Projectiles ============================
//==============================================================================


ACTOR BrutalFireMaceBall1
{
	Radius 5
	Height 5
	Speed 28
	Damage (random(1,5) * 6)
	Projectile
	Gravity 0.6
	-NOGRAVITY
	+THRUGHOST
	+CANBOUNCEWATER
	+BOUNCEAUTOOFFFLOORONLY
	Decal "WallCrack"
	BounceType "Hexen"
	BounceFactor 0.6
	WallBounceFactor 0.75
	Obituary "$OB_MPMACE"
	Scale 0.4
	DamageType "Firemace"

	States
	{
		Spawn:
			TNT1 A 0 A_CheckProximity("Death","BrutalPhoenixMissile2",50)
			FX02 E 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 AAAAAAA 0 A_CustomMissile ("HDBallBoom", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0 A_Explode(30, 144, XF_HURTSOURCE)
			TNT1 A 0 A_Explode(30, 220, 0)
			//TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_PlaySound("DSBAREXP", 1)
			//TNT1 A 1 Radius_Quake (4, 15, 0, 12, 0)
			TNT1 A 0 A_QuakeEx (2,2,2,20,0,440,"world/quake",QF_SCALEDOWN,0,0,0,220)
			TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticle1", 3, 0, random (0, 360), 2, random (0, 360))	
			TNT1 AAAAAAAAAAAAAAA 6 A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160))
			Stop
	}
}

ACTOR BrutalFireMaceBallC : BrutalFireMaceBall1
{
	DamageType "Firemace"
	
	States
	{
		Spawn:
			FX02 E 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 AAAAAAA 0 A_CustomMissile ("HDBallBoom", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0 A_Explode(30, 144, XF_HURTSOURCE)
			TNT1 A 0 A_Explode(30, 220, 0)
			TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_PlaySound("DSBAREXP", 1)
			TNT1 A 0 A_QuakeEx (2,2,2,20,0,440,"world/quake",QF_SCALEDOWN,0,0,0,220)
			TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticle1", 3, 0, random (0, 360), 2, random (0, 360))	
			TNT1 AAAAAAAAAAAAAAA 6 A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160))
			Stop
	}
}

ACTOR BrutalFireMaceBall2 : BrutalFireMaceBall1
{
	Radius 8
	Height 8
	Speed 22
	Damage 7
	Scale 0.73
	
	States
	{
		Spawn:
			FX02 E 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 AAAAA 0 A_CustomMissile ("BrutalFireMaceBall1", 7, 0, random (0, 360), 2, random (0, 360))
			TNT1 AAAAAAA 0 A_CustomMissile ("HDBallBoom", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0 A_Explode(18, 144, XF_HURTSOURCE)
			TNT1 A 0 A_Explode(44, 220, 0)
			TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_PlaySound("DSBAREXP", 1)
			//TNT1 A 0 Radius_Quake (4, 15, 0, 12, 0)
			TNT1 A 0 A_QuakeEx (2,2,2,20,0,440,"world/quake",QF_SCALEDOWN,0,0,0,220)
			TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticle1", 3, 0, random (0, 360), 2, random (0, 360))	
			TNT1 AAAAAAAAAAAAAAA 6 A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160))
			Stop
	}
}

ACTOR BrutalFireMaceBall3
{
	Radius 5
	Height 5
	Speed 12
	Damage 1
	Projectile
	Gravity 0.6
	-NOGRAVITY
	+THRUGHOST
	+CANBOUNCEWATER
	+CANNOTPUSH
	+DONTSPLASH
	+USEBOUNCESTATE
	+BOUNCEONWALLS
	+BOUNCEONFLOORS
	+BOUNCEONCEILINGS
	+ALLOWBOUNCEONACTORS
	+BOUNCEONACTORS
	+BOUNCEAUTOOFF
	+FORCERADIUSDMG
	+FRIENDLY
	Decal "WallCrack"
	Obituary "$OB_MPMACE"
	Scale 0.4
	DamageType "Firemace"

	States
	{
		Spawn:
			FX02 F 1 Bright
			Loop
		Bounce.Floor:
			TNT1 A 0 A_PlaySound("ARMMINE",0)
			TNT1 A 0 A_Stop
			MNSM ABCDE 1	
			goto Waiting
		Waiting:
			FX02 F 1 Bright 
			{
				A_RadiusThrust(-650,640,RTF_NOIMPACTDAMAGE);
				A_RadiusThrust(-50,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,640);
				A_SpawnItemEx("GreenFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
			}
			FX02 FFFFFFFFFFFFFFFFFFFF 1 Bright 
			{
				A_RadiusThrust(-650,640,RTF_NOIMPACTDAMAGE);
				A_RadiusThrust(-1,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ,640);
			}
			Loop
		Death:
			FX02 FFFFFF 1 Bright 
			{
				A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
				A_RadiusThrust(-1250,640,RTF_NOIMPACTDAMAGE,640);
				A_RadiusThrust(-10,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			}
			FX02 FFFFFF 1 Bright 
			{
				A_RadiusThrust(-1250,640,RTF_NOIMPACTDAMAGE,640);
				A_RadiusThrust(-10,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			}
			FX02 FFFFFF 1 Bright 
			{
				A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
				A_RadiusThrust(-1250,640,RTF_NOIMPACTDAMAGE,640);
				A_RadiusThrust(-10,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			}
			FX02 FFFFFF 1 Bright 
			{
				A_RadiusThrust(-1250,640,RTF_NOIMPACTDAMAGE,640);
				A_RadiusThrust(-10,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			}
			FX02 FFFFFF 1 Bright 
			{
				A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
				A_RadiusThrust(-1250,640,RTF_NOIMPACTDAMAGE,640);
				A_RadiusThrust(-10,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			}
			FX02 FFFFFF 1 Bright 
			{
				A_RadiusThrust(-1250,640,RTF_NOIMPACTDAMAGE,640);
				A_RadiusThrust(-10,640,RTF_NOIMPACTDAMAGE|RTF_THRUSTZ);
			}
			TNT1 AAAAAAA 0 A_CustomMissile ("HDBallBoom", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0 A_Explode(18, 144, XF_HURTSOURCE)
			TNT1 A 0 A_Explode(50, 440, 0)
			TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_PlaySound("DSBAREXP", 1)
			//TNT1 A 1 Radius_Quake (4, 15, 0, 12, 0)
			TNT1 A 0 A_QuakeEx (2,2,2,20,0,640,"world/quake",QF_SCALEDOWN,0,0,0,288)
			TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticle1", 3, 0, random (0, 360), 2, random (0, 360))	
			TNT1 AAAAAAAAAAAAAAA 6 A_CustomMissile ("PlasmaSmoke", 1, 0, random (0, 360), 2, random (0, 160))
			Stop
	}
}

ACTOR FireMacePodSeed
{
	Radius 16
	//Height 32
	Mass 300
	Speed 10
	Gravity 1
	+INVULNERABLE
	
	States
	{
		Spawn:
			FPOD AABBCCDDEEFF 1 A_CheckFloor("Landed")
			//TNT1 A 0 A_JumpIf((ScaleX < 0.2), "Spawn") 
			//TNT1 A 0 A_SetScale(ScaleX-0.1,ScaleY-0.1)
		FallingLoop:
			FPOD G 1 A_CheckFloor("Landed")
			loop
		Landed:
			FPOD G 1 A_SpawnItem("FireMacePodSpawner")
			FPOD GGGGGGGGGG 1 A_SetScale(ScaleX-0.1,ScaleY-0.1)
			TNT1 A 0 A_Remove(0)
			stop
	}
}

ACTOR FireMacePodSpawner : PodGenerator
{
	States
	{
		Spawn:
			PPOD A 1 Bright A_MakePod("FireMacePod")
			PPOD A 10 //34 
			loop
	}
}

ACTOR FireMacePod : Pod
{
	Health 1 //30
	Radius 16
	Height 50
	Mass 200
	+NOPAIN
	-DONTGIB
	-OLDRADIUSDMG
	+NOBLOOD
	-NOBLOCKMONST
	+NODAMAGETHRUST
	+INVULNERABLE
	//+THRUACTORS
	+FORCERADIUSDMG
	+SHOOTABLE
	DamageType "Firemace"
	//Renderstyle Add
	DeathSound ""
	//PushFactor 1
	Gravity 0.5
	Scale 0.1
	Speed 10
	DamageFactor "FireMace", 0.0
	DamageFactor "Pod", 0.7
	DamageFactor "FlameyBoi", 0
	DamageFactor "Kick", 0
	PushFactor 0.5//.01

	States
	{
		Spawn:
			TNT1 A 0 A_SetSpeed(frandom(5,20))
			PPOD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SetScale(ScaleX+0.025,ScaleY+0.025)
			//TNT1 A 0 A_ChangeFlag(THRUACTORS,FALSE)
			TNT1 A 0 A_ChangeFlag(INVULNERABLE,FALSE)
		Waiting:
			PPOD A 5
			PPOD A 5 Bright
			Loop
		Death:
			PPOD A 2 A_RemovePod()
			TNT1 A 0 A_PlaySound("DSBAREXP",1)
			PPOD B 4 Light("GREENKNIGHTAXE_EX1")
			PPOD C 4 Light("GREENKNIGHTAXE_EX2")
			//TNT1 A 0 Radius_Quake(2,14,0,12,0)
			TNT1 A 0 A_QuakeEx (2,2,2,16,0,600,"world/quake",QF_SCALEDOWN,0,0,0,230)
			TNT1 AAA 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 A 0 A_SpawnItemEx("GreenExplosionFire",0,0,43,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("GreenExplosionParticle1", 43, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0 A_Explode(140,230,XF_HURTSOURCE,TRUE,230,0,0,"BrutalGreenGauntletPuff","Firemace")
			PPOD D 4 Light("GREENKNIGHTAXE_EX3")
			PPOD E 4 Light("GREENKNIGHTAXE_EX4")
			PPOD F 4 Light("GREENKNIGHTAXE_EX5")
			TNT1 A 2 Light("GREENKNIGHTAXE_EX6")
			TNT1 A 2 Light("GREENKNIGHTAXE_EX7")
			TNT1 A 0 A_Remove(0)
			Stop
		Grow:
			//PPOD IJKLMNOP 3
			Goto Spawn
	}
}