/*
==FISTS==
You've always had these, since getting the new armor
you've given up the ol' knuckledusters. Don't need 'em
with the big plating on these gauntlets! They may not be
as effective as shooting the demons, but it's always 
satisfying giving hellspawn a good left hook.

==REND==
One of the last things that weird guy gave you was
this long sword. You've never really used a sword before,
but it's not all that complicated: Just put the sharp ends
into the faces of whatever you want to stop moving, simple.
You're pretty sure this sword is enchanted with some magic,
because you've put it through hell and it's still as sharp
and unmarked as the day you got it.

==CASTERS==
The armor also comes with two detachable flying guns: one
fires grenades that can steal life energy and heal your
wounds, and the other can fire a blast of energy that
paralyzes demons. You have no idea how these guns work,
but having a hands-free grenade launcher is pretty cool.

*/

actor Rend : weapon
{
	Weapon.SelectionOrder 1200
	Weapon.AmmoUse 0
	Inventory.RestrictedTo "DoomSlayer"
	+CHEATNOTWEAPON
	+NOAUTOAIM
	+UNDROPPABLE
	+WEAPON.AMMO_OPTIONAL
	Tag "Fists"
	Inventory.PickupMessage "You've picked up your hands you somehow dropped. Zharkov is pleased."
	states
	{
	Spawn:
		BAL1 A 1 
		loop
	Select:
		TNT1 A 0
		TNT1 A 1 A_GunFlash ("GadgetStarter",GFF_NOEXTCHANGE)
		TNT1 A 0 A_Jump (30,"hehdraw")
	Draw:
		TNT1 AAAAAA 0 A_Raise
		TNT1 A 0 A_GiveInventory ("UsingSlayerFists",1)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_GiveInventory ("UsingSlayerFists",1)
		TNT1 A 1 A_Raise
		loop
	HehDraw:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("UsingRend",1)
		TNT1 A 0 A_WeaponReady (WRF_NOSWITCH)
		TNT1 A 1 A_PlaySound ("Doomslayer/HEHHENH",0)
		goto draw
	Ready:
		SFT1 EFG 1 A_WeaponReady
		goto RealReady
	RealReady:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		SFT1 A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		loop
	Deselect:
		TNT1 A 0
		TNT1 A 0 A_Jumpifhealthlower (1, "DeadLower")
		SFT1 BCD 1
	Holster:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory ("UsingSlayerFists",99)
		SLB1 AAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		loop
	DeadLower:
		TNT1 A 0
		TNT1 A 0
        TNT1 A 0 A_ClearReFire
		TNT1 A 0 A_GiveInventory ("DeathResetter",1)
		TNT1 A 0 A_StopSound (7)
		TNT1 AAAAAAAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		Wait
	
	Fire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelToss")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelToss")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "FireBFG")
		SFT1 BCD 1
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1,"BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		TNT1 A 1		
		TNT1 A 0 A_JumpIfInventory ("ATKringpowerup",1,"MightyPunch")
	Punch:
		TNT1 A 1
		SFT2 AB 1
		TNT1 A 0 A_Quake(1, 6, 0, 10,"silence")
		TNT1 A 0 A_PlaySound ("Doomslayer/FistSwing",0)
		SFT2 C 1 A_FireCustomMissile ("SlayerPunchAttack",0,0,-5,1)
		SFT2 D 1
		SFT2 EFGG 1 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 7 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 0 A_ReFire ("HardRight")
		SFT1 EFG 1
		goto RealReady
	HardRight:
		SFT3 AB 1
		TNT1 A 0 A_FireCustomMissile ("SlayerPunchAttack2",0,0,3,1)
		TNT1 A 0 A_Recoil (-5)
		TNT1 A 0 A_PlaySound ("DoomSlayer/Sword3",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/Unf",0)
		SFT3 CDC 1 
		SFT3 EE 1
		SFT3 FGHI 1 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 8 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 0 A_ReFire ("Punch")
		SFT1 EFG 1
		goto RealReady
	
	//Berserk Punch attacks, I hate having to fucking copy this
	//shit, but that's how it be with Zandro and using gunflashes.
	MightyPunch:
		TNT1 A 2
		SFT2 AB 1
		TNT1 A 0 A_Quake(1, 6, 0, 10,"silence")
		TNT1 A 0 A_PlaySound ("Doomslayer/FistSwing",0)
		SFT2 C 1 A_FireCustomMissile ("MightySlayerPunchAttack",0,0,-5,1)
		SFT2 D 1
		SFT2 EFGG 1 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 8 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 0 A_ReFire ("MightyHardRight")
		SFT1 EFG 1
		goto RealReady
	MightyHardRight:
		SFT3 AB 1
		TNT1 A 0 A_FireCustomMissile ("MightySlayerPunchAttack2",0,0,3,1)
		TNT1 A 0 A_Recoil (-5)
		TNT1 A 0 A_PlaySound ("DoomSlayer/Sword3",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/Unf",0)
		SFT3 CDC 1 
		SFT3 EE 1
		SFT3 FGHI 1 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 8 A_Weaponready (WRF_NOPRIMARY)
		TNT1 A 0 A_ReFire ("MightyPunch")
		SFT1 EFG 1
		goto RealReady


	//********************************************************************
	//********************************************************************
	//INHERITANCE STUFF BELOW
	//********************************************************************
	//********************************************************************

		
	//------------------------------------------------------------------
	//------------------------------------------------------------------
		
	//The Quickfire melee attack all of Doomslayer's weapons share
	AltFire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "HolsterBFG")
		SFT1 BCD 1
		TNT1 A 2
	StartSlash:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("UsingRend",1) 
		TNT1 A 0 A_PlaySound ("Doomslayer/SwordUp",0)
		TNT1 A 1 
	Slash:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("ATKringpowerup",1,"MightySlash")
		SRN1 ABC 1
		TNT1 A 0 A_PlaySound ("Doomslayer/sword",0)
		TNT1 A 0 A_FireCustomMissile ("SlayerMelee")
		SRN1 D 1
		SRN1 EFGG 1
		TNT1 A 6
		SRN1 HIJ 1
		TNT1 A 0 A_PlaySound ("Doomslayer/sword",0)
		TNT1 A 0 A_FireCustomMissile ("SlayerMelee2")
		SRN1 K 1
		SRN1 LMNN 1
		TNT1 A 8
		TNT1 A 0 A_TakeInventory ("UsingRend",99)
		TNT1 A 2 A_WeaponReady (WRF_NOSECONDARY)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "HolsterBFG")
		TNT1 A 0 A_ReFire ("Slash")
		TNT1 A 1 A_Jump (256,"AltfireEnd")
		goto RealReady
	
	//Separate state for berserk ring effected slashes,
	//I can't use gunflashes for this cus that's for
	//the shoulder cannon attacks.
	//I hate having to do this crap now.
	MightySlash:
		SRN1 ABC 1
		TNT1 A 0 A_PlaySound ("Doomslayer/sword",0)
		TNT1 A 0 A_FireCustomMissile ("MightySlayerMelee")
		SRN1 D 1
		SRN1 EFGG 1
		TNT1 A 6
		SRN1 HIJ 1
		TNT1 A 0 A_PlaySound ("Doomslayer/sword",0)
		TNT1 A 0 A_FireCustomMissile ("MightySlayerMelee")
		SRN1 K 1
		SRN1 LMNN 1
		TNT1 A 8
		TNT1 A 0 A_TakeInventory ("UsingRend",99)
		TNT1 A 2 A_WeaponReady (WRF_NOSECONDARY)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "HolsterBFG")
		TNT1 A 0 A_ReFire ("Slash")
		TNT1 A 1 A_Jump (256,"AltfireEnd")
		goto RealReady
	


		
	AltfireEnd:
		TNT1 A 2 A_WeaponReady (WRF_NOBOB)
		TNT1 A 0 A_PlaySound ("Doomslayer/SwordDown",0)
		TNT1 A 4 A_WeaponReady (WRF_NOBOB)
		SFT1 EFG 1 A_WeaponReady (WRF_NOBOB)
		goto RealReady

	
	//------------------------------------------------------------------
	//------------------------------------------------------------------
	
	//The shoulder cannons
	GadgetStarter:
		TNT1 A 0
		TNT1 A 1
		goto GadgetReady
	GadgetReady:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("FireSlayerLauncher",1, "FireBombGun")
		TNT1 A 1 A_JumpIfInventory ("FireSlayerStunner",1, "FireStunGun")
		loop
		
	//Stun Caster stuff
	FireStunGun:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("Doomslayer/CasterDraw",0)
		QSG1 ABDE 1
		QSG1 FG 1
		TNT1 A 0 A_TakeInventory ("StunCasterCharge",9999)
		TNT1 A 0 Bright A_FireCustomMissile("SapphireShot",-10,0)
		TNT1 A 0 Bright A_FireCustomMissile("SapphireShot",10,0)
		TNT1 A 0 Bright A_FireCustomMissile("SapphireShot",-5,0)
		TNT1 A 0 Bright A_FireCustomMissile("SapphireShot",5,0)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_PlaySound ("DoomSlayer/StunCaster",0)
		QSG1 H 1 Bright A_FireCustomMissile ("SapphireShot",0,0)
		TNT1 A 0 A_JumpIfInventory ("StunCasterUpgrade",1,"AOEStunBurst")
		QSG1 IIJKLMNOP 1
		TNT1 A 0 A_PlaySound ("Doomslayer/CasterHolster",0)
		goto GadgetReady
	AOEStunBurst:
		TNT1 A 0
		TNT1 A 0 A_FireCustomMissile ("StunCasterBurst",0,0)
		QSG1 IIJKLMNOP 1
		TNT1 A 0 A_PlaySound ("Doomslayer/CasterHolster",0)
		goto GadgetReady
	
	//Bomb Caster stuff
	FireBombGun:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("Doomslayer/CasterDraw",0)
		QGL1 ABDE 1
		QGL1 FG 1
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_PlaySound ("DoomSlayer/BombCaster",0)
		TNT1 A 0 A_TakeInventory ("BombCasterCharge",9999)
		TNT1 A 0 A_TakeInventory ("BombCasterAmmo",1)
		TNT1 A 0 A_JumpIfInventory ("SlayerFlashBombCheck", 1, "FlashBombShot")
		TNT1 A 0 A_JumpIfInventory ("SlayerFireBombCheck", 1, "FireBombShot")
		TNT1 A 0 A_JumpIfInventory ("SlayerThunderBombCheck", 1, "ThunderBombShot")
	NormalBombShot:
		QGL1 H 1 A_FireCustomMissile ("SlayerBomb",0,0,-8,3)
		Goto BombShotFinish
	FlashBombShot:
		QGL1 H 1 A_FireCustomMissile ("SapphireFlashBomb",0,0,-8,3)
		Goto BombShotFinish
	FireBombShot:
		QGL1 H 1 A_FireCustomMissile ("SlayerFireBomb",0,0,-8,3)
		Goto BombShotFinish
	ThunderBombShot:
		QGL1 H 1 A_FireCustomMissile ("SlayerThunderBomb",0,0,-8,3)
		Goto BombShotFinish
		
		
	BombShotFinish:
		QGL1 IJKLMNOPQ 1
		TNT1 A 0 A_PlaySound ("Doomslayer/CasterHolster",0)
		goto GadgetReady
		
	
	//------------------------------------------------------------------
	//------------------------------------------------------------------
	

	ToolEnd:
		TNT1 A 1 A_ClearReFire
		SFT1 EFG 1 A_WeaponReady (WRF_NOBOB)
		goto RealReady
	
	
	//------------------------------------------------------------------
	//------------------------------------------------------------------
	
	//BFG attacks
	DrawBFG:
		TNT1 A 1 A_ClearReFire
		TNT1 A 2
		UBF1 AB 3
		TNT1 A 0 A_PlaySound ("Doomslayer/BFUGUp",0)
		UBF1 CDEFG 2
		UBF1 H 1 A_GiveInventory ("BFGArmed",1)
		Goto BFGReady
	BFGReady:
		UBF1 H 1 A_WeaponReady (WRF_NOSWITCH)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_JumpIfInventory ("UnleasherCancel", 1, "HolsterBFG")
		loop
	FireBFG:
		TNT1 A 0 A_TakeInventory ("SlayerBFGCharge",40)
		TNT1 A 0 A_Quake(2, 8, 0, 10)
		TNT1 A 0 A_PlaySound ("Doomslayer/BFUGBeam",CHAN_WEAPON)
		
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",-10,0,0,5)
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",10,0,0,5)
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",-5,0,0,5)
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",5,0,0,5)
		UBF2 A 1 Bright A_FireCustomMissile("UnmakerBeam",0,0,0,5)		
		UBF2 B 1 Bright 
		TNT1 A 0 A_Quake(2, 8, 0, 10)
		TNT1 A 0 A_PlaySound ("Doomslayer/BFUGBeam",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/BFUGBeam",CHAN_WEAPON)

		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",-10,0,0,5)
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",10,0,0,5)
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",-5,0,0,5)
		TNT1 A 0 A_FireCustomMissile("UnmakerBeam",5,0,0,5)
		UBF2 C 1 Bright A_FireCustomMissile("UnmakerBeam",0,0,0,5)	
		UBF2 D 1 Bright
		TNT1 A 0 A_JumpIfInventory ("UnmakerStack", 8, "BFGFinisher")
		TNT1 A 0 A_GiveInventory ("UnmakerStack",1)
		loop
	
	BFGFinisher:
		UBF3 A 3
		TNT1 A 0 A_TakeInventory ("UnmakerStack",9999)
		UBF3 B 3
		UBF1 FGH 2
		TNT1 A 0 A_PlaySound ("Doomslayer/BFUGFire",CHAN_WEAPON)
		UBF4 AB 2 bright
		TNT1 A 0 A_TakeInventory ("SlayerBFGCharge",999)
		TNT1 A 0 A_Quake(4, 20, 0, 10)
		UBF4 C 2 A_FireCustomMissile ("BFUGBall",0,0,0,5)
		TNT1 A 0 A_Recoil (15)
		UBF4 DEFG 2
		UBF4 G 6
		UBF1 FGH 2
		UBF1 H 6
	HolsterBFG:
		UBF1 H 1 A_TakeInventory ("BFGReady",99)
		UBF1 H 1 A_TakeInventory ("BFGArmed",99)
		TNT1 A 0 A_PlaySound ("Doomslayer/BFUGDown",0)
		UBF1 GEDCA 2
		TNT1 A 7
		TNT1 A 1 A_Jump (256,"ToolEnd")
		goto RealReady
	
	//------------------------------------------------------------------
	//------------------------------------------------------------------
	
	//Barrel attacks
	BarrelGet:
		TNT1 A 0 A_TakeInventory ("UsingRend",99)
		TNT1 A 0 A_ClearReFire
		TNT1 A 0 A_TakeInventory ("BFGReady",99)
		TNT1 A 0 A_TakeInventory ("BFGArmed",99)
		RNID BD 1
		TNT1 A 2
		Goto BarrelStart
	BarrelStart:
		TNT1 A 0
		TNT1 A 1 A_ClearReFire
		TNT1 A 0 A_PlaySound ("Doomslayer/barrellift")
		DS1L ABCDEFG 2 A_WeaponReady (WRF_NOBOB|WRF_NOSWITCH)
		DS1L HIJK 1 A_WeaponReady (WRF_NOBOB|WRF_NOSWITCH)
		Goto BarrelWaiting
	BarrelWaiting:
		DS1L K 1 A_WeaponReady (WRF_NOBOB|WRF_NOSWITCH)
		loop
	BarrelToss:
		TNT1 A 0
		TNT1 A 1 A_ClearReFire
		TNT1 A 0 A_PlaySound ("Doomslayer/Unf",CHAN_WEAPON)
		TNT1 A 6 A_FireCustomMissile ("SlayerThrownBarrel",0,0)
		TNT1 A 1 A_TakeInventory ("BarrelToken",1)
		TNT1 A 1 A_TakeInventory ("GoldenBarrelToken",1)
		TNT1 A 1 A_Jump (256,"ToolEnd")
		goto RealReady
	BarrelCancel:
		TNT1 A 0
		TNT1 A 1 A_ClearReFire
		TNT1 A 4 A_FireCustomMissile ("DroppedBarrel")
		TNT1 A 1 A_TakeInventory ("BarrelToken",1)
		TNT1 A 1 A_TakeInventory ("GoldenBarrelToken",1)
		TNT1 A 3 A_WeaponReady (WRF_NOSECONDARY|WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
		TNT1 A 1 A_Jump (256,"ToolEnd")
		goto RealReady

	//Golden Barrel attacks

	GoldenBarrelGet:
		TNT1 A 0 A_TakeInventory ("UsingRend",99)
		TNT1 A 0 A_ClearReFire
		TNT1 A 0 A_TakeInventory ("BFGReady",99)
		TNT1 A 0 A_TakeInventory ("BFGArmed",99)
		RNID BD 1
		TNT1 A 2
		Goto GoldenBarrelStart
	GoldenBarrelStart:
		TNT1 A 0
		TNT1 A 1 A_ClearReFire
		TNT1 A 0 A_PlaySound ("Doomslayer/barrellift")
		DS2L ABCDEFG 2 A_WeaponReady (WRF_NOBOB|WRF_NOSWITCH)
		DS2L HIJK 1 A_WeaponReady (WRF_NOBOB|WRF_NOSWITCH)
		Goto GoldenBarrelWaiting
	GoldenBarrelWaiting:
		DS2L K 1 A_WeaponReady (WRF_NOBOB|WRF_NOSWITCH)
		loop
	GoldenBarrelToss:
		TNT1 A 0
		TNT1 A 1 A_ClearReFire
		TNT1 A 0 A_PlaySound ("Doomslayer/Unf",CHAN_WEAPON)
		TNT1 A 6 A_FireCustomMissile ("SlayerThrownGoldenBarrel",0,0)
		TNT1 A 1 A_TakeInventory ("BarrelToken",1)
		TNT1 A 1 A_TakeInventory ("GoldenBarrelToken",1)
		TNT1 A 1 A_Jump (256,"ToolEnd")
		goto RealReady
	GoldenBarrelCancel:
		TNT1 A 0
		TNT1 A 1 A_ClearReFire
		TNT1 A 4 A_FireCustomMissile ("DroppedGoldenBarrel")
		TNT1 A 1 A_TakeInventory ("BarrelToken",1)
		TNT1 A 1 A_TakeInventory ("GoldenBarrelToken",1)
		TNT1 A 3 A_WeaponReady (WRF_NOSECONDARY|WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
		TNT1 A 1 A_Jump (256,"ToolEnd")
		goto RealReady
		
	}
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//======================
//=Attack "projectiles"=
//======================



//======================
//Right to left sword slash
//======================

ACTOR SlayerMelee : fastprojectile
{  
	+notimefreeze
	Radius 8
	Height 6
	PROJECTILE
	RENDERSTYLE Translucent
	ALPHA 0.90
	speed 120
	damage (30)
	+bright
	+dontblast
	+LOOKALLAROUND
	+bloodsplatter
	+FORCEXYBILLBOARD
	+thruspecies
	+DONTREFLECT
	+NOEXTREMEDEATH
	+HITTRACER
	decal sweepdecal
	species "friendly"
	scale 0.70
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	xdeath:
		TNT1 A 0
		TNT1 A 1
		SLH2 A 1
		TNT1 A 0 A_PlaySound("Doomslayer/swordhit",0)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger",1, AAPTR_TARGET)
		TNT1 AAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		SLH2 BCDE 1
		stop
	Death:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SpawnDebris ("bladespark")  
		TNT1 A 2 A_PlaySound("Doomslayer/swordwall",0)
		Stop 
	Crash:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SpawnDebris ("bladespark")
		TNT1 A 2 A_PlaySound("Doomslayer/swordwall",0)
		Stop
	}
}

//======================
//Left to right sword slash
//======================

Actor SlayerMelee2 : SlayerMelee
{
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 1 A_SetScale (-0.70,-0.70)
		SLH2 A 1
		TNT1 A 0 A_PlaySound("Doomslayer/swordhit",0)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger",1, AAPTR_TARGET)
		TNT1 AAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		TNT1 A 0 A_JumpIfInventory ("PowerKickedStatus", 1, "StunBreaker",AAPTR_TRACER)
		SLH2 BCDE 1
		stop
	StunBreaker:
		TNT1 A 0 
		TNT1 A 0 A_ChangeFlag ("FORCEPAIN",1)
		SLH2 B 1 bright A_Explode (1,40,0,0,40)
		SLH2 CDE 1
		stop
	}
}


//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------


//PUNCH ATTACKS

//======================
//Left hook
//======================

ACTOR SlayerPunchAttack : SlayerMelee
{
	-bloodsplatter
	+BLOODLESSIMPACT
	damage (20)
	decal SlayerFistDecal
	species "friendly"
	scale 1.50
	ProjectileKickBack 300
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_PlaySound ("Doomslayer/FistHit",0)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		MNSP ABCDD 1
		stop
	Death:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 0 A_FadeOut (0.70)
		TNT1 A 0 A_PlaySound("Doomslayer/FistWall",0)
		DSM1 ABCDEFG 1
		Stop 
	Crash:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 0 A_FadeOut (0.70)
		TNT1 A 0 A_PlaySound("Doomslayer/FistWall",0)
		DSM1 ABCDEFG 1
		Stop
	}
}


//======================
//Right straight
//======================


ACTOR SlayerPunchAttack2 : SlayerPunchAttack
{
	+FORCEPAIN
	damage (60)
	ProjectileKickback 1500
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_PlaySound ("Doomslayer/RightFistHit",0)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		MNSP ABCDD 1
		stop
	}
}
	


//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------



//BERSERK ATTACKS

//Berserk sword attacks

actor MightySlayerMelee : SlayerMelee
{
	damage (90)
	scale 0.50
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_FadeOut (0.40)
		TNT1 A 0 A_PlaySound("Doomslayer/swordhit",0)	
		TNT1 A 0 A_PlaySound ("Doomslayer/wrathnormal",CHAN_VOICE,0.60,0,1.20)
		TNT1 AA 0 A_GiveInventory ("SlayerMPCharger",1, AAPTR_TARGET)
		TNT1 AAAAAAAAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		WRML B 2 bright A_Explode (10,180,0,1)
		TNT1 A 0 Radius_Quake (1,6,0,10,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-21,21),frandom(-21,21),frandom(-21,21),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber2",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4),0,0,frandom(1,2))
		WRML C 2 bright
		WRML EFGH 2 bright
		stop
	}
}


//======================
//Berserk left hook
//======================

ACTOR MightySlayerPunchAttack : SlayerMelee
{
	-bloodsplatter
	+BLOODLESSIMPACT
	damage (60)
	decal SlayerFistDecal
	species "friendly"
	scale 0.50
	ProjectileKickBack 300
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_FadeOut (0.40)
		TNT1 A 0 A_PlaySound ("Doomslayer/FistHit",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/wrathnormal",CHAN_VOICE,0.60,0,1.20)
		TNT1 AA 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAAAAAAAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		WRML B 2 bright A_Explode (10,180,0,1)
		TNT1 A 0 Radius_Quake (1,6,0,10,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-21,21),frandom(-21,21),frandom(-21,21),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber2",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4),0,0,frandom(1,2))
		WRML C 2 bright
		WRML EFGH 2 bright
		stop
	Death:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 0 A_FadeOut (0.70)
		TNT1 A 0 A_PlaySound("Doomslayer/FistWall",0)
		DSM1 ABCDEFG 1
		Stop 
	Crash:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 0 A_FadeOut (0.70)
		TNT1 A 0 A_PlaySound("Doomslayer/FistWall",0)
		DSM1 ABCDEFG 1
		Stop
	}
}


//======================
//Berserk Right straight
//======================


ACTOR MightySlayerPunchAttack2 : SlayerPunchAttack
{
	+FORCEPAIN
	damage (180)
	ProjectileKickback 1500
	scale 1.50
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 0 A_FadeOut (0.40)
		TNT1 A 1
		TNT1 A 0 A_PlaySound ("Doomslayer/RightFistHit",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/wrathnormal",CHAN_VOICE,0.60,0,1.20)
		TNT1 AA 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAAAAAAAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		WRML B 2 bright A_Explode (10,180,0,1)
		TNT1 A 0 Radius_Quake (1,6,0,10,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-21,21),frandom(-21,21),frandom(-21,21),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber2",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4),0,0,frandom(1,2))
		WRML C 2 bright
		WRML EFGH 2 bright
		stop
	}
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//========================
//========TOKENS==========
//========================



actor SlayerToolCharger : custominventory 
{
	inventory.maxamount 1
	+INVENTORY.AUTOACTIVATE
	states
	{
	pickup:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("BombCasterCharge", 1)
		TNT1 A 1 A_GiveInventory ("SlayerBFGCharge", 1)
		stop
	}
}

Actor SlayerMPCharger : custominventory 
{
	inventory.maxamount 1
	+INVENTORY.AUTOACTIVATE
	states
	{
	pickup:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("SlayerMettle", 10)
		TNT1 A 1 A_GiveInventory ("SlayerGrit", 4)
		stop
	}
}


Actor SlayerMPCharger2 : SlayerMPCharger 
{
	states
	{
	pickup:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("SlayerMettle", 4)
		TNT1 A 1 A_GiveInventory ("SlayerGrit", 10)
		stop
	}
}

Actor SlayerMPCharger3 : SlayerMPCharger 
{
	states
	{
	pickup:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("SlayerMettle",999)
		TNT1 A 1 A_GiveInventory ("SlayerGrit", 999)
		stop
	}
}


actor FireSlayerLauncher : inventory
{inventory.maxamount 1}

actor FireSlayerStunner : inventory
{inventory.maxamount 1}
