Actor Satanic_MindControl : Weapon
{
	Weapon.SelectionOrder 1000000
	Weapon.AmmoType "Satanic_SoulAmmo"
	Tag "Posession Gauntlets"
	Inventory.PickupMessage "you've acquired the mind-warping powers of the possession gauntlets."
	+NO_AUTO_SWITCH
	Weapon.BobStyle "Alpha"
	Weapon.BobSpeed 1.5
    States
	{
	Spawn:
		BLDM ABCD 3
		Loop
	Ready:
		MCGA A 3 A_WeaponReady
		MCGA B 3 A_WeaponReady
		MCGA C 3 A_WeaponReady
		Loop
	Deselect:
		TNT1 A 0 ACS_ExecuteAlways(801,0,0,0,0)
		TNT1 A 0 A_TakeInventory("WeapWithNoTertChecker",1)
	DeselectLoop:
		TNT1 A 0 A_Lower
		MCGA 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(83)
		Goto SelectLoop
	DefXHair:
		TNT1 A 0 A_SetCrosshair(0)
	SelectLoop:
		TNT1 A 0 A_Raise
		MCGA A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory("Satanic_Posessing",1,1)
		Goto MindControlFire
		TNT1 A 0
		Goto PosessedFire
	AltFire:
		TNT1 A 0 A_JumpIfInventory("Satanic_Posessing",1,"PosessedAltFire")
		GAUN JK 4
		TNT1 A 0 A_PlayWeaponSound("weapons/gauntletsuse")
		TNT1 A 0 A_CustomPunch(1,1,0,"MCGTurnPuff")
		GAUN LMN 4
		GAUN KJ 4
		Goto Ready
	PosessedFire:
		CFLM D 1 ACS_ExecuteAlways(799,0,0,0,0)
		CFLM D 4
		Goto Ready
	PosessedAltFire:
		CFLM D 1 ACS_ExecuteAlways(799,0,1,0,0)
		CFLM D 4
		Goto Ready
	MindControlFire:
		TNT1 D 0 DamageThing(10)
		TNT1 D 0 ACS_Execute(797,0,0,0,0)
		GAUN JK 4 A_GunFlash
		CFLM K 4 A_FireCustomMissile("Satanic_MindControlProjectile",0,0,0,0)
		CFLM J 8
		Goto Ready
	}	
}

ACTOR MCGTurnPuff : GauntletPuff1
{
	Translation "112:127=176:191"
	DamageType "Turn"
	States
	{
	Spawn:
		WISP ABCD 4 BRIGHT
		Stop
	}
}

Actor Satanic_MindControlProjectile
{
	Radius 11
	Height 8
	Speed 40
	Damage 1
	DamageType Posession
	Projectile
	SeeSound "Satanic/Weapons/BellRing"
	States
	{
	Spawn:
		NONE A 0
		NONE A 0 Thing_ChangeTID(0,668)
		NONE A 1 ChangeCamera(668, 0, 0)
		Goto ActualSpawn
	ActualSpawn:
		NONE A 1
		Loop
	Death:
		NONE A 0
		NONE A 0 ACS_ExecuteAlways(796,0,0,0,0)
		Stop
	}
}

Actor Satanic_Posessing : Inventory
{
	Inventory.MaxAmount 1
}

Actor Satanic_IsPosessed : Inventory
{
	Inventory.MaxAmount 1
}

Actor Satanic_PosessedFire : Inventory
{
	Inventory.MaxAmount 1
}

Actor Satanic_PosessedAltFire : Inventory
{
	Inventory.MaxAmount 1
}

Actor Satanic_MapSpotX : MapSpot
{
	+NOCLIP
}