
//==============================================================================
//=========================== Gold Wand Projectiles ============================
//==============================================================================


ACTOR GoldWandTracer : FastProjectile
{
	Radius 2
	Height 2
	Speed 200 //140 //90
	Damage (random(1,11)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/3))
	ProjectileKickback 1
	DamageType "Goldwand"
	Decal "PlasmaScorchLower"
	Projectile
	Renderstyle Add
	Alpha 0.90
	Scale 1
	DeathSound "GWANDHIT"
	MissileType "GoldWandAfterImage" //"GoldWandParticleTrailSpawner"
	MissileHeight 8
	
	+RANDOMIZE
	+FORCEXYBILLBOARD
	+BLOODSPLATTER
	+SPECTRAL
	+CANNOTPUSH
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
		Launched:
			FX01 CCCDDD 1 Bright
			{
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				//A_SpawnItemEX("GoldWandAfterImage");
			}
			//FXGW AAABBB 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
		Death:
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GoldWandParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			//TNT1 A 0 A_SpawnItem("GPuff")
			PUF2 AA 1 Light("GOLDWANDSHOT2")
			PUF2 BB 1 Light("GOLDWANDSHOT3")
			PUF2 CC 1 Light("GOLDWANDSHOT4")
			PUF2 DE 1 Light("GOLDWANDSHOT5")
			Stop
	}
}

ACTOR WimpyGoldWandTracer : GoldWandTracer
{
	Damage (Random(8,19) * 2)
}

ACTOR PowerGoldWandTracer : FastProjectile
{
	Radius 2
	Height 2
	Speed 80 //208
	Damage (random(1,9)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/2))
	DamageType "Goldwand"
	Decal "PlasmaScorchLower"
	Projectile
	Renderstyle Add
	Alpha 0.5
	Scale 2.0
	DeathSound "GWANDHIT"
	MissileType "" //"GoldWandParticleTrailSpawner"
	MissileHeight 8
	
	+RANDOMIZE
	+SPECTRAL
	+FORCEXYBILLBOARD
	+BLOODSPLATTER
	+SPECTRAL
	+CANNOTPUSH
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			TNT1 A 0 A_SetScale(1,1)
		Launched:
			FXGW AABB 1 Bright
			{
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustYellow",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
			}
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
		Death:
			TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GoldWandParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			FX01 AB 1 Light("GOLDWANDSHOT2")
			FX01 CD 1 Light("GOLDWANDSHOT3")
			FX01 EF 1 Light("GOLDWANDSHOT4")
			FX01 GH 1 Light("GOLDWANDSHOT5")
			Stop
	}
}

ACTOR PowerGoldWandTracerAlt : PowerGoldWandTracer
{
	Scale 1.4
	Renderstyle Add
	MissileType ""
	Damage (random(9,9)+(CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/2))
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
		Launched:
			FXGW AABB 1 Bright 
			{
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));		
			}
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
	}
}

ACTOR WimpyPowerGoldWandTracer : PowerGoldWandTracer
{
	Damage (Random(8,16) * 3)
}

ACTOR WimpyPowerGoldWandTracerAlt : PowerGoldWandTracer
{
	Damage (Random(16,16) * 3)
	Scale 1.4
	Renderstyle Add
	MissileType ""
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
		Launched:
			FXGW AABB 1 Bright 
			{
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				A_SpawnItemEX("FairyDustRed",0,0,0,frandom(0.6,-0.6),frandom(0.6,-0.6),frandom(0.6,-0.6));
				
			}
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
	}
}

ACTOR GoldWandParticleTrailSpawner
{
	Radius 0
	Height 0
	+NOINTERACTION
	
    States
    {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(182,"Stopped")
			TNT1 A 0 A_SpawnItemEx("GoldWandParticle",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 GoldWandBomb
{
	Radius 8
	Height 8
	Speed 59
	Damage (random(5,10) *2)
    DamageType "GoldWandBomb"
	Decal "Scorch"
	Projectile
	+RANDOMIZE
	+FORCEXYBILLBOARD
	+BLOODSPLATTER
	-NOGRAVITY
	+FORCERADIUSDMG
	Renderstyle Add
	Alpha 1
	Scale 1.4
	//DeathSound "GWANDHIT"
	DeathSound "GGBOOM"
	
	States
	{
		Spawn:
			EWG1 AB 1 Bright //A_SpawnItem("GoldWandFlare",0,0)
			{
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
			}
			TNT1 A 0 A_Fadeout(0.25)
			EWG1 AB 1 Bright //A_SpawnItem("GoldWandFlare",0,0)
			{
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
			}
			TNT1 A 0 A_Fadeout(0.25)
			EWG1 AB 1 Bright //A_SpawnItem("GoldWandFlare",0,0)
			{
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
			}
			TNT1 A 0 A_Fadein(0.25)
			EWG1 AB 1 Bright //A_SpawnItem("GoldWandFlare",0,0)
			{
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
				A_SpawnItemEX("FairyDustTrailYellow",random(3,-3),random(3,-3),0,0,random(1,-1),-3);
			}
			TNT1 A 0 A_Fadein(0.25)
			Loop
			/*FX01 A 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			TNT1 A 0 A_SpawnItemEx("GoldWandParticle3",0,0,0,frandom(-0.7,0.7),frandom(-0.7,0.7),frandom(-0.7,0.7),0,SXF_NOCHECKPOSITION)
			FX01 C 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			TNT1 A 0 A_SpawnItemEx("GoldWandParticle3",0,0,0,frandom(-0.7,0.7),frandom(-0.7,0.7),frandom(-0.7,0.7),0,SXF_NOCHECKPOSITION)
			Loop*/
		Death:
			TNT1 A 0 A_Explode(100,128,0)
			TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("GoldWandParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			TNT1 A 0 A_JumpIf(GetCVAR("NoScalingPlz"),20)
			TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile("GoldWandBombTracer",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))
			TNT1 A 0 A_Jump(256,18)
			TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile("WimpyGoldWandBombTracer",4,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,359))			
			FX01 AB 1 Light("GOLDWANDSHOT2")
			FX01 CD 1 Light("GOLDWANDSHOT3")
			FX01 EF 1 Light("GOLDWANDSHOT4")
			FX01 GH 1 Light("GOLDWANDSHOT5")
			Stop
	}
}

ACTOR GoldWandBomb2 : GoldWandBomb
{
	Speed 15
	Gravity 2
}

ACTOR GoldWandBombAlt : GoldWandBomb
{
	Speed 200
	Gravity 0
}

ACTOR GoldWandBombTracer : FastProjectile
{
	Radius 2
	Height 2
	//Speed 104
	Speed 25
	Damage (random(1,6) + (CountInv("Stat_Magicalstrength",AAPTR_PLAYER1)/5))
    DamageType "GoldWandBomb"
	Decal "PlasmaScorchLower"
	Projectile
	+RANDOMIZE
	+FORCEXYBILLBOARD
	+BLOODSPLATTER
	+CANNOTPUSH
	Renderstyle Add
	Alpha 0.90
	Scale 1.4
	DeathSound "GWANDHIQ"
	MissileType "GoldWandParticleTrailSpawner"
	MissileHeight 8
	
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_JumpIf(GetCVAR("LightShow"),"Fancy")
			TNT1 A 0 A_SetScale(1,1)
		Launched:
			FX01 AABB 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
		Fancy:
			FX98 A 1 Bright A_SpawnItem("GoldWandFlare",0,0)
			Loop
		Death: 
			TNT1 AAAAAAAA 0 A_SpawnItemEx("GoldWandParticle2",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6),0,SXF_NOCHECKPOSITION)
			PUF2 AA 1 Light("GOLDWANDSHOT2")
			PUF2 BB 1 Light("GOLDWANDSHOT3")
			PUF2 CC 1 Light("GOLDWANDSHOT4")
			PUF2 DE 1 Light("GOLDWANDSHOT5")
			Stop
	}
}

ACTOR WimpyGoldWandBombTracer : GoldWandBombTracer
{
	Damage (Random(8,16) * 2)
}

ACTOR GoldWandParticle3 : GoldWandParticle
{
	Scale 0.1
}