////////////////////////GHETTOBLASTER MOON MAN//////////////////////////////////
ACTOR Ghettoblaster : Weapon //replaces Chainsaw
{
	Weapon.SelectionOrder 1900
	Obituary "$OB_MPPISTOL"
	+WEAPON.WIMPY_WEAPON
	Weapon.SlotNumber 0
//	Inventory.ForbiddenTo "MoonMan", "ZyklonB", "WolfenPlayer"
//	Inventory.RestrictedTo MoonMan
	Inventory.PickupMessage "You got your sick beats!"
	Weapon.Kickback 10
	States
	{
	Ready:
	    GBLS A 0 A_StopSoundEx("Body")
		GBLS A 1 A_WeaponReady
		goto Ready+1
	Deselect:
	    GBLS A 0 A_StopSoundEx("Body")
		GBLS A 1 A_Lower
		goto Deselect+1
	Select:
		GBLS A 1 A_Raise
		Loop
	Fire:
		GBLS A 0 A_PlaySoundEx("sa/rickroll", "Body", 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", 8, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", 16, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", 32, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", 0, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", -8, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", -16, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_FireCustomMissile("BadMusic", -32, 0, 0, 1)
		GBLS A 4 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		GBLS A 0 A_Refire
		Goto Ready
	Spawn:
		CGBL A -1
		Stop
	}
}

ACTOR BadMusic
{
	Radius 32
	Height 8
	Speed 50
	Damage 1
	Projectile
	+RANDOMIZE
	Obituary "$OB_MPPLASMARIFLE"
	States
	{
	Spawn:
		TNT1 A 1
		Loop
	Death:
		TNT1 A 1
		Stop
	}
}
////////////////////////HITLER'S SHOVEL//////////////////////////////////
ACTOR Shovel : Weapon 15002
{
	//$Category Weapons (Wolf3D)
	//$Title (1) Shovel
	//$Color 14
	Weapon.SlotNumber 1
	Scale .5
	Weapon.SelectionOrder 9999
	Tag "The Shovel!"
	Inventory.PickupMessage "You got the shovel!"
	+WEAPON.NOAUTOFIRE
	-WEAPON.AMMO_CHECKBOTH
	States
	{
	Ready:
		SHUV A 1 A_WeaponReady
		Loop
	Deselect:
		SHUV A 0 A_Lower
		SHUV A 1 A_Lower
		Loop
	Select:
		SHUV A 0 A_Raise
		SHUV A 1 A_Raise
		Loop
	Fire:
		SHUV B 2 A_JumpIfInventory("PowerStrength",1,"PowerShovel")
		SHUV B 1 Offset(15,32)
		SHUV B 1 Offset(30,33) A_PlaySound("shovel/miss",CHAN_WEAPON)
		SHUV B 1 Offset(52,35)
		SHUV B 1 Offset(78,38)
		SHUV B 1 Offset(92,44)
		SHUV B 1 Offset(64,50)
		SHUV C 1 Offset(30,38) A_CustomPunch(60,1,CPF_DAGGER,"ShovelPuff",100)
		SHUV C 1 Offset(1,44)
		SHUV D 1 Offset(-32,24)
		SHUV D 1 Offset(-50,28)
		SHUV E 1 Offset(-74,32)
		SHUV E 1 Offset(-100,36)
	FireFinish:
		TNT1 A 10
		SHUV A 1 Offset(60,60)
		SHUV A 1 Offset(50,55)
		SHUV A 1 Offset(40,50) A_WeaponReady(WRF_NOBOB)
		SHUV A 1 Offset(30,45) A_WeaponReady(WRF_NOBOB)
		SHUV A 1 Offset(20,40) A_WeaponReady(WRF_NOBOB)
		SHUV A 1 Offset(10,35) A_WeaponReady(WRF_NOBOB)
		Goto Ready
	PowerShovel:
		SHUV B 1 Offset(5,32)
		SHUV B 1 Offset(10,33) A_PlaySound("shovel/miss",CHAN_WEAPON)
		SHUV B 1 Offset(16,35)
		SHUV B 1 Offset(24,38)
		SHUV B 1 Offset(26,39)
		SHUV B 1 Offset(27,40)
		SHUV C 1 Offset(20,38) A_CustomPunch(200,1,CPF_DAGGER,"ShovelPuff",100)
		SHUV C 1 Offset(10,39)
		SHUV C 1 Offset(-3,40)
		SHUV D 1 Offset(-19,32)
		SHUV D 1 Offset(-40,36)
		SHUV E 1 Offset(-64,40)
		SHUV E 1 Offset(-90,42)
		Goto FireFinish
	Spawn:
		SHUV Z -1
		Stop
	}
}

ACTOR ShovelPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOEXTREMEDEATH
	+PUFFONACTORS
	RenderStyle Add
	activesound ""
	attacksound "shovel/wall"
	seesound "shovel/impact"
	Obituary "%o was schklonked with %k's shovel."
	states
	{
	Spawn:
	Melee:
	Crash:
		POOF ABCDE 3
		Stop
	}
}

////////////////////////////////WOLFENSITEN KNIFE///////////////////////////////
ACTOR Knife : Weapon
{
	Tag "Combat Knife"
	Inventory.Pickupmessage "Picked up a knife."
	+WEAPON.MELEEWEAPON
	+WEAPON.WIMPY_WEAPON
	Weapon.SelectionOrder 3700
      Weapon.SlotNumber 0
      Weapon.Kickback 100
	States
	{
	Ready:
		KNIF C 1 A_WeaponReady
		Loop
	Select:
		KNIF C 1 A_Raise
		Loop
	Deselect:
		KNIF C 1 A_Lower
		Loop
	Fire:
		KNIF C 2
		KNIF C 2 Offset(-5, 32)
		KNIF B 2 Offset(0, 32)
		KNIF B 2 Offset(-5, 32)
		KNIF B 1 Offset(-9, 32)
		KNIF A 1 Offset(5, 37)
		KNIF A 1 Offset(0, 32)
		KNIF A 1 Offset(-5, 25)
		KNIF A 1 Offset(50, 25)
		KNIF A 1 Offset(100, 25) A_CustomPunch (10,0,0,"KnifePuff")
		KNIF A 2 Offset(200, 25)
		KNIF A 2 Offset(300, 40) 
		KNIF A 2 Offset(250, 50) A_Refire
		KNIF C 2 Offset(10, 32)
		Goto Ready
	Spawn:
		KNFE A -1
		Stop
	}
}	

/////////////////////////////Ben Garrison KNIFE/////////////////////////////////
actor KnifeBG : Weapon
{
  Game Doom
  Weapon.SelectionOrder 3700
  Weapon.SlotNumber 0
  Weapon.Kickback 100
//  Inventory.ForbiddenTo "MoonMan", "ZyklonB", "WolfenPlayer"
//  Inventory.RestrictedTo ZyklonB
  +WEAPON.WIMPY_WEAPON
  +WEAPON.MELEEWEAPON
  +NOEXTREMEDEATH
  Obituary "$OB_MPFIST" // "%o was cut up by %k's knife."
  States
  {
  Spawn:
    KNFE A -1
    loop
  Ready:
    KNFG A 1 A_WeaponReady
    loop
  Deselect:
    KNFG A 1 A_Lower
    loop
  Select: 
    KNFG A 1 A_Raise
    loop
  Fire:
    KNFG B 2
    KNFG C 4 A_CustomPunch (25,0,0,"KnifePuff")
    KNFG D 2
    KNFG E 2
    KNFG F 2
    KNFG E 2
    KNFG D 2
    KNFG A 2 A_ReFire
    goto Ready
  }
}

ACTOR KnifePuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +PUFFONACTORS
  SeeSound "KnifeHitThing"
  AttackSound "KnifeHitWall"
  ActiveSound "KnifeMiss"
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  }
} 

ACTOR BenFistPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +PUFFONACTORS
  AttackSound "PUNCHIT"
  ActiveSound "KnifeMiss"
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  }
} 

////////////////////////////SLOT 1 WEAPON SPAWN SWAP////////////////////////////
//////////////////////////////////Moon Man//////////////////////////////////////
//ACTOR GhettoblasterA : Ghettoblaster
//{
//	Inventory.ForbiddenTo ""
//	Inventory.RestrictedTo MoonMan
//}
ACTOR FistA : Fist 
{
//	Inventory.ForbiddenTo ""
//	Inventory.RestrictedTo MoonMan
	States
	{
	Fire:
		PUNG LBCD 1
		PUNG E 2 A_Punch
		PUNG FGHI 2
		PUNG JKL 1
		PUNG A 5 A_ReFire
		Goto Ready
	}
}

ACTOR BerserkA : Berserk replaces Berserk
{
  States
  {
  Pickup:
    TNT1 A 0 A_GiveInventory("PowerStrength")
    TNT1 A 0 HealThing(100, 0)
    TNT1 A 0 A_JumpIfInventory("KnifeBG", 1, 2)
    TNT1 A 0 A_SelectWeapon("FistA")
    TNT1 A 0
    Stop
  }
}
///////////////////////////////////////////////////////////////////////////////
Actor BenFist : Weapon
{
	Weapon.SelectionOrder 3000
	Weapon.Kickback 500
	Obituary "%o tasted %k's fist."
	Tag "Big Fist"
	+WEAPON.WIMPY_WEAPON
	+WEAPON.MELEEWEAPON
	States
	{
	Ready:
	BENF A 1 A_WeaponReady
	Loop
	Select:
	BENF A 1 A_Raise
	TNT1 A 0 A_GiveInventory("BenMelee", 1)
	Loop
	Deselect:
	BENF A 1 A_Lower
	TNT1 A 0 A_TakeInventory("BenMelee", 1)
	Loop
	Fire:
	BENF A 2
	BENF A 1 Offset(5,40)
	BENF A 1 Offset(10,50)
	BENF A 1 Offset(15,60)
	BENF A 1 Offset(20,70)
	BENF A 1 Offset(25,80)
	BENF A 1 Offset(30,90)
	BENF A 1 Offset(35,100)
	BENF A 1 Offset(40,110)
	BENF A 1 Offset(45,120)
	BENF A 1 Offset(50,130)
	Hold:
	TNT1 A 0 A_JumpIf(1 == (ACS_ExecuteWithResult(911)), "WideHold")
	TNT1 A 2 A_Jump(128, "HoldRight")
	HoldLeft:
	BENF Z 1 Offset(300, 90) ACS_Execute(100)
	BENF Z 1 Offset(200, 80)
	BENF Z 1 Offset(100, 70)
	BENF Z 1 Offset(50, 60)
	TNT1 A 0 ACS_Execute(101)
	BENF Z 1 Offset(0, 32)
	BENF Z 1 Offset(0, 32) A_CustomPunch(5 * random(5, 10), TRUE, 0, "BenFistPuff")
	BENF Z 1 Offset(0, 32)
	BENF Z 2 Offset(100, 50) 
	BENF Z 2 Offset(200, 70) 
	BENF Z 2 Offset(300, 90) 
	Goto HoldEnd
	HoldRight:
	BENF X 1 Offset(-300, 90) ACS_Execute(101)
	BENF X 1 Offset(-200, 80)
	BENF X 1 Offset(-100, 70)
	BENF X 1 Offset(-50, 60)
	TNT1 A 0 ACS_Execute(100)
	BENF X 1 Offset(0, 32)
	BENF X 1 Offset(0, 32) A_CustomPunch(5 * random(5, 10), TRUE, 0, "BenFistPuff")
	BENF X 1 Offset(0, 32)
	BENF X 2 Offset(-100, 50) 
	BENF X 2 Offset(-200, 70) 
	BENF X 2 Offset(-300, 90) 
	Goto HoldEnd
	WideHold:
	TNT1 A 2 A_Jump(128, "WideHoldRight")
	WideHoldLeft:
	BENF B 1 Offset(300, 90) ACS_Execute(100)
	BENF B 1 Offset(200, 80)
	BENF B 1 Offset(100, 70)
	BENF B 1 Offset(50, 60)
	TNT1 A 0 ACS_Execute(101)
	BENF B 1 Offset(0, 32)
	BENF B 1 Offset(0, 32) A_CustomPunch(5 * random(5, 10), TRUE, 0, "BenFistPuff")
	BENF B 1 Offset(0, 32)
	BENF B 2 Offset(100, 50) 
	BENF B 2 Offset(200, 70) 
	BENF B 2 Offset(300, 90) 
	Goto HoldEnd
	WideHoldRight:
	BENF C 1 Offset(-300, 90) ACS_Execute(101)
	BENF C 1 Offset(-200, 80)
	BENF C 1 Offset(-100, 70)
	BENF C 1 Offset(-50, 60)
	TNT1 A 0 ACS_Execute(100)
	BENF C 1 Offset(0, 32)
	BENF C 1 Offset(0, 32) A_CustomPunch(5 * random(5, 10), TRUE, 0, "BenFistPuff")
	BENF C 1 Offset(0, 32)
	BENF C 2 Offset(-100, 50) 
	BENF C 2 Offset(-200, 70) 
	BENF C 2 Offset(-300, 90) 
	HoldEnd:
	TNT1 A 2
	TNT1 A 0 A_Refire
	BENF A 1 Offset(50,130)
	BENF A 1 Offset(45,120)
	BENF A 1 Offset(40,110)
	BENF A 1 Offset(35,100)
	BENF A 1 Offset(30,90)
	BENF A 1 Offset(25,80)
	BENF A 1 Offset(20,70)
	BENF A 1 Offset(15,60)
	BENF A 1 Offset(10,50)
	BENF A 1 Offset(5,40)
	BENF A 1 Offset(0,32)
	Goto Ready
	}
}

Actor BenMelee : PowerProtection 
{
	DamageFactor 0.9
	Powerup.Duration 0x7fffffff
}

///////////////////////////////////////////////////////////////////////////////
Actor Electricity : Ammo
{
	Inventory.MaxAmount 100
}

ACTOR Wires : Weapon
{
	Weapon.Kickback 0
	Weapon.SelectionOrder 2200
	Weapon.Upsound "WIRESUP"
	Inventory.PickupMessage "Picked up an electrocution device, ouch."
	Obituary "%o was electrocuted by %k."
	Tag "Wires"
	Weapon.Ammotype1 Electricity
	Weapon.Ammotype2 Electricity
	+WEAPON.AMMO_OPTIONAL
	+WEAPON.ALT_AMMO_OPTIONAL
	Weapon.Ammogive 100
	Weapon.Ammouse1 2
	Weapon.Ammouse2 7
	+WEAPON.MELEEWEAPON
	+NOEXTREMEDEATH
	States
	{
	Ready:
	LROD A 2 A_WeaponReady
	LROD A 0 A_GiveInventory("Electricity", 1)
	Loop
	Select:
	LROD A 1 A_Raise
	TNT1 A 0 A_GiveInventory("BenMelee", 1)
	Loop
	Deselect:
	LROD A 1 A_Lower
	TNT1 A 0 A_TakeInventory("BenMelee", 1)
	Loop
	Fire:
	LROD ABC 3
	LROD A 0 A_Refire
	LROD CBA 3
	Goto Ready
	Hold:
	LROD C 0 A_JumpIfInventory("Electricity", 3, "Hold1")
	Goto Ready
	Hold1:
	LROD CDE 1 Bright
	LROD D 0 Bright A_Gunflash
	LROD D 0 Bright A_PlayWeaponSound("WIREHIT")
	LROD D 0 Bright A_TakeInventory("Electricity", 1)
	LROD D 1 Bright A_CustomPunch(15 * random(0.8, 1.2), TRUE, CPF_USEAMMO, "ElectroPuff", 96)
	LROD CED 1 Bright
	LROD D 0 Bright A_Gunflash
	LROD D 0 Bright A_PlayWeaponSound("WIREHIT")
	LROD D 0 Bright A_TakeInventory("Electricity", 1)
	LROD E 1 Bright A_CustomPunch(15 * random(0.8, 1.2), TRUE, CPF_USEAMMO, "ElectroPuff", 96)
	LROD E 0 A_Refire
	LROD CBA 3
	Goto Ready
	AltFire:
	LROD ABC 3
	LROD A 0 A_Refire
	LROD CBA 3
	Goto Ready
	AltHold:
	LROD C 0 A_JumpIfInventory("Electricity", 7, "AltHold1")
	Goto Ready
	AltHold1:
	LROD CDE 1 Bright
	LROD D 0 Bright A_Gunflash
	LROD D 0 Bright A_PlayWeaponSound("EBALLFIR")
	LROD D 1 Bright A_FireCustomMissile("ElectroBall")
	LROD CED 1 Bright
	LROD D 0 Bright A_Gunflash
	LROD D 0 Bright A_PlayWeaponSound("EBALLFIR")
	LROD E 1 Bright A_FireCustomMissile("ElectroBall")
	LROD E 0 A_Refire
	LROD CBA 3
	Goto Ready
	Flash:
	TNT1 A 1 A_Light2
	Goto Lightdone
	}
}

Actor ElectroPuff : BulletPuff
{
	Renderstyle Add
	Scale 0.6
	Damagetype "Electro"
	Alpha 1
	VSpeed 0
	+BRIGHT
	+PUFFONACTORS
	+BLOODLESSIMPACT
	States
	{
	Melee:
	Spawn:
	ZAP1 CDEF 1 A_SpawnItemEx("ElectroBallTrail", 0, 0, 0, random(-5, 5), random(-5, 5), random(-5, 5), random(0, 360))
	Death:
	TNT1 A 1
	Stop
	}
}
	
Actor ElectroBall
{
	Radius 4
	Scale 0.6
	Height 6
	Speed 20
	+NOEXTREMEDEATH
	+BRIGHT
	Projectile
	RenderStyle Add
	Alpha 1
	Damage 1
	Damagetype "Electro"
	+RIPPER
	+BLOODLESSIMPACT
	BounceType Doom
	BounceCount 5
	States
	{
	Spawn:
	TNT1 A 0
	Spawn1:
	ZAP1 CDEFCDEFCDEF 1 A_SpawnItemEx("ElectroBallTrail", 0, 0, 0, random(-5, 5), random(-5, 5), random(-5, 5), random(0, 360))
	Death:
	TNT1 A 1
	Stop
	}
}

Actor ElectroBallTrail : ElectroBall
{
	SeeSound ""
	Damage 0
	+NOCLIP
	Speed 0
	States
	{
	Spawn:
	EBLT ABCDEF 1 Light("ElectroLight")
	Goto Death
	}
}

//////////////////////////////////BEN GARRISON/////////////////////////////////
ACTOR ChainsawA : Chainsaw
{
	Weapon.SlotNumber 0
//	Inventory.ForbiddenTo ""
//	Inventory.RestrictedTo ZyklonB
}
//ACTOR KnifeBGA : KnifeBG
//{
//	Inventory.ForbiddenTo ""
//	Inventory.RestrictedTo ZyklonB
//}
//////////////////////////////////////BJ Blazkowicz/////////////////////////////
//ACTOR KnifeA : Knife
//{
// Inventory.ForbiddenTo ""
// Inventory.RestrictedTo WolfenPlayer
//}