Actor Satanic_StaffOfSuffering : Weapon Replaces PlasmaRifle
{
	XScale 1
	YScale 0.75
	SpawnID 32
	Weapon.SelectionOrder 	3
	Weapon.AmmoType "Satanic_SoulAmmo"
	Weapon.AmmoUse  0
	Weapon.AmmoGive 0
	Inventory.PickupSound "misc/w_pkup"
	Inventory.PickupMessage "you take hold of a staff of suffering."
	Tag "Staff of Suffering"
	//+NO_AUTO_SWITCH
	States
	{
	Spawn:
		NSTF D -1 BRIGHT Light("weaponpickuplight")
		Stop
	Ready:      
		NSTF A 1 A_WeaponReady
		Goto Ready
	Deselect:
		NSTF A 0 ACS_ExecuteAlways(789,0,0,0,0)
		TNT1 A 0 A_TakeInventory("WeapWithNoTertChecker",1)
	DeseLoop:	
		NSTF A 0 A_Lower
		NSTF A 1 A_Lower
		Loop
	Select:
		NSTF A 0 ACS_ExecuteAlways(789,0,1,0,0)
		TNT1 A 0 A_GiveInventory("WeapWithNoTertChecker",1)
		TNT1 A 0 A_JumpIfInventory("PWCIsOff",1,"DefXHair")
		TNT1 A 0 A_SetCrosshair(10)
		Goto SeLoop
	DefXHair:
		TNT1 A 0 A_SetCrosshair(0)
	SeLoop:	
		NSTF A 0 A_Raise
		NSTF A 1 A_Raise
		Loop
	Fire:  
		NSTF C 0  ACS_ExecuteAlways(769,0,10,0,0)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",2,0,0,18)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",4,0,0,18)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",-2,0,0,18)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",-4,0,0,18)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",0,0,0,2)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",0,0,0,8)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",0,0,0,16)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",0,0,0,32)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",0,0,0,48)
		NSTF C 0 A_FireCustomMissile("Satanic_BloodDecalThing",0,0,0,64)
		NSTF C 0 A_RailAttack(120, 2,2,none,"FF 00 00",0,0,"Satanic_Npuff")
		NSTF C 0 A_RailAttack(120,-2,2,none,"FF 00 00",0,0,"Satanic_Npuff")
		NSTF CEB 5
		Goto Ready
	AltFire:
		NSTF A 0
		NSTF GHI 6
		NSTF J 0 DamageThing(5)
		NSTF J 0 A_PlaySound("Satanic/Weapons/Piece")
		NSTF J 0 A_FireCustomMissile("Satanic_GhostHealerSpawner2",0,0,0,8)
		NSTF J 15
		NSTF IHG 6
		NSTF A 0
		Goto Ready
		//Flash:
		//		NSTF E 12
		//	Stop
	}
}

ACTOR Satanic_StaffOfSuffering2 : Satanic_StaffOfSuffering
{
	+CHEATNOTWEAPON
}

Actor Satanic_BloodDecalThing : FastProjectile
{ 
    Radius 8 
    Height 8 
    Speed 255 
	damagetype GhostFriend
    Decal BloodSmear
    PROJECTILE 
    +RIPPER
	States 
    { 
	Spawn: 
		NULL A 1
		Loop 
	Death: 
		NULL A 1
		Stop 
    } 
} 

Actor Satanic_GhostHealerSpawner
{ 
	Radius 	8 
	Height 	8 
	Speed 	4
	Damage 	0 
	Scale 		0.7 
	PROJECTILE 
	+RANDOMIZE 
	-SOLID
	States 
	{ 
	Spawn: 
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Satanic_SoulAmmo",400,"ManaMaxDeath",AAPTR_PLAYER1)
		NONE AAAA 2
		Goto Death 
	Death: 
		NONE A 2 A_SpawnItem ("Satanic_GhostHealer",1,0,0) 
		Stop 
	ManaMaxDeath:
		NONE A 1
		Stop
	} 
}

Actor Satanic_GhostHealerSpawner2
{ 
	Radius 	8 
	Height 	8 
	Speed 	4
	Damage 	0 
	Scale 		0.7 
	PROJECTILE 
	+RANDOMIZE 
	-SOLID
	States 
	{ 
	Spawn: 
		TNT1 A 0
		NONE AAAA 2
		Goto Death 
	Death: 
		NONE A 2 A_SpawnItem ("Satanic_GhostHealer",1,0,0) 
		Stop 
	} 
} 

Actor Satanic_GhostHealer
{
	Health		32
	Radius		32
	Height		32
	Speed		2
	MeleeDamage	0
	Scale 1.0
	MONSTER
	-SOLID 
	-SHOOTABLE 
	+FRIENDLY 
	+LOOKALLAROUND 
	+DROPOFF 
	+NOTELEPORT 
	+NOBLOCKMONST 
	States
	{
	Spawn:
		NONE AAAAAAAAAA 2 A_VileChase
		Goto Death
	Heal:
		NONE A 1
		Goto Spawn
	Death:
		NONE A 1
		Stop
	}	
}

ACTOR BMTertiaryRaiser : Satanic_GhostHealer
{
	Health		32
	Radius		4
	Height		4
	Speed		40
	MeleeDamage	0
	Scale 0.5
	MONSTER
	+NOCLIP
	+FLOAT
	+NOGRAVITY
	-SOLID 
	-SHOOTABLE 
	+FRIENDLY 
	+LOOKALLAROUND 
	+DROPOFF 
	+NOTELEPORT 
	+CANBOUNCEWATER
	+NOBLOCKMONST 
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Satanic_SoulAmmo",400,"Death",AAPTR_PLAYER1)
		TNT1 A 0 A_VileChase
		TNT1 A 0 A_VileChase
		TNT1 A 0 A_VileChase
		TNT1 A 1 A_VileChase
		Loop
	See:
		TNT1 A 0 A_VileChase
		TNT1 A 0 A_VileChase
		TNT1 A 0 A_VileChase
		TNT1 A 1 A_VileChase
		Loop
	Heal:
		TNT1 A 1 BRIGHT A_JumpIfInventory("CorpseRaiseCheck",2,"Death")
		TNT1 A 1 BRIGHT A_GiveInventory("CorpseRaiseCheck",1)
		Goto Spawn
	Death:
		TNT1 A 1
		Stop
	}	
}

ACTOR CorpseRaiseCheck : Inventory
{
	-INVBAR
	Inventory.Amount 1
	Inventory.MaxAmount 2
}
	
Actor Satanic_Npuff : bulletpuff
{
damagetype GhostFriend
}