
//==============================================================================
//=========================== Hellstaff Projectiles ============================
//==============================================================================


ACTOR BrutalHellStaffMissile
{
	Radius 6
	Height 6
	Speed 22
	Damage (random(3,13)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/2))
	Projectile	
	RenderStyle Add
	//DeathSound "PLSM10"
	DeathSound "HRNHIT"
	Obituary "$OB_MPSKULLROD"
	//Scale 0.14
	Scale 1
	DamageType "Hellstaff"
	Decal "BrutalHellStaffScorch"
	+WINDTHRUST
	+SPECTRAL
	-NOBLOCKMAP
	+NOGRAVITY
	+CANNOTPUSH
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX00 AABB 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		Launched:
			FX00 AAAABBBB 1 A_SpawnItemEx("HellShotFade",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		LaunchedAlt:
			TNT1 A 0 A_SetScale(-1,1)
			FX00 FFEEDDCCBBAA 1
			FX00 FFEEDDCCBBAA 1 A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Goto LaunchedAlt+1
		Fancy:
			TNT1 A 0 A_SetScale(0.14,0.14)
			HBAL A 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Goto Fancy+1
		Death:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			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))
			FX00 HH 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FX00 HI 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FX00 IIJJJKKKLLLMMM 1 Bright A_SpawnItemEx("HRedFlareBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
		FancyDeath:
			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))
			FIRH AB 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH CDE 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH FGHIJKLMNOP 1 Bright A_SpawnItemEx("HRedFlareBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
	}
}

ACTOR WimpyBrutalHellStaffMissile : BrutalHellStaffMissile
{
	Damage (random(4,7)* 10)
}

ACTOR BrutalHellStaffMissile2: BrutalHellStaffMissile
{
	Speed 15
	+SEEKERMISSILE
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_Seekermissile(45,45,SMF_LOOK|SMF_PRECISE,256)
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX00 AABB 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_Jump(128,5)
		Launched:
			FX00 AAAABBBB 1 A_SpawnItemEx("HellShotFade",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			//FX00 CCDDEEFF 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Fancy:
			TNT1 A 0 A_SetScale(0.14,0.14)
			HBAL A 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Goto Fancy+1
		Death:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			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))
			FX00 HH 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FX00 HI 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FX00 IIJJJKKKLLLMMM 1 Bright A_SpawnItemEx("HRedFlareBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
		FancyDeath:
			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))
			FIRH AB 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH CDE 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH FGHIJKLMNOP 1 Bright A_SpawnItemEx("HRedFlareBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
	}
}

ACTOR WimpyBrutalHellStaffMissile2 : BrutalHellStaffMissile2
{
	Damage (random(4,7)* 10)
}

ACTOR PoweredBrutalHellStaffMissile
{
	Radius 6
	Height 6
	Speed 20
	Damage (random(1,10)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/3))
	Projectile
	+WINDTHRUST
	+SPECTRAL
	-NOBLOCKMAP
	+CANNOTPUSH
	RenderStyle Add
	//DeathSound "PLSM10Q"
	DeathSound "HRNHITQ"
	Obituary "$OB_MPSKULLROD"
	Scale 0.14
	DamageType "Hellstaff"
	Decal "BrutalHellStaffScorch"
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			TNT1 A 0 A_SetScale(0.5,0.5)
			FX00 AABB 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			//TNT1 A 0 A_Jump(128,5)
		Launched:
			FX00 CCDDEEFF 1 Bright A_SpawnItemEx("HellShotFade2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Fancy:
			HBAL A 1 Bright A_SpawnItemEx("HellStaffFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			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))
			FX00 HH 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FX00 HI 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FX00 IIJJJKKKLLLMMM 1 Bright A_SpawnItemEx("HRedFlareBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
		FancyDeath:
			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))
			FIRH AB 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH CDE 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH FGHIJKLMNOP 1 Bright A_SpawnItemEx("HRedFlareBig",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
	}
}

ACTOR WimpyPoweredBrutalHellStaffMissile : PoweredBrutalHellStaffMissile
{
	Damage (random(5,7) * 5)
}

ACTOR BrutalHellRainSpawner : MinotaurFX2
{
	Radius 5
	Height 12
	Speed 20
	Damage 4
	XScale 12
	YScale 3
	Alpha 0.5
	Renderstyle Add
	+THRUACTORS
	+NODAMAGETHRUST
	+CEILINGHUGGER
	-FLOORHUGGER
	+CANNOTPUSH
	
	States
	{
		Spawn:
			TNT1 A 1 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
		Launched:
			FX04 BBBBCCCCDDDDCCCC 1 A_CustomMissile("HellStaffRainTracer",-1,random(-64,64),random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,-90)
			Loop
		Fancy:
			TNT1 A 1 A_CustomMissile("HellStaffRainTracer",-1,random(-64,64),random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,-90)
			Loop
		Death:
			TNT1 A 0
			Stop
  }
}

ACTOR HellStaffRainTracer : FastProjectile
{
	Radius 8
	Height 8
	Speed 48
	Damage 5
	Decal "PlasmaScorchLower"
	Projectile
	Renderstyle Add
	Alpha 0.90
	Scale 1.0
	DeathSound "GWANDHIT"
	MissileType "HellRainParticleTrailSpawner"
	MissileHeight 8
	DamageType "HellstaffRain"
	+FORCEXYBILLBOARD
	+NODAMAGETHRUST
	+BLOODSPLATTER
	+CANNOTPUSH
	
	States
	{
		Spawn:
			TNT1 A 1 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			TNT1 A 0 A_SetScale(1.25,4)
		Launched:
			FX00 N 5 Bright
			Loop
		Fancy:
			FX98 A 1 Bright
			Loop
		Death:
			TNT1 AAAAAAAA 0 A_SpawnItemEx("HellRainParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItem("HellRainExplosions")
			TNT1 A 0 A_SetScale(0.9,0.9)
			FX00 H 2 Light("HELLRAINSHOT2")
			FX00 I 2 Light("HELLRAINSHOT3")
			FX00 J 2 Light("HELLRAINSHOT4")
			FX00 K 2 Light("HELLRAINSHOT5")
			FX00 LM 2
			Stop
		FancyDeath:
			TNT1 A 0 
			TNT1 AAAAAAAA 0 A_SpawnItemEx("HellRainParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItem("HellRainExplosions")
			TNT1 A 2 Light("HELLRAINSHOT2")
			TNT1 A 2 Light("HELLRAINSHOT3")
			TNT1 A 2 Light("HELLRAINSHOT4")
			TNT1 A 2 Light("HELLRAINSHOT5")
			Stop
	}
}

ACTOR HellRainExplosions
{
	Radius 0
	Height 0
	Obituary "$OB_MPCROSSBOW"
	+NOTELEPORT
	+NODAMAGETHRUST
	+THRUACTORS
	+DONTSPLASH
	+NOGRAVITY
	+DONTBLAST
	//+FORCERADIUSDMG
	
    States
    {
		Spawn:
			TNT1 A 0 NoDelay A_QuakeEx (1,1,1,35,0,720,"world/quake",QF_SCALEDOWN,0,0,0,100)
			TNT1 A 0 A_PlaySound("DSBAREXP",1)
			TNT1 A 0 A_SpawnItemEx("RedCrossbowExplosionGlow",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("SkullRainExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			TNT1 AAAAAAAAAA 0 A_CustomMissile ("RedExplosionParticle2", 3, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 5 Thing_Stop(0)
			TNT1 A 7 A_Explode(60,96,0)
			Stop
		Stopped:
			TNT1 A 0
			Stop
    }
}
