
//==============================================================================
//=================================== SPELLS ===================================
//==============================================================================


ACTOR FlightSpell : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.type "Flight"
	Powerup.Color 100, 100, 0, 0.125
	Powerup.Duration 0x7FFFFFFD
	+AUTOACTIVATE
}

ACTOR LightSpell : Inventory
{
	Inventory.MaxAmount 1
}
	
ACTOR TorchFamiliar : Inventory
{	
	Health 1
	FloatbobPhase 1
	Renderstyle Translucent
	Alpha 0.3
	scale 1
	FloatBobStrength 0.5
	height 2
	
	+MISSILE
	+NOINTERACTION
	+FLOATBOB
	+NODAMAGETHRUST
	+DONTTHRUST
	+NOBLOOD
	-BLOODSPLATTER
	+BLOODLESSIMPACT
	-PUFFONACTORS
	//+PAINLESS
	
	var int user_angle;
	
	States
	{
		Spawn:
			TNT1 A 0 A_Explode(3, 92,0,FALSE,92,0,0,"TorchPuff","FlameyBoi")
			TRCH DEFDEF 1 Bright 
			{
				A_SpawnItemEx("TorchGlowFlare",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION);
				A_Warp(AAPTR_PLAYER1,32,0,16,user_angle,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE);
				A_SetUserVar("user_angle", user_angle + 2);
			}

			Loop
	}
}

ACTOR TorchFamiliar2 : TorchFamiliar
{	
	var int user_angle2;
	
	States
	{
		Spawn:
			TNT1 A 0 A_Explode(3, 92,0,FALSE,92,0,0,"TorchPuff","FlameyBoi")
			TRCH DEFDEF 1 Bright 
			{
				A_SpawnItemEx("TorchGlowFlare",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION);
				A_Warp(AAPTR_PLAYER1,-32,0,16,user_angle2,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE);
				A_SetUserVar("user_angle2", user_angle2 + 2);
			}
			Loop
	}
}

ACTOR TorchFamiliar3 : TorchFamiliar
{	
	var int user_angle3;
	
	States
	{
		Spawn:
			TNT1 A 0 A_Explode(3, 92,0,FALSE,92,0,0,"TorchPuff","FlameyBoi")
			TRCH DEFDEF 1 Bright
			{
				A_SpawnItemEx("TorchGlowFlare",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION);
				A_Warp(AAPTR_PLAYER1,0,32,16,user_angle3,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE);
				A_SetUserVar("user_angle3", user_angle3 + 2);
			}
			Loop
	}
}

ACTOR TorchFamiliar4 : TorchFamiliar
{	

	var int user_angle4;
	
	States
	{
		Spawn:
			TNT1 A 0 A_Explode(3, 92,0,FALSE,92,0,0,"TorchPuff","FlameyBoi")
			TRCH DEFDEF 1 Bright 
			{
				A_SpawnItemEx("TorchGlowFlare",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION);
				A_Warp(AAPTR_PLAYER1,0,-32,16,user_angle4,WARPF_ABSOLUTEANGLE|WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE);
				A_SetUserVar("user_angle4", user_angle4 + 2);
			}
			Loop
	}
}

ACTOR FightSpell : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.type "HDLevel2"
	Powerup.Color 100, 0, 0, 0.125
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}

Actor KnightSpell : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.type "BlastProtection"
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}

Actor KnightSpell2 : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.type "IronFeet2"
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}

Actor KnightSpell3 : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.Type "IronFeet3"
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}

ACTOR StoneSkinSpell: PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.type "StoneSkin"
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}

ACTOR StoneSkinSpell2: PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.type "StoneSkin2"
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}
	
Actor TimeStopSpell : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.Color 64 64 255
	Powerup.Type "TimeFreezer"
	Powerup.Duration 0x7FFFFFFD
	
	+AUTOACTIVATE
}

ACTOR BHSpell_FX1
{
	Radius 6
	Height 6
	Speed 34
	Damage 7
	Projectile
	RenderStyle Add
	DeathSound "PLSM10"
	Obituary "$OB_FIREBALL"
	DamageType "Fireball"
	Decal "Scorch"
	
	+WINDTHRUST
	
	States
	{
		Spawn:
			TNT1 AAAAAAAAA 0 NoDelay A_CustomMissile("ExplosionParticle4",0,0,random(1,360),2,random(1,360))
			TNT1 A 0 A_PlaySound("DSFIRSHT",0,1,False,ATTN_NONE)
		Flight:
			DMFX A 0 A_CustomMissile("ExplosionParticle3",0,0,random(1,360),2,random(1,360))
			DMFX A 1 Bright A_SpawnItemEx("HRedFlareTiny",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Loop
		Death:
			TNT1 A 0 A_SetScale(1.0)
			TNT1 A 0 A_StopSound(0)
			TNT1 AAAAAAAAA 0 A_CustomMissile("ExplosionParticle1",0,0,random(1,360),2,random(1,360))
			TNT1 AAAAAAAAA 0 A_CustomMissile("ExplosionParticle4",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("HRedFlareSmall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH CDE 1 Bright A_SpawnItemEx("HRedFlareMedium",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			FIRH FGHIJKLMNOP 1 Bright A_SpawnItemEx("HRedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			Stop
	}
}