// --------------------------------------------------------------------------
//
// Bare Fists
//
// --------------------------------------------------------------------------

ACTOR BareFists : LowWeapon replaces Fist
{
	+WEAPON.MELEEWEAPON
	+INVENTORY.UNDROPPABLE
	+WEAPON.CHEATNOTWEAPON
	Weapon.SelectionOrder 3700
	Weapon.Kickback 100
	Weapon.SlotNumber 1
	Weapon.bobstyle inversesmooth
  	Weapon.bobspeed 2.0
	Weapon.bobrangex 0.1
	Weapon.bobrangey 0.3
	Weapon.SlotNumber 1
	Weapon.UpSound "weapons/upwp2"
	Obituary "You were knocked-out."
	Tag "Bare Fists"
	States
	{
	Ready:
		FISG A 1 A_WeaponReady
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpifInventory("ThrowTNT",1,"TNT")
		Loop
	Deselect:
		TNT1 A 0 A_PlaySound("weapons/swap",6)
		FISG A 1 Offset (8, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (16, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (24, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (32, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (40, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (48, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (56, 0) A_Lower
		TNT1 A 0 A_Lower
		FISG A 1 Offset (64, 0) A_Lower
		TNT1 A 1 A_Lower
		Wait
	Select:
		FISG A 1 Offset (64, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (56, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (48, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (40, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (32, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (24, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (16, 0) A_Raise
		TNT1 A 0 A_Raise
		FISG A 1 Offset (8, 0) A_Raise
		TNT1 A 0 A_Raise
		Wait
	Fire:
		TNT1 A 0 A_JumpIfInventory("Superblow",1,"Combo")
		FISG B 1
		LEFF ABC 1 Offset (0, 39)
		TNT1 A 0 A_Recoil(-1)
		LEFF D 1 Offset (0, 32) A_CustomPunch (2,0,0,"FightPuff") 
		LEFF E 1 Offset (0, 42) 
		LEFG ABCDE 1
		Goto Ready
	AltFire:
		TNT1 A 0 A_JumpIfInventory("Superblow",1,"Combo")
		FISG B 1
		RIGF ABC 1 Offset (0, 52)
		TNT1 A 0 A_Recoil(-1)
		RIGF D 1 Offset (0, 36) A_CustomPunch (2,0,0,"FightPuff2") 
		RIGF E 1 Offset (0, 32)
		RIGG ABCDE 1
		Goto Ready
	Kick:
		FISG B 1
		FISG B 1 Offset(0,36)
		KICF A 1 Offset(0,32)
		KICF BCDE 1
		KICF FG 1 A_Recoil(-1)
		KICF H 2 A_CustomPunch (5,0,0,"FightPuff3") 
		KICF IHGFEDC 1 
		KICF BA 1 A_Recoil(+1)
		Goto Ready
	AltKick:
		FISG B 1
		FISG B 1 Offset(0,36)
		KIK2 AB 1 Offset(0,32)
		KIK2 C 2 A_Recoil(-3)
		KIK2 D 3 A_CustomPunch (5,0,0,"FightPuff3") 
		KIK2 E 1 A_Recoil(+1)
		KIK2 ECBA 1
		Goto Ready
	LeftAltKick:
		FISG B 1
		FISG B 1 Offset(0,36)
		KIK1 AB 1 Offset(0,32)
		KIK1 C 2 A_Recoil(-3)
		KIK1 D 3 A_CustomPunch (5,0,0,"FightPuff3") 
		KIK1 E 1 A_Recoil(+1)
		KIK1 ECBA 1
		Goto Ready
	Roundhouse:
		FISG B 1
		FISG B 1 Offset(0,36)
		TNT1 A 0 Offset(-1,32)
		KI3K ABCDE 1 A_Recoil(-2)
		KI3K F 3 A_CustomPunch (9,0,0,"FightPuff3") 
		KI3K GHIJK 2 
		Goto Ready
	DragonKick:
		TNT1 A 8 Offset(-1,32)
		KI3K ABC 1 A_Recoil(-1)
		KI3K DE 2 ThrustThingZ (0, 30, 0, 0)
		TNT1 A 0 ThrustThing(angle*256/360, 8, 0, 0)
		TNT1 A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -31)
		KI3K F 3 A_CustomPunch(10,0,0,"FightPuff3") 
		KI3K GHIJK 2
		Goto Ready
	Combo:
		TNT1 A 0 A_Jump(96,"Sequence1")
		TNT1 A 0 A_Jump(96,"Sequence2")
		TNT1 A 0 A_Jump(96,"Sequence3")
		TNT1 A 0 A_Jump(96,"Sequence4")
		TNT1 A 0 A_Jump(96,"Sequence5")
		TNT1 A 0 A_Jump(96,"Sequence6")
		TNT1 A 0 A_Jump(96,"Sequence7")
	Sequence1:
		FISG B 1
		LEFF ABC 1 Offset (0, 39)
		TNT1 A 0 A_Recoil(-1)
		LEFF D 1 Offset (0, 32) A_CustomPunch (5,0,0,"FightPuff") 
		LEFF E 1 Offset (0, 42) 
		LEFG ABCDE 1
		RIGF ABC 1 Offset (0, 52)
		TNT1 A 0 A_Recoil(-1)
		RIGF D 1 Offset (0, 36) A_CustomPunch (5,0,0,"FightPuff2") 
		RIGF E 1 Offset (0, 32)
		RIGG ABCDE 1
		TNT1 A 0 A_Jump(256, "Kick")
		TNT1 A 0 A_Jump(256, "AltKick")
		TNT1 A 0 A_Jump(256, "LeftAltKick")
		Goto Ready
	Sequence2:
		FISG B 1
		FISG B 1 Offset(0,36)
		KICF A 1 Offset(0,32)
		KICF BCDE 1
		KICF FG 1 A_Recoil(-1)
		KICF H 2 A_CustomPunch (5,0,0,"FightPuff3") 
		KICF IHGFEDC 1 
		KICF BA 1 A_Recoil(+1)
		KIK2 AB 1
		KIK2 C 2 A_Recoil(-3)
		KIK2 D 3 A_CustomPunch (8,0,0,"FightPuff3") 
		KIK2 E 1 A_Recoil(+1)
		KIK2 ECBA 1
		TNT1 A 0 A_Jump(256, "Roundhouse")
		Goto Ready
	Sequence3:
		KIK2 AB 1
		KIK2 C 2 A_Recoil(-3)
		KIK2 D 3 A_CustomPunch (8,0,0,"FightPuff3") 
		KIK2 E 1 A_Recoil(+1)
		KIK2 ECBA 1
		FISG B 1
		FISG B 1 Offset(0,36)
		KICF A 1 Offset(0,32)
		KICF BCDE 1
		KICF FG 1 A_Recoil(-1)
		KICF H 2 A_CustomPunch (5,0,0,"FightPuff3") 
		KICF IHGFEDC 1 
		KICF BA 1 A_Recoil(+1)
		Goto Ready
	Sequence4:
		KIK1 AB 1
		KIK1 C 2 A_Recoil(-3)
		KIK1 D 3 A_CustomPunch (8,0,0,"FightPuff3") 
		KIK1 E 1 A_Recoil(+1)
		KIK1 ECBA 1
		KIK1 AB 1
		KIK1 C 2 A_Recoil(-3)
		KIK1 D 3 A_CustomPunch (8,0,0,"FightPuff3") 
		KIK1 E 1 A_Recoil(+1)
		KIK1 ECBA 1
		KIK1 AB 1
		KIK1 C 2 A_Recoil(-3)
		KIK1 D 3 A_CustomPunch (8,0,0,"FightPuff3") 
		KIK1 E 1 A_Recoil(+1)
		KIK1 ECBA 1
		Goto Ready
	Sequence5:
		FISG B 1
		RIGF ABC 1 Offset (0, 52)
		TNT1 A 0 A_Recoil(-1)
		RIGF D 1 Offset (0, 36) A_CustomPunch (5,0,0,"FightPuff2") 
		RIGF E 1 Offset (0, 32)
		RIGG ABCDE 1
		RIGF ABC 1 Offset (0, 52)
		TNT1 A 0 A_Recoil(-1)
		RIGF D 1 Offset (0, 36) A_CustomPunch (5,0,0,"FightPuff2") 
		RIGF E 1 Offset (0, 32)
		RIGG ABCDE 1
		TNT1 A 0 A_Jump(256, "LeftAltKick")
		Goto Ready
	Sequence6:
		FISG B 1
		LEFF ABC 1 Offset (0, 39)
		TNT1 A 0 A_Recoil(-1)
		LEFF D 1 Offset (0, 32) A_CustomPunch (5,0,0,"FightPuff") 
		LEFF E 1 Offset (0, 42) 
		LEFG ABCDE 1
		LEFF ABC 1 Offset (0, 39)
		TNT1 A 0 A_Recoil(-1)
		LEFF D 1 Offset (0, 32) A_CustomPunch (5,0,0,"FightPuff") 
		LEFF E 1 Offset (0, 42) 
		LEFG ABCDE 1
		TNT1 A 0 A_Jump(256, "Kick")
		TNT1 A 0 A_Jump(256, "AltKick")
		TNT1 A 0 A_Jump(256, "Roundhouse")
		TNT1 A 0 A_Jump(256, "DragonKick")
	Sequence7:
		FISG B 1
		FISG B 1 Offset(0,36)
		KIK2 AB 1 Offset(0,32)
		KIK2 C 2 A_Recoil(-3)
		KIK2 D 3 A_CustomPunch (5,0,0,"FightPuff3") 
		KIK2 E 1 A_Recoil(+1)
		KIK2 ECBA 1
		KIK2 AB 1
		KIK2 C 2 A_Recoil(-3)
		KIK2 D 3 A_CustomPunch (5,0,0,"FightPuff3") 
		KIK2 E 1 A_Recoil(+1)
		KIK2 ECBA 1
		KIK2 AB 1
		KIK2 C 2 A_Recoil(-3)
		KIK2 D 3 A_CustomPunch (5,0,0,"FightPuff3") 
		KIK2 E 1 A_Recoil(+1)
		KIK2 ECBA 1
		TNT1 A 0 A_Jump(256, "DragonKick")
		Goto Ready
//  Kick Actions
	Kick:
		TNT1 A 0 A_JumpIf (momZ > 0, "AirKick")
		TNT1 A 0 A_JumpIf (momZ < 0, "AirKick")
		TNT1 A 0 A_JumpIfInventory("SuperBlow",1,"BerserkKick")
        FISG B 1
		FISG B 1 Offset(0,36)
		KICF A 1 Offset(0,32)
		KICF BCDE 1
		KICF FG 1 A_Recoil(-1)
		KICF H 2 A_CustomPunch (5,0,0,"FightPuff3") 
		KICF IHGFEDC 1 
		KICF BA 1 A_Recoil(+1)
		Goto Ready
	AirKick:
		TNT1 A 0 A_JumpIfInventory("SuperBlow",1,"AirBerserkKick")
		FISG B 1
		FISG B 1 Offset(0,36)
		TNT1 A 0 Offset(-1,32)
		KI3K ABCDE 1
		KI3K F 3 A_CustomPunch (9,0,0,"FightPuff3") 
		KI3K GHIJK 2 
		Goto Ready
	BerserkKick:
		FISG B 1
		FISG B 1 Offset(0,36)
		TNT1 A 0 Offset(-1,32)
		KI3K ABCDE 1 A_Recoil(-2)
		KI3K F 3 A_CustomPunch (9,0,0,"FightPuff3") 
		KI3K GHIJK 2 
		Goto Ready
	AirBerserkKick:
		FISG B 1
		FISG B 1 Offset(0,36)
		TNT1 A 0 Offset(-1,32)
		KI3K ABCDE 1 A_Recoil(-2)
		KI3K F 3 A_CustomPunch (12,0,0,"FightPuff3") 
		KI3K GHIJK 2 
		Goto Ready
// TNT Actions
	TNT:
		TNT1 A 0 A_JumpIfInventory("TNTammo",1,1)
		Goto NoTNT
		TNT1 A 0 A_JumpIf(waterlevel>2,"YouCannot")
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 Offset(-20,32)
		TAND ABC 2
		TAND D 2 A_PlaySound ("weapons/tnttr")
		TNT1 A 0 A_FireCustomMissile("STNT",0,0,0,0)
		TNT1 A 0 A_TakeInventory("TNTammo",1)
		TAND EDCBA 2
		TNT1 A 0 A_JumpIfInventory("TNTammo",0,"NoTNT")
		FISG A 1 Offset(67, 100)
		FISG A 1 Offset(54, 81)
		FISG A 1 Offset(32, 69)
		FISG A 1 Offset(22, 58)
		FISG A 1 Offset(10, 47)
		FISG A 1 Offset(7, 39)
		FISG A 1 Offset(2, 34)
		Goto Ready
	YouCannot:
		TNT1 A 0 A_Print("You Are Underwater!",8)
		Goto Ready
	NoTNT:
		TNT1 A 0 A_Print("No dynamites left.")
		Goto Ready
	}
}
	
ACTOR FightPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +PUFFONACTORS
  +STRIFEDAMAGE
  ActiveSound "Weapons/CBATK"
  VSpeed 1
  States
  {
	Spawn:
	XDeath:
		TNT1 A 0 A_PlaySound("Weapons/CBHIT")
		Stop
	Crash:
		TNT1 A 0 A_PlaySound("Weapons/CBHIT")
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_SpawnItem("GunSmokeSpawner",0,0,0,0)
		Stop
  }
}  

ACTOR FightPuff2 : FightPuff {}
ACTOR FightPuff3 : FightPuff2 
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +PUFFONACTORS
  +STRIFEDAMAGE
  ActiveSound "Weapons/CBATK"
  VSpeed 1
  States
  {
	Spawn:
	XDeath:
		TNT1 A 0 A_PlaySound("Weapons/kickhit")
		Stop
	Crash:
		TNT1 A 0 A_PlaySound("Weapons/kickhit")
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_SpawnItem("GunSmokeSpawner",0,0,0,0)
		Stop
  }
}  


ACTOR KickAttack: FastProjectile
{
	Radius 6
	Height 6
	DamageType Melee
	Projectile 
	+FORCEXYBILLBOARD
	+NOEXTREMEDEATH
	DeathSound "Weapons/CBHIT"
	AttackSound "Weapons/CBHIT"
	ActiveSound "Weapons/CBATK"
    Damage 8
    Speed 30
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	Death:
		PUFF A 3
		PUFF BCD 3
		Stop
	}
}

ACTOR AirKickAttack: KickAttack
{
	Radius 12
	Height 12
    Damage 25
}