// "Secret": u can jump with this, like Rocket Jump

ACTOR "Demon Tech Shotgun" : Weapon 
{
   Inventory.PickupSound "misc/w_pkup"
   Weapon.PreferredSkin "DoubleBarrelSG-Marine"
   Inventory.PickupMessage "you got the Demon Tech Shotgun!!!!!!!"
   Obituary "%o was blasted with explosive lead by %k's ''Demon Tech Shotgun''."
   Weapon.UpSound "Weapons/ErasusUp"
   Weapon.AmmoType "DemonAmmo" 
   Weapon.AmmoType2 "DemonAmmo"
   Weapon.AmmoUse 8
   Weapon.AmmoUse2 1
   Weapon.AmmoGive 60
   Weapon.Kickback 10
   Weapon.SlotNumber 3
   Scale 0.9
   +INVENTORY.UNDROPPABLE
   +NOAUTOFIRE
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
//+FORCEXYBILLBOARD
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
+NODAMAGETHRUST
+MTHRUSPECIES
+ALWAYSPUFF
+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,128)
		TNT1 AAA 0 Bright A_CustomMissile("RedDTKaboom2",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,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),128)
		Loop
	NormalFX:
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning",Random(1,-1),Random(1,-1),Random(1,-1),0,0,0,0,128)
		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),128)
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning2",Random(1,-1),Random(1,-1),Random(1,-1),0,0,0,0,128)
		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),128)
		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),128)
		Loop
	Spawn2FX:
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning",Random(1,-1),Random(1,-1),Random(1,-1),0,0,0,0,128)
		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),128)
		TNT1 A 0 Bright A_SpawnItemEx("RDTechLightning2",Random(1,-1),Random(1,-1),Random(1,-1),0,0,0,0,128)
		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),128)
		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,128)
		TNT1 A 0 Bright A_SpawnItemEx("RedDemonTechEx",0,0,0,0,0,0,0,128,0)
		TNT1 AAA 0 Bright A_CustomMissile("RedDTKaboom",0,0,random(0,360),2,random(0,360))
		TNT1 AAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		TNT1 A 1 Bright A_Explode(20,64,0)
		Stop
	}
}

ACTOR RDTechLightning : DTBFGLightningRed { Scale 0.03 }
ACTOR RDTechLightning2 : DTBFGLightningRed { Scale 0.06 }
ACTOR EnergyProjectileSparkRedDT : EnergyProjectileSparkGreen
{
States
	{
	Spawn:
		SPKR A 2 Bright A_FadeOut(0.08,1)
		Loop
	}
}

ACTOR EPSG72 : EnergyProjectileSparkRedDT { Scale 0.040 }
ACTOR EPSG82 : EnergyProjectileSparkRedDT { Scale 0.035 }
ACTOR EPSG92 : EnergyProjectileSparkRedDT { Scale 0.030 }
ACTOR EPSG102 : EnergyProjectileSparkRedDT { Scale 0.025 }
ACTOR EPSG112 : EnergyProjectileSparkRedDT { Scale 0.020 }
ACTOR EPSG122 : EnergyProjectileSparkRedDT { Scale 0.015 }

ACTOR RedParticleSpawnerDT : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("EPSG72",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("EPSG82",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("EPSG92",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("EPSG102",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("EPSG112",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("EPSG122",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR RedDemonTechEx
{
PROJECTILE
Scale 0.45
RenderStyle Add
Alpha 0.75
+NOCLIP
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 0 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
	}
}
