class MDJ_NewPistol: Pistol
{
	Default
	{
		//$Category New Weapons
		//$Title New Pistol
		Weapon.SelectionOrder 1800;
		Weapon.SlotNumber 2;
		Weapon.AmmoType "Clip";
		Weapon.AmmoUse 1;
		Weapon.AmmoType2 "Clip";
		Weapon.AmmoUse2 1;
		Decal "BulletChip";
		Inventory.PickupMessage "You pilfered a fancy new pistol!";
		Obituary "%o was plinked by %k's pistol.";
		AttackSound "MDJPistol/Fire";
	}
	States
	{
	Ready:
		MDNP A 1 A_WeaponReady;
		Loop;
	Deselect:
		MDNP A 1 A_Lower;
		Loop;
	Select:
		MDNP A 1 A_Raise;
		Loop;
	Fire:
		MDNP A 0 A_Jumpif (freelook == 0 || sv_freelook == 1, "FireFlat");
		MDNP B 5;
		MDNP B 0 MDJ_PistolRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDNP E 2 BRIGHT A_FireBullets(0, 0, 0, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDNP F 2 BRIGHT A_FireBullets(0, 0, 0, 5, "BulletPuff");
		MDNP C 4 A_SetPitch(pitch-0.5);
		MDNP B 5;
		MDNP A 12 A_ReFire;
		Goto Ready;
	FireFlat:
		MDNP B 5;
		MDNP B 0 MDJ_PistolRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDNP E 2 BRIGHT A_FireBullets(0, 0, 0, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDNP F 2 BRIGHT A_FireBullets(0, 0, 0, 5, "BulletPuff");
		MDNP C 4;
		MDNP B 5;
		MDNP A 12 A_ReFire;
		Goto Ready;
	AltFire:
		MDNP A 0 A_Jumpif (freelook == 0 || sv_freelook == 1, "AltFireFlat");
		MDNP B 4;
		MDNP B 0 MDJ_PistolRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDNP E 2 BRIGHT A_FireBullets(5.6, 2.2, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDNP F 2 BRIGHT A_FireBullets(5.6, 2.2, -1, 5, "BulletPuff");
		MDNP C 4 A_SetPitch(pitch-0.5);
		MDNP B 2 A_ReFire;
		Goto Ready;
	AltFireFlat:
		MDNP B 4;
		MDNP B 0 MDJ_PistolRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDNP E 2 BRIGHT A_FireBullets(5.6, 2.2, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDNP F 2 BRIGHT A_FireBullets(5.6, 2.2, -1, 5, "BulletPuff");
		MDNP C 4;
		MDNP B 2 A_ReFire;
		Goto Ready;
 	Spawn:
		MDNP G -1;
		Stop;
	}
	action void MDJ_PistolRecoil()
	{
		Thrust(1, angle + 180);
	}
}

class MDJ_Shotgun : Shotgun
{
	Default
	{
		//$Category New Weapons
		//$Title New Shotgun
		Weapon.SelectionOrder 1300;
		Weapon.SlotNumber 3;
		Weapon.AmmoUse 1;
		Weapon.AmmoGive 8;
		Weapon.AmmoType "Shell";
		Inventory.PickupMessage "You grabbed the breaching shotgun";
		Obituary "%o was pumped full of %k's scattershot";
		Decal "BulletChip";
		AttackSound "MDJShotgun/Fire";
	}
	States
	{
	Ready:
		MDSG A 1 A_WeaponReady;
		Loop;
	Deselect:
		MDSG A 1 A_Lower;
		Loop;
	Select:
		MDSG A 1 A_Raise;
		Loop;
	Fire:
		MDSG A 0 A_Jumpif (freelook == 0 || sv_freelook == 1, "FireFlat");
		MDSG A 3;
		MDSG B 0 Bright A_FireBullets (7.8, 5.1, 12, 4);
		MDSG C 0 MDJ_ShotgunRecoil;
		MDSG B 0 A_Jump (127, 3);
		MDSG B 4 Bright A_SetPitch(pitch-0.75);
		MDSG B 0 A_Jump (256, 2);
		MDSG C 4 Bright A_SetPitch(pitch-0.75);
		MDSG A 3;
		MDSG D 5;
		MDSG E 5;
		MDSG F 5;
		MDSG ED 5;
		MDSG A 3;
		MDSG A 7 A_ReFire;
		Goto Ready;
	FireFlat:
		MDSG A 3;
		MDSG B 0 Bright A_FireBullets (7.8, 5.1, 12, 4);
		MDSG C 0 MDJ_ShotgunRecoil;
		MDSG B 0 A_Jump (127, 3);
		MDSG B 4 Bright;
		MDSG B 0 A_Jump (256, 2);
		MDSG C 4 Bright MDJ_ShotgunRecoil;
		MDSG A 3;
		MDSG D 5;
		MDSG E 5;
		MDSG F 5;
		MDSG ED 5;
		MDSG A 3;
		MDSG A 7 A_ReFire;
		Goto Ready;
	Spawn:
		MDSG G -1;
		Stop;
	}
	action void MDJ_ShotgunRecoil()
	{
		Thrust(3, angle + 180);
	}
}


class MDJ_Machinegun: DoomWeapon
{
	Default
	{
		//$Category New Weapons
		//$Title Machinegun
		Weapon.SelectionOrder 700;
		Weapon.AmmoUse 1;
		Weapon.AmmoGive 20;
		Weapon.AmmoType2 "Clip";
		Weapon.AmmoUse2 1;
		Weapon.AmmoType "Clip";
		Weapon.SlotNumber 4;
		Inventory.PickupMessage "You acquired the machinegun!";
		Obituary "%o was riddled by %k's machinegun.";
		Decal "BulletChip";
		AttackSound "MDJMachinegun/Fire";
	}
	States
	{
	Ready:
		MDMG A 1 A_WeaponReady;
		Loop;
	Deselect:
		MDMG A 1 A_Lower;
		Loop;
	Select:
		MDMG A 1 A_Raise;
		Loop;
	Fire:
		MDMG A 0 A_Jumpif (freelook == 0 || sv_freelook == 1, "FireFlat");
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 2 Bright A_FireBullets(4.5, 2.2, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 2 Bright A_FireBullets(4.5, 2.2, -1, 5, "BulletPuff");
		MDMG B 2 A_SetPitch(pitch-0.5);
		MDMG B 0 A_ReFire;
		Goto Ready;
	FireFlat:
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 2 Bright A_FireBullets(4.5, 2.2, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 2 Bright A_FireBullets(4.5, 2.2, -1, 5, "BulletPuff");
		MDMG B 2;
		MDMG B 0 A_ReFire;
		Goto Ready;
	AltFire:
		MDMG A 0 A_Jumpif (freelook == 0 || sv_freelook == 1, "AltFireFlat");
		//WARNING! HORRIBLE CODE INCOMING!
		//1
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_SetPitch(pitch-0.5);
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//2
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_SetPitch(pitch-0.5);
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//3
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_SetPitch(pitch-0.5);
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//4
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_SetPitch(pitch-0.5);
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//5
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_SetPitch(pitch-0.5);
		Goto AltFireCoolDown;
	AltFireFlat:
		//WARNING! HORRIBLE CODE INCOMING!
		//1
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//2
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//3
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//4
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG B 0 A_JumpIfNoAmmo("AltFireCoolDown");
		//5
		MDMG A 0 MDJ_MachinegunRecoil;
		MDMG A 0 A_Jump (127, 3);
		MDMG D 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		MDMG D 0 A_Jump (256, 2);
		MDMG C 1 Bright A_FireBullets(2.2, 1.1, -1, 5, "BulletPuff");
		Goto AltFireCoolDown;
	AltFireCoolDown:
		MDMG B 15;
		MDMG B 0 A_ReFire;
		Goto Ready;	
	Flash:
		MDMG A 2 Bright A_Light1;
		Goto LightDone;
	Spawn:
		MDMG E -1;
		Stop;
	}
	action void MDJ_MachinegunRecoil()
	{
		Thrust(1, angle + 180);
	}
}

class MDJ_GammaRipper: DoomWeapon
{
	Default
	{
		//$Category New Weapons
		//$Title Gamma Ripper
		Weapon.SelectionOrder 700;
		Weapon.AmmoUse 1;
		Weapon.AmmoGive 40;
		Weapon.AmmoType "Cell";
		Weapon.SlotNumber 5;
		Inventory.PickupMessage "You got the Gamma Ripper!";
		Obituary "%o was scorched by %k's Gamma Ripper.";
	//	AttackSound "MDJRipper/Fire"; //Apparently this isn't used by A_FireProjectile?
	}
	States
	{
	Ready:
		MDGR A 1 A_WeaponReady;
		Loop;
	Deselect:
		MDGR A 1 A_Lower;
		Loop;
	Select:
		MDGR A 1 A_Raise;
		Loop;
	Fire:
		MDGR A 0 A_Jumpif (freelook == 0 || sv_freelook == 1, "FireFlat");
		MDGR A 0 A_StartSound("MDJRipper/Fire",CHAN_WEAPON);
		MDGR A 0 MDJ_GammaRipperRecoil;
		MDGR A 0 A_Jump (127, 3);
		MDGR B 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,2.0);
		MDGR D 0 A_Jump (256, 2);
		MDGR C 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,2.0);
		MDGR D 2 A_SetPitch(pitch-0.5);
		MDGR A 0 A_StartSound("MDJRipper/Fire",CHAN_WEAPON);
		MDGR A 0 MDJ_GammaRipperRecoil;
		MDGR D 0 A_Jump (127, 3);
		MDGR B 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,-2.0);
		MDGR D 0 A_Jump (256, 2);
		MDGR C 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,-2.0);
		MDGR D 4 A_SetPitch(pitch-0.5);
		MDGR D 0 A_ReFire;
		Goto Ready;
	FireFlat:
		MDGR A 0 A_StartSound("MDJRipper/Fire",CHAN_WEAPON);
		MDGR A 0 MDJ_GammaRipperRecoil;
		MDGR A 0 A_Jump (127, 3);
		MDGR B 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,2.0);
		MDGR D 0 A_Jump (256, 2);
		MDGR C 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,2.0);
		MDGR D 2;
		MDGR A 0 A_StartSound("MDJRipper/Fire",CHAN_WEAPON);
		MDGR A 0 MDJ_GammaRipperRecoil;
		MDGR D 0 A_Jump (127, 3);
		MDGR B 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,-2.0);
		MDGR D 0 A_Jump (256, 2);
		MDGR C 2 Bright A_FireProjectile("MDJ_GammaBolt",0,true,-2.0);
		MDGR D 4;
		MDGR D 0 A_ReFire;
		Goto Ready;
	Spawn:
		MDGR E -1;
		Stop;
	}
	action void MDJ_GammaRipperRecoil()
	{
		Thrust(2, angle + 180);
	}
}

class MDJ_GammaBolt : Actor
{
	Default
	{
		Radius 13;
		Height 8;
		Speed 32;
		Damage 3;
		Projectile;
		+ZDOOMTRANS
		+RANDOMIZE
		+RIPPER
		+NOBOSSRIP
		RenderStyle "Add";
		Alpha 0.75;
	//	SeeSound "MDJRipper/Fire";	//Commented out so it doesn't overlap with the death sound
		RipSound "imp/melee";
		DeathSound "weapons/plasmax";
	}
	States
	{
	Spawn:
		MDGB AA 4 BRIGHT A_SpawnItemEx("MDJ_GammaBoltTrail", 0, 0, 0, 0, 0, 0, 180, 128);
		Loop;
	Death:
		MDGB FG 5 BRIGHT;
		PUFF CD 5 BRIGHT;
		Stop;
	}
}

Class MDJ_GammaBoltTrail : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		Speed 0;
		PROJECTILE;
		+ZDOOMTRANS
		ALPHA 0.5;
		+NOCLIP
	}
    States
    {
    Spawn:
    Death:
        MDGB BCDE 4 BRIGHT;
        Stop;
    }
}

class MDJ_FormerEnforcer: ShotgunGuy
{
	Default
	{
		//$Category New Monsters
		//$Title Former Enforcer
		Health 100;
		Obituary "%o was taken out by a former Enforcer.";	//And not to Chuck E. Cheese.
		DropItem "MDJ_Cellclip";
	}
	States
	{
	Spawn:
		MDZE AB 10 A_Look;
		Loop;
	See:
		MDZE AABBCCDD 3 A_Chase;
		Loop;
	Missile:
		MDZE E 10 A_FaceTarget;
		MDZE E 10 A_FaceTarget;
		MDZE F 4 BRIGHT A_SpawnProjectile("MDJ_EnforcerBolt",34);
		MDZE E 6 A_FaceTarget;
		MDZE F 4 BRIGHT A_SpawnProjectile("MDJ_EnforcerBolt",34);
		MDZE E 1 A_CPosRefire;
		Goto Missile+1;
	Pain:
		MDZE G 3;
		MDZE G 3 A_Pain;
		Goto See;
	Death:
		MDZE H 5;
		MDZE I 5 A_Scream;
		MDZE J 5 A_NoBlocking;
		MDZE K 5;
		MDZE L -1;
		Stop;
	XDeath:
		MDZE M 5 ;
		MDZE N 5 A_XScream;
		MDZE O 5 A_NoBlocking;
		MDZE PQR 5;
		MDZE S -1;
		Stop;
	Raise:
		MDZE K 5;
		MDZE JIH 5;
		Goto See ;
	}
}

class MDJ_Cellclip : Cell
{
	Default
	{	
	  Inventory.PickupMessage "Picked up a Cell Clip";
	  Inventory.Amount 10;
	}
	States
	{
	Spawn:
		MDCC A -1;
		Stop;
	}
}

class MDJ_EnforcerBolt : Actor
{
	Default
	{
		Radius 13;
		Height 8;
		Speed 25;
		Damage 5;
		Projectile;
		+ZDOOMTRANS
		+RANDOMIZE
		RenderStyle "Add";
		Alpha 0.75;
		SeeSound "MDJEnforcer/Bolt";
		DeathSound "baby/shotx";
	}
	States
	{
	Spawn:
		MDEB AA 4 BRIGHT A_SpawnItemEx("MDJ_EnforcerBoltTrail", 0, 0, 0, 0, 0, 0, 180, 128);
		Loop;
	Death:
		MDEB FG 5 BRIGHT;
		PUFF CD 5 BRIGHT;
		Stop;
	}
}

Class MDJ_EnforcerBoltTrail : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		Speed 0;
		PROJECTILE;
		+ZDOOMTRANS
		ALPHA 0.5;
		+NOCLIP
	}
    States
    {
    Spawn:
    Death:
        MDEB BCDE 4 BRIGHT;
        Stop;
    }
}

class MDJ_MachineGunGoon: ChaingunGuy
{
	Default
	{
		//$Category New Monsters
		//$Title Machinegun Goon
		Obituary "%o got gunned down by a machinegun goon.";
		Dropitem "MDJ_Machinegun";
		AttackSound "MDJMachinegun/Fire";
	}
	States
	{
	Spawn:
		MDZM AB 10 A_Look;
		Loop;
	See:
		MDZM AABBCCDD 3 A_Chase;
		Loop;
	Missile:
		MDZM E 10 A_FaceTarget;
		MDZM F 2 BRIGHT A_CustomBulletAttack(22.5, 0, 1, random(1,5)*3, "BulletPuff", 0, CBAF_NORANDOM);
		MDZM E 2;
		MDZM F 1 A_CPosRefire;
		Goto Missile+1;
	Pain:
		MDZM G 3;
		MDZM G 3 A_Pain;
		Goto See;
	Death:
		MDZM H 5;
		MDZM I 5 A_Scream;
		MDZM J 5 A_NoBlocking;
		MDZM K 5;
		MDZM L -1;
		Stop;
	XDeath:
		MDZM M 5;
		MDZM N 5 A_XScream;
		MDZM O 5 A_NoBlocking;
		MDZM PQRST 5;
		MDZM U -1;
		Stop;
	Raise:
		MDZM K 5;
		MDZM JIH 5;
		Goto See;
	}
}


class MDJ_AlternateShotguy: ShotgunGuy
{
	Default
	{
		//$Category New Monsters
		//$Title Alternate Shotguy
		Dropitem "MDJ_Shotgun";	//May change this to some kind of shell belt
	}
}

class MDJ_Sawcubus: Actor
{ 
	Default
	{
		//$Category New Monsters
		//$Title Sawcubus
		Health 80;	//Down from 120
		Radius 20;
		Height 60; 
		Speed 12;
		MeleeDamage 7;
		PainChance 200;
		MONSTER;
		+FLOORCLIP
		Obituary "%o was sliced open by a Sawcubus";
		SeeSound "sawcubus/sight";
		MeleeSound "weapons/sawhit";
		PainSound "sawcubus/pain";
		DeathSound "sawcubus/death";
		ActiveSound "sawcubus/active";
	}
    States 
    { 
		Spawn: 
			SWCB AB 10 A_Look;
			Loop;
		See: 
			SWCB AAAA 2 A_Chase;
			SWCB B 0 A_StartSound("weapons/sawidle");
			SWCB BBBB 2 A_Chase;
			SWCB C 0 A_StartSound("weapons/sawidle");
			SWCB CCCC 2 A_Chase;
			SWCB D 0 A_StartSound("weapons/sawidle");
			SWCB DDDD 2 A_Chase;
			SWCB A 0 A_StartSound("weapons/sawidle");
			Loop;
		Melee: 
			SWCB E 1 A_FaceTarget;
		//	SWCB F 3 A_MeleeAttack;
			SWCB F 3 A_CustomMeleeAttack(random(7,21),"weapons/sawhit");
			Goto See;
		Pain: 
			SWCB G 5;
			SWCB G 3 A_Pain;
			Goto See;
		Death: 
			SWCB H 5;
			SWCB I 5 A_Scream;
			SWCB J 5 A_Fall;
			SWCB KL 5;
			SWCB L -1;
			Stop;
		Raise: 
			SWCB LKJIH 5;
			Goto See;
    } 
}

class MDJ_GatekeeperBaron: BaronOfHell
{
	//Gaslight
	//Gatekeep
	//Girlboss
	Default
	{
		//$Category New Monsters
		//$Title Gatekeeper Baron
		Scale 1.1;
		Radius 26;
		Height 70;
		Mass 1100;
		Speed 9;
		
		
		+MISSILEMORE
		+NOTARGET
		
		BloodColor "30 67 23";
	}
	States
	{
		Missile:
			MDCO E 0 A_Jump(256, "Missile1", "Missile1", "Missile2");
			Goto Missile1;
		Missile1:
			BOSS EF 8 A_FaceTarget;
			BOSS G 8 A_CustomComboAttack("MDJ_BaronSeeker", 35, 10 * random(1, 8), "baron/melee");
			Goto See;
		Missile2:
			BOSS E 8 A_FaceTarget;
			BOSS F 8 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			BOSS G 0 A_FaceTarget;
			BOSS G 2 A_SpawnProjectile("MDJ_BaronWeaver", 35, 0, 0);
			Goto See;
		Death:
			BOSS I 8;
			BOSS J 8 A_Scream;
			BOSS K 8 A_SpawnProjectile("MDJ_DemonSoulGreen",32,0,0,2,-90);
			BOSS L 8 A_NoBlocking;
			BOSS MN 8;
			BOSS O -1 A_BossDeath;
			Stop;
	}
}

class MDJ_BaronSeeker : Actor
{
	Default
	{
		Radius 6;
		Height 16;
		Speed 15;
		FastSpeed 20;
		Damage 8;
		Projectile ;
		+RANDOMIZE
		+ZDOOMTRANS
		+SEEKERMISSILE
		RenderStyle "Add";
		Alpha 1;
		SeeSound "baron/attack";
		DeathSound "baron/shotx";
		Decal "BaronScorch";
	}
	States
	{
	Spawn:
		BAL7 AB 4 BRIGHT A_Tracer;
		Loop;
	Death:
		BAL7 CDE 6 BRIGHT;
		Stop;
	}
}

class MDJ_BaronWeaver : Actor
{
	Default
	{
		Radius 6;
		Height 8;
		Speed 10;
		FastSpeed 20;
		Damage 2;
		Projectile;
		+RANDOMIZE
		+ZDOOMTRANS
		RenderStyle "Add";
		Alpha 1;
		SeeSound "imp/attack";
		DeathSound "imp/shotx";
	}
	States
	{
		Spawn:
			MDBB AAAABBBB 1 BRIGHT A_Weave(3, 0, 1.0, 0.0);
			Loop;
		Death:
			MDBB CDE 6 BRIGHT;
			Stop;
	}
}

class MDJ_CountOfChaos: BaronOfHell
{
	//Equivilant to an "Earl of Evil" in England.
	Default
	{
		//$Category New Monsters
		//$Title Count Of Chaos
		Health 1500;
		Scale 1.25;
		Radius 30;
		Height 80;
		Mass 1250;
		Speed 10;
		Obituary "%o was crushed by a Count of Chaos.";
		HitObituary "%o was crushed by a Count of Chaos.";

		SeeSound "MDJ_Count/sight";
		PainSound "baron/pain";
		DeathSound "MDJ_Count/death";
		ActiveSound "baron/active";
		+BOSS
		+NOTARGET
		+MISSILEEVENMORE
		
		BloodColor "30 67 23";
	}
	//And no, I don't have a problem with alliteration.
	//_YOU_ have a problem with my alliteration.
	//Slightly souped up from the BSS version.
	States
	{
		Spawn:
			MDCO AB 10 A_Look ;
			Loop;
		See:
			MDCO AABBCCDD 3 A_Chase;
			Loop;
		Melee:
	/*	Missile:
			MDCO E 8 A_FaceTarget;
			MDCO F 8;
			MDCO G 0 A_SpawnProjectile("MDJ_CountofChaosMissile1", 40, 0, 45);
			MDCO G 0 A_SpawnProjectile("MDJ_CountofChaosMissile1", 40, 0, -45);
			MDCO G 8 A_CustomComboAttack("MDJ_CountofChaosMissile2", 40, 15 * random(1, 8), "baron/melee");
			Goto See;*/
		Missile:
			MDCO E 0 A_Jump(256, "Missile1", "Missile2", "Missile3", "Missile3", "Missile4");
			Goto Missile1;
		Missile1:	//Shotgun Attack 1
			MDCO E 8 A_FaceTarget;
			MDCO F 8;
			MDCO G 0 A_SpawnProjectile("MDJ_CountofChaosMissile1", 40, 0, 45);
			MDCO G 0 A_SpawnProjectile("MDJ_CountofChaosMissile1", 40, 0, -45);
			MDCO G 8 A_CustomComboAttack("MDJ_CountofChaosMissile2", 40, 15 * random(1, 8), "baron/melee");
			Goto See;
		Missile2:	//Shotgun Attack 2
			MDCO E 8 A_FaceTarget;
			MDCO F 8 A_FaceTarget;
			MDCO G 0 A_SpawnProjectile("MDJ_CountofChaosMissile2", 40, 0, 5);
			MDCO G 0 A_SpawnProjectile("MDJ_CountofChaosMissile2", 40, 0, -5);
			MDCO G 8 A_CustomComboAttack("MDJ_CountofChaosMissile2", 40, 15 * random(1, 8), "baron/melee");
			Goto See;
		Missile3:	//Bishop Attack
			MDCO E 8 A_FaceTarget;
			MDCO F 8 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			MDCO G 2 A_SpawnProjectile("MDJ_CountofChaosMissile3", 40, 0, 0);
			MDCO G 0 A_FaceTarget;
			Goto See;
		Missile4:	//Archvile Attack
			MDCO E 0 A_Jumpif(skill<=1,"Missile1");
			MDCO E 16 A_FaceTarget;
			MDCO E 8 A_Vilestart;
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 8 A_FaceTarget;
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_FaceTarget;
			MDCO E 8 A_VileTarget;
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 8 A_FaceTarget;
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 8 A_FaceTarget;
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 8 A_FaceTarget;
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO E 0 A_SpawnProjectile("MDJ_CountofChaosVileEffect",0,0,random(0,360));
			MDCO F 8 A_FaceTarget;
			MDCO G 8 A_VileAttack("vile/stop",10,45);
			Goto See;	
		Pain:
			MDCO H  2;
			MDCO H  2 A_Pain;
			Goto See;
		Death:
			MDCO I  8;
			MDCO J  8 A_Scream;
			MDCO K  8 A_SpawnProjectile("MDJ_DemonSoulOrange",40,0,0,2,-90);
			MDCO L  8 A_NoBlocking;
			MDCO MN 8;
			MDCO O -1;
			Stop;
	}
}

class MDJ_CountofChaosMissile1 : Actor
{
	Default
	{
		Radius 11;
		Height 8;
		Speed 10;
		Damage 10;
		Projectile;
		+SEEKERMISSILE 
		+RANDOMIZE
		+ZDOOMTRANS
		DeathSound "skeleton/tracex";
		RenderStyle "Add";
	}
	States
	{
		Spawn:
			FATB ABABAB 2 BRIGHT;
			goto Track;
		Track:
			FATB AABB 1 BRIGHT A_Tracer;
			Loop;
		Death:
			FBXP A 8 BRIGHT;
			FBXP B 6 BRIGHT;
			FBXP C 4 BRIGHT;
			Stop;
	}
}

class MDJ_CountofChaosMissile2 : Actor
{
	Default
	{
		Radius 6;
		Height 8;
		Speed 20;
		Damage 16;
		Projectile;
		+RANDOMIZE
		+ZDOOMTRANS
		RenderStyle "Add";
		Alpha 1;
		SeeSound "fatso/attack";
		DeathSound "fatso/shotx";
	}
	States
	{
		Spawn:
			MANF AB 4 BRIGHT;
			Loop;
		Death:
			MISL B 8 BRIGHT;
			MISL C 6 BRIGHT;
			MISL D 4 BRIGHT;
			Stop;
	}
}

class MDJ_CountOfChaosMissile3 : Actor
{
	Default
	{
		Radius 6;
		Height 8;
		Speed 10;
		FastSpeed 20;
		Damage 3;
		Projectile;
		+RANDOMIZE
		+ZDOOMTRANS
		+SEEKERMISSILE
		RenderStyle "Add";
		Alpha 1;
		SeeSound "imp/attack";
		DeathSound "imp/shotx";
	}
	States
	{
		Spawn:
			BAL1 AAAABBBB 1 BRIGHT A_Weave(3, 3, 2.0, 1.0);
			BAL1 A 0 A_SeekerMissile(2, 3);
			Loop;
		Death:
			BAL1 CDE 6 BRIGHT;
			Stop;
	}
}

class MDJ_CountofChaosVileEffect : Actor
{
	Default
	{
		Radius 8;
		Height 8;
		Speed 4;
		Damage 0;
		Projectile;
		+Ripper
		+FloorHugger
		+BloodlessImpact
		+NoClip
		+NoBlockMap
		+ZDOOMTRANS
		RenderStyle "Add";
		Alpha 1;
	}
	States
	{
		Spawn:
			FIRE ABCDEFGH 2 BRIGHT;
			stop;
	}
}

class MDJ_DemonSoulGreen : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		Speed 3;
		RenderStyle "Add";
		Alpha 0.80;
		Projectile;
		translation "16:31=112:127";
		+ClientSideOnly
		SeeSound "MDJ_ghost/Awoo";
	}

	States
	{
	Spawn:
		MDGH QRS 5 Bright;
		MDGH TUVW 9 Bright;
		Stop;
	}
}

class MDJ_DemonSoulOrange : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		Speed 3;
		RenderStyle "Add";
		Alpha 0.80;
		Projectile;
		translation "16:31=208:223";
		+ClientSideOnly
		SeeSound "MDJ_ghost/Awoo";
	}

	States
	{
	Spawn:
		MDGH QRS 5 Bright;
		MDGH TUVW 9 Bright;
		Stop;
	}
}

class MDJ_GhostBlue : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		Speed 3;
		RenderStyle "Add";
		Alpha 0.80;
		Projectile;
		translation "16:31=192:207";
		+ClientSideOnly
		SeeSound "MDJ_ghost/Awoo";
	}

	States
	{
	Spawn:
		MDGH QRS 5 Bright;
		MDGH TUVW 9 Bright;
		Stop;
	}
}
class MDJ_Tree1 : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title A leafy tree
		Radius 6;
		Height 96;
		+SOLID
	}
	States
	{
		Spawn:
			MDTR A -1;
			stop;
	}
}

class MDJ_Tree2 : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title A bushy tree
		Radius 6;
		Height 96;
		+SOLID
	}
	States
	{
		Spawn:
			MDTR B -1;
			stop;
	}
}

class MDJ_Tree3 : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title A delightful tree
		Radius 6;
		Height 96;
		+SOLID
	}
	States
	{
		Spawn:
			MDTR C -1;
			stop;
	}
}

class MDJ_Tree4 : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title A carnivorous carniferous
		Radius 6;
		Height 96;
		+SOLID
	}
	States
	{
		Spawn:
			MDTR D -1;
			stop;
	}
}

class MDJ_Tree5 : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title A huggable tree
		Radius 6;
		Height 96;
		+SOLID
	}
	States
	{
		Spawn:
			MDTR E -1;
			stop;
	}
}

class MDJ_InjuredTrooper : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title Injured Trooper
		Radius 6;
		Height 56;
		+SOLID
	}
	States
	{
		Spawn:
			MDIT A 15;
			MDIT B 40;
			Loop;
	}
}

Class MDJ_ActiveFlare : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title ActiveFlare
		Radius 22;
		Height 11;
	}
	States
	{
		Spawn:
			MDFL C 0 Bright;
			MDFL C 0 Bright A_StartSound("MDJFlare/Light");
			MDFL C 0 Bright A_StartSound("MDJFlare/Loop", 7, CHANF_LOOP, 1.0, 2.0);
			MDFL CD 2 Bright;
			Goto Spawn+3;
	}
}

Class MDJ_FlarePickup : CustomInventory
{
	Default
	{
		//$Category New Items
		//$Title Rainbow Flare Box
		Radius 28;
		Height 16;
		+INVENTORY.INVBAR;
		Inventory.Amount 8;
		Inventory.MaxAmount 40;
		Inventory.Icon "MDFLB0";
		Inventory.PickupMessage "You grabbed a box of rainbow flares.";
	}
	States
	{
		Spawn:
			MDFL B -1;
			Stop;
		Use:
			TNT1 A 1 A_SpawnItemEx ("MDJ_RainbowFlare", 56, 0, 28, random(10.0,20.0), random(-2.0,2.0), random(6.0,8.0), 0, 1);
			Stop;
	  }
}

Class MDJ_RainbowFlare : Actor
{	//Happy Pride Month!
	Default
	{
		Radius 22;
		Height 11;
		Gravity 1.0;
	}
	States
	{
		Spawn:
			MDFL C 0 Bright;
			MDFL C 0 Bright A_StartSound("MDJFlare/Light");
			MDFL C 0 Bright A_StartSound("MDJFlare/Loop", 7, CHANF_LOOP, 1.0, 2.0);
			MDFL C 0 A_Jump(256,"Red","Orange","Yellow","Green","Blue","Violet");
		Red:
			MDFL CD 2 Bright;
			Loop;
		Orange:
			MDFL EF 2 Bright;
			Loop;
		Yellow:
			MDFL HI 2 Bright;	//I just noticed I missed G. I know the alphabet, I swear!
			Loop;
		Green:
			MDFL JK 2 Bright;
			Loop;
		Blue:
			MDFL LM 2 Bright;
			Loop;
		Violet:
			MDFL NO 2 Bright;
			Loop;
	}
}

Class MDJ_Fire : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title Fire
		Radius 22;
		Height 11;
		+NOGRAVITY
	}
	States
	{
		Spawn:
			MDFR A 0 Bright;
		//	MDFR A 0 Bright A_PlaySoundEx("MDJFlare/Loop", "SoundSlot7", 1, -1);
			MDFR A 0 Bright A_StartSound("MDJFire/Loop", 7, CHANF_LOOP, 1.0, 2.0);
			MDFR ABC 4 Bright;
			Goto Spawn+2;
	}
}

class MDJ_Chalice : Key
{
	Default
	{
		//$Category New Items
		//$Title An Obviously Cursed Chalice
		Inventory.PickupMessage "You swiped the Obviously Cursed Chalice.";
		Inventory.Icon "MDCHA0";
		+FLOATBOB
	}
	States
	{
	Spawn:
		MDCH BB 4 BRIGHT A_SpawnItemEx("MDJ_ChaliceGlitter", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25);
		MDCH CC 4 BRIGHT A_SpawnItemEx("MDJ_ChaliceGlitter", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25);
		MDCH DD 4 BRIGHT A_SpawnItemEx("MDJ_ChaliceGlitter", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25);
		MDCH CC 4 BRIGHT A_SpawnItemEx("MDJ_ChaliceGlitter", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25);
		loop;
	}
}

class MDJ_ChaliceGlitter : Actor
{
	Default
	{
		+NOBLOCKMAP
		+NOGRAVITY
		+MISSILE
		+ZDOOMTRANS
		RenderStyle "Add";
		alpha 0.8;
		Damage 0;
	}
	States
	{
		Spawn:
			MDCH F 2 BRIGHT;
			MDCH G 2 BRIGHT MDJ_Glitter;
			MDCH H 2 BRIGHT;
			Loop;
	}
	void MDJ_Glitter ()
	{
		if (++health > 35)
		{
			Vel.Z *= 1.5;
		}
	}
}

class MDJ_VanUAC : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title Van
		Radius 32;
		Height 56;
		
		+NOTAUTOAIMED
		+SOLID
		+SHOOTABLE
		+NODAMAGE
		+NOBLOOD
		+CANPASS
	}
	States
	{
	Spawn:
		UVAN A -1;
		Stop;
	}
}

class MDJ_OfficeChair : Actor
{
	Default
	{
		//$Category New Decorations
		//$Title Office Chair
	//	Var int user_spincounter;
	//	Var int user_spinangle;
        //$Arg0 Colour
        //$Arg0Type 11
        //$Arg0Enum {0 = "Grey"; 1 = "Green"; 2 = "Red"; 3 = "Olive"; 4 = "Brown"; 5 = "Pink"; 6 = "Cream"; 7 = "Beige"; 8 = "Yellow"; 9 = "PlushRed"; 10 = "Blue"; 11 = "Ourple"; 12 = "Navy"; 13 = "White"; 14 = "Random";}
		
		//I stole some of this code from David, hopefully he doesn't mind... =3
	
		Height 26;
		Radius 14;
		Health 0x7FFFFFFF;
		Mass 400;
		MaxStepHeight 0;
		PainChance 0;
		
		+NOTAUTOAIMED
		+SOLID
		+DROPOFF
		+SLIDESONWALLS
		+PUSHABLE
		+CANPASS
		+SHOOTABLE
		+NOBLOOD
	}
	States
	{
		Spawn:
            OCHR A 0 A_JumpIf (args[0] == 0,"Grey");
            OCHR A 0 A_JumpIf (args[0] == 1,"Green");
            OCHR A 0 A_JumpIf (args[0] == 2,"Red");
            OCHR A 0 A_JumpIf (args[0] == 3,"Olive");
            OCHR A 0 A_JumpIf (args[0] == 4,"Brown");
            OCHR A 0 A_JumpIf (args[0] == 5,"Pink");
            OCHR A 0 A_JumpIf (args[0] == 7,"Beige");
            OCHR A 0 A_JumpIf (args[0] == 8,"Yellow");
            OCHR A 0 A_JumpIf (args[0] == 9,"PlushRed");
            OCHR A 0 A_JumpIf (args[0] == 10,"Blue");
            OCHR A 0 A_JumpIf (args[0] == 11,"Ourple");
            OCHR A 0 A_JumpIf (args[0] == 12,"Navy");
            OCHR A 0 A_JumpIf (args[0] == 13,"White");
            OCHR A 0 A_JumpIf (args[0] == 14,"Random");
		Random:	//13
			OCHR A 0 A_Jump(256,"Grey","Green","Red","Olive","Brown","Pink","Cream","Beige","Yellow","PlushRed","Blue","Ourple","Navy","White");
		Grey:	//0
			OCHR A 0 A_SetTranslation("MDJ_Grey");
			OCHR A -1;
			Stop;
		Green:	//1
			OCHR A -1;
			Stop;
		Red:	//2
			OCHR A 0 A_SetTranslation("MDJ_Red");
			OCHR A -1;
			Stop;
		Olive:	//3
			OCHR A 0 A_SetTranslation("MDJ_Olive");
			OCHR A -1;
			Stop;
		Brown:	//4
			OCHR A 0 A_SetTranslation("MDJ_Brown");
			OCHR A -1;
			Stop;
		Pink:	//5
			OCHR A 0 A_SetTranslation("MDJ_Pink");
			OCHR A -1;
			Stop;
		Cream:	//6
			OCHR A 0 A_SetTranslation("MDJ_Cream");
			OCHR A -1;
			Stop;
		Beige:	//7
			OCHR A 0 A_SetTranslation("MDJ_Beige");
			OCHR A -1;
			Stop;
		Yellow:	//8
			OCHR A 0 A_SetTranslation("MDJ_Yellow");
			OCHR A -1;
			Stop;
		PlushRed:	//9
			OCHR A 0 A_SetTranslation("MDJ_PlushRed");
			OCHR A -1;
			Stop;
		Blue:	//10
			OCHR A 0 A_SetTranslation("MDJ_Blue");
			OCHR A -1;
			Stop;
		Ourple:	//11
			OCHR A 0 A_SetTranslation("MDJ_Ourple");
			OCHR A -1;
			Stop;
		Navy:	//12
			OCHR A 0 A_SetTranslation("MDJ_Navy");
			OCHR A -1;
			Stop;
		White:	//13
			OCHR A 0 A_SetTranslation("MDJ_White");
			OCHR A -1;
			Stop;
	}
}

class MDJ_OfficeChairRed: MDJ_OfficeChair
{
	Default
	{
		//$Category New Decorations
		//$Title Office Chair (Red)
		Translation 2;
	}
}

class MDJ_OfficeChairOlive: MDJ_OfficeChair
{
	Default
	{
		//$Category New Decorations
		//$Title Office Chair (Olive)
		Translation "112:127=[128,128,64]:[0,0,0]";
	}
}

class MDJ_OfficeChairGrey: MDJ_OfficeChair
{
	Default
	{
		//$Category New Decorations
		//$Title Office Chair (Grey)
		Translation 0;
	}
}

class MDJ_OfficeChairBrown: MDJ_OfficeChair
{
	Default
	{
		//$Category New Decorations
		//$Title Office Chair (Brown)
		Translation 1;
	}
}