actor BotBow : Bow //The bow made for bots so they play a bit better.
{
Weapon.AmmoGive1 0
    States 
    { 
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
       BOWA H 0 ACS_ExecuteAlways(998,0)
	   BOWA H 1 A_WeaponReady 
       Goto Ready+1
    Deselect: 
       BOWA H 1 A_Lower
	   Loop
    Select: 
       BOWA H 1 A_Raise
       Loop
    Fire:    
       BOWA HIJKL 3
	   BOWA H 0 ACS_ExecuteAlways(999,0)
	   BOWA L 2 A_Playsound("weapons/bowdraw")
	Goto Hold
	Hold:
	   BOWA M 0 A_Jump(85,"Hold.Lightning")
	   BOWA M 0 A_Jump(85, "Hold.Ice")
	   BOWA M 0 A_Jump(85, "Hold.Fire")
       BOWA M 1
	   BOWA O 0 A_FireCustomMissile("ArrowFire", 0, 1, 8, 0)
	   BOWA O 0 A_GunFlash
       BOWA P 12
	   BOWA G 4 ACS_ExecuteAlways(998,0)
       Goto Ready     
	   Flash:
	   TNT1 A 19
	   Stop
	Hold.Fire:
	   BOWF D 0 A_Playweaponsound("weapons/bowonfire")
	   BOWF DEC 3 bright offset (0, 32) 
	   BOWA H 0 A_Light0
	   BOWA O 0 A_FireCustomMissile("FlameArrow", 0, 1, 8, 0)
	   BOWA O 0 ACS_ExecuteAlways(998,0)
       BOWA P 12 
	   BOWA G 4
	   Goto Ready
	Hold.Ice:
	   BOWI A 0 A_Playweaponsound("weapons/bowfreezing")
	   BOWI ABC 2 bright offset (0, 32) 
	   BOWA H 0 A_Light0
	   BOWA O 0 A_FireCustomMissile("IceArrow", 0, 1, 8, 0)
	   BOWA O 0 A_FireCustomMissile("IceArrow2", random(-4,4), 0, 8, 0)
	   BOWA O 0 A_FireCustomMissile("IceArrow2", random(-4,4), 0, 8, 0)
	   BOWA O 0 A_FireCustomMissile("IceArrow2", random(-4,4), 0, 8, 0)
	   BOWA O 0 A_FireCustomMissile("IceArrow2", random(-4,4), 0, 8, 0)
	   BOWA O 0 A_FireCustomMissile("IceArrow2", random(-4,4), 0, 8, 0)
	   BOWA O 0 ACS_ExecuteAlways(998,0)
       BOWA P 16//13//7//2
	   BOWA G 2
	   Goto Ready
	Hold.Lightning:
	   BOWL CBA 2 bright offset (0, 32) 
	   BOWA H 0 A_Light0
	   BOWA O 0 A_FireCustomMissile("LightningArrow", 0, 1, 8, 0)
	   BOWA O 0 A_RailAttack(50, 8, 0, "none", "yellow", 0, 999) 
	   BOWA O 0 ACS_ExecuteAlways(998,0)
       BOWA P 32//22
	   BOWA G 4
	   Goto Ready
    } 
}

Actor BotIceHands : Weapon
{
	Weapon.SelectionOrder 2
	Weapon.SlotNumber 1
	Inventory.Icon "MHUDA0"
	+WEAPON.NOAUTOAIM
//	+WEAPON.DONTBOB
	+INVENTORY.UNDROPPABLE
	+NOALERT 
	States
	{
	Ready:
		CONE A 1 A_WeaponReady
		Loop
	Deselect:
		CONE A 1 A_Lower
		Loop
	Select:
		CONE A 1 A_Raise
		Goto Select+1
	Fire:
		CONE A 0 A_Jump(51,"AltFire")
		CONE BCD 2
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, 0) 
		CONE E 0 A_FireCustomMissile ("IceShards", 2, 0, 0, 0, 0, 0)
		CONE E 0 A_FireCustomMissile ("IceShards", 4, 0, 0, 0, 0, 0)
		CONE E 0 A_FireCustomMissile ("IceShards", 6, 0, 0, 0, 0, 0)
//		CONE E 0 A_FireCustomMissile ("IceShards", 8, 0, 0, 0, 0, 0)
		CONE E 0 A_FireCustomMissile ("IceShards", -2, 0, 0, 0, 0, 0)
		CONE E 0 A_FireCustomMissile ("IceShards", -4, 0, 0, 0, 0, 0)
		CONE E 0 A_FireCustomMissile ("IceShards", -6, 0, 0, 0, 0, 0)
//		CONE E 0 A_FireCustomMissile ("IceShards", -8, 0, 0, 0, 0, 0)
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, 2)
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, 4) 
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, 6) 
//		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, 8)
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, -2)
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, -4) 
		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, -6) 
//		CONE E 0 A_FireCustomMissile ("IceShards", 0, 0, 0, 0, 0, -8) 
		CONE E 0 A_PlaySound ("MageMissileF")
		CONE E 3 Bright 
		CONE F 3
		CONE G 3
		CONE A 21
		Goto Ready
	AltFire:
		CONX ABC 2
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 2)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX D 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 6, -2)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX E 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 10, -4)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX F 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 14, -6)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX G 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 18, -8)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX H 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 22, -10)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX I 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 26, -12)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX J 3 Bright
		TNT1 A 0 A_FireCustomMissile("MiniIceShards", 0, 0, 30, -14)
		TNT1 A 0 A_PlaySoundEx("MageMissileF", 5)
		CONX KLM 3
		CONE GA 5
		Goto Ready
	}
}

Actor BotLightningHands : weapon
{
	Weapon.SelectionOrder 3
	Weapon.SlotNumber 2
	Weapon.YAdjust 20
	Weapon.AmmoUse 1
	Weapon.AmmoGive 10
	Weapon.AmmoUse2 2
	Weapon.AmmoType "LightningAmmo"
	Weapon.AmmoType2 "LightningAmmo"
	Inventory.Icon "MHUDC0"
	+WEAPON.NOAUTOAIM
//	+WEAPON.DONTBOB
	+INVENTORY.UNDROPPABLE
	+NOALERT 
	States
	{
	Ready:
		ICHN AAAAA 1 Bright A_WeaponReady
		ICHN A 1 Bright A_PlaysoundEx("ElectricHands","weapon")
		ICHN BBBBB 1 Bright A_WeaponReady
		ICHN CCCCC 1 Bright A_WeaponReady
		ICHN C 1 Bright A_PlaysoundEx("ElectricHands","Weapon")
		ICHN BBBBB 1 Bright A_WeaponReady
		Loop
	Deselect:
		ICHN A 1 A_Lower
		Loop
	Select:
		ICHN A 1 A_Raise
		Goto Select+1
	Fire:
		TNT1 A 0 A_Jump(51,"AltFire")
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		ICHN DE 4 Bright
		ICHN F 5 Bright A_FireCustomMissile("LightningPlasma")
		ICHN G 5 Bright
		ICHN HI 4 Bright
		ICHN I 7 Bright Offset (0, 199)
		ICHN C 3 Bright Offset (0, 55)
		ICHN B 3 Bright Offset (0, 50)
		ICHN B 3 Bright Offset (0, 45)
		ICHN B 3 Bright Offset (0, 40)
		ICHN A 5 Bright offset (0, 32)
		Goto Ready
	Altfire:
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		ICHN DE 4 Bright
		ICHN F 5 Bright A_FireCustomMissile("VoidSphere")
		ICHN G 5 Bright
		ICHN HI 4 Bright
		ICHN I 7 Bright Offset (0, 199)
		ICHN C 3 Bright Offset (0, 55)
		ICHN B 3 Bright Offset (0, 50)
		ICHN B 3 Bright Offset (0, 45)
		ICHN B 3 Bright Offset (0, 40)
		ICHN A 5 Bright offset (0, 32)
		Goto Ready
	}
}

Actor BotRiotgun : Weapon replaces Shotgun
{
  radius 20
  height 16
  Weapon.SlotNumber 2
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o got pummeled by %k's shotgun."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "Shell"
  inventory.icon "SHOTTY"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "GrenadeAmmo"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    SHTG A 400
    stop
  Ready:
    SHTG A 1 A_WeaponReady
    loop
  Deselect: 
    SHTG A 1 A_Lower
    loop
  Select:
    SHTG A 1 A_Raise
    Goto Select+1
  Fire:
		TNT1 A 0 A_Jump(25,"AltFire")
      SHTG E 0 A_GunFlash
      SHTG E 2 Bright
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (7, 7, 7, 5, "BulletPuffShotgun")
	  SHTG E 0 A_PlayWeaponSound("weapons/shotgunNew")
//	  SHTG E 0 A_Recoil(4)
      SHTG F 2 Bright
      SHTG G 2
	  SHTG H 3
      SHTG BC 5
      SHTG D 4
      SHTG CB 5
      SHTG A 3
      SHTG A 7 A_ReFire
      Goto Ready
  Altfire:
	  SHTG A 0 A_JumpIfNoAmmo ("NoGrenades") 
	  SHTG A 1 offset (0, 40)
	  SHTG A 1 offset (0, 50)
	  SHTG A 1 offset (0, 60)
	  SHTG A 1 offset (0, 70)
	  SHTG A 1 offset (0, 80)
	  SHTG A 1 offset (0, 90)
	  SHTG A 1 offset (0, 100)
	  SHTG A 1 offset (0, 110)
	  SHTG A 1 offset (0, 120)
	  TNT1 A 3 A_PlayWeaponSound("weapons/grenadepin")
	  Goto Throw
	Throw:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  HNDG IJ 1 offset (0, 40)
	  HNDG A 0 A_PlayWeaponSound("weapons/grenadethrow")
	  HNDG A 0 A_Jump(32,"Throw7")
	  HNDG A 0 A_Jump(32,"Throw6")
	  HNDG A 0 A_Jump(32,"Throw5")
	  HNDG A 0 A_Jump(32,"Throw4")
	  HNDG A 0 A_Jump(32,"Throw3")
	  HNDG A 0 A_Jump(32,"Throw2")
	  HNDG A 0 A_Jump(32,"Throw1")
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw1:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade1", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw2:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade2", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw3: 
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade3", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw4:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade4", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw5:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade5", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw6:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade6", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw7:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade7", 0, 1, 0, 10)
	  Goto Throwpt2
	Throwpt2:
	  HNDG LMNOPQ 2
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_GiveInventory("GrenadeCooldown",1)
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	GrenadeMaxsound:
      TNT1 A 0 ACS_ExecuteAlways(999,0)
	  TNT1 A 0 A_PlayWeaponSound("weapons/grenademax")
	  Goto GrenadeMax
	GrenadeMax:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",140,"GrenadeSloops")
	  TNT1 A 0 A_Refire
	  TNT1 A 0 A_PlaySoundEx("player/male/grunt1","Voice")
	  Goto Throw
	GrenadeSloops:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  TNT1 A 30 A_FireCustomMissile("ThrowingGrenadeOops", 0, 1, 0, -10)
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	Return:
	  SHTG A 1 offset (0, 120) ACS_ExecuteAlways(998,0)
	  SHTG A 1 offset (0, 110)
	  SHTG A 1 offset (0, 100)
	  SHTG A 1 offset (0, 90)
	  SHTG A 1 offset (0, 80)
	  SHTG A 1 offset (0, 70)
	  SHTG A 1 offset (0, 60)
	  SHTG A 1 offset (0, 50)
	  SHTG A 1 offset (0, 40)
	  Goto Ready
	Flash:
	  NULL A 4 bright A_Light1
	  NULL A 3 bright A_Light2
	  NULL A 0 bright A_Light0
	  stop
	NoGrenades:
	  SHTG A 4 A_PlaySound("weapons/grenadeno")
	  Goto Ready
    }
}

Actor BotFireStaff : Weapon
{
	Weapon.SelectionOrder 1
	Weapon.Slotnumber 3
	Weapon.AmmoUse 1
	Weapon.AmmoGive 40
	Weapon.KickBack 150
	Weapon.YAdjust 20
	Weapon.AmmoType "FireStaffAmmo"
	Inventory.Icon "MHUDB0"
	States
	{
	Spawn:
		TNT1 A -1
		Stop
	Select:
		HELL A 1 A_Raise
		Goto Select+1
	Deselect:
		HELL A 1 A_Lower
		Loop
	Ready:
		HELL ABCDEF 3 A_WeaponReady
		Loop
	Fire:
		TNT1 A 0 A_Jump(51,"AltFire")
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		HELL G 4 Offset (0, 40)
		HELL H 4 Bright Offset (0, 48) 
		HELL G 0 A_FireCustomMissile("FireBallMage")
		HELL G 0 A_PlaySound("FireStaffF")
		HELL H 2 Bright Offset (0, 48)
		HELL II 2 Offset (0, 48) 
		HELL I 1 Offset (0, 40)
		HELL J 5 Offset (0, 36)
		HELL A 7
		Goto Ready
	AltFire:
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		HELL G 0 A_JumpIfInventory("FireStaffAmmo",5,1)
		Goto Ready 
		HELL G 4 Offset (0, 40)
		HELL H 4 Bright Offset (0, 48)
		HELL G 0 A_TakeInventory("FireStaffAmmo",5)
		HELL G 0 A_FireCustomMissile("FlamePillarSpawner")
		HELL G 0 A_PlaySound("FireStaffF")
		HELL H 2 Bright Offset (0, 48)
		HELL II 2 Offset (0, 48) 
		HELL I 1 Offset (0, 40)
		HELL J 5 Offset (0, 36)
		HELL ABCDEFABCDEF 3
		Goto Ready
	}
}

Actor BotShotgun-Blade : Weapon
{
  Weapon.SlotNumber 1
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o was splintered by %k's shotgun."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "Shell"
  inventory.icon "PSGGA0"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "AbilityEnergy"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    TNT1 A 400
    stop
  Ready:
    SHOG A 1 A_WeaponReady
    loop
  Deselect: 
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
    SHOG A 1 A_Lower
    loop
  Select:
	TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_PWBLADE)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
    SHOG A 1 A_Raise
    Goto Select+1
  Fire:
		TNT1 A 0 A_Jump(80,"Altfire")
	  TNT1 A 0 A_JumpIfInventory("Shell", 1, 2)
	  SHOG A 1
  Goto Ready
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedFire")
      SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 10, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_TakeInventory("Shell", 1)
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire
      Goto Ready
	EnhancedFire:
	  SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 15, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_TakeInventory("Shell", 1)
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire	
	 Goto Ready
	Flash:
	  TNT1 A 4 bright A_Light1
	  TNT1 A 3 bright A_Light2
	  TNT1 A 0 bright A_Light0
	  stop
	AltFire:
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("BladeReturn", 900, "Clean")
	  TNT1 A 0 A_JumpIfInventory("BladeReturn", 1, "Ready")
	  TNT1 A 0 A_JumpIfInventory("AbilityEnergy", 20, 2)
	  SHOG A 1
	Goto Ready
	  TNT1 A 0 A_GiveInventory("BladeReturn", 5)
	  SHOA ABCDEF 1
	  TNT1 A 0 A_PlaySoundEx("PW/Alt", 5)
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedBlade")
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade",-9,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade",0,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade",9,0,8)
	  Continue:
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 20)
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 20)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
	  SHOA GFEDCBA 1
	  SHOG A 2
	Goto Ready
	EnhancedBlade:
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade2",-9,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade2",0,0,8)
	  TNT1 A 0 A_FireCustomMissile("PlaneBlade2",9,0,8)
	Goto Continue
	Clean:
	  TNT1 A 0 A_TakeInventory("BladeReturn", 999)
	Goto Ready
    }
}

Actor BotShotgun-Dash : Weapon
{
  Weapon.SlotNumber 2
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o went right through %k."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "Shell"
  inventory.icon "PSGGC0"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "AbilityEnergy"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    TNT1 A 400
    stop
  Ready:
    SHOG A 1 A_WeaponReady
    loop
  Deselect: 
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
    SHOG A 1 A_Lower
    loop
  Select:
    TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_PWDASH)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
    SHOG A 1 A_Raise
    Goto Select+1
  Fire:
		TNT1 A 0 A_Jump(25,"AltFire")
	  TNT1 A 0 A_JumpIfInventory("Shell", 1, 2)
	  SHOG A 1
  Goto Ready
	  SHOG A 1  
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedFire")
      SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 10, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_TakeInventory("Shell", 1)
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire
      Goto Ready
	EnhancedFire:
	  SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 15, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_TakeInventory("Shell", 1)
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire	
	 Goto Ready
	Flash:
	  TNT1 A 4 bright A_Light1
	  TNT1 A 3 bright A_Light2
	  TNT1 A 0 bright A_Light0
	  stop
	AltFire:
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("AbilityEnergy", 50, 2)
	  SHOG A 1
	Goto Ready
	  TNT1 A 0 A_JumpIfInventory("DashCooldown", 1, "Ready")
	  SHOA ABCDEF 1
	  TNT1 A 0 A_GiveInventory("DashCooldown", 1)
	  TNT1 A 0 A_GiveInventory("AttackEmpower", 1)
	  TNT1 A 0 A_PlaySoundEx("PW/Dash", 5)
	  TNT1 A 0 A_GiveInventory("PlaneTwister", 1)
	  TNT1 A 0 A_SpawnItemEx("PlaneDummy", 0, 0, 0, 0, 0, 0, (angle+180)*256/360, SXF_TRANSFERTRANSLATION)
	  TNT1 A 0 ACS_ExecuteAlways(907, 0, angle)
	  TNT1 A 0 ACS_ExecuteAlways(908, 0, 0)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 50)	 
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 50)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
      SHOA GFEDCBA 1
	  SHOG A 2
	Goto Ready
    }
}

Actor BotShotgun-Vortex : Weapon
{
  Weapon.SlotNumber 3
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o saw all the planes %k has been in."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "Shell"
  inventory.icon "PSGGB0"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 0
  Weapon.AmmoType2 "AbilityEnergy"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    TNT1 A 400
    stop
  Ready:
    SHOG A 1 A_WeaponReady
    loop
  Deselect: 
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
    SHOG A 1 A_Lower
    loop
  Select:
    TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_PWVORTEX)
    TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
    SHOG A 1 A_Raise
    Goto Select+1
  Fire:
		TNT1 A 0 A_Jump(50,"AltFire")
	  TNT1 A 0 A_JumpIfInventory("Shell", 1, 2)
	  SHOG A 1
  Goto Ready
	  SHOG A 1  
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "EnhancedFire")
      SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 10, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_TakeInventory("Shell", 1)
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire
      Goto Ready
	EnhancedFire:
	  SHOF A 2 Bright
	  SHTG E 0 A_GunFlash
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_FireBullets (4.0, 2.8, 4, 15, "BulletPuffPlane", FBF_NORANDOM)
	  TNT1 A 0 A_TakeInventory("Shell", 1)
	  SHTG E 0 A_PlayWeaponSound("PW/ShotFire")
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
      SHOF B 2 Bright
      SHOG BCD 2
      SHOG EFGHIJK 1
      SHOG L 1 A_PlaySoundEx("PW/ShotCock", 6)
      SHOG MNOPQ 1
      SHOG R 3
      SHOG STUVWXY 1
	  SHOG Z 1 A_Refire	
	 Goto Ready
	Flash:
	  TNT1 A 4 bright A_Light1
	  TNT1 A 3 bright A_Light2
	  TNT1 A 0 bright A_Light0
	  stop
	AltFire:
	  SHOG A 1
	  TNT1 A 0 A_JumpIfInventory("AbilityEnergy", 40, 2)
	  SHOG A 1
	Goto Ready
	  TNT1 A 0 A_JumpIfInventory("BombCooldown", 1, "Ready")
	  TNT1 A 0 A_JumpIfInventory("AttackEmpower", 1, "Empowered")
	  SHOA ABCDE 1
	  TNT1 A 0 A_GiveInventory("BombCooldown", 1)
	  TNT1 A 0 A_PlaySoundEx("PW/Alt", 5)
	  TNT1 A 0 A_FireBullets(0, 0, 0, 1, "PlaneVortex")
	  TNT1 A 0 A_RailAttack(10, 0, 0, "Black", "Dark Blue", 0)
	  TNT1 A 0 ACS_ExecuteAlways(908, 0, 1)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 40)
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 40)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
	  SHOA FGFEDCBA 1
	  SHOG A 2
	Goto Ready
	Empowered:
	  SHOA ABCDEF 1
	  TNT1 A 0 A_GiveInventory("BombCooldown", 1)
	  TNT1 A 0 A_PlaySoundEx("PW/Alt", 5)
	  TNT1 A 0 A_FireBullets(0, 0, 0, 1, "PlaneVortex2")
	  TNT1 A 0 A_RailAttack(20, 0, 0, "Black", "Dark Blue", 0)
	  TNT1 A 0 A_TakeInventory("AttackEmpower", 1)
	  TNT1 A 0 ACS_ExecuteAlways(908, 0, 1)
	  TNT1 A 0 A_TakeInventory("AbilityEnergy", 40)
	  TNT1 A 0 A_GiveInventory("EnergyUsage", 40)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
	  SHOA GFEDCBA 1
	  SHOG A 2
	  Goto Ready
    }
}

Actor BotWitchLaser : Weapon
{
  Weapon.SlotNumber 1
  weapon.selectionorder 25
  weapon.kickback 100
  obituary "%o was purified by %k's laser."
  inventory.pickupmessage "You got the wtf"
  weapon.ammotype ""
  inventory.icon "WITCHLAS"
  weapon.ammouse 0
  weapon.ammogive 0
  Weapon.Ammouse2 1
  Weapon.AmmoType2 "WitchLaserAmmo"
  +INVENTORY.UNDROPPABLE
  +WEAPON.NOAUTOAIM
  States
  {
	  Ready:
		HSTA A 1 A_WeaponReady
	  Loop
	  Deselect:
		HSTA A 1 A_Lower
		TNT1 AA 0 A_Lower
	  Loop
	  Select:
		HSTA A 1 A_Raise
		TNT1 AA 0 A_Raise
	  Goto Select+1
	  Fire:
		TNT1 A 0 A_Jump(51,"Altfire")
		TNT1 A 0 A_GiveInventory("WHCondition", 1)
	    TNT1 A 0 A_TakeInventory("UsingGrenade", 1)
		HSTA A 3 A_GunFlash
		TNT1 A 0 A_PlayWeaponsound("WH/LaserFire")
		TNT1 A 0 A_FireCustomMissile("NewWitchLaserShot", -1, 0, -6)
		HSTA B 4 Bright
		HSTA C 5 Bright
		HSTA D 4
		HSTA E 3
		HSTA A 5 A_Refire
	  Goto Ready
	  Altfire:
	    TNT1 A 0 A_TakeInventory("UsingGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("WitchLaserAmmo", 1, 1)
	  Goto Noammo
		TNT1 A 0 A_GiveInventory("WHCondition", 1)
		HSTA A 3 A_GunFlash
		TNT1 A 0 A_PlayWeaponsound("WH/LaserFire")
		TNT1 A 0 A_FireCustomMissile("WitchLaserAlt", 8, 0, 6)
		TNT1 A 0 A_FireCustomMissile("WitchLaserAlt", -8, 0, -6)
		TNT1 A 0 A_FireCustomMissile("WitchLaserAlt", 0, 1, 0)
		HSTA B 4 Bright
		HSTA C 5 Bright
		HSTA D 4
		HSTA E 3
		HSTA A 10
	  Goto Ready
	  NoAmmo:
		HSTA A 1
	  Goto Ready
  }
}

Actor BotDeathDart : Weapon
{
  Weapon.SlotNumber 3
  weapon.selectionorder 10
  weapon.kickback 100
  obituary "%o watched as %k bullseyed %h."
  decal "BulletChip"
  inventory.pickupmessage "You got the wtf2"
  weapon.ammotype ""
  inventory.icon "WITCHDAR"
  weapon.ammouse 1
  Weapon.AmmoType "Darts"
  weapon.ammogive 5
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "FlaskT2"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  States
  {
	  Ready:
		DDAR A 1 A_WeaponReady
	  Loop
	  Deselect:
		DDAR A 1 A_Lower
		TNT1 AA 0 A_Lower
	  Loop
	  Select:
		DDAR A 1 A_Raise
		TNT1 AA 0 A_Raise
	  Goto Select+1
	  Fire:
		TNT1 A 0 A_Jump(51,"AltFire")
	    TNT1 A 0 A_TakeInventory("UsingGrenade", 1)
	    DDAR A 1 A_GunFlash
		TNT1 A 0 A_PlayWeaponSound("WH/DartFire")
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, -10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 0, 10)
		DDAR B 3 Bright
		TNT1 A 0 A_Refire
		DDAR A 5
	  Goto Ready
	  Hold:
	    TNT1 A 0 A_GunFlash
	    TNT1 A 0 A_PlayWeaponSound("WH/DartFire")
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, -10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 0, 10)
		DDAR C 2 Bright
		TNT1 A 0 A_JumpIfNoAmmo("Release")
		TNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(975, 0), "Release")
		DDAR C 2 Bright
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_PlayWeaponSound("WH/DartFire")
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, -10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 0, 10)
		DDAR B 2 Bright
		TNT1 A 0 A_JumpIfNoAmmo("Release")
		TNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(975, 0), "Release")
		DDAR B 2 Bright
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_PlayWeaponSound("WH/DartFire")
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, -10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 0, 10)
		DDAR D 2 Bright
		TNT1 A 0 A_JumpIfNoAmmo("Release")
		TNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(975, 0), "Release")
		DDAR D 2 Bright
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_PlayWeaponSound("WH/DartFire")
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, -10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 10)
		TNT1 A 0 A_FireCustomMissile("DeathDarts", 0, 1, 0, 10)
		DDAR B 3 Bright		
		TNT1 A 0 A_Refire
		DDAR A 1
	  Release:
		DDAR A 4
	  Goto Ready
	  Altfire:
		DDAR A 1 A_GiveInventory("UsingGrenade", 1)
	    TNT1 A 0 A_JumpIfInventory("FlaskT2", 1, 2)
		TNT1 A 0 A_TakeInventory("UsingGrenade", 1)
	  Goto Ready
	    TNT1 A 0 A_GiveInventory("WHCondition", 1)
		DDAR A 1 A_GiveInventory("UsingGrenade", 1)
		DDAR A 1 Offset(4, 36)
		DDAR A 1 Offset(10, 44)
		DDAR A 1 Offset(16, 52)
		TNT1 A 0 A_PlayWeaponSound("WH/Throw")
		TNT1 A 0 A_FireCustomMissile("FlaskType2")
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		DDAR A 1 Offset(10, 48)
		DDAR A 1 Offset(4, 42)
		DDAR A 2
	  Goto Ready
  }
}

Actor BotHeartSeeker : Weapon
{
  Weapon.SlotNumber 2
  weapon.selectionorder 15
  weapon.kickback 10
  obituary "%o's heart was found by %k."
  decal "BulletChip"
  inventory.pickupmessage "You got the wtf2"
  weapon.ammotype ""
  inventory.icon "WITCHHS"
  weapon.ammouse 1
  Weapon.AmmoType "HeartSeekerAmmo"
  weapon.ammogive 5
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "FlaskT1"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  States
  {
	  Ready:
		WSON A 1 A_WeaponReady
	  Loop
	  Deselect:
		WSON A 1 A_Lower
		TNT1 AA 0 A_Lower
	  Loop
	  Select:
		WSON A 1 A_Raise
		TNT1 AA 0 A_Raise
	  Goto Select+1
	  Fire:
		TNT1 A 0 A_Jump(40,"Altfire")
	    TNT1 A 0 A_TakeInventory("UsingGrenade", 1)
		WSON A 3 A_GunFlash
		TNT1 A 0 A_PlayWeaponsound("WH/ShotgunFire")
        TNT1 A 0 A_FireCustomMissile("HeartSeekerPellet",random(-30,30)/10.0,1,0,1,0,0)
        TNT1 AAAA 0 A_FireCustomMissile("HeartSeekerPellet",random(-60,60)/10.0,0,0,1,0,random(-10,10)/10.0)
        TNT1 AAAA 0 A_FireCustomMissile("HeartSeekerPellet",random(-350,350)/100.0,0,0,1,0,random(-250,250)/100.0)
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		WSON B 2 Bright
		WSON CD 1 Bright
		WSON E 3
		WSON F 4
		WSON G 5
		WSON H 6
		WSON A 4 A_Refire
	  Goto Ready
	  Altfire:
		WSON A 1 A_GiveInventory("UsingGrenade", 1)
	    TNT1 A 0 A_JumpIfInventory("FlaskT1", 1, 2)
		TNT1 A 0 A_TakeInventory("UsingGrenade", 1)
	  Goto Ready
	    TNT1 A 0 A_GiveInventory("WHCondition", 1)
		WSON A 1 A_GiveInventory("UsingGrenade", 1)
		WSON A 1 Offset(4, 36)
		WSON A 1 Offset(10, 44)
		WSON A 2 Offset(16, 52)
		TNT1 A 0 A_PlayWeaponSound("WH/Throw")
		TNT1 A 0 A_FireCustomMissile("FlaskType1")
		TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
		WSON A 1 Offset(10, 48)
		WSON A 1 Offset(4, 42)
		WSON A 2
	  Goto Ready
  }
}

Actor BotSjasScreamer : Weapon
{
   Weapon.SlotNumber 1
   Weapon.AmmoGive 100
   Weapon.Kickback 100
   Weapon.YAdjust 0
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Obituary "%o was screamed at by %k"
   Inventory.icon "SJASATT"
   +WEAPON.NOAUTOAIM
   +WEAPON.MELEEWEAPON 
   +WEAPON.DONTBOB
   +INVENTORY.UNDROPPABLE
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      SJHA ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 A_WeaponReady
	  SJHB ABCDEFGHIJKLMNOPQRST 2 A_WeaponReady
      Loop
   Deselect:
	  SJHA A 1 A_Lower
      Loop
   Select:
      SJHA A 1 A_Raise
      Goto Select+1
   Fire:
		TNT1 A 0 A_Jump(60,"Altfire")
   	  SJHA A 0 A_Playweaponsound("Sjasattack")
  	  SJHA A 1 A_FireCustomMissile("SjasAttack", 0, 0 ,0)
	  SJHB UVWXWVUYZ 1 //50 tics
	  SJHC ABA 1
	  SJHB ZY 1
	  SJHB UVWXWVUYZ 2
	  SJHC ABA 2
	  SJHB ZY 2
	  SJHA A 24//14
      goto Ready
   AltFire:
	    SJHA A 0 A_ChangeFlag("SHOOTABLE",0)
		SJHA A 0 A_Stop
		SJHA A 0 SetPlayerProperty (0, 1, 4)
		TNT1 A 0 A_GiveInventory("SjasUsedReflect", 1)
		SJHA A 0 A_GiveInventory("SjasRepulsion",1)
		SJHA A 0 A_FireCustomMissile("SjasReflect", 0, 0 ,0)
		SJHA A 5 offset (0, 45) A_SpawnItemEx("SjasWave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
		SJHA A 0 A_GiveInventory("SjasRepulsion",1)
		SJHA A 5 offset (0, 50) A_SpawnItemEx("SjasWave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
		SJHA A 0 A_GiveInventory("SjasRepulsion",1)
		SJHA A 5 offset (0, 55) A_SpawnItemEx("SjasWave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
		SJHA A 0 A_GiveInventory("SjasRepulsion",1)
		SJHA A 5 offset (0, 60) A_SpawnItemEx("SjasWave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
		SJHA A 5 offset (0, 55)
		SJHA A 5 offset (0, 50)
		SJHA A 0 SetPlayerProperty (0, 0, 4)
		SJHA A 0 A_ChangeFlag("SHOOTABLE",1)
		SJHA A 5 offset (0, 45)
		SJHA A 5 offset (0, 35)
		SJHA A 5 offset (0, 32)
		SJHA A 30
		goto Ready
	NoFire:
		SJHA A 0 A_Print("Your reflection is on cooldown")
		Goto Ready
    }
}

Actor BotChoketeeth-Ball : Weapon
{
	Weapon.SlotNumber 1
inventory.icon "CHOKEATT"
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Obituary "%o was munched by %k" 
   +WEAPON.MELEEWEAPON
   Weapon.Kickback 0
   Weapon.YAdjust 0
   +INVENTORY.UNDROPPABLE
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      CHOK L 1 A_WeaponReady
      Loop
   Deselect:
	  CHOK L 1 A_Lower
      Loop
   Select:
      CHOK L 1 A_Raise
      Goto Select
   Fire:
     CHOK L 0 A_JumpIfInventory("ChokeCancelCheck",1,"Cancel")
	 CHOK L 0 A_Playweaponsound("chokeattack")
	 CHOK L 1 A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-50, 135) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 5 offset (0, 32)
	 CHOK L 0 A_Jump(16,"Altfire")
	 goto Ready
   Altfire:
     CHOK L 0 A_GiveInventory("Clip",1)
	 CHOK L 0 A_GiveInventory("ChokeCancelCheck",1)
	 CHOK L 0 ACS_ExecuteAlways(983,0)
	 CHOK L 0 A_PlayWeaponSound("chokeswallow")
	 CHOK L 2 offset (0, 35)
	 CHOK L 2 offset (0, 30)
	 CHOK L 2 offset (0, 25)
	 CHOK L 2 offset (0, 20)
	 CHOK L 2 offset (0, 15)
	 CHOK L 2 offset (0, 10)
	 CHOK L 25 offset (0, 5) A_GiveInventory("ChokeCancelCheck",1)
	 CHOK L 2 offset (5, 15) 
	 CHOK L 2 offset (10, 20)
	 CHOK L 2 offset (5, 25)
	 CHOK L 2 offset (0, 30) 
	 CHOK L 2 offset (-5, 25)
	 CHOK L 2 offset (-10, 20)
	 CHOK L 2 offset (-5, 15)
	 CHOK L 2 offset (0, 10)
	 CHOK L 2 offset (0, 5) 
	 CHOK L 2 offset (5, 15) 
	 CHOK L 2 offset (10, 20)
	 CHOK L 2 offset (5, 25)
	 CHOK L 2 offset (0, 30)
	 CHOK L 2 offset (-5, 25)
	 CHOK L 2 offset (-10, 20) 
	 CHOK L 2 offset (-5, 15)
	 CHOK L 2 offset (0, 10)
	 CHOK L 0 offset (0, 5) A_FireCustomMissile("Chokeball", 0, 0 ,0)
	 CHOK L 1 offset (0, 55) A_PlayWeaponSound("chokespit")
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 135) 
	 CHOK L 1 offset (0, 115)
	 CHOK L 1 offset (0, 95)
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 55)
	 CHOK L 10 offset (0, 32)
	 CHOK L 15 offset (0, 32) ACS_ExecuteAlways(982,0)
	 Goto Ready
    Cancel:
	 CHOK L 0 A_GiveInventory("Clip",1)
	 CHOK L 0 A_TakeInventory("ChokeCancelCheck",999)
	 CHOK L 0 A_PlayWeaponSound("chokevomit")
	 CHOK L 0 offset (0, 55) A_FireCustomMissile("VomitFake",0,0,0,0)
	 CHOK L 1 offset (0, 55)
	 CHOK L 1 offset (0, 60)
	 CHOK L 1 offset (0, 65)
	 CHOK L 0 ACS_ExecuteAlways(982,0)
	 CHOK L 1 offset (0, 70)
	 CHOK L 1 offset (0, 75)
	 CHOK L 1 offset (0, 80) 
	 CHOK L 1 offset (0, 85) 
	 CHOK L 1 offset (0, 90) 
	 CHOK LLLLLLLLLLLLLLLLLLLLLLLLL 1 offset (0, 95) A_FireCustomMissile("ChokeVomit",random(-20,20),0,0,3)
	 CHOK L 10 offset (0, 95) 
	 CHOK L 2 offset (0, 90) 
	 CHOK L 2 offset (0, 85)
	 CHOK L 2 offset (0, 80) 
	 CHOK L 2 offset (0, 75)
	 CHOK L 2 offset (0, 70)
	 CHOK L 2 offset (0, 65)
	 CHOK L 2 offset (0, 60)
	 CHOK L 2 offset (0, 55)
	 CHOK L 2 offset (0, 32)
	 Goto Ready
   }
}

Actor BotChoketeeth-Vomit : Weapon
{
	Weapon.SlotNumber 1
	inventory.icon "CHOKEAT2"
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
//   Obituary "%o was munched by %k" 
   +WEAPON.MELEEWEAPON
   Weapon.Kickback 0
   Weapon.YAdjust 0
   +INVENTORY.UNDROPPABLE
   +WEAPON.NO_AUTO_SWITCH
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      CHOK L 1 A_WeaponReady
      Loop
   Deselect:
      TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
	  CHOK L 1 A_Lower
      Loop
   Select:
      TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
      CHOK L 1 A_Raise
      Loop
   Fire:
	TNT1 A 0 A_Jump(50,"Altfire")
	 CHOK L 0 A_Playweaponsound("chokeattack")
	 CHOK L 1 A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-50, 135) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-40, 115) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-30, 95) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-20, 75) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 1 offset (-10, 55) A_SpawnItemEx("ChokeAttack", 0, 0 ,28, momx, momy, 0, 0, 40)
	 CHOK L 5 offset (0, 32)
	 goto Ready
	Altfire:
	 CHOK L 1 A_JumpIfInventory("VomitPoints", 100, "VomitBonus")
	 CHOK L 1 A_JumpIfInventory("VomitPoints", 1, 4)
	 CHOK L 1 A_Jump(256, 2) // These dont work actually
	 CHOK L 1 HealThing(25)
	 CHOK L 1 A_JumpIfInventory("VomitPoints", 1, 1)
	 Goto Ready
	 CHOK L 0 A_PlaySound("chokevomit", 1)
	 CHOK L 0 ACS_ExecuteAlways(774, 0, FAS_ChokeVomit)
	 CHOK LLL 1 offset (0, 95) A_FireCustomMissile("ChokeVomitNew", random(-30,30), 1, 0, 3)
	 CHOK L 0 A_TakeInventory("VomitPoints", 1)
	 CHOK L 0 A_JumpIfInventory("VomitPoints", 1, 1)
	 Goto Ready
	 CHOK L 0 A_JumpIf(ACS_ExecuteWithResult(757) == 1, 1)
	 Goto Altfire+6
	 CHOK L 0 A_PlaySound("chokevomit", 1)
	 Goto Altfire+6
  VomitBonus:
	 CHOK L 0 ACS_ExecuteAlways(983,0)
	 CHOK L 0 ACS_ExecuteAlways(774, 0, FAS_ChokeBloodFeast)
	 CHOK L 0 A_SpawnItemEx("GIBBER", 64, 0, 0, 0, 0, 0, 0, 160, 0)
	 CHOK L 0 A_SpawnItemEx("GIBBER", -64, 0, 0, 0, 0, 0, 0, 160, 0)
	 CHOK L 0 A_SpawnItemEx("GIBBER", 0, 64, 0, 0, 0, 0, 0, 160, 0)
	 CHOK L 0 A_SpawnItemEx("GIBBER", 0, -64, 0, 0, 0, 0, 0, 160, 0)
	 CHOK LL 0 A_PlaySoundEx("ENJOYFEAST", 5)
	 CHOK L 1 A_FireCustomMissile("GibExploder")
	 TNT1 A 0 A_SpawnItemEx("CircleSpawner")
	 CHOK L 5 offset(0,32) A_GiveInventory("HealthBonus", 5)
	 CHOK L 5 offset(0,40) A_GiveInventory("HealthBonus", 5)
	 CHOK L 5 offset(0,48) A_GiveInventory("HealthBonus", 5)
	 CHOK L 5 offset(0,56) A_GiveInventory("HealthBonus", 5) 
	 CHOK L 5 offset(0,64) A_GiveInventory("HealthBonus", 5)
	 CHOK L 5 offset(0,72) A_GiveInventory("HealthBonus", 5)
	 CHOK L 5 offset(0,80) A_GiveInventory("HealthBonus", 5)
	 CHOK L 5 offset(0,88) A_GiveInventory("HealthBonus", 5)
	 CHOK L 0 A_TakeInventory("VomitPoints", 1)
	 CHOK L 0 ACS_ExecuteAlways(982,0)
	 Goto Altfire+6
   }
}

Actor BotCreeperWeapon: Weapon
{
   Weapon.SlotNumber 1
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   inventory.icon "CREEPATT"
   Obituary "%k sucked out %o's soul." 
   Weapon.AmmoType2 "GhoulAmmo"
   Weapon.AmmoGive 0
   Weapon.AmmoUse2 0
   Weapon.Kickback 0
   //+WEAPON.MELEEWEAPON 
   +WEAPON.NOALERT
   +INVENTORY.UNDROPPABLE
   +WEAPON.ALT_AMMO_OPTIONAL
   +WEAPON.NOAUTOAIM
   Weapon.YAdjust 0
   States
   {
   Spawn:
      BPAK A 400
      Stop
   Ready:
      CREW A 1 A_WeaponReady
      Loop
   Deselect:
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
	  CREW A 1 A_Lower
      Loop
   Select:
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
      CREW A 1 A_Raise
      Goto Select+1
   Fire:
	TNT1 A 0 A_Jump(30,"Altfire")
	TNT1 A 0 A_Jump(15,"DrainBall")
     CREW A 0 A_FireCustomMissile("CreeperAttack", 0,0,0,0)
	 CREW ABCDEFGH 1
	 CREW IJKLMNO 3
	 goto Ready
   Altfire:
     CREW A 0 A_FireCustomMissile("CreeperBall", 0, 1, 0, 0)
     CREW AON 3
	 CREW MNO 4
	 CREW A 0 A_FireCustomMissile("CreeperBall", 0, 1, 0, 0)
     CREW AON 3
	 CREW MNO 4
	 Goto Ready
	DrainBall:
		CRE2 A 0 A_FireCustomMissile("CreeperHealBall",0,0,0,0)
	 CRE2 A 0 A_PlaySound("CreeperHealBallFire", CHAN_VOICE)
     CRE2 AON 3
	 CRE2 MNO 4
	 Goto Ready
   }
}

Actor BotFrostTeeth-Breath : Weapon
{
   +WEAPON.DONTBOB
   Weapon.SelectionOrder 350
   Inventory.PickupSound ""
   Inventory.PickupMessage ""
   Weapon.SlotNumber 1
   Weapon.AmmoType "FrostAmmo"
   Weapon.AmmoGive 1
   Weapon.AmmoUse 1
   +WEAPON.MELEEWEAPON
   Weapon.Kickback 0
   Weapon.YAdjust 0
   +INVENTORY.UNDROPPABLE
   +WEAPON.ALT_AMMO_OPTIONAL
   inventory.icon "FROSTATT"
   States
   {
   Spawn:
	  BPAK A 400
      Stop
   Ready:
      FROB VVVVV 1 A_WeaponReady
	  FROB VVVVV 1 A_WeaponReady
	  FROB V 0 A_GiveInventory("FrostAmmo", 2)
	  FROB VVVVV 1 A_WeaponReady
	  FROB VVVVV 1 A_WeaponReady
      FROB V 0 A_GiveInventory("FrostAmmo", 2)
	  TNT1 AA 0 A_GiveInventory("ArmorBonus", 1)
	  TNT1 A 0 A_GiveInventory("HealingCheck", 1)
      Loop
   Deselect:
      FROB V 0 A_StopSoundEx("Weapon")
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
      FROB V 1 A_Lower
      Loop
   Select:
	  TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_FROSTBITE)
	  TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
      FROB V 1 A_Raise
      Goto Select+1
   Fire:
		TNT1 A 0 A_Jump(40,"Altfire")
     FROB V 0 A_Playweaponsound("FrostChomp")
	 FROB V 0 A_Recoil(-20)
     FROB V 2 offset (0, 55)
     FROB V 2 offset (0, 65)
     FROB V 2 offset (0, 75)
     FROB V 2 offset (0, 95)
     FROB V 2 offset (0, 105)
     FROB V 2 offset (0, 135)
	 FROB V 0 A_Stop
	 FROB V 0 A_SpawnItemEx("IceChunkFB", 0, random(-22,22), random(2,15), momx, momy, random(8,12), random(-8,8),40)
	 FROB V 0 A_JumpIfInventory("Crunched",1,"Take")
	 FROB V 0 A_Playweaponsound("FrostTeeth")
     FROB V 3 offset (0, 38) A_FireCustomMissile("FrostAttack", 0, 0 ,0)
	 FROB VV 0 A_SpawnItemEx("IceChunkFB", 0, random(-22,22), random(2,15), momx, momy, random(8,12), random(-8,8),40)
     FROB V 3 offset (0, 29)
	 FROB VV 0 A_SpawnItemEx("IceChunkFB", 0, random(-22,22), random(2,15), momx, momy, random(8,12), random(-8,8),40)
     FROB V 3 offset (0, 34)
	 FROB VV 0 A_SpawnItemEx("IceChunkFB", 0, random(-22,22), random(2,15), momx, momy, random(8,12), random(-8,8),40)
	 FROB V 3 
	 FROB V 3 A_Refire
	 FROB V 0 A_TakeInventory("Crunched",999)
     goto Ready
   Take:
     FROB V 0 A_TakeInventory("Crunched",999)
	 Goto Fire+14
   Altfire:
     FROB V 0 A_GiveInventory("Clip",1)
     FROB V 0 A_PlaySoundEx("FrostBreathStart","Weapon")
     FROB V 3 offset (0, 55) A_TakeInventory("FrostAmmo",1)
     FROB V 3 offset (0, 75)
     FROB V 3 offset (0, 105)
     FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
	 FROB V 0 offset (0, 135) A_FireCustomMissile("FrozenWind",random(-15,15),1,0)
	 FROB V 3 offset (0, 135)
     FROB V 4 offset (0, 135)
     FROB V 0 A_Refire
	 FROB V 0 A_StopSoundEx("Weapon")
	 FROB V 0 A_PlaySoundEx("FrostBreathEnd","Weapon")
     FROB V 1 offset (0, 135)
     FROB V 1 offset (0, 105)
     FROB V 1 offset (0, 75)
     FROB V 1 offset (0, 55)
     FROB V 0 offset (0, 34)
	 FROB V 0 A_TakeInventory("Clip",1)
     Goto Ready
   }
}

actor BotSawLauncher : Weapon
{
  obituary "%o was ripped to shreds by %k's Buzz Saws."
  radius 20
  height 16
  //decal "BulletChip"
  inventory.pickupmessage "You got the Buzz Saw Launcher!"
  weapon.selectionorder 11
  weapon.kickback 100
  weapon.ammotype "SawAmmo"
  weapon.ammouse1 1
  weapon.ammotype2 "SawAmmo"
  weapon.ammouse2 1
  weapon.ammogive 8
  Weapon.SlotNumber 2
  +INVENTORY.UNDROPPABLE
  //Weapon.AmmoUse2 1
  //Weapon.AmmoType2 "HollyAmmo"
  inventory.icon "BLADL"
  +WEAPON.NOAUTOAIM
//  +WEAPON.DONTBOB
  states
  {
  Spawn:
    TNT1 A 400
    stop
  Ready:
    METB A 1 A_WeaponReady
    loop
  Deselect: 
	METB A 1 A_Lower
	Loop
  Select:
    METB A 1  A_Raise 
    Goto Select+1
  Fire:
    METB ABC 3
	METB D 3 A_PlayWeaponSound("SawClick")
	METB A 10  A_FireCustomMissile("BuzzSawThrown2", 0, 1, 6, 0)
	METB A 1 A_Refire
    goto Ready
  }
}

ACTOR BotDiggaWep : Weapon
	{
     Weapon.SelectionOrder 500
     Obituary "%o was impaled by by %k."
     inventory.icon "SPIKEZ"
     Inventory.PickupMessage ""
     DamageType "Impale"
     Weapon.AmmoUse 0
     +Weapon.dontbob
     +WEAPON.NOAUTOAIM
     +Weapon.noautofire
      States
     {
      Spawn:
           TNT1 A -1
           Loop
      Ready:
           DEFT A 1 A_WeaponReady
           Loop
      Fire:
		TNT1 A 0 A_Jump(30,"Altfire")
			DEFT A 0 A_GiveInventory("HerpAttackCheck",1)
			DEFT A 0 A_JumpIfInventory("HerpCheck",1,"HerpBug")
            CSLM A 0 a_jumpifinventory("LeapOfFaith2", 1, "ready")
            HTFX F 0 a_jumpifinventory("BusyFlying", 1, "ready")
            HTFX F 0 a_jumpifinventory("LeapOfFaith", 1, "ready")
			DEFT A 1
            TNT1 A 0 ACS_EXECUTEALWAYS(500, 0)
            DEFT A 1
            TNT1 A 0 A_Stop
            CLA3 B 0 A_spawnitemex("DiggaSpike", 72, 0, 0, 0, 0, 0, 0, 0, 0)
            CLA3 B 0 A_spawnitemex("DiggaSpike", 56, 56, 0, 0, 0, 0, 0, 0, 0)
            CLA3 B 0 A_spawnitemex("DiggaSpike", 0, 72, 0, 0, 0, 0, 0, 0, 0)
            CLA3 B 0 A_spawnitemex("DiggaSpike", -56, 56, 0, 0, 0, 0, 0, 0, 0)
            CLA3 B 0 A_spawnitemex("DiggaSpike", -72, 0, 0, 0, 0, 0, 0, 0, 0)
            CLA3 B 0 A_spawnitemex("DiggaSpike", -56, -56, 0, 0, 0, 0, 0, 0, 0)            
            CLA3 B 0 A_spawnitemex("DiggaSpike", 0, -72, 0, 0, 0, 0, 0, 0, 0)
            CLA3 B 0 A_spawnitemex("DiggaSpike", 56, -56, 0, 0, 0, 0, 0, 0, 0)
            TNT1 A 0 A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			TNT1 A 0 A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			TNT1 A 0 A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			TNT1 A 0 A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			CSLM A 0 a_stopsoundex("body")
            TNT1 AAAA 0 a_playsoundex("DIGAT1", 5)
			DEFT A 1 Offset(0, 48)
            DEFT A 1 Offset(0, 56)
            DEFT A 1 Offset(0, 66)
            DEFT A 1 Offset(0, 72)
            DEFT A 2 Offset(0, 86)
            DEFT A 2 Offset(0, 96)
            DEFT A 3 Offset(0, 106)
            DEFT A 1 Offset(0, 80)
            DEFT A 2 Offset(0, 66)
            DEFT AA 0 Offset(0, 52) // A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			DEFT A 2 Offset(0, 52) A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
            DEFT A 1 Offset(0, 32) A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			DEFT A 1 Offset(0, 22) A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
			DEFT A 1 Offset(0, 14) A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
            DEFT A 3 Offset(0, 13)// A_FireCustomMissile("ImpaleAttack", 0, 0 ,0)
            DEFT A 2 Offset(0, 12)
            DEFT A 1 Offset(0, 19)
			DEFT A 1 Offset(0, 29)
			DEFT A 1 Offset(0, 33)
			DEFT A 40 Offset(0, 33)
			DEFT A 60 A_Refire
      goto ready
	HerpBug:
		DEFT A 0 A_TakeInventory("HerpCheck",1)
		DEFT A 0 A_TakeInventory("HerpAttackCheck",1)
		DEFT A 5 A_WeaponReady(WRF_NOPRIMARY)
		goto Fire
    AltFire:
	  TNT1 A 0 A_GunFlash
      DEFT A 1
	  CLA3 B 0 a_jumpifinventory("LeapCoolDown", 1, "Ready")
	  DEFT A 1
      CLA3 B 0 a_jumpifinventory("Leapoffaith", 1, "Ready")
      CLA3 B 0 a_giveinventory("leapoffaith", 1)
	  TNT1 A 0 A_ChangeFlag("FLOORHUGGER", 0)
	  TNT1 AA 0 a_playsoundex("DIGAT2", 5)
      DEFT A 1
	  TNT1 A 0 A_GiveInventory("JumpingJehosaphat", 1)
	  TNT1 A 0 A_GiveInventory("CheckAchievements", 1)
      CLA3 B 0 ACS_EXECUTEALWAYS(501, 0)
      DEFT A 3
      goto Fire
      Deselect:
           DEFT A 1 A_Lower
           Loop
      Select:
           DEFT A 1 A_Raise
           Loop  
      }
}

Actor BotGhostHands : Weapon
{
	Weapon.SelectionOrder 1
	Weapon.SlotNumber 1
	Weapon.AmmoUse1 0
	Weapon.AmmoGive1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive2 0
	Weapon.AmmoType2 "InvisibleCounter"
	Inventory.Icon "IHUDA0"
	Obituary "%o was sent to the nether realm by %k"
	+WEAPON.NOAUTOAIM
	+WEAPON.NOAUTOFIRE
	+INVENTORY.UNDROPPABLE
	+NOALERT 
	States 
	{ 
	Spawn: 
		TNT1 A 1
		Stop 
	Ready: 
		ICEH A 1 A_WeaponReady 
		Goto Ready
	Deselect:
		ICEH A 1 A_Lower
		Loop
	Select: 
		TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_ICEFIEND_SPIKES)
		ICEH A 1 A_Raise
		Goto Select+1
	AltFire:
		TNT1 A 0 A_jumpIfInventory("NightmareCleaveCooldown", 1, "NotReady")
		ICEH A 1
		ICEH A 0 A_JumpIfInventory("IcefiendInvisible", 1, "Ready")
		ICEH A 0 A_SetTranslucent (1.0, 0)
		ICEH BCDE 1
		TNT1 A 0 A_PlayWeaponsound("DarkCleave")
		TNT1 A 0 A_FireCustomMissile("DarknessFloorhugger", 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx("NightMareExploder", 40, 0, 0)
		TNT1 A 0 A_SpawnItemEx("NightmareShadow", 12, -20, 44, 6, 0, -1)
		TNT1 A 0 A_SpawnItemEx("NightmareShadow", 12, -10, 44, 6, 0, -1)
		TNT1 A 0 A_SpawnItemEx("NightmareShadow", 12, 0, 44, 6, 0, -1)
		TNT1 A 0 A_SpawnItemEx("NightmareShadow", 12, 10, 44, 6, 0, -1)
		TNT1 A 0 A_SpawnItemEx("NightmareShadow", 12, 20, 44, 6, 0, -1)
		TNT1 A 0 A_GiveInventory("NightmareCleaveCooldown", 1)
		TNT1 A 0 ACS_executeAlways(908, 0, 6)
		ICEH E 1
		ICEH FG 2
		ICEH H 3
		ICEH GFECD 1
		ICEH B 1
		Goto Fire
	NotReady:
		ICEH A 1
	Goto Ready
	Fire:
		TNT1 A 0 A_Jump(50,"Altfire")
	    ICEH A 1
		ICEH A 0 A_JumpIfInventory("IcefiendInvisible", 1, "Ready")
		ICEH A 0 A_SetTranslucent (1.0, 0)
		ICEH A 0 A_PlayWeaponSound("IcefiendMelee")
		ICEV BC 1
		ICEV DE 2 A_FireCustomMissile("IcefiendMeleeProjectile")
		ICEV FG 3
		ICEV H 4
		ICEH A 1 A_refire
		Goto Ready
	}
}

Actor BotMorphScreamer : Weapon
{
	Weapon.SlotNumber 1
	Weapon.SelectionOrder 350
	Weapon.AmmoType2 "MorphAmmo"
	Weapon.AmmoGive2 0
	Weapon.AmmoUse2 0
	Weapon.Kickback 0
	Weapon.YAdjust 0
	Inventory.Icon "MOPHATT" 
	+WEAPON.DONTBOB
	+WEAPON.MELEEWEAPON
	+INVENTORY.UNDROPPABLE
	States
	{
	Spawn:
		MOPW A 1
		Stop
	Ready:
		MOPW A 15
		MOPW A 1 A_WeaponReady
		Goto Ready+1
	Deselect:
		MOPW AAAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		MOPW A 1 A_Lower
		Loop
	Select:
		MOPW AAAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		MOPW A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_Jump(51,"Altfire")
		MOPW B 1 
		TNT1 A 0 A_JumpIfInventory("MohophRange", 1, "FireX")
		MOPW B 7 A_FireCustomMissile("MohophAttack")
		MOPW C 8 A_FireCustomMissile("MohophAttack")
		MOPW D 8 A_FireCustomMissile("MohophAttack")
		MOPW E 3 A_FireCustomMissile("MohophAttack")
		MOPW E 5 ACS_ExecuteAlways(782,0)
		MOPW A 45 A_FireCustomMissile("MohophAttack2")
		Goto Ready+1
	FireX:
		MOPW B 7 A_FireCustomMissile("MohophAttackX")
		MOPW C 8 A_FireCustomMissile("MohophAttackX")
		MOPW D 8 A_FireCustomMissile("MohophAttackX")
		MOPW E 3 A_FireCustomMissile("MohophAttackX")
		MOPW E 5 ACS_ExecuteAlways(782,0)
		MOPW A 45 A_FireCustomMissile("MohophAttack2X")
		Goto Ready+1	
	AltFire:
	    MOPW B 1 A_GunFlash
		MOPW B 7
		MOPW C 8
		MOPW A 45 A_FireCustomMissile("MohophAttackRange", 0, 1, 0, -8)
		Goto Ready+1
	}
}
