Class GhostApple : ArmorBonus
{

  Default
  {
    RenderStyle "SoulTrans";
    Inventory.PickupMessage "GHOST APPLE!";
  }

  States
  {
    Spawn:
      gapp A 1 Bright;
      Loop;
  }
  
}

Class SuperSprite : Soulsphere 
{

  Default
  {
    Inventory.PickupMessage "Superlarge Sprite!";
  }

  States
  {
    Spawn:
      SPRT A 1 Bright;
      Loop;
  }
  
}

Class SpriteCan : HealthBonus
{

  Default
  {
    scale 0.25;
    Inventory.PickupMessage "can of Sprite!";
  }

  States
  {
    Spawn:
      SPRT A 1 Bright;
      Loop;
  }
  
}

Class SuperRevenantTracer : RevenantTracer
{
	Default
	{
		+DEHEXPLOSION
		+ROCKETTRAIL
		Damage 10;
		+SEEKERMISSILE
		Obituary "$OB_MPROCKET";	
		Radius 11;
		Height 8;
		Speed 10;
		Damage 10;
		Projectile;
		SeeSound "skeleton/attack";
		DeathSound "skeleton/tracex";
		RenderStyle "Add";
	}
	States
	{
	Spawn:
		FATB AB 2 BRIGHT A_SeekerMissile(16, 32, SMF_LOOK | SMF_PRECISE | SMF_CURSPEED, 256);
		Loop;
	Death:
		FBXP A 8 BRIGHT A_Explode;
		FBXP B 6 BRIGHT;
		FBXP C 4 BRIGHT;
		Stop;
	}
}

class GoldRocketLauncher : RocketLauncher
{
	Default
	{
		Weapon.SlotNumber 5;
		Weapon.AmmoUse 1;
		Weapon.AmmoGive 2;
		Weapon.AmmoType "RocketAmmo";
		+WEAPON.NOAUTOFIRE
		Inventory.PickupMessage "Picked up a golden RPG.";
	}
	States
	{
	Ready:
		gMIS A 1 A_WeaponReady;
		Loop;
	Deselect:
		gMIS A 1 A_Lower;
		Loop;
	Select:
		gMIS A 1 A_Raise;
		Loop;
	Fire:
		gMIS B 8 A_GunFlash;
		gMIS B 12 A_FireProjectile("SuperRevenantTracer",0,1); 
		gMIS B 0 A_ReFire;
		Goto Ready;
	Flash:
		gMIF A 3 Bright A_Light1;
		gMIF B 4 Bright;
		gMIF CD 4 Bright A_Light2;
		Goto LightDone;
	Spawn:
		grpg A -1;
		Stop;
	}
}

class PurpleLaserBeam : BaronBall
{
	Default
	{
		Radius 4;
		Height 4;
		Speed 20;
		Damage 10;
		RenderStyle "SoulTrans";
	}

	States
	{
	Spawn:
		lase AB 4 BRIGHT;
		Loop;
	Death:
		lase CDE 6 BRIGHT;
		Stop;
	}
}

class GoldLaserShotgun : Shotgun
{
	Default
	{
		Weapon.SlotNumber 3;
		Weapon.AmmoUse 1;
		Weapon.AmmoGive 80;
		Weapon.AmmoType "Cell";
		Inventory.PickupMessage "Picked up a golden laser shotgun.";
		Obituary "A golden laser shotgun killed again.";
	}
	States
	{
	Ready:
		gSHG A 1 A_WeaponReady;
		Loop;
	Deselect:
		gSHG A 1 A_Lower;
		Loop;
	Select:
		gSHG A 1 A_Raise;
		Loop;
	Fire:
		gSHG A 3 A_GunFlash();
		gSHG A 7 A_FireProjectile("PurpleLaserBeam",0,1);
		gSHG BC 5 A_PlaySound("coolguy/lasergun", CHAN_5); 
		gSHG D 4;  
		gSHG CB 5;
		gSHG A 3;
		gSHG A 7 A_ReFire;
		Goto Ready;
	Flash:
		gSHF A 4 Bright A_Light1;
		gSHF B 3 Bright A_Light2;
		Goto LightDone;
	Spawn:
		gSHT A -1;
		Stop;
	}
}

class Goldchainplasmagun : Chaingun
{
	Default
	{
	    Weapon.AmmoUse 1;
		Weapon.AmmoGive 80;
		Weapon.AmmoType "Cell";		
		Weapon.SlotNumber 4;
		Inventory.PickupMessage "Picked up a golden chain plasma gun.";
		Obituary "A golden chain plasma gun killed again.";
	}
	States
	{
	Ready:
		CHGB A 1 A_WeaponReady;
		Loop;
	Deselect:
		CHGB A 1 A_Lower;
		Loop;
	Select:
		CHGB A 1 A_Raise;
		Loop;
	Fire:	
		CHGB A 0 A_GunFlash();
		CHGB A 4 A_FireProjectile("ArachnotronPlasma",0,1);
		CHGB B 0 A_GunFlash("Flash2");
		CHGB B 4 A_FireProjectile("ArachnotronPlasma",0,1);
		CHGB B 0 A_ReFire;
		Goto Ready;
	Flash:
		CHBF A 5 Bright A_Light1;
		Goto LightDone;
		CHBF B 5 Bright A_Light2;
		Goto LightDone;
	Spawn:
		gmgn A -1;
		Stop;
	}
}
