actor GravityCoilWep_NormalBar : NormalBar{args 85, 41}
actor GravityCoilWep : BaseMM8BDMWep
{
Weapon.Ammouse 6
Weapon.AmmoGive 30
Weapon.SlotNumber 6
Obituary "$OB_GRAVITYCOIL"
Tag "$TAG_GRAVITYCOIL"
Inventory.Pickupmessage "$PU_GRAVITYCOIL"
weapon.ammotype "GravityCoilAmmo"
inventory.icon "GCOLICON"
States
{
SpawnLoop:
GCOL Z 1
loop
Ready:
GCOL J 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_GRAVITYCOIL)
GCOL J 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
GCOL J 0
goto DeselectSwap
Select:
GCOL K 0
goto SelectSwap
Fire:
GCOL J 0 A_JumpIfNoAmmo("NoAmmo")
GCOL A 0 A_PlaySoundEx("weapons/mm5/gravityholdfire","Weapon")
GCOL A 0 A_FireCustomMissile("GravityCoil",0,1,8,0)
GCOL A 0 ThrustThingZ(0,52,0,0)
GCOL LMNO 1
GCOL X 11
GCOL PJ 3
GCOL J 1 
goto Ready+1
NoAmmo:
GCOL J 1 ACS_NamedExecute("core_noammo",0)
goto Ready+1
}
}

actor GravityCoilAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 30
+INVENTORY.IGNORESKILL
}

actor GravityCoil : BasicExplosion
{
+OLDRADIUSDMG
damagetype "GravityCoil"
Obituary "$OB_GRAVITYCOIL"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("GravityCoilFX", 0, 0, 0, 0, 0, 0, 0, SXF_WEPFXCOLOR)
TNT1 A 1 A_Explode(CallACS("vile_cbm_damage",23), 256, 0, 0, 192)
TNT1 AA 1 A_SpawnItemEx("GravityCoilFX", 0, 0, 0, 0, 0, 0, 0, SXF_WEPFXCOLOR)
stop
}
}

actor GravityCoilFX : BasicGraphicEffect
{
	reactiontime 60
	var int user_angle;
	States
	{
		SpawnFrame:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_angle", random(0, 6))
		SpawnLoop:
		TNT1 A 0 A_SpawnItemEx("GravityCoilParticle", 256, 0, -512, 0, 0, -80, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_WEPFXCOLOR)
		TNT1 A 0 A_SpawnItemEx("GravityCoilParticle", 256, 0, 256, 0, 0, -80, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_WEPFXCOLOR)
		TNT1 A 0 A_SpawnItemEx("GravityCoilParticle", 256, 0, 0, 0, 0, -80, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_WEPFXCOLOR)
		TNT1 A 0 A_SpawnItemEx("GravityCoilParticle", 256, 0, 256, 0, 0, -80, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_WEPFXCOLOR)
		TNT1 A 0 A_SpawnItemEx("GravityCoilParticle", 256, 0, 512, 0, 0, -80, user_angle, SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_WEPFXCOLOR)
		TNT1 A 0 A_SetUserVar("user_angle", user_angle + 6)
		TNT1 A 0 A_Countdown
		loop
		Death:
		TNT1 A 0
		stop
	}
}

actor GravityCoilParticle : BasicGraphicEffect
{
	+BRIGHT
	States
	{
		Spawn:
		GCOL A 15
		stop
	}
}