ACTOR Satanic_Vengeful : Weapon
{
	Weapon.SelectionOrder 100000
	Weapon.AmmoType1 	"Satanic_VengefulAmmo"
	Weapon.AmmoUse1 	2
	Weapon.AmmoGive1	4
	Weapon.AmmoType2	"Satanic_VengefulAmmo"
	Weapon.AmmoUse2		4
	Inventory.PickupSound "misc/w_pkup"
	Inventory.PickupMessage "the 'vengeful' breech-loading shotgun is your newest tool of carnage."
	Tag "'Vengeful' Shotgun"
	+WEAPON.NOAUTOFIRE
	//+NO_AUTO_SWITCH
	States
	{
	Spawn:
		LICO A -1
		Stop
	Ready:
		LCSG A 1 A_WeaponReady
		Loop
	Deselect:
		TNT1 A 0 A_TakeInventory("WeapWithNoTertChecker",1)
	DeseLoop:	
		LCSG A 0 A_Lower
		LCSG A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_GiveInventory("WeapWithNoTertChecker",1)
		TNT1 A 0 A_JumpIfInventory("PWCIsOff",1,"DefXHair")
		TNT1 A 0 A_SetCrosshair(99)
		Goto SeLoop
	DefXHair:
		TNT1 A 0 A_SetCrosshair(0)
	SeLoop:	
		LCSG A 0 A_Raise
		LCSG A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory("Satanic_VengefulAmmo",2,1)
		Goto Ready
		TNT1 A 0 A_JumpIfInventory("Vengeful_ShellsRemain",2,1)
		Goto VengefulReload
		TNT1 A 0 A_TakeInventory("Vengeful_ShellsRemain",2)
		TNT1 A 0 A_PlaySound("Satanic/Weapons/VengefulShot")
		TNT1 A 0 A_Light2
		TNT1 A 0 A_Recoil(4)
		TNT1 A 0 ACS_Execute(811,0,50,random(22,44),0)
		TNT1 A 0 A_GunFlash("Flash")
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),1,0,0,0,random(-4,4))
		LCSF A 4 Offset(0,50)
		LCSF B 2 Offset(0,45)
		LCSF B 2 Offset(0,40)
		LCSF B 2 Offset(0,35)
		TNT1 A 0 A_JumpIfInventory("Vengeful_ShellsRemain",1,1)
		Goto VengefulPreload
		TNT1 A 0
		Goto Ready
	Altfire:
		TNT1 A 0 A_JumpIfInventory("Satanic_VengefulAmmo",4,1)
		Goto Ready
		TNT1 A 0 A_JumpIfInventory("Vengeful_ShellsRemain",4,1)
		Goto VengefulReload
		TNT1 A 0 ACS_ExecuteAlways(769,0,10,0,0)
		TNT1 A 0 A_PlaySound("Satanic/Weapons/VengefulShot")
		TNT1 A 0 A_Light2
		TNT1 A 0 A_Recoil(16)
		TNT1 A 0 ACS_Execute(811,0,50,random(22,44),0)
		TNT1 A 0 A_GunFlash("AltFlash")
		TNT1 A 0 A_FireCustomMissile("Satanic_VengefulShot",0,1,0,8)
		LCSF A 6 Offset(0,60)
		LCSF B 4 Offset(0,55)
		LCSF B 4 Offset(0,50)
		LCSF B 4 Offset(0,45)
		LCSG A 4 Offset(0,40)
		LCSG A 4 Offset(0,35)
	VengefulPreload:
		TNT1 A 0 A_JumpIfInventory("Satanic_VengefulAmmo",2,1)
		Goto Ready
	VengefulReload:
		TNT1 A 0 A_PlaySoundEx("weapons/sshoto",CHAN_WEAPON)
		LCSG BCD 5
		LCSG E 1 Offset(5,35)
		LCSG E 1 Offset(10,40)
		LCSG E 1 Offset(15,45)
		LCSG E 1 Offset(20,50)
		LCSG E 1 Offset(25,55)
		LCSG E 1 Offset(30,60)
		LCSG E 1 Offset(35,65)
		LCSG E 1 Offset(40,70)
		LCSG E 1 Offset(45,75)
		TNT1 AAAA 0 A_FireCustomMissile("Satanic_VengefulShellSpawner",0,0,0,0)
		TNT1 A 0 A_GiveInventory("Vengeful_ShellsRemain",4)
		LCSG E 10 Offset(50,80)
		LCSR ABCDE 3 Offset(50,80)
		TNT1 A 0 A_PlaySoundEx("weapons/sshotl",CHAN_WEAPON)
		LCSR FGH 3 Offset(50,80)
		LCSG E 1 Offset(45,75)
		LCSG E 1 Offset(40,70)
		LCSG E 1 Offset(35,65)
		LCSG E 1 Offset(30,60)
		LCSG E 1 Offset(25,55)
		LCSG E 1 Offset(20,50)
		LCSG E 1 Offset(15,45)
		LCSG E 1 Offset(10,40)
		LCSG E 1 Offset(5,35)
		LCSG DC 5
		TNT1 A 0 A_PlaySoundEx("weapons/sshotc",CHAN_WEAPON)
		LCSG B 5
		Goto Ready
	Flash:
		LCSL A 4 BRIGHT Offset(0,50)
		LCSL B 2 BRIGHT Offset(0,45)
		LCSL B 2 BRIGHT Offset(0,40)
		LCSL B 2 BRIGHT Offset(0,35)
		Stop
	AltFlash:
		LCSL A 6 BRIGHT Offset(0,60)
		LCSL B 4 BRIGHT Offset(0,55)
		LCSL B 4 BRIGHT Offset(0,50)
		LCSL B 4 BRIGHT Offset(0,45)
		Stop
	}
}

ACTOR Satanic_Vengeful2 : Satanic_Vengeful 
{
	+CHEATNOTWEAPON
}

ACTOR Vengeful_ShellsRemain : Inventory
{
	-INVBAR
	Inventory.Amount 1
	Inventory.MaxAmount 4
}

Actor OldSatanic_Vengeful : Weapon
{
	Weapon.SelectionOrder 100000
	Weapon.AmmoType1 	"Satanic_VengefulAmmo"
	Weapon.AmmoUse1 	1
	Weapon.AmmoGive1	4
	Weapon.AmmoType2	"Satanic_VengefulAmmo"
	Weapon.AmmoUse2		2
	Inventory.PickupSound "misc/w_pkup"
	Inventory.PickupMessage "the 'vengeful' breech-loading shotgun is your newest tool of carnage."
	Tag "'Vengeful' Shotgun"
	+CHEATNOTWEAPON
	+WEAPON.NOAUTOFIRE
	+NO_AUTO_SWITCH
	States
	{
	Spawn:
		VNGG A -1
		Stop
	Ready:
		VENG A 1 A_WeaponReady
		Loop
	Deselect:
		TNT1 A 0 A_TakeInventory("WeapWithNoTertChecker",1)
		VENG A 0 A_Lower
		VENG A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_GiveInventory("WeapWithNoTertChecker",1)
		VENG A 0 A_Raise
		VENG A 1 A_Raise
		Loop
	Fire:
		VENG A 0 A_PlaySound("Satanic/Weapons/VengefulShot")
		VENG A 0 A_Light2
		VENG A 0 A_Recoil(4)
		VENG A 0 ACS_Execute(811,0,50,random(22,44),0)
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),0,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),1,0,0,0,random(-4,4))
		TNT1 A 0 A_FireCustomMissile("MiniVengefulShot",frandom(-6.0,6.0),1,0,0,0,random(-4,4))
		VENG A 4 A_GunFlash
		VENG A 0 A_Light0
		VENG A 16
		TNT1 A 0 A_FireCustomMissile("Satanic_VengefulShellSpawner",0,0,0,0)
		VENG BCDEFGH 6
		Goto Ready
	Altfire:
		TNT1 A 0 A_JumpIfInventory("Satanic_VengefulAmmo",2,1)
		Goto Ready
		TNT1 A 0 ACS_ExecuteAlways(769,0,10,0,0)
		VENG A 0 A_PlaySound("Satanic/Weapons/VengefulShot")
		VENG A 0 A_Light2
		VENG A 0 A_Recoil(16)
		VENG A 0 ACS_Execute(811,0,50,random(22,44),0)
		VENG A 0 A_FireCustomMissile("Satanic_VengefulShot",0,1,0,8)
		VENG A 4 A_GunFlash
		VENG A 0 A_Light0
		VENG A 16
		TNT1 A 0 A_FireCustomMissile("Satanic_VengefulShellSpawner",0,0,0,0)
		VENG BCDEFGH 8
		Goto Ready
	Flash:
		VENF AB 2 Bright 
		Stop
	}
}

ACTOR SpecialVengeful : CustomInventory
{
	Inventory.PickupMessage "the 'vengeful' breech-loading shotgun is your newest tool of carnage."
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("Satanic_SoulAmmoNotTheLastOne",0,0,0,random(-5,5),random(-5,5),random(1,5))
	SpawnLoop:	
		VNGG A 1
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("Satanic_Vengeful",1)
		Stop
	}
}

Actor Satanic_VengefulShot
{
	Speed	128
	Height	12
	Radius	12
	Mass	16
	Damage			128
	ExplosionDamage 128
	ExplosionRadius 256
	RenderStyle	Add
	Decal 		BloodSmear
	Alpha		0.8 
	Scale		2.5
	PROJECTILE
	+NOGRAVITY
	States
	{
	Spawn:
		NULL A 1   
		Loop
    Death: 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 A 0 A_SpawnItem("Satanic_SmokeSpawner")
		MSP1 A 0 A_PlaySound("weapons/rocklx")
		MSP1 A 0 A_Explode
		MSP1 H 5 BRIGHT Light ("deadheadexplosion1")
		MSP1 I 5 BRIGHT Light ("deadheadexplosion2") 
		MSP1 J 4 BRIGHT Light ("deadheadexplosion3")
		MSP1 K 4 BRIGHT Light ("deadheadexplosion4")
		MSP1 L 3 BRIGHT Light ("deadheadexplosion5")
		MSP1 M 3 BRIGHT Light ("deadheadexplosion6")
		MSP1 N 2 BRIGHT Light ("deadheadexplosion7")
		MSP1 OP 2 Bright
		Stop
    }
}

ACTOR MiniVengefulShot : Satanic_VengefulShot
{
	Scale 0.35
	Decal minivengeful
	Damage 5
	Height 2
	Radius 2
	ExplosionDamage 2
	ExplosionRadius 32
	States
	{
	Death:
		MSP1 AAA 0 A_CustomMissile("Satanic_VengefulRipper",0,Random(-64,64),Random(0,360),2,Random(0,360)) 
		MSP1 A 0 A_SpawnItem("MiniSmokeSpawner")
		MSP1 A 0 A_PlaySound("weapons/rocklx")
		MSP1 A 0 A_Explode
		MSP1 H 3 BRIGHT Light ("minideadheadexplosion1")
		MSP1 I 3 BRIGHT Light ("minideadheadexplosion2") 
		MSP1 J 3 BRIGHT Light ("minideadheadexplosion3")
		MSP1 K 3 BRIGHT Light ("minideadheadexplosion4")
		MSP1 L 3 BRIGHT Light ("minideadheadexplosion5")
		MSP1 M 3 BRIGHT Light ("minideadheadexplosion6")
		MSP1 N 3 BRIGHT Light ("minideadheadexplosion7")
		MSP1 OP 3 Bright
		Stop
	}
}

Actor Satanic_VengefulRipper
{
	Speed	24
	Height	1
	Radius	1
	Mass	8
	Damage	8
	RenderStyle	Add
	Decal 		BloodSmear
	Alpha		0.8 
	Scale		0.5
	PROJECTILE
	-NOGRAVITY
	+ROCKETTRAIL
	+RIPPER
	States
	{
	Spawn:
		NULL A 4   
		Loop
    Death: 
		NULL A 0
		Stop
    }
}