ACTOR RageMode : HQWeapon
{ 
    Tag "MAYHEM!"
    Weapon.SelectionOrder 7000
	Weapon.Kickback 5
    +NoAutoAim
    +WEAPON.MELEEWEAPON
    +INVENTORY.UNDROPPABLE
    +CHEATNOTWEAPON
	Weapon.UpSound "MADSTAR"
	Scale 0.4
	Obituary "%k wailed and whopped %o's brains out."
	States 
	{  
	TrueReady: 
	    FEAI A 0 A_JumpIfInventory("RageSpeed",1,1)
		Goto DeselectFancy
		FEAI A 1 A_WeaponReady(WRF_DisableSwitch|WRF_NoSwitch|WRF_AllowZoom)
		Loop 
DeselectFancy:
		NULL A 0 A_PlaySound("MADSTOP",CHAN_7,1.0)
		NULL A 0 A_PlaySound("MAYSTOP",CHAN_VOICE)
		TNT1 A 0 ACS_NamedExecute("RestoreVolume2", 0)
		NULL A 0 A_StopSound(CHAN_6)
        FELW BD 1
		TNT1 A 0 ACS_NamedExecute("RageTrigger", 0)
		FELW D 0 A_SetBlend("8B0000",1.5,20,"000000")
	Deselect: 
        NULL A 0 A_JumpIf(health <= 0, "DeselectDying")
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
		TNT1 A 1
		GTHL A 0 A_TakeInventory("RageMode",1)
	    TNT1 A 1 
		Loop
DeselectDying:
		NULL A 0 A_PlaySound("MADSTOP",CHAN_7,1.0)
		NULL A 0 A_StopSound(CHAN_6)
        FELW BD 1
		TNT1 A 0 ACS_NamedExecute("RageTrigger", 0)
		FELW D 0 A_SetBlend("8B0000",1.5,20,"000000")
        NULL A 0 A_JumpIf(health <= 0, "Dying")
		Stop
	Select: 
		NULL AA 0 A_Raise 
		Loop 
    Ready:
        POSS A 0 A_JumpIf(CallACS("MusicToggle")== 0, "SongLess")
		TNT1 A 0 ACS_NamedExecute("RageVolume2", 0)
	    TNT1 A 0 A_Jump(256,"Song1","Song2","Song3","Song4","Song5")
		Song1:
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	    FELW A 0 A_StartSound("MADNOI1",CHAN_6,CHANF_LOOP|CHANF_OVERLAP,1.0)
		Goto ReadyAnim
		Song2:
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	    FELW A 0 A_StartSound("MADNOI2",CHAN_6,CHANF_LOOP|CHANF_OVERLAP,1.0)
		Goto ReadyAnim
		Song3:
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	    FELW A 0 A_StartSound("MADNOI3",CHAN_6,CHANF_LOOP|CHANF_OVERLAP,1.0)
		Goto ReadyAnim
		Song4:
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	    FELW A 0 A_StartSound("MADNOI4",CHAN_6,CHANF_LOOP|CHANF_OVERLAP,1.0)
		Goto ReadyAnim
		Song5:
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	    FELW A 0 A_StartSound("MADNOI5",CHAN_6,CHANF_LOOP|CHANF_OVERLAP,1.0)
		Goto ReadyAnim
		SongLess:
        TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	    FELW A 0 A_StartSound("MADNOIS",CHAN_6,CHANF_LOOP|CHANF_OVERLAP,1.0)
		Goto ReadyAnim
		ReadyAnim:
		FELW DC 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_DisableSwitch|WRF_NoSwitch)
	    FELW BA 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_DisableSwitch|WRF_NoSwitch)
		Goto TrueReady
     Fire:
        FELW B 1
		FELW D 1
	    TNT1 A 4
	Hold:
	GTHL A 0 A_JumpIfInventory("RageSpeed",1,1)
	Goto DeselectFancy
	FEFL A 0 A_PlayWeaponSound("MADSWN")
    TNT1 A 0 A_Jump(128,"Fire2")
	Goto Fire1
	Fire1:
	FEFL AB 1
	FEFL D 0 A_Quake(4,5,0,1,0) 
	FEFL C 1 A_CustomPunch(random(30,50)*5,0,CPF_NORANDOMPUFFZ|CPF_PULLIN,"MadnessHit",185)
	FEFL DE 1
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_DisableSwitch|WRF_NoSwitch)
	GTHL A 0 A_JumpIfInventory("RageSpeed",1,1)
	Goto DeselectFancy
	TNT1 A 0 A_ReFire
	goto FireEnd
	Fire2:
	FEFR AB 1
	FEFR D 0 A_Quake(4,5,0,1,0) 
	FEFR C 1 A_CustomPunch (random(30,50)*5,0,CPF_NORANDOMPUFFZ|CPF_PULLIN,"MadnessHit",185)
	FEFR DE 1
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_DisableSwitch|WRF_NoSwitch)
	GTHL A 0 A_JumpIfInventory("RageSpeed",1,1)
	Goto DeselectFancy
	TNT1 A 0 A_ReFire
	goto FireEnd
    FireEnd:
	FELW DC 1
	FELW BA 1
	goto TrueReady
    AltFire:
    FELW BC 1
	FELW D 1
    TNT1 A 5
	FEFR D 0 A_Quake(4,5,0,1,0)
    MEUE A 1 A_PlayWeaponSound("MADSWN")
    MEUE C 1 
    MEUE E 1 A_CustomPunch (random(30,50)*5,0,CPF_NORANDOMPUFFZ|CPF_PULLIN,"MadnessHit",185)
    MEUE FH 1 
	TNT1 A 6
	GTHL A 0 A_JumpIfInventory("RageSpeed",1,1)
	Goto DeselectFancy
    TNT1 A 0
	Goto FireEnd
   Zoom:
    FELW AC 1
    FELW D 0 A_Overlay (-3, "QuickMelee")
    FELW D 8
    FELW CBA 2
    Goto TrueReady
	}
} 


ACTOR MadnessHit
{
  //+NOEXTREMEDEATH
  +CLIENTSIDEONLY
  +PUFFGETSOWNER
  +HITTRACER
  +PUFFONACTORS
  +THRUACTORS
  +FORCEPAIN
  RenderStyle Add
  ProjectileKickback 400
  Alpha 1
  Radius 1
  Height 1
  Scale 0.55
  Mass 5
  DamageType "Explosive"
  States
  {
  Spawn:
  XDeath:
  Melee:
    TNT1 A 0 A_CheckFlag("OLDRADIUSDMG","Crash",AAPTR_TRACER)
 	TNT1 A 0 A_CheckFlag("NOBLOOD","Crash",AAPTR_TRACER)
    TNT1 A 0 A_Playsound ("MADHIT",CHAN_AUTO,1.0)
	TNT1 A 0 A_GiveInventory ("KickThrust", 1, AAPTR_TRACER)
	TNT1 A 0 A_CheckFlag("COUNTKILL","DoesHealthStuff",AAPTR_TRACER)
	Goto Crash
	DoesHealthStuff:
	TNT1 A 0 ACS_NamedExecute("RageTrigger", 0)
	TNT1 A 0 A_JumpIfHealthLower(100,"GiveHeal",AAPTR_TARGET)
	GiveArm:
	TNT1 A 0 A_GiveInventory("MadArmor",1,AAPTR_TARGET)
	Stop
	GiveHeal:
	TNT1 A 0 A_GiveInventory("MadHealth",1,AAPTR_TARGET)
	Stop
  Crash:
    TNT1 A 0 A_Playsound ("MADMIS",CHAN_AUTO,1.0)
    TNT1 AAAAA 0 A_SpawnItemEx("DisasterShotSmoke",0,0,0,frandom(-0.5,0.5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,160)	stop
	Stop
  }
}

Actor MadHealth : HealthBonus
{
	Inventory.Amount 25
	Inventory.PickupSound ""
	Inventory.PickupMessage ""
    Tag ""
}


Actor MadArmor : BasicArmorBonus
  {
    Armor.MaxSaveAmount 50
    Armor.SavePercent 100
    Armor.SaveAmount 5
	Inventory.PickupSound ""
	Inventory.PickupMessage ""
    Tag ""
}