Actor HQMREPickup : CustomInventory
{
	Game Doom
	Inventory.PickupSound ""
	Inventory.MaxAmount 0
	Scale 0.25
	+COUNTITEM
	Inventory.PickupSound "MREPKP"
	Inventory.PickupMessage "\c[White][ \c[Brown]Meal Ready-to-Eat\c- \c[White]]"
    Tag "Meal Ready-to-Eat"
	States
	{
	Spawn:
		MRPJ A 9
		MRPJ A 9 bright
		loop
	Pickup:
	 	DDMG A 0 A_JumpIfInventory("SpeedItem",1,"MRETime")
        MREF A 0 A_JumpIfInventory("HQMRE", 1, "MREFail")
		TNT1 A 0 A_GiveInventory("HQMRE", 1)
		Stop
	MREFail:
	    DDMG E 0
		Fail
	MRETime:
	    DDMG E 0 A_GiveInventory("MREHealth", 1)
		Stop
	}
}

Actor MREHealth : Health
{
	-COUNTITEM
	Inventory.Amount 100
	Inventory.MaxAmount 9999999999
}

actor HQMRE : HQWeapon
{
  +Ammo_Optional
  Weapon.SelectionOrder 1900
  +NOALERT
  +NOAUTOAIM
  +INVENTORY.UNDROPPABLE
  Scale 0.25
  Weapon.SlotNumber 8
  Inventory.PickupSound "MREPKP"
  Weapon.UpSound "SLDSEL" 
  Tag "Meal Ready-to-Eat"
  Inventory.Pickupmessage "Meal Ready-to-Eat"
  States
  {
  Ready:
    MREL A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
    Loop
  Deselect:
    NULL A 0 A_JumpIf(CountInv("HQGrabbedBarrel") == 1,"ZeroFucksGiven")
    MREL A 1 A_Lower(20)
    Loop
  Select:
    TNT1 A 1
    TNT1 A 0 A_JumpIfInventory("HQMREToken",1,"SelectNormal") 
    TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	TNT1 A 0 A_Giveinventory("HQMREToken",1)
    TNT1 A 0 A_Playsound("HQVMRE",CHAN_VOICE)
    Goto SelectNormal
  SelectNormal:
	MREL A 1 A_Raise(20)
    Loop
  Fire:
    MREF A 0 A_JumpIfHealthLower(100, 2)
	MREF A 0 ACS_NamedExecute("FullHealth", 0)
	Goto Ready
    TNT1 A 0 A_GiveInventory("SheReloads",1)
	MREF ABC 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	NULL A 0 A_PlayWeaponSound("MREUSE")
	MREF FG 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	MREF G 0 A_ClearRefire
	TNT1 A 36
	Goto Eat
	Eat:
	TNT1 A 0 A_GiveInventory("MREFood",1)
	TNT1 A 0 A_JumpIfInventory("MREFood",6,"Finish")
	TNT1 A 0 A_PlayWeaponSound("MRERFLE")
	TNT1 A 32
	TNT1 A 0 A_JumpIfInventory("MREFood",5,"Eat5")
	TNT1 A 0 A_JumpIfInventory("MREFood",4,"Eat4")
	TNT1 A 0 A_JumpIfInventory("MREFood",3,"Eat3")
	TNT1 A 0 A_JumpIfInventory("MREFood",2,"Eat2")
	TNT1 A 0 A_JumpIfInventory("MREFood",1,"Eat1")
	Goto Finish
	Eat1:
	TNT1 A 0 A_PlaySound("MREDRW",CHAN_7)
	CHOC A 2
	CHOC BC 1
	CHOC D 12
	CHOC EF 1
	TNT1 A 0 A_PlaySound("MREEAT1",CHAN_VOICE)
	EATS H 2
    TNT1 A 0 ACS_NamedExecute("StimFlash",0)
	TNT1 A 0 HealThing (20, 100)
	EATS IJK 1
	TNT1 A 34
	Goto Eat
	Eat2:
	TNT1 A 0 A_PlaySound("MREDRW",CHAN_7)
	CRAC A 2
	CRAC BC 1
	CRAC D 12
	CRAC EF 1
	TNT1 A 0 A_PlaySound("MREEAT2",CHAN_VOICE)
	EATS H 2
    TNT1 A 0 ACS_NamedExecute("StimFlash",0)
	TNT1 A 0 HealThing (20, 100)
	EATS IJK 1
	TNT1 A 38
	Goto Eat
	Eat3:
	TNT1 A 0 A_PlaySound("MREDRW",CHAN_7)
	COOK A 2
	COOK BC 1
	COOK D 12
	COOK EF 1
	TNT1 A 0 A_PlaySound("MREEAT2",CHAN_VOICE)
	EATS H 2
    TNT1 A 0 ACS_NamedExecute("StimFlash",0)
	TNT1 A 0 HealThing (20, 100)
	EATS IJK 1
	TNT1 A 38
	Goto Eat
	Eat4:
	TNT1 A 0 A_PlaySound("MREDRW",CHAN_7)
	PIZZ A 2
	PIZZ BC 1
	PIZZ D 15
	PIZZ EF 1
	TNT1 A 0 A_PlaySound("MREEAT3",CHAN_VOICE)
    EATS G 2
    TNT1 A 0 ACS_NamedExecute("StimFlash",0)
	TNT1 A 0 HealThing (20, 100)
	EATS I 2
	EATS JK 1
	TNT1 A 54
	Goto Eat
	Eat5:
	TNT1 A 0 A_PlaySound("MREDRW",CHAN_7)
	COBB A 1 A_SetPitch(-2)
	COBB B 1 A_SetPitch(-6)
	COBB C 1 A_SetPitch(-10)
	COBB D 1 A_SetPitch(-14)
	COBB E 1 A_SetPitch(-24)
	COBB F 25 A_SetPitch(-24)
	TNT1 A 0 A_PlaySound("MREEAT4",CHAN_VOICE)
	COBB G 1 A_SetPitch(-24)
	COBB F 25 A_SetPitch(-24)
	TNT1 A 0 A_PlaySound("MREEAT4",CHAN_VOICE)
	COBB G 1 A_SetPitch(-24)
	COBB F 25 A_SetPitch(-24)
	TNT1 A 0 A_PlaySound("MREEAT4",CHAN_VOICE)
	COBB G 1 A_SetPitch(-24)
	COBB F 25 A_SetPitch(-24)
	TNT1 A 0 A_PlaySound("MREEAT4",CHAN_VOICE)
	COBB G 1 A_SetPitch(-24)
	COBB F 10 A_SetPitch(-24)
	TNT1 A 0 A_PlaySound("MREEND",CHAN_VOICE)
	COBB F 15 A_SetPitch(-24)
    TNT1 A 0 ACS_NamedExecute("StimFlash",0)
	TNT1 A 0 HealThing (20, 100)
	TNT1 A 0 A_PlaySound("LIKMRE00",CHAN_VOICE)
	COBB E 1 A_SetPitch(-14)
	COBB D 1 A_SetPitch(-24)
	COBB C 1 A_SetPitch(-10)
	COBB B 1 A_SetPitch(-6)
	COBB A 1 A_SetPitch(-2)
	TNT1 A 1 A_SetPitch(0)
	TNT1 A 35
	Goto Eat
	Finish:
	TNT1 A 20
	MREF EDCBAH 1 
	MREF A 0 A_PlaySound("SMTTHW",CHAN_WEAPON)
	MREF A 0 A_FireCustomMissile("MREProjectile2",0,0,6,0)
	MREF IJ 1 A_TakeInventory("MREFood",99)
	TNT1 A 20
	TNT1 A 0 A_TakeInventory("SheReloads",99)
	MREF A 0 ACS_NamedExecute("MREStuff",0)
    Goto Ready
  AltFire:
    MREF ABCDE 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	TNT1 A 10
	MREF DBH 1 
	MREF A 0 A_PlaySound("SMTTHW",CHAN_WEAPON)
	MREF A 0 A_FireCustomMissile("MREProjectile",0,0,6,0)
	MREF IJ 1
	TNT1 A 5
	MREF A 0 ACS_NamedExecute("MREStuff",0)
	TNT1 A 1
    Goto Ready
  Spawn:
	MRPJ A 9
	MRPJ A 9 bright
	loop
	//TNT1 A 1 Bright A_SpawnItem("HQMREPickup", 1)
	//Stop
  Zoom:
   MREL AC 1
   TNT1 A 0 A_Overlay (-3, "QuickMelee")
   MREL D 8
   MREL CBA 2
   Goto Ready
  User1:
   MELE A 0 A_JumpIfInventory("ThrowableAmmo",1,1)
   Goto GrenadeDry
   MREL ABC 1
   MREL D 2
   TNT1 A 0 A_Overlay (-3, "ThrowNao2")
   MREL D 10
   MREL CBA 2
   Goto Ready
  User2:
   MREL A 0 A_JumpIfInventory("StimAmmo",1,1)
   Goto StimDry
   MREL A 0 A_JumpIfInventory("SpeedItem",1,2)
   MREL A 0 A_JumpIfHealthLower(100, 1)
   Goto HealthFull
   MREL ABC 1
   MREL D 2
   TNT1 A 0 A_Overlay (-3, "InjectorPlunge")
   MREL D 30
   MREL CBA 2
   Goto Ready
   GrenadeDry:
   MREL A 1 ACS_NamedExecute("NoGrenades", 0)
   Goto Ready
   HealthFull:
   MREL A 1 ACS_NamedExecute("FullHealth", 0)
   Goto Ready
   StimDry:
   MREL A 1 ACS_NamedExecute("NoStims", 0)
   Goto Ready
   Reload:
   TNT1 A 0 A_GiveInventory("SheReloads",1)
   MREI AB 2
   Goto InspectHold
  InspectHold:
   MREI C 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   MREI D 25 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, "InspectHold2")
  Goto InspectFinish  
  InspectHold2:
   MREI C 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   MREI B 45 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, "InspectHold3")
  Goto InspectFinish  
  InspectHold3:
   MREI E 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   MREI F 25 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, "InspectHold4")
  Goto InspectFinish  
  InspectHold4:
   MREI E 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   MREI B 45 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
   NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_RELOAD, "InspectHold")
  Goto InspectFinish
  InspectFinish:
   MREI BA 2
   TNT1 A 0 A_TakeInventory("SheReloads",99)
   Goto Ready
  }
}

ACTOR MREProjectile
{
	Projectile
	+RANDOMIZE
	-NOGRAVITY
	+FORCEPAIN
    BounceType "Doom"
    BounceCount 2
    BounceFactor 0.43
	Gravity 0.4
	Damage 1
	Radius 4
	Height 8
	Speed 25
	Scale 0.25
    Obituary "%o was healed to death by %k's MRE."
	BounceSound "MREBNC"
	States
	{
		Spawn:
			MRPJ ABCDEFGH 4
			Loop
		Death:
			MRPJ G 1 A_PlaySound("MREBNC")
			MREP A 0 Bright A_SpawnItem("HQMRE", 1)
			Stop
	}
}


ACTOR MREProjectile2
{
	Projectile
	+RANDOMIZE
	-NOGRAVITY
	+FORCEPAIN
    BounceType "Doom"
    BounceCount 1
    BounceFactor 0.43
	Gravity 0.4
	Damage 1
	Radius 4
	Height 8
	Speed 15
	Scale 0.25
    Obituary "%o was healed to death by %k's MRE."
	BounceSound "MREBNC"
	States
	{
		Spawn:
			MRPJ ABCDEFGH 4
			Loop
		Death:
			MRPJ G 1 A_PlaySound("MREBNC")
		    MRPJ G 350
		    MRPJ G 2 A_Fadeout(0.1,TRUE)
			Stop
	}
}

Actor MREFood : QuinnBoolean { Inventory.MaxAmount 6 }