actor GearCutterWep_NormalBar : NormalBar{args 91, 3}
actor GearCutterWep : BaseMM8BDMWep
{
Weapon.AmmoUse 2
Weapon.AmmoGive 32
Weapon.SlotNumber 5
Obituary "$OB_GEARCUTTER"
Inventory.Pickupmessage "$PU_GEARCUTTER" 
Tag "$TAG_GEARCUTTER"
weapon.ammotype "GearCutterAmmo"
inventory.icon "GCTRICON"
Scale 2.0
States
{
SpawnLoop: 
GCTR Z 1
loop
Ready: 
GCTR A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_GEARCUTTER) 
GCTR A 0 A_JumpIfNoAmmo("ReadyNoAmmo")
GCTR A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
ReadyNoAmmo:
GCTR I 1 A_WeaponReady
GCTR I 0 A_JumpIfNoAmmo("ReadyNoAmmo")
Goto Ready+1
ReadyC: Goto Ready+1
Deselect: 
GCTR A 0
goto DeselectSwap
Select: 
GCTR A 0
goto SelectSwap
Fire: 
GCTR A 0 A_JumpIfNoAmmo("NoAmmo") 
GCTR A 0 A_PlaySoundEx("weapon/metalcatcher","Weapon")
GCTR A 0 A_FireCustomMissile("GearCutter",0,1,8,0)
GCTR BCDEFGH 2
GCTR A 0 A_JumpIfNoAmmo("NoneWait")
GCTR A 1 Offset(0,42)
GCTR A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
goto Ready+1
NoneWait:
GCTR I 3 Offset(0,42)
GCTR I 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
goto Ready+1
NoAmmo: 
GCTR I 1 ACS_NamedExecute("core_noammo",0)
Goto Ready+1
}
}

actor GearCutterAmmo : Ammo 
{
inventory.amount 1
inventory.maxamount 33
+INVENTORY.IGNORESKILL
}

actor GearCutter : BasicProjectile
{
-NOGRAVITY
+NOEXPLODEFLOOR
+STEPMISSILE
maxstepheight 24
+BOUNCEONCEILINGS
+BOUNCEONFLOORS
-BOUNCEONWALLS
+FORCEXYBILLBOARD
+HITTRACER
+SEEKERMISSILE
+DONTSPLASH
BounceCount 5
damage (CallACS("vile_cbm_damage",14)) 
DamageType "GearCutter"
Obituary "$OB_GEARCUTTER"
Height 24
Radius 18
scale 3.0
bouncefactor 0.9
wallbouncefactor 0.9
speed 28
reactiontime 10
States
{
Spawn:
GCTR L 0
GCTR L 0 ThrustThingZ(0, 26, 0, 1)
SpawnLoop:
TNT1 A 0 A_PlaySoundEx("weapons/mm10/wheelcutterclimb", "SoundSlot5")
GCTR LLMM 1 
loop
NoTrailLoop:
GCTR LLMM 1 A_JumpIF(Z-Floorz==0,"SpawnLoop")
loop
XDeath:
Crash:
GCTR A 0 A_JumpIfInventory("CanBeGrabBustered", 1, "Latch", AAPTR_TRACER)
goto Death
Latch:
GCTR A 0 A_PlaySoundEx("weapons/mmb/spreaddrillhit", "Weapon")
GCTR B 0 A_Countdown
GCTR LL 1 
TNT1 A 0 A_SpawnItemEx("WheelCutterClimbFX", 16, 0, frandom(-16, 16), 5, 0, 1, 180+frandom(-8, 8), SXF_WEPFXCOLOR)
GCTR L 0 A_ChangeVelocity(8,0,-2,CVF_RELATIVE|CVF_REPLACE)
GCTR MM 1
GCTR LLL 0 A_SeekerMissile (4, 9, SMF_LOOK|SMF_PRECISE|SMF_CURSPEED, 75, 100)
GCTR L 0 A_ChangeVelocity(24,0,-2,CVF_RELATIVE|CVF_REPLACE)
GCTR B 0 A_ChangeFlag("Missile",1)
GCTR B 0 A_ChangeFlag("BOUNCEONWALLS",0)
GCTR LLM 1 A_JumpIF(Z-Floorz==0,"Death")
goto SpawnLoop
Death:
TNT1 A 2
stop
}
}