
//==============================================================================
//==========================  Sidhe Wrath Projectiles ==========================
//==============================================================================


ACTOR SpiritBomb
{
	Radius 20
	Height 6
	Speed 60
	Projectile
	RenderStyle Add
	DeathSound "SORBLEXP"
	Scale 3
	DamageType "SidheWrath"
	+Spectral
	
	States
	{
		Spawn:
			SBS4 ABC 1 Bright
			Loop
		Death:
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM Q 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",1,0,random(0,350),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM R 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",1,0,random(0,350),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM S 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",1,0,random(0,350),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM T 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",1,0,random(0,350),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM U 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",1,0,random(0,350),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM V 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("SidheSpooker",1,0,random(0,350),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM W 6
			TNT1 AAA 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ExplosionParticle1",0,0,random(1,360),2,random(1,360))
			stop
	}
}

ACTOR WimpySpiritBomb : SpiritBomb
{
	States
	{
		Spawn:
			SBS4 ABC 1 Bright
			Loop
		Death:
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM Q 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM R 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM S 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM T 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM U 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM V 6
			TNT1 A 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WimpySidheSpooker",0,0,0,frandom(-30,30),frandom(-30,30),frandom(-30,30)) //A_CustomMissile("WimpySidheSpooker",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			MUMM W 6
			TNT1 AAA 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			//TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ExplosionParticle1",0,0,random(1,360),2,random(1,360))
			stop
	}
}

ACTOR GhostSpawnerPortal : SpiritBomb
{
	Gravity 0.6
	-NOGRAVITY
	+THRUGHOST
	
	States
	{
	Spawn:
		SBS4 ABC 1 Bright
		Loop
	Death:
		TNT1 A 0 A_SetScale(0.8)
		BFE1 ABCDEF 1 Bright
		TNT1 A 15 A_DropItem("GhostSpawner")
		BFE1 ABCDEF 1 Bright
		TNT1 A 15 A_DropItem("GhostSpawner")
		BFE1 ABCDEF 1 Bright
		TNT1 A 15 A_DropItem("GhostSpawner")
		stop
	}
}

ACTOR MooBoyPortal : GhostSpawnerPortal
{
	States
	
	{
		Death:
			TNT1 A 0 A_ChangeFlag(NOINTERACTION, TRUE)
			//BFE1 ABC 1 Bright
			TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("MinoSummonSmoke",random(-40,40),random(-40,40),0,random(-6,6),random(-6,6),6)
			TNT1 A 0 A_SpawnItemEx("MinotaurBro",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			//BFE1 ABC 1 Bright
			stop
	}
}

ACTOR SidheSpooker
{
	//Damage (random(1,34)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/15))
	Damage (random(1,3)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/15))
	Radius 5
	Speed 40
	Projectile
	Renderstyle Add
	DamageType "SidheWrath"
	BounceType "Hexen"
	BounceFactor 1
	Alpha 0.5
	+SPECTRAL
	//+RIPPER
	//+NOBOSSRIP
	+SEEKERMISSILE
	+FORCERADIUSDMG
	+THRUACTORS
	//+NODAMAGETHRUST
	+FORCEPAIN
	ReactionTime 70 //175
	
	States
	{
		Spawn:
			PSMS B 4 //A_SetScale(0.1,0.1)
			PSMS B 4 Bright //A_SetScale(0.2,0.2)
			PSMS B 4 //A_SetScale(0.3,0.3)
			PSMS B 4 Bright //A_SetScale(0.4,0.4)
			PSMS B 4 //A_SetScale(0.6,0.6)
			PSMS B 4 Bright //A_SetScale(0.8,0.8)
			PSMS B 4 //A_SetScale(1,1)
		Homing:
			TNT1 A 0 A_Countdown()
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(640,"Homing")
			Goto Searching
			//loop
		Searching:
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(640,"Homing")
			Goto Death
		LatchOn:
			TNT1 A 0 A_Countdown()
			PSMS B 1 A_Warp(AAPTR_TRACER,frandom(-5.0,5.0),frandom(-5.0,5.0),frandom(10.0,60.0),0,WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_Explode(1,12,0,TRUE,12)
			TNT1 A 0 A_Countdown()
			PSMS B 1 A_Warp(AAPTR_TRACER,frandom(-5.0,5.0),frandom(-5.0,5.0),frandom(10.0,60.0),0,WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(32,"LatchOn")
			Goto Homing
			//loop
		Death:
			TNT1 A 0 A_Stop
			TNT1 A 0 A_JumpIfInventory("MinoBroDeployed",1,"DeathFinish")
			TNT1 A 0 A_CheckProximity("Nuke","SidheSpooker",50,175,CPXF_ANCESTOR)
		DeathFinish:
			//TNT1 A 0 A_Explode(4,12,0,TRUE,12)
			MUMM QRSTUVW 3
			stop
		Nuke:
			TNT1 A 0 A_RadiusGive("MinoBroDeployed",75,RGF_MISSILES,1)
			TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_SetScale(10)
			MUMM QRSTUVW 3 A_JumpIfInventory("MinoBroDeployed",1,"DeathFinish")
			TNT1 A 0 A_Explode(40,12,0,TRUE,12)
			TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("MinotaurBro",0,0,0,0,0,0,0,SXF_TELEFRAG)
			Stop
		/*Spawn:
			TNT1 A 0 NoDelay A_Jump(128,"Homing")
		Flying:
			PSMS B 1
			TNT1 A 0 A_Countdown()
			Loop
		Homing:
			PSMS B 1 A_SeekerMissile(5,10,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_Countdown()
			Loop
		NewTarget:
			TNT1 A 0 A_ClearTarget()
			Goto Homing
		Death:
			TNT1 A 0 A_SetScale(1.0)
			MUMM QRSTUVW 3
			stop*/
	}
}

ACTOR WimpySidheSpooker : SidheSpooker
{
	//Damage (random(4,10) * 3)
	Damage (random(1,2) * 3)
}

ACTOR PoweredSpooker : SidheSpooker
{
	ReactionTime 35
	
	States
	{
		Spawn:
			PSMS B 4 //A_SetScale(0.1,0.1)
			PSMS B 4 Bright //A_SetScale(0.2,0.2)
			PSMS B 4 //A_SetScale(0.3,0.3)
		Homing:
			TNT1 A 0 A_Countdown()
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 1 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(640,"Homing")
			Goto Searching
			//loop
		Searching:
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(64,"LatchOn")
			PSMS B 5 Bright A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(640,"Homing")
			Goto Death
		LatchOn:
			TNT1 A 0 A_Countdown()
			PSMS B 1 A_Warp(AAPTR_TRACER,frandom(-5.0,5.0),frandom(-5.0,5.0),frandom(10.0,60.0),0,WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_Explode(1,12,0,TRUE,12)
			TNT1 A 0 A_Countdown()
			PSMS B 1 A_Warp(AAPTR_TRACER,frandom(-5.0,5.0),frandom(-5.0,5.0),frandom(10.0,60.0),0,WARPF_INTERPOLATE | WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_Explode(1,12,0,TRUE,12)
			TNT1 A 0 A_SeekerMissile(89,90,SMF_LOOK | SMF_PRECISE, 256)
			TNT1 A 0 A_JumpIfTracerCloser(32,"LatchOn")
			Goto Homing
		Death:
			TNT1 A 0 A_Stop
			MUMM QRSTUVW 3
			stop
	}
}
	

ACTOR SidheWrathMissile
{
	Radius 6
	Height 6
	Speed 40
	Damage (random(0,25)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)))
	Projectile
	RenderStyle Add
	DeathSound "SLSPFIR1"
	Obituary "$OB_MPSKULLROD"
	Scale 0.9
	DamageType "SidheWrath"
	Decal "BrutalHellStaffScorch"
	+WINDTHRUST
	+SPECTRAL
	-NOBLOCKMAP
	+SEEKERMISSILE
	+SCREENSEEKER
	
	States
	{
		Spawn:
			//SBS4 ABC 1 Bright
			PSMS B 1
			TNT1 A 0 A_SeekerMissile(15,30,(SMF_LOOK|SMF_PRECISE),128)
			TNT1 A 0 Bright // A_SpawnItemEx("SidheWrathFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 A 0 A_SetScale(1.0)
			//TNT1 AAAAAAAAA 0 A_CustomMissile("ExplosionParticle1",0,0,random(1,360),2,random(1,360))
			//TNT1 AAA 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			MUMM QRSTUVW 1
			Stop
	}
}

ACTOR WimpySidheWrathMissile : SidheWrathMissile
{
	Damage (random(4,13) * 3)  //(random(15,25) * 5)  
}

ACTOR SidheWrathMissile2 : SidheWrathMissile
{
	States
	{
		Spawn:
			SBS4 ABC 1 Bright
			TNT1 A 0 Bright A_SpawnItemEx("SidheWrathFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 A 0 A_SetScale(1.0)
			//TNT1 AAAAAAAAA 0 A_CustomMissile("ExplosionParticle1",0,0,random(1,360),2,random(1,360))
			//TNT1 AAA 0 A_CustomMissile("PlasmaSmoke",0,0,random(1,360),2,random(1,360))
			MUMM QRSTUVW 1
			Stop
	}
}

ACTOR WimpySidheWrathMissile2 : SidheWrathMissile2
{
	Damage (random(15,25) * 5)
}
