//==============================================================================
// DL-44 FuturPistole-Blaster
//
// Used by Luke Skywalker, now captured by the Astrostein soldiers.
// Which is just only a custom mauser C92 but can shoot plasma, what else.
//
// (Shoutouts to george lucas - YVF)
//
// Sprites by Vostyok.
//==============================================================================

ACTOR HDBlaster : KriegslandLightWeapon
{
	+WEAPON.NOAUTOFIRE
	+INVENTORY.UNDROPPABLE
	Weapon.SelectionOrder 	1100
	Weapon.SlotNumber 		2
	Weapon.AmmoUse 			1
	Weapon.AmmoGive 		30
	Weapon.AmmoType 		"BOBT1"
	Inventory.Pickupmessage "You got the DL-44 FuturPistole-Blaster!"
	Inventory.PickupSound 	"weapons/generic/pickup2"
	Tag 					"DL-44 FuturPistole-Blaster"
	Scale 0.16
	States
	{ 
	Select:
		TNT1 A 0 A_Playsound("weapons/generic/select1",7)
		WPNG A 1 Offset(67, 100)
		WPNG A 1 Offset(54, 81)
		WPNG A 1 Offset(32, 69)
		WPNG A 1 Offset(22, 58)
		WPNG A 1 Offset(10, 47)
		WPNG A 1 Offset(7, 39)
		WPNG A 1 Offset(2, 34)
		WPNG A 1 A_Raise
		Wait
	Ready:
		WPNG A 1 A_WeaponReady
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		TNT1 A 0 A_JumpIfInventory("IsCrossing",1,"Cross")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		Loop
	Deselect:
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_StopSound(7)
		WPNG A 1 Offset(2, 34)
		WPNG A 1 Offset(7, 39)
		WPNG A 1 Offset(10, 47)
		WPNG A 1 Offset(22, 58)
		WPNG A 1 Offset(32, 69)
		WPNG A 1 Offset(54, 81)
		WPNG A 1 Offset(67, 100)
		WPNG A 1 A_Lower
		Wait
	Fire:	
		TNT1 A 0 A_JumpIfInventory("BOBT1",1,1)
		Goto Dryfire
		TNT1 A 0 A_Playsound("weapons/DLB/fire",6)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_FireCustomMissile("PistoleBlast",0,1,11,5)
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,8)
		TNT1 A 0 A_Gunflash
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNF A 1 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RecoilToggle")==0,2)
		TNT1 A 0 A_SetPitch(pitch -0.3)
		WPNG B 1 Offset(8,38)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG B 1 Offset(15,46)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG B 1 Offset(12,42)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG A 1 Offset(8,38)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG A 1 Offset(4,36)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG A 1 Offset(0,32)
		Goto Ready
	Altfire:
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG A 1 A_JumpIfInventory("HDBlasterX2",1,"SelectAkimbo")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
	SelectAkimbo:
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG A 1 A_SelectWeapon("HDBlasterX2")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
	Cross:
		WPNG A 1
		TNT1 A 0 A_JumpIfInventory("HDLaserGun",1,"SelectCross")
		Goto Ready
	SelectCross:
		NULL A 0 A_GiveInventory("HDCrossAkimbo5",1)
		WPNG A 1 A_SelectWeapon("HDCrossAkimbo5")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
	Dryfire:
		TNT1 A 0 A_Print("No ammo",1)
		Goto Ready
	Kick:
		WPNG CD 1
		TNT1 A 1
		KICF A 1 Offset(-10,32)
		KICF CE 1
		KICF FG 1 A_Recoil(-1)
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_PlaySound("FKPlayer/Grunt")
		KICF H 5 A_CustomPunch(6,0,0,"FightPuff") 
		KICF IGFEDC 1 
		KICF BA 1 A_Recoil(+0.5)
		TNT1 A 1
		WPNG DC 1
		Goto Ready
	IsSliding:
		TNT1 A 0 A_TakeInventory("SlidePlayer",1)
		TNT1 A 0 A_JumpIfInventory("CrouchPlayer",1,"Ready")
		WPNG CD 1
		TNT1 A 0 A_PlaySound("FKPlayer/slide/start",4)
		TNT1 A 0 A_PlaySound("FKPlayer/slide/loop",5,0.5,TRUE)
		TNT1 A 0 A_SetPitch(pitch+0.8)
		SLDK ABCDEF 2
		TNT1 A 0 A_SetPitch(pitch-0.8)
		SLDK G 6 A_FireCustomMissile("KickAttack",0,0,0,0)
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_PlaySound("FKPlayer/slide/end",6)
		SLDK HI 2
		Goto Ready
	Knife:
		WPNG CD 1
		NULL A 0 Offset(-10,32)
		NULL A 1
		WP1L AB 1
		NULL A 0 A_Jump(86,2)
		NULL A 0 A_PlaySound("FKPlayer/Grunt")
		WP1L C 1 A_CustomPunch(8,0,0,"KnifePuff")
		WP1L DEF 1
		NULL A 1
		WPNG DC 1
		Goto Ready
	Throwgrenade:
		TNT1 A 0 A_JumpIf(waterlevel>2,"Dryfire")
		TNT1 A 0 A_JumpIfInventory("BOGR1",1,1)
		Goto Dryfire
		WPNG CD 1
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 Offset(-20,32)
		TNT1 A 3 Offset(-20,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 A 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 B 1 Offset(0,24)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 C 1 Offset(0,23)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 D 1 Offset(0,26) A_PlaySound("weapons/SHG/throw")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 D 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_SpawnItemEx("RealGrenade",0,1,24,cos(pitch)*40,0,sin(-pitch)*40,3,SXF_TRANSFERPITCH|SXF_NOCHECKPOSITION)
		TNT1 A 0 A_TakeInventory("BOGR1",1)
		MND2 E 1 Offset(-3,30)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 E 1 Offset(-6,31)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 F 1 Offset(-9,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 F 1 Offset(-12,33)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_TakeInventory("GetOnWithIt", 100)
		TNT1 A 0 A_JumpIfNoAmmo("Dryfire")
		TNT1 A 5 Offset (75, 152)
		TNT1 A 1 Offset (6, 42)
		WPNG CB 1
		Goto Ready
	Flash:
		TNT1 A 7 Bright A_Light1
		Goto LightDone
		TNT1 A 7 Bright A_Light1
		Goto LightDone
 	Spawn:
		WPNP A -1
		Stop
	}
}

//==============================================================================
// Zwei DL-44 Blasters
//==============================================================================

ACTOR HDBlasterX2 : KriegslandLightWeapon
{
	+INVENTORY.UNDROPPABLE
	Weapon.SelectionOrder 1100
	Weapon.SlotNumber 0
	Weapon.AmmoUse 1
	Weapon.AmmoGive 10
	Weapon.AmmoType "BOBT1"
	Inventory.Pickupmessage "You got the DL-44 Blaster!"
	Inventory.PickupSound 	"weapons/generic/pickup1"
	Tag "Zwei DL-44"
	Scale 0.15
	States
	{
	Deselect:
		TNT1 A 0 A_Gunflash("LightDone")
		TNT1 A 0 A_TakeInventory("IsFiringSecondary",1)
		TNT1 A 0 A_TakeInventory("FiredSecondary",1)
		TNT1 A 0 A_TakeInventory("FiredPrimary",1)
		TNT1 A 0 A_GiveInventory("StopDualWield", 1)
		WPNB ABC 1 Offset(0,32)
		TNT1 A 1 A_Lower
		Wait 
	Ready:
		TNT1 A 0 A_TakeInventory("IsFiringSecondary",1)
		TNT1 A 0 A_TakeInventory("FiredSecondary",1)
		TNT1 A 0 A_TakeInventory("FiredPrimary",1)
		WPNB CBA 1 Offset(0,32)
		TNT1 A 0 A_TakeInventory("StopDualWield", 1)
		TNT1 A 0 A_GunFlash
		Goto ReadyToFire
	ReadyToFire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("FiredPrimary",1,"FireLeftGun") //Check if player wants to reload
		WNLG A 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM)// Weapon is ready to fire
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpifInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		Loop
	Select:
		TNT1 A 0 A_Playsound("weapons/generic/select1",7)
		TNT1 A 0 Offset(67, 100)
		TNT1 A 0 Offset(54, 81)
		TNT1 A 0 Offset(32, 69)
		TNT1 A 0 Offset(22, 58)
		TNT1 A 0 Offset(10, 47)
		TNT1 A 0 Offset(7, 39)
		TNT1 A 0 Offset(2, 34)
		TNT1 A 0 Offset(0, 32)
		TNT1 A 1 A_Raise
		Wait
	Fire:
		TNT1 A 0
		WPNB A 1
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpifInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		TNT1 A 0 A_JumpIfInventory("FiredPrimary",1,"FireLeftGun")
		Goto ReadyToFire
	FireLeftGun:
		TNT1 A 0 A_JumpIfInventory("BOBT1",1,1)
		Goto Dryfire
		TNT1 A 0 A_Playsound("weapons/DLB/fire",7)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_FireCustomMissile("PistoleBlast",0,1,-11,5)
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,-8)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WNLF A 1 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RecoilToggle")==0,2)
		TNT1 A 0 A_SetPitch(pitch -0.3)
		WNLG B 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WNLG C 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WNLG D 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WNLG E 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WNLG F 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WNLG A 1
		TNT1 AAA 0 A_JumpIfInventory("FiredPrimary",1,"FireLeftGun")
		Goto ReadyToFire
	FireRightGun:
		TNT1 A 0 A_JumpIfInventory("StopDualWield", 1, "LightDone")
		TNT1 A 0 A_GiveInventory("IsFiringSecondary", 1)
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FiredSecondary",1)
		TNT1 A 0 A_JumpIfInventory("BOBT1",1,1)
		Goto Dryfire
		TNT1 A 0 A_Playsound("weapons/DLB/fire",6)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_FireCustomMissile("PistoleBlast",0,1,11,5)
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,8)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNF A 1 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RecoilToggle")==0,2)
		TNT1 A 0 A_SetPitch(pitch -0.3)
		WPNG B 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG E 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG F 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG G 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG H 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNG A 1
		TNT1 A 0 A_JumpIfInventory("StopDualWield", 1, "LightDone")
		TNT1 A 0 A_TakeInventory("IsFiringSecondary",1)
		WCLG AAA 0 A_JumpIfInventory("FiredSecondary",1,"FireRightGun")
		Goto Flash
	Zoom:
		TNT1 A 0 A_GunFlash("LightDone")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WPNB A 1 A_SelectWeapon("HDBlaster")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto ReadyToFire
	Dryfire:
		TNT1 A 0 A_Print("No ammo",1)
		TNT1 A 0 A_TakeInventory("IsFiringSecondary",1)
		TNT1 A 0 A_TakeInventory("FiredSecondary",1)
		WPNB A 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_GunFlash
		Goto ReadyToFire
	Kick:
		TNT1 A 0 A_GunFlash("LightDone")
		WPNB ABC 1
		TNT1 A 1
		KICF A 1 Offset(-10,32)
		KICF CE 1
		KICF FG 1 A_Recoil(-1)
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_PlaySound("FKPlayer/Grunt")
		KICF H 5 A_CustomPunch(6,0,0,"FightPuff") 
		KICF IGFEDC 1 
		KICF BA 1 A_Recoil(+0.5)
		TNT1 A 1
		WPNB CBA 1 Offset(0,32)
		TNT1 A 0 A_GunFlash
		Goto ReadyToFire
	IsSliding:
		TNT1 A 0 A_GunFlash("LightDone")
		TNT1 A 0 A_TakeInventory("SlidePlayer",1)
		TNT1 A 0 A_JumpIfInventory("CrouchPlayer",1,"Ready")
		WPNB ABC 1
		TNT1 A 0 A_PlaySound("FKPlayer/slide/start",4)
		TNT1 A 0 A_PlaySound("FKPlayer/slide/loop",5,0.5,TRUE)
		TNT1 A 0 A_SetPitch(pitch+0.8)
		SLDK ABCDEF 2
		TNT1 A 0 A_SetPitch(pitch-0.8)
		SLDK G 6 A_FireCustomMissile("KickAttack",0,0,0,0)
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_PlaySound("FKPlayer/slide/end",6)
		SLDK HI 2
		Goto Ready
	Knife:
		TNT1 A 0 A_GunFlash("LightDone")
		WPNB ABC 1
		NULL A 0 Offset(-10,32)
		NULL A 1
		WP1L AB 1
		NULL A 0 A_Jump(86,2)
		NULL A 0 A_PlaySound("FKPlayer/Grunt")
		WP1L C 1 A_CustomPunch(8,0,0,"KnifePuff")
		WP1L DEF 1
		NULL A 1
		WPNB CBA 1 Offset(0,32)
		TNT1 A 0 A_GunFlash
		Goto ReadyToFire
	Throwgrenade:
		TNT1 A 0 A_GunFlash("LightDone")
		WPNB ABC 1
		TNT1 A 0 Offset(-10,36)
		TNT1 A 0 A_JumpIf(waterlevel>2,"Dryfire")
		TNT1 A 0 A_JumpIfInventory("BOGR1",1,1)
		Goto Dryfire
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 Offset(-20,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 A 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 B 1 Offset(0,24)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 C 1 Offset(0,23)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 D 1 Offset(0,26) A_PlaySound("weapons/SHG/throw")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 D 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_SpawnItemEx("RealGrenade",0,1,24,cos(pitch)*40,0,sin(-pitch)*40,3,SXF_TRANSFERPITCH|SXF_NOCHECKPOSITION)
		TNT1 A 0 A_TakeInventory("BOGR1",1)
		MND2 E 1 Offset(0,30)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 E 1 Offset(0,31)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 F 1 Offset(0,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 F 1 Offset(0,33)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_TakeInventory("GetOnWithIt", 100)
		TNT1 A 0 A_JumpIfNoAmmo("Dryfire")
		TNT1 A 7 Offset (75, 152)
		TNT1 A 1 Offset (6, 42)
		Goto Ready
	Flash:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("StopDualWield", 1, "LightDone")
		WPNG A 1
		TNT1 A 0 A_JumpIfInventory("FiredSecondary", 1, "FireRightGun")
		Loop
	DontFlash:
	    TNT1 A 1
		Goto Flash
	Steady:
		TNT1 A 1
		Goto ReadyToFire		
 	Spawn:
		WPNP A -1
		Stop
	}
}

//==============================================================================
// DL-44 Projectiles
//==============================================================================
// Actors taken from Z86 weapons test mod
//==============================================================================

ACTOR PistoleBlast : PlasmaBall
{
	SeeSound ""
	DeathSound "weapons/DLB/spark"
	RenderStyle Add
	DamageType "Shock"
	Alpha 0.5
	Scale 0.12
	Speed 35
	Decal "DoomImpScorch"
	Damage 3 // was 5, too strong. :(
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetTranslucent(0.5,1)
		PLAB ABCDE 1 BRIGHT A_SpawnItemEx ("PlasmaVapour", 0, 0, 0,  (momx*0.5), (momy*0.5), (momz*0.5), 0, SXF_ABSOLUTEMOMENTUM)
		NULL A 0 A_SpawnItem("PlasmaWave")
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SetScale(0.5)
		NULL AAAAAAAAAA 0 A_CustomMissile("PlasmaExplosion",0,0,(Random(0,360)),2,(Random(0,360)))
		PLAX ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
		PLAZ ABCDEF 1 BRIGHT
		Stop
	}
}

ACTOR PlasmaVapour
{
	+CLIENTSIDEONLY
	projectile
	RenderStyle Add
	Alpha 0.2
	Scale 0.1
	States
	{
	Spawn:
		NULL A 3
	Loopy:
		TNT1 A 0
		TNT1 A 0 A_SetTranslucent(0.2,1)
		PLAV ABCDEFGHIJKL 1 BRIGHT A_FadeOut(0.01)
		Loop
	}
}

ACTOR PlasmaWave
{
	+CLIENTSIDEONLY
	projectile
	RenderStyle Add
	Alpha 0.25
	Scale 0.1
	States
	{
	Spawn:
		NULL A 3 A_SetTranslucent(0.25,1)
		PBBT A 2 BRIGHT A_FadeOut(0.01)
		goto Spawn+1
	}
}

ACTOR PlasmaExplosion
{
	+NOBLOCKMAP
	+NOINTERACTION
	+CLIENTSIDEONLY
	RenderStyle Add
	Radius 1
	Height 1
	Speed 0.25
	Alpha 0.15
	Scale 0.4
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetTranslucent(0.25,1)
		PLAX ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
		PLAZ ABCDEF 1 BRIGHT
		Stop
	}
}