ACTOR SwungLeft : Inventory
{
	Inventory.MaxAmount 1
}

ACTOR Katana : Weapon
{
  +WEAPON.NOAUTOAIM
  Weapon.Kickback 50
  Obituary "%k sliced %o into pork cutlets with a katana."
  Tag "Katana"
  +WEAPON.MELEEWEAPON
  +WEAPON.NOALERT
  Weapon.BobStyle Smooth
  Weapon.BobSpeed 2.5
  Weapon.BobRangeX 0.5
  Weapon.BobRangeY 0.3
  States
  {
  Ready:
	PPSS A 0 A_JumpIfInventory("PendingQuickness",1,"ToQuick")
	PPSS A 0 A_JumpIfInventory("DoBlocking",1,"DoParry")
    KATA A 1 A_WeaponReady
    Goto Ready
  DoParry:
	TNT1 A 0 A_TakeInventory("DoBlocking",1)
	TNT1 A 0 A_PlaySoundEx("cloth/knife","SoundSlot5")
	KATB AB 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB C 0 A_ZoomFactor(0.995)
	KATB C 1 A_GiveInventory("IsParrying",1)
	KATB C 0 A_ZoomFactor(0.98)
	KATB D 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB C 0 A_ZoomFactor(0.97)
	KATB E 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB C 0 A_ZoomFactor(0.96)
	KATB F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB C 0 A_ZoomFactor(0.955)
	KATB G 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB C 0 A_ZoomFactor(0.96)
	KATB H 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB E 0 A_TakeInventory("IsParrying",1)
	KATB C 0 A_ZoomFactor(0.97)
	KATB I 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB C 0 A_ZoomFactor(0.98)
	KATB J 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	KATB K 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	Goto Ready
  ToQuick:
	TNT1 A 0 ACS_NamedExecute("ProcessQuick",0,0,0,0)
	GoTo Ready+1
  Deselect:
	 MCSS CBA 1
     TNT1 AAAAAAAAAA 0 A_Lower
	 TNT1 A 1 A_Lower
     Goto Deselect+3
  Select:
	 TNT1 A 0 A_SetCrosshair(16)
	 TNT1 AA 0 A_Raise
	 TNT1 A 1 A_WeaponReady
	 TNT1 A 0 A_PlaySoundEx("cloth/melee","SoundSlot6")
	 Goto SelectAnim
  SelectAnim:
	 KATS A 0 A_PlaySoundEx("katana/select","SoundSlot6")
	 KATS ABCCDEFGHIJKLM 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 TNT1 A 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
  QuickSelect:
	 KATS NOP 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 Goto Ready
  Fire:
	PUNG A 0
	KATA BCD 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	PUNG A 0 A_JumpIf(0 == (ACS_ExecuteWithResult(559,0,0,0)), "SlashLeft")
	PUNG A 0 A_JumpIf(1 == (ACS_ExecuteWithResult(559,0,0,0)), "SlashRight")
	//PUNG A 0 A_JumpIf(2 == (ACS_ExecuteWithResult(559,0,0,0)), "SlashDown")
	Goto AutoLeft
  AutoLeft:
	TNT1 A 0 A_JumpIfInventory("SwungLeft",1,"AutoRight")
	TNT1 A 0 A_GiveInventory("SwungLeft",1)
	TNT1 A 0 A_Jump(255,"SlashLeft","SlashLeftUp")
	Goto SlashLeft
  AutoRight:
	TNT1 A 0 A_TakeInventory("SwungLeft",1)
	TNT1 A 0 A_Jump(255,"SlashRight","SlashRightUp")
	Goto SlashRight
  SlashLeft:
	KATA A 0 A_PlaySoundEx("katana/fire","Weapon")
	KATL A 1 A_SetAngle(angle+0.8)
	KATL B 1 A_SetAngle(angle+1.2)
	KATL C 1 A_SetAngle(angle+2.4)
	MCFI H 0 A_CustomPunch(4*random(1, 10), TRUE, 0, "ZTLeftPuff", 128)
	KATL D 1 A_SetAngle(angle+1.8)
	KATL E 1 A_SetAngle(angle+1.3)
	KATL F 1 A_SetAngle(angle-0.9)
	KATL G 1 A_SetAngle(angle-1.0)
	KATL H 1 A_SetAngle(angle-1.9)
	TNT1 A 1 A_SetAngle(angle-1.7)
	TNT1 A 1 A_SetAngle(angle-0.9)
	TNT1 A 0 A_ReFire("AutoLeft")
	Goto QuickSelect
  SlashLeftUp:
	KATM A 0 A_PlaySoundEx("katana/fire","Weapon")
	KATM ABC 1
	MCFM H 0 A_CustomPunch(4*random(1, 10), TRUE, 0, "ZTLeftPuff", 128)
	KATM DEFGH 1
	TNT1 A 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	TNT1 A 0 A_ReFire("AutoLeft")
	Goto QuickSelect
  SlashRight:
	KATA A 0 A_PlaySoundEx("katana/fire","Weapon")
	KATR A 1 A_SetAngle(angle-0.8)
	KATR B 1 A_SetAngle(angle-1.2)
	KATR C 1 A_SetAngle(angle-2.4)
	MCFI H 0 A_CustomPunch(4*random(1, 10), TRUE, 0, "ZTRightPuff", 128)
	KATR D 1 A_SetAngle(angle-1.8)
	KATR E 1 A_SetAngle(angle-1.3)
	KATR F 1 A_SetAngle(angle+0.9)
	KATR G 1 A_SetAngle(angle+1.0)
	KATR H 1 A_SetAngle(angle+1.9)
	TNT1 A 1 A_SetAngle(angle+1.7)
	TNT1 A 1 A_SetAngle(angle+0.9)
	TNT1 A 0 A_ReFire("AutoLeft")
	Goto QuickSelect
  SlashRightUp:
	KATA A 0 A_PlaySoundEx("katana/fire","Weapon")
	KATQ ABC 1
	MCFI H 0 A_CustomPunch(4*random(1, 10), TRUE, 0, "ZTRightPuff", 128)
	KATQ DEFGH 1
	TNT1 A 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	TNT1 A 0 A_ReFire("AutoLeft")
	Goto QuickSelect
  SlashDown:
    KATA BCD 1 A_SetPitch(Pitch-4.0)
	KATA A 0 A_PlaySoundEx("katana/fire","Weapon")
	KATD ABCD 1 A_SetPitch(Pitch+3.0)
	MCFI H 0 A_CustomPunch(4*random(1, 2), TRUE, 0, "ZTVertPuff", 128)
	KATD E 1 A_SetPitch(Pitch+2.0)
	MCFI H 0 A_CustomPunch(4*random(1, 2), TRUE, 0, "ZTVertPuff", 128)
	KATD F 1 A_SetPitch(Pitch+1.0)
	MCFI H 0 A_CustomPunch(4*random(1, 2), TRUE, 0, "ZTVertPuff", 128)
	KATD G 1 A_SetPitch(Pitch+0.5)
	MCFI H 0 A_CustomPunch(4*random(1, 2), TRUE, 0, "ZTVertPuff", 128)
	KATD H 1 A_SetPitch(Pitch+0.25)
	Goto SelectAnim
	
  }
}