//This weapon isn't a joke anymore ~BLOODWOLF

ACTOR DSweap2 : BrutalWeapon
{
	Obituary "%o was choped down by %k's Dragonslayer."
    AttackSound "None"
    Inventory.PickupSound "AXEDRAW"
	Inventory.Pickupmessage "$GOTDS"
    +WEAPON.NOAUTOAIM
    +WEAPON.NOAUTOFIRE
    +FORCEXYBILLBOARD
	damagetype Saw
	+WEAPON.NOALERT
	+WEAPON.AXEBLOOD
	VisibleToPlayerClass BDoomer, Doomer2, TacticalDoomer, Purist
	Weapon.SelectionOrder 20
	Scale 0.9
	Tag "Dragonslayer"
	States
	{
	
	Ready3:
	Ready:
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_Giveinventory("HasCutingWeapon",1)
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("StartDualWield",1,"DualWield")
		DSBA DEFE 2 A_WeaponReady
		Loop
		
	Select:
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		TNT1 A 0 A_Takeinventory("FistsSelected",1)
		TNT1 A 0 A_Takeinventory("SawSelected",1)
		TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
		TNT1 A 0 A_Takeinventory("SSGSelected",1)
		TNT1 A 0 A_Takeinventory("MinigunSelected",1)
		TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
		TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
		TNT1 A 0 A_Giveinventory("HasCutingWeapon",1)
		TNT1 A 0 A_Takeinventory("BFGSelected",1)
		TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
		TNT1 A 0 A_Takeinventory("RailGunSelected",1)
		TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
		TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
		TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
		TNT1 A 0 A_Takeinventory("HasBarrel",1)
		TNT1 A 0 A_TakeInventory("DSWeap",1)
		TNT1 A 1 A_Raise
		TNT1 AAAAAA 0 A_Raise
		Goto SelectAnimation
		
	SelectAnimation:
		TNT1 A 1
	    DSLB A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
        DSLB A 0 A_PlaySOund("IGNITE")
        DSLB ABCDEFG 4
        DSLB A 0 A_GunFlash
		Goto Ready

	Deselect:
		DSLB A 0 A_Takeinventory("HasCutingWeapon",1)
		DSLB A 0 A_Takeinventory("HasCutingWeapon",1)
		DSLB A 0 A_TakeInventory("TossGrenade", 1)
		DSLB A 0 A_PlaySound("EXTINGUISH")
		DSLB GFEDCBA 4
		TNT1 AAAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		Wait
	
    Fire://Vertical right-to-left chop
		TNT1 A 0
		DSBV A 0 A_SetPitch(Pitch-2)//Up(-)Down(+)
		DSBV A 0 A_SetAngle(Angle-2)//Right(-)Left(+)
        DSBV A 2
		DSBV B 0 A_SetPitch(Pitch-2)
		DSBV B 0 A_SetAngle(Angle-2)//4 deg up, 4 deg right
		DSBV B 2
		DSBV C 0 A_SetPitch(Pitch+2)
		DSBV C 0 A_SetAngle(Angle+2)
		DSBV C 2
		DSBV D 0 A_SetPitch(Pitch+2)
		DSBV D 0 A_SetAngle(Angle+2)//0 deg, 0 deg
		DSBV D 2 //Return to original point of aim
		TNT1 A 0 A_FireCustomMissile("VertSlayerMissile")
		DSBV E 0 A_SetPitch(Pitch+2)
		DSBV E 0 A_SetAngle(Angle+2)
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV E 2
		DSBV F 0 A_SetPitch(Pitch+5)
		DSBV F 0 A_SetAngle(Angle+5)
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV F 2
		DSBV G 0 A_SetPitch(Pitch+5)
		DSBV G 0 A_SetAngle(Angle+5)
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV G 2
		DSBV H 0 A_SetPitch(Pitch+5)
		DSBV H 0 A_SetAngle(Angle+5)//17 deg down, 17 deg left
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV H 2 A_JumpIfInventory("FiredPrimary",1,"RVtoLV")
		DSBV H 2 A_JumpIfInventory("FiredSecondary",1,"RVtoRH")
		
	EndSwingV://Return to original point of aim after a vertical attack
		TNT1 A 0
		DSBA A 0 A_SetPitch(Pitch-5)//Up(-)Down(+)
		DSBA A 0 A_SetAngle(Angle-5)//Right(-)Left(+)
		DSBA A 2
		DSBA B 0 A_SetPitch(Pitch-5)
		DSBA B 0 A_SetAngle(Angle-5)
		DSBA B 2
		DSBA C 0 A_SetPitch(Pitch-5)
		DSBA C 0 A_SetAngle(Angle-5)
		DSBA C 2
		DSBA D 0 A_SetPitch(Pitch-2)
		DSBA D 0 A_SetAngle(Angle-2)
		DSBA D 2 A_WeaponReady(WRF_NOBOB)
		Goto Ready
		
	RVtoLV://Return to original point of aim between R to L vertical attacks
		TNT1 A 0
		DSBV I 0 A_SetPitch(Pitch-5)//Up(-)Down(+)
		DSBV I 0 A_SetAngle(Angle-5)//Right(-)Left(+)
		DSBV I 2
		DSBV I 0 A_SetPitch(Pitch-5)
		DSBV I 0 A_SetAngle(Angle-5)
		DSBV I 2
		DSBV I 0 A_SetPitch(Pitch-5)
		DSBV I 0 A_SetAngle(Angle-5)
		DSBV I 2
		DSBV I 0 A_SetPitch(Pitch-2)
		DSBV I 0 A_SetAngle(Angle-2)
		DSBV I 2
		Goto Fire2
		
	RVtoRH://R:L chop to a right-sweep
		TNT1 A 0//starting at 17 deg down, 17 deg left
		DSBR A 0 A_SetPitch(Pitch-5)//Up(-)Down(+)
		DSBR A 0 A_SetAngle(Angle-1)//Right(-)Left(+)
		DSBR A 2
		DSBR A 0 A_SetPitch(Pitch-5)
		DSBR A 0 A_SetAngle(Angle-2)
		DSBR A 2
		DSBR A 0 A_SetPitch(Pitch-5)
		DSBR A 0 A_SetAngle(Angle-2)
		DSBR A 2
		DSBR A 0 A_SetPitch(Pitch-2)
		DSBR A 0 A_SetAngle(Angle-2)
		DSBR A 2//0 deg, 10 deg left
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		DSBR B 0 A_SetAngle(Angle-10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR B 2
		DSBR B 0 A_SetAngle(Angle-10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR B 2
		Goto AltFire2+10
		
	Fire2://Vertical L:R chop
		TNT1 A 0
		DSBV I 0 A_SetPitch(Pitch-4)//Up(-)Down(+)
		DSBV I 0 A_SetAngle(Angle+4)//Right(-)Left(+)
        DSBV I 2//4 deg up, 4 deg left
		DSBV J 0 A_SetPitch(Pitch+2)
		DSBV J 0 A_SetAngle(Angle-2)
		DSBV J 2
		DSBV K 0 A_SetPitch(Pitch+2)
		DSBV K 0 A_SetAngle(Angle-2)//0 deg, 0 deg
		DSBV K 2
		TNT1 A 0 A_FireCustomMissile("VertSlayerMissile")
		DSBV L 0 A_SetPitch(Pitch+2)
		DSBV L 0 A_SetAngle(Angle-2)
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV L 2
		DSBV M 0 A_SetPitch(Pitch+5)
		DSBV M 0 A_SetAngle(Angle-5)
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV M 2
		DSBV N 0 A_SetPitch(Pitch+5)
		DSBV N 0 A_SetAngle(Angle-5)
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV N 2
		DSBV O 0 A_SetPitch(Pitch+5)
		DSBV O 0 A_SetAngle(Angle-5)//17 deg down, 17 deg right
		TNT1 A 0 A_FireCustomMissile("DSAttack")
		DSBV O 2 A_JumpIfInventory("FiredPrimary",1,"LVtoRV")
		DSBV O 2 A_JumpIfInventory("FiredSecondary",1,"LVtoLH")
		Goto EndSwingV
		
	LVtoRV://Return to original point of aim between L to R vertical attacks
		TNT1 A 0
		DSBV B 0 A_SetPitch(Pitch-5)//Up(-)Down(+)
		DSBV B 0 A_SetAngle(Angle+5)//Right(-)Left(+)
		DSBV B 2
		DSBV B 0 A_SetPitch(Pitch-5)
		DSBV B 0 A_SetAngle(Angle+5)
		DSBV B 2
		DSBV B 0 A_SetPitch(Pitch-5)
		DSBV B 0 A_SetAngle(Angle+5)
		DSBV B 2
		DSBV B 0 A_SetPitch(Pitch-2)
		DSBV B 0 A_SetAngle(Angle+2)
		DSBV B 2
		DSBV B 0 A_SetPitch(Pitch-2)//Section takes the place of frame A
		DSBV B 0 A_SetAngle(Angle-2)//*
		DSBV B 2					//End
		Goto Fire+4//Skip frame A
	
	LVtoLH://L:R chop to a left-sweep
		TNT1 A 0//starting at 17 deg down, 17 deg right
		DSBL A 0 A_SetPitch(Pitch-5)//Up(-)Down(+)
		DSBL A 0 A_SetAngle(Angle+1)//Right(-)Left(+)
		DSBL A 2
		DSBL A 0 A_SetPitch(Pitch-5)
		DSBL A 0 A_SetAngle(Angle+2)
		DSBL A 2
		DSBL A 0 A_SetPitch(Pitch-5)
		DSBL A 0 A_SetAngle(Angle+2)
		DSBL A 2
		DSBL A 0 A_SetPitch(Pitch-2)
		DSBL A 0 A_SetAngle(Angle+2)
		DSBL A 2//0 deg, 10 deg right
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		DSBL B 0 A_SetAngle(Angle+10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL B 2
		DSBL B 0 A_SetAngle(Angle+10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL B 2
		Goto AltFire+10
	
	AltFire://Horizontal right-to-left slash
		TNT1 A 0
		DSBL A 0 A_SetAngle(Angle-5)//Right(-)Left(+)
		DSBL A 2
		DSBL A 0 A_SetAngle(Angle-5)
		DSBL A 2
		DSBL A 0 A_SetAngle(Angle-5)//15 deg right
		DSBL A 2//Cock weapon back to the right
		DSBL B 0 A_SetAngle(Angle+5)
		DSBL B 2
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		DSBL C 0 A_SetAngle(Angle+10)//0 deg
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL C 2
		DSBL D 0 A_SetAngle(Angle+10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL D 2
		DSBL E 0 A_SetAngle(Angle+10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL E 2
		DSBL E 0 A_SetAngle(Angle+10)//30 deg left
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL E 2 A_JumpIfInventory("FiredSecondary",1,"LHtoRH")
		DSBL E 2 A_JumpIfInventory("FiredPrimary",1,"LHtoLV")
		Goto EndSwingLH
	
	EndSwingLH://Return to original point of aim after a horizontal R:L attack
		TNT1 A 0
		DSBA A 2
		DSBA B 0 A_SetAngle(Angle-10)//Right(-)Left(+)
		DSBA B 2
		DSBA C 0 A_SetAngle(Angle-10)
		DSBA C 2
		DSBA D 0 A_SetAngle(Angle-10)
		DSBA D 2 A_WeaponReady(WRF_NOBOB)
		Goto Ready
	
	LHtoRH://Horizontal left-sweep to a vertical left-to-right slash
		TNT1 A 0//starting at 30 deg left
		DSBR A 6
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		DSBR B 0 A_SetAngle(Angle-10)//Right(-)Left(+)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR B 2
		DSBR B 0 A_SetAngle(Angle-10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR B 2
		Goto AltFire2+10
		
	LHtoLV://R:L sweep to a L:R chop
		TNT1 A 0//starting at 30 deg left
		DSBV I 0 A_SetPitch(Pitch-2)//Up(-)Down(+)
		DSBV I 0 A_SetAngle(Angle-10)//Right(-)Left(+)
		DSBV I 2
		DSBV I 0 A_SetPitch(Pitch-2)
		DSBV I 0 A_SetAngle(Angle-10)
		DSBV I 2
		DSBV I 0 A_SetAngle(Angle-6)
		DSBV I 2//4 deg up, 4 deg left
		Goto Fire2+4
	
	AltFire2://Horizontal left-to-right slash
		TNT1 A 0
		DSBR A 0 A_SetAngle(Angle+5)//Right(-)Left(+)
		DSBR A 2
		DSBR A 0 A_SetAngle(Angle+5)
		DSBR A 2
		DSBR A 0 A_SetAngle(Angle+5)//15 deg left
		DSBR A 2//Cock weapon back to the left
		DSBR B 0 A_SetAngle(Angle-5)
		DSBR B 2
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		DSBR C 0 A_SetAngle(Angle-10)//0 deg
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR C 2
		DSBR D 0 A_SetAngle(Angle-10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR D 2
		DSBR E 0 A_SetAngle(Angle-10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR E 2
		DSBR E 0 A_SetAngle(Angle-10)//30 deg right
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBR E 2 A_JumpIfInventory("FiredSecondary",1,"RHtoLH")
		DSBR E 2 A_JumpIfInventory("FiredPrimary",1,"RHtoRV")
		Goto EndSwingRH
		
	EndSwingRH://Return to original point of aim after a horizontal L:R attack
		TNT1 A 0
		DSBA A 2
		DSBA B 0 A_SetAngle(Angle+10)//Right(-)Left(+)
		DSBA B 2
		DSBA C 0 A_SetAngle(Angle+10)
		DSBA C 2
		DSBA D 0 A_SetAngle(Angle+10)
		DSBA D 2 A_WeaponReady(WRF_NOBOB)
		Goto Ready
		
	RHtoLH://Reverse sweep direction from right to left
		TNT1 A 0//starting at 30 deg right
		DSBL A 6
		TNT1 A 0 A_PlaySound("weapons/gswing", 1)
		DSBL B 0 A_SetAngle(Angle+10)//Right(-)Left(+)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL B 2
		DSBL B 0 A_SetAngle(Angle+10)
		TNT1 A 0 A_FireCustomMissile("DSAttack2")
		TNT1 A 0 A_FireCustomMissile("HorzSlayerMissile")
		DSBL B 2
		Goto AltFire+10
	
	RHtoRV://L:R sweep to a R:L chop
		TNT1 A 0//starting at 30 deg right
		DSBV B 0 A_SetPitch(Pitch-2)//Up(-)Down(+)
		DSBV B 0 A_SetAngle(Angle+10)//Right(-)Left(+)
		DSBV B 2
		DSBV B 0 A_SetPitch(Pitch-2)
		DSBV B 0 A_SetAngle(Angle+10)
		DSBV B 2
		DSBV B 0 A_SetAngle(Angle+6)
		DSBV B 2//4 deg up, 4 deg right
		Goto Fire+4
	
	DualWield:
		TNT1 A 0
		TNT1 A 0 A_Takeinventory("StartDualWield",1)
	Extinguish:
		TNT1 A 0 A_GiveInventory("DSWeap")
		TNT1 A 0 A_SelectWeapon("DSWeap")
		Goto Ready3
	
	Spawn:
		DSLC P 1
		DSLC P -1
		Stop
	}
}

ACTOR VertSlayerMissile : BelphegorGreenPlasmaBall
{
	States
	{
	Spawn:
	    TNT1 A 0 A_SpawnItem("VioletFlare22",0,0)
		FRPV K 1 BRIGHT A_SpawnItemEx("VioletExplosionFlameTrail", 0, 0, 0, 0, 0, 0, 0, 128) 
		Loop
	
	Death:
		FRPV A 0 
		FRPV A 0 Radius_Quake (2, 54, 0, 15, 0)
		FRPV A 0 A_Explode(32, 96, 1)
        TNT1 AAAA 0 A_CustomMissile ("VioletExplosionFire", 2, 0, random (0, 360), 2, random (0, 360))
        FRPV A 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		FRPV ABCDEFGH 2 Bright
		TNT1 AAAA 2 A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}

ACTOR HorzSlayerMissile : GreenPlasmaBall
{
	States
	{
	Spawn:
	    TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BDCheckJanitor", 0, 0, 0, 0)//Check Effects
	
	Spawn1:
		PBAL E 1 BRIGHT A_SpawnItemEx("SmallVioletFlameTrails", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 2, 0, random (160, 210), 2, random (-30, 30))
		Loop
		
	SpawnCheap:
	    PBAL E 1 BRIGHT A_SpawnItemEx("SmallVioletFlameTrails", 0, 0, 0, 0, 0, 0, 0, 128)
		Loop	
		
	Death:
		TNT1 A 0 A_SpawnItemEx("VioletPlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	    TNT1 A 0 A_SpawnItemEx ("DetectFloorCraterSmall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("DetectCeilCraterSmall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_SpawnItem("VioletFlare",0,0)
		TNT1 A 0 A_SetScale(0.7)
		TNT1 A 0 A_FadeOut(0.2)
		FRPV ABCDEFGH 2 BRIGHT
		Stop
	XDeath:
		//TNT1 AAA 0 A_SpawnItemEx("PlasmaParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
        TNT1 A 0 A_JumpIfCloser(220, "StopInAir")
		TNT1 A 0 A_SpawnItemEx("VioletPlasmaParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AA 0 A_SpawnItem("VioletFlare",0,0)
	    TNT1 A 0 A_SetScale(0.7)
		TNT1 A 0 A_FadeOut(0.2)
		FRPV ABCDEFGH 2 BRIGHT
		Stop
	
	StopInAir:
		FRPV ABCDEF 1 BRIGHT
		Stop
	}
}

Actor VioletFlare : Flare_General
{
states
	{
	Spawn:
        TNT1 A 0
	    TNT1 A 0 A_Jump(128,2)
		LENV A 2 bright
		stop
		TNT1 A 0
		LENV B 2 bright
		stop
	}
}

Actor VioletFlare22 : Flare_General
{
states
	{
	Spawn:
        TNT1 A 0
	    TNT1 A 0 A_Jump(128,2)
		L2NV A 2 bright
		stop
		TNT1 A 0
		L2NV B 2 bright
		stop
	}
}

ACTOR VioletExplosionFlameTrail: ExplosionFlames
{
Scale 0.5
	States
	{
    Spawn:
	    TNT1 A 2
        EXPV CDEFG 1 BRIGHT
        Stop
	}
}

ACTOR VioletExplosionFire : GreenExplosionFire
{
	States
	{
    Spawn:
        TNT1 A 1
        EXPV ABCDEFG 3 BRIGHT
        Stop
	}
}

ACTOR SmallVioletFlameTrails: FlameTrails
{
	Scale 0.3
	States
	{
    Spawn:
	    TNT1 A 1
        FRPV CDEFGH 1 BRIGHT
        Stop
	}
}

Actor VioletPlasmaParticleSpawner: BluePlasmaParticleSpawner
{
  States
  {
  Spawn:
    TNT1 AAAA 0 A_SpawnItemEx("VioletPlasmaParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    TNT1 AAAA 0 A_CustomMissile ("PlasmaSmoke", 32, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 1
    Stop
  }
}

Actor VioletPlasmaParticle: BluePlasmaParticle

{
  States
  {
  Spawn:
  Death:
    SPKV A 2 Bright A_FadeOut(0.02)
    Loop
  }
}