ACTOR "Demon Tech Shotgun" : Weapon 30420
{
//$Category Weapons/RM
//$Sprite ERAGX0
//$Title "Demon Tech Shotgun"
Scale 0.9
+WEAPON.NOALERT
+WEAPON.NOAUTOFIRE
-INVENTORY.UNDROPPABLE
Weapon.SlotNumber 3
Weapon.PreferredSkin "DoubleBarrelSG-Marine"
Weapon.AmmoType "DemonAmmo" 
Weapon.AmmoType2 "DemonAmmo"
Weapon.AmmoUse 8
Weapon.AmmoUse2 1
Weapon.AmmoGive 60
Weapon.Kickback 10
Weapon.UpSound "Weapons/ErasusUp"
Inventory.PickupSound "misc/w_pkup"
Inventory.PickupMessage "Demon Tech Shotgun"
Obituary "%o was blasted with explosive lead by %k's ''Demon Tech Shotgun''."
Tag "Demon Tech Shotgun"
States
	{
	Spawn:
		ERAG X -1
		Loop
	Ready:
		ERAG A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		Loop
	Deselect:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		TNT1 A 0 A_TakeInventory("MineAction",1)
		TNT1 A 0 A_TakeInventory("RailgunAction",1)
	Deselectloop:
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_ZoomFactor(1)
		TNT1 A 0 A_Lower
		ERAG A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_Raise
		ERAG A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_Recoil(5)
		TNT1 A 0 A_ZoomFactor(0.98)
		TNT1 A 0 A_PlayWeaponSound("Weapons/ErasusFire")
		TNT1 A 0 A_PlaySound("Weapons/ErasusAmbient",5)
		TNT1 AAAAAAAAA 0 A_FireCustomMissile("RedDemonTechTracer",Random(-8,8),0,0,Random(-8,8))
		ERAF A 2 Bright A_FireBullets(11.2,7.1,20,5,"DemonShotgunPuff")
		ERAF AB 1 Bright
		TNT1 A 0 Bright A_ZoomFactor(1)
		ERAF C 1 Bright 
		ERAG B 1
		TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
		ERAR ABCDE 1 
		ERAR FFEDCBA 1
		ERAG C 1
		ERAG A 4
		TNT1 A 0 A_ReFire
		Goto Ready
	AltFire:
		TNT1 A 0
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_Recoil(5)
		TNT1 A 0 A_ZoomFactor(0.98)
		TNT1 A 0 A_PlayWeaponSound("Weapons/ErasusAltFire")
		TNT1 A 0 A_PlaySound("Weapons/ErasusAmbient",5)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",0)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-1)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",2)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-2)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",3)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-3)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",4)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-4)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",0)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-1)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",2)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-2)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",3)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-3)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",4)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-4)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",0)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-1)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",2)
		TNT1 A 0 A_FireCustomMissile("RedDemonTechProjectile",-2)
		ERAF A 2 Bright 
		ERAF AB 1 Bright
		TNT1 A 0 Bright A_ZoomFactor(1)
		ERAF C 1 Bright 
		ERAG B 1
		TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
		ERAR ABCDE 1 
		ERAR FFEDCBA 1
		ERAG C 1
		ERAG A 2
		TNT1 A 0 A_ReFire
		Goto Ready
	Flash:
		TNT1 A 2 A_Light2
		TNT1 A 1 A_Light1
		TNT1 A 0 A_Light0
		Stop
	GrenadeCheck:
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		Goto Ready
	GrenadeToss:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
		ERAG DEFGHI 1
		TNT1 A 4
		HGRN ABC 1
		HGRN D 2
		HGRN EFG 1
		HGRN HI 2
		TNT1 A 14 A_PlayWeaponSound("weapons/hgrenadepin")
		TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
		TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
		HGNE A 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0,false)
		HGRN J 1
		HGRN KLM 2
		HGRN NO 1
		TNT1 A 6
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
		TNT1 A 0// A_TakeInventory("Hand Grenade",1)
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		TNT1 A 0
		ERAG IHGFED 1
		Goto Ready
	MineCheck:
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
		TNT1 A 0 A_TakeInventory("MineAction",1)
		Goto Ready
	MineToss:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
		ERAG DEFGHI 1
		TNT1 A 8
		TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
		MINE ABCDEF 1
		TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
		MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
		MINE HI 1
		MINE JK 2
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
		TNT1 A 0// A_TakeInventory("Land Mine",1)
		TNT1 A 0 A_TakeInventory("MineAction",1)
		TNT1 A 0
		TNT1 A 5
		ERAG IHGFED 1
		Goto Ready
	}
}

ACTOR RedDemonTechTracer : FastProjectile
{
Radius 1
Height 1
Speed 100
Scale 0.075
RenderStyle Add
Alpha 0.85
+RANDOMIZE
States
	{
	Spawn:
		TRA3 A 10 Bright
		Loop
	Death:
		TNT1 A 1 
		Stop
	}
}

Actor DemonShotgunPuff
{
Height 6
Radius 6
Scale 0.5 
Renderstyle Add
Alpha 0.75
Decal "Bulletchip"
+NOBLOCKMAP
+NOGRAVITY
+ACTIVATEIMPACT
+ACTIVATEPCROSS
+NOTELEPORT 
+PUFFONACTORS
+BLOODLESSIMPACT
+FORCERADIUSDMG
+ALWAYSPUFF
+PUFFGETSOWNER
+DONTHARMSPECIES
Species "Player"
DamageType "PDTPuff"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("RedDTKaboom2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		BFOG A 3 Bright A_Explode(25,8)
		BFOG BCDEF 3 Bright
		Stop
	}
}

ACTOR RedDTKaboom : Kaboom6
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		RFXP AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR RedDTKaboom2 : RedDTKaboom { Scale 0.25 }

ACTOR RedDemonTechProjectile
{
PROJECTILE
Height 4
Radius 4
Speed 40
FastSpeed 50
Damage 5
Scale 0.06
Decal "RedDTRScorch"
+FORCERADIUSDMG
+Thruspecies
+DONTHARMSPECIES
Species "Player"
DamageType "PDTPuff"
DeathSound "weapons/demontechex"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128,"Spawn2")
	Normal:
		TNT1 A 0 Bright A_Jump(128,"NormalFX")
		RDTR A 1 Bright A_SpawnItemEx("RedDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	NormalFX:
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning",Random(-1,1),Random(-1,1),Random(-1,1),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		RDTR A 1 Bright A_SpawnItemEx("RedDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning2",Random(-1,1),Random(-1,1),Random(-1,1),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		RDTR A 1 Bright A_SpawnItemEx("RedDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Goto Normal
	Spawn2:
		TNT1 A 0 Bright A_Jump(128,"Spawn2FX")
		RDTR A 1 Bright A_SpawnItemEx("RedDemonTechTrail2",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Spawn2FX:
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning",Random(-1,1),Random(-1,1),Random(-1,1),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		RDTR A 1 Bright A_SpawnItemEx("RedDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning2",Random(-1,1),Random(-1,1),Random(-1,1),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		RDTR A 1 Bright A_SpawnItemEx("RedDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Goto Spawn2  
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_AlertMonsters
		TNT1 A 0 Bright A_SpawnItemEx("RedParticleSpawnerDT",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SpawnItemEx("RedDemonTechEx",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("RedDTKaboom",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 1 Bright A_Explode(20,64,0,1)
		Stop
	}
}

ACTOR RDTechLightning : DTBFGLightningRed { Scale 0.03 }
ACTOR RDTechLightning2 : DTBFGLightningRed { Scale 0.06 }

ACTOR EnergyProjectileSparkRedDT : EnergyProjectileSparkGreen
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		SPKR A 2 Bright A_FadeOut(0.08,1)
		Goto Spawn+1
	}
}

ACTOR EPSR7 : EnergyProjectileSparkRedDT { Scale 0.040 }
ACTOR EPSR8 : EnergyProjectileSparkRedDT { Scale 0.035 }
ACTOR EPSR9 : EnergyProjectileSparkRedDT { Scale 0.030 }
ACTOR EPSR10 : EnergyProjectileSparkRedDT { Scale 0.025 }
ACTOR EPSR11 : EnergyProjectileSparkRedDT { Scale 0.020 }
ACTOR EPSR12 : EnergyProjectileSparkRedDT { Scale 0.015 }

ACTOR RedParticleSpawnerDT : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("EPSR7",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSR8",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSR9",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSR10",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSR11",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("EPSR12",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR RedDemonTechEx
{
PROJECTILE
Scale 0.45
RenderStyle Add
Alpha 0.75
+NOCLIP
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		RFRG ABCDEFGH 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR RedDemonTechTrail : BFG9500Trail
{
Scale 0.04
Alpha 0.65
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2 Bright
		RDTI AAAAAABBBBBBBB 1 Bright A_FadeOut(0.05,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR RedDemonTechTrail2 : RedDemonTechTrail
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2 Bright
		RDTI AAAAAACCCCCCCC 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR DTShellCasing : BulletCasing
{
Scale 0.24
Seesound "weapons/casing2"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		REDC ABCDEFGH 2
		Goto Spawn+2
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(128,3)
		RDTC C 100
		RDTC C 5 A_FadeOut(0.1,1)
		Goto Death+3
		RDTC G 100
		RDTC G 5 A_FadeOut(0.1,1)
		Goto Death+5
	}
}