
//==============================================================================
//=========================== Dragon Claw Projectiles ==========================
//==============================================================================


ACTOR BlasterTracer : FastProjectile
{
	Radius 2
	Height 2
	Speed 125
	Damage (random(1,30)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/15))
	Decal "PlasmaScorchLower"
	Projectile
	+RANDOMIZE
	+SPECTRAL
	+FORCEXYBILLBOARD
	+BLOODSPLATTER
	+SPECTRAL
	+CANNOTPUSH
	Renderstyle Add
	Alpha 0.90
	Scale 1.4
	DeathSound "GWANDHIT"
	MissileType "BlasterParticleTrailSpawner"
	MissileHeight 8
	DamageType "DragonClaw"
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			TNT1 A 0 A_SetScale(1,1)
		Launched:
			FX98 CCCDDD 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
		Death:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0  A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-3,3),frandom(-3,3),frandom(-3,3))
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
		FancyDeath:
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlasterParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
	}
}

ACTOR WimpyBlasterTracer : BlasterTracer
{
	Damage (random(3,18) * 2)
}

ACTOR BlasterTracer2
{
	Speed 55
	Radius 6
	Height 6
	Damage (random(1,30)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/15))
	Decal "PlasmaScorchLower"
	Projectile
	+RANDOMIZE
	+FORCEXYBILLBOARD
	-BLOODSPLATTER
	+SPECTRAL
	-ALLOWBOUNCEONACTORS
	-BOUNCEONACTORS
	+CANBOUNCEWATER
	+SEEKERMISSILE
	-BOUNCEONACTORS
	+USEBOUNCESTATE
	+CANNOTPUSH
	Bouncetype "Doom"
	BounceFactor 1
	WallBounceFactor 1
	BounceCount 4
	Renderstyle Add
	Alpha 0.90
	Scale 1
	DeathSound "GWANDHIT"
	MissileType "BlasterParticleTrailSpawner"
	MissileHeight 8
	DamageType "DragonClaw"
	ReactionTime 175
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			TNT1 A 0 A_SetScale(0.75,0.75)
		Launched:
			FX98 C 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			FX98 C 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			FX98 C 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			FX98 D 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			FX98 D 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			FX98 D 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("BlasterFlare",0,0)
			TNT1 A 0 A_Seekermissile(1,1,SMF_LOOK|SMF_PRECISE,4)
			Loop
		Bounce:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyBounce")
			TNT1 A 0 A_SpawnItem("BlasterBounceMark",0,0)
			FX98 C 1 A_Seekermissile(70,90,SMF_LOOK|SMF_PRECISE,256)
			FX98 C 1 A_Countdown
			FX98 D 1 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Goto Bounce+2
		FancyBounce:
			TNT1 A 0 A_SpawnItem("BlasterBounceMark",0,0)
			FX98 A 1 A_Seekermissile(70,90,SMF_LOOK|SMF_PRECISE,256)
			FX98 A 1 A_Countdown
			FX98 A 1 Bright A_SpawnItem("BlasterFlare",0,0)
			Goto FancyBounce+2
		Death:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0  A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-3,3),frandom(-3,3),frandom(-3,3))
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
		FancyDeath:
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlasterParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
	}
}

ACTOR WimpyBlasterTracer2 : BlasterTracer2
{
	Damage (random(3,18) * 2)
}

ACTOR BlasterBounceMark
{
	+NOINTERACTION
	Renderstyle Add
	
	States
	{
		Spawn:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0  A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-3,3),frandom(-3,3),frandom(-3,3))
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
		FancyDeath:
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlasterParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
	}
}
	
ACTOR AltBlasterTracer : BlasterTracer
{
	Damage (random(1,25)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/10))
	Speed 80
	Scale 1
	WeaveIndexXY 32
	WeaveIndexZ 32
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5, 5, 0, 2.5)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5, 5, 0, 2.5)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5, 5, 0, 2.5)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5, 5, 0, 2.5)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
		Death:
			TNT1 A 0 A_JumpIf(GetCVAR("LightShow"),"FancyDeath")
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0  A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-3,3),frandom(-3,3),frandom(-3,3))
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
		FancyDeath:
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlasterParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			FX17 A 2 Light("BLASTERSHOT2")
			FX17 B 2 Light("BLASTERSHOT3")
			FX17 C 2 Light("BLASTERSHOT4")
			FX17 DE 1 Light("BLASTERSHOT5")
			Stop
	}
}

ACTOR WimpyAltBlasterTracer : AltBlasterTracer
{
	Damage (random(3,11) * 3)
}

ACTOR AltBlasterTracer2 : AltBlasterTracer
{
	WeaveIndexXY 32
	WeaveIndexZ 32
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5, 5, 0, -2.5)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5, 5, 0, -2.5)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5, 5, 0, -2.5)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5, 5, 0, -2.5)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyAltBlasterTracer2 : AltBlasterTracer2
{
	Damage (random(3,11) * 3)
}

ACTOR AltBlasterTracer3 : AltBlasterTracer
{
	WeaveIndexXY 32
	WeaveIndexZ 32
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5, 5, 2.5, 0)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5, 5, 2.5, 0)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5, 5, 2.5, 0)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5, 5, 2.5, 0)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyAltBlasterTracer3 : AltBlasterTracer3
{
	Damage (random(3,11) * 3)
}

ACTOR AltBlasterTracer4 : AltBlasterTracer
{
	WeaveIndexXY 32
	WeaveIndexZ 32
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5, 5, -2.5, 0)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5, 5, -2.5, 0)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5, 5, -2.5, 0)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5, 5, -2.5, 0)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyAltBlasterTracer4 : AltBlasterTracer4
{
	Damage (random(3,11) * 3)
}

/*ACTOR PowerAltBlasterTracer : BlasterTracer
{
	Damage (random(20,30)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/15))
	Speed 180
	Scale 1
	//+RIPPER
	+NOBOSSRIP
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5, 5, 2, 1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5, 5, 2, 1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5, 5, 2, 1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5, 5, 2, 1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyPowerAltBlasterTracer : PowerAltBlasterTracer
{
	//Damage (random(5,10) * 2)
	Damage (random(15,20) * 3)
}

ACTOR PowerAltBlasterTracer2 : PowerAltBlasterTracer
{
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5, 5, -2, -1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5, 5, -2, -1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5, 5, -2, -1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5, 5, -2, -1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyPowerAltBlasterTracer2 : PowerAltBlasterTracer2
{
	//Damage (random(5,10) * 2)
	Damage (random(15,20) * 3)
}

ACTOR PowerAltBlasterTracer3 : PowerAltBlasterTracer
{
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5,5,-2,1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5,5,-2,1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5,5,-2,1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5,5,-2,1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyPowerAltBlasterTracer3 : PowerAltBlasterTracer3
{
	//Damage (random(5,10) * 2)
	Damage (random(15,20) * 3)
}

ACTOR PowerAltBlasterTracer4 : PowerAltBlasterTracer
{
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			FX98 C 1 Bright A_Weave(5,5,2,-1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			FX98 D 1 Bright A_Weave(5,5,2,-1)
			TNT1 A 0 Bright A_SpawnItemEx("LightningSparkSpreader",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
			Loop
		Fancy:
			FX98 A 1 Bright A_Weave(5,5,2,-1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			FX98 B 1 Bright A_Weave(5,5,2,-1)
			TNT1 A 0 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
	}
}

ACTOR WimpyPowerAltBlasterTracer4 : PowerAltBlasterTracer4
{
	//Damage (random(5,10) * 2)
	Damage (random(15,20) * 3)
}*/

ACTOR BlasterParticleTrailSpawner
{
	Radius 0
	Height 0
	+NOINTERACTION
	
    States
	{
		Spawn:
			TNT1 A 0 NoDelay A_Jump(192,"Stopped")
			TNT1 A 0 A_SpawnItemEx("BlasterParticle",0,0,0,frandom(-0.4,0.4),frandom(-0.4,0.4),frandom(-0.4,0.4),0,SXF_NOCHECKPOSITION)
		Stopped:
			TNT1 A 0
			Stop
    }
}

ACTOR PoweredBlasterTracer : FastProjectile
{
	Radius 2
	Height 2
	Speed 80
	Damage 2
	Decal "PlasmaScorchLower"
	Projectile
	Renderstyle Add
	Alpha 0.90
	Scale 1
	DeathSound "GWANDHIT"
	MissileType "BlasterParticleTrailSpawner"
	MissileHeight 8
	DamageType "DragonClawPowered"
	+RANDOMIZE
	+SPECTRAL
	+FORCEXYBILLBOARD
	+BLOODSPLATTER
	+NOBOSSRIP
	+DONTSPLASH
	+CANNOTPUSH
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
		Launched:
			FX05 AAABBBCCC 1 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
		Death:
			TNT1 AAAAAAAAAAAAAAA 0 A_CustomMissile("SecondaryBlasterTracer",1,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BlasterParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			FX18 AA 1 Light("BLASTERSHOT2")
			FX18 BC 1 Light("BLASTERSHOT3")
			FX18 DE 1 Light("BLASTERSHOT4")
			FX18 FG 1 Light("BLASTERSHOT5")
			Stop
	}
}

ACTOR SecondaryBlasterTracer : FastProjectile
{
	Radius 2
	Height 2
	Speed 60
	Damage 2
	Projectile
	Renderstyle Add
	Alpha 0.90
	DamageType "DragonClawPowered"
	-BLOODSPLATTER
	+RIPPER
	+NOBOSSRIP
	+DONTSPLASH
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
		Launched:
			FX18 MMMNNN 1 Bright A_SpawnItem("BlasterFlare",0,0)
			Loop
		Fancy:
			FX98 A 1 Bright
			Loop
		Death:
			FX18 O 2 Light("BLASTERSHOT2")
			FX18 P 2 Light("BLASTERSHOT3")
			FX18 Q 2 Light("BLASTERSHOT4")
			FX18 RS 2 Light("BLASTERSHOT5")
			Stop
	}
}