// Med patch -----------------------------------------------------------------

class MedPatch : HealthPickup
{
	Default
	{
		Health 10;
		+FLOORCLIP
		+INVENTORY.INVBAR
		Inventory.MaxAmount 20;
		Tag "$TAG_MEDPATCH";
		Inventory.Icon "I_STMP";
		Inventory.PickupMessage "$TXT_MEDPATCH";
		HealthPickup.Autouse 3;
	}
	States
	{
	Spawn:
		STMP A -1;
		Stop;
	}
}


// Medical Kit ---------------------------------------------------------------

class MedicalKit : HealthPickup
{
	Default
	{
		Health 25;
		+FLOORCLIP
		+INVENTORY.INVBAR
		Inventory.MaxAmount 15;
		Tag "$TAG_MEDICALKIT";
		Inventory.Icon "I_MDKT";
		Inventory.PickupMessage "$TXT_MEDICALKIT";
		HealthPickup.Autouse 3;
	}
	States
	{
	Spawn:
		MDKT A -1;
		Stop;
	}
}


// Surgery Kit --------------------------------------------------------------

class SurgeryKit : HealthPickup
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		Health -100;
		Inventory.MaxAmount 5;
		Tag "$TAG_SURGERYKIT";
		Inventory.Icon "I_FULL";
		Inventory.PickupMessage "$TXT_SURGERYKIT";
	}
	States
	{
	Spawn:
		FULL AB 35;
		Loop;
	}
}


// StrifeMap ----------------------------------------------------------------

class StrifeMap : MapRevealer
{
	Default
	{
		+FLOORCLIP
		Inventory.PickupSound "misc/p_pkup";
		Inventory.PickupMessage "$TXT_STRIFEMAP";
	}
	States
	{
	Spawn:
		SMAP AB 6 Bright;
		Loop;
	}
}
		

// Beldin's Ring ------------------------------------------------------------

class BeldinsRing : Inventory
{
	Default
	{
		+NOTDMATCH
		+FLOORCLIP
		+INVENTORY.INVBAR
		Tag "$TAG_BELDINSRING";
		Inventory.Icon "I_RING";
		Inventory.GiveQuest 1;
		Inventory.PickupMessage "$TXT_BELDINSRING";
	}
	States
	{
	Spawn:
		RING A -1;
		Stop;
	}
}


// Offering Chalice ---------------------------------------------------------

class OfferingChalice : Inventory
{
	Default
	{
		+DROPPED
		+FLOORCLIP
		+INVENTORY.INVBAR
		Radius 10;
		Height 16;
		Tag "$TAG_OFFERINGCHALICE";
		Inventory.Icon "I_RELC";
		Inventory.PickupMessage "$TXT_OFFERINGCHALICE";
		Inventory.GiveQuest 2;
	}
	States
	{
	Spawn:
		RELC A -1;
		Stop;
	}
}


// Ear ----------------------------------------------------------------------

class Ear : Inventory
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		Tag "$TAG_EAR";
		Inventory.Icon "I_EARS";
		Inventory.PickupMessage "$TXT_EAR";
		Inventory.GiveQuest 9;
	}
	States
	{
	Spawn:
		EARS A -1;
		Stop;
	}
}


// Broken Power Coupling ----------------------------------------------------

class BrokenPowerCoupling : Inventory
{
	Default
	{
		Health 40;
		+DROPPED
		+FLOORCLIP
		+INVENTORY.INVBAR
		Radius 16;
		Height 16;
		Tag "$TAG_BROKENCOUPLING";
		Inventory.MaxAmount 1;
		Inventory.Icon "I_COUP";
		Inventory.PickupMessage "$TXT_BROKENCOUPLING";
		Inventory.GiveQuest 8;
	}
	States
	{
	Spawn:
		COUP C -1;
		Stop;
	}
}


// Shadow Armor -------------------------------------------------------------

class ShadowArmor : PowerupGiver
{
	Default
	{
		+FLOORCLIP
		+VISIBILITYPULSE
		+INVENTORY.INVBAR
		-INVENTORY.FANCYPICKUPSOUND
		RenderStyle "Translucent";
		Tag "$TAG_SHADOWARMOR";
		Inventory.MaxAmount 2;
		Powerup.Type "PowerShadow";
		Inventory.Icon "I_SHD1";
		Inventory.PickupSound "misc/i_pkup";
		Inventory.PickupMessage "$TXT_SHADOWARMOR";
	}
	States
	{
	Spawn:
		SHD1 A -1 Bright;
		Stop;
	}
}


// Environmental suit -------------------------------------------------------

class EnvironmentalSuit : PowerupGiver
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		-INVENTORY.FANCYPICKUPSOUND
		Inventory.MaxAmount 5;
		Powerup.Type "PowerMask";
		Tag "$TAG_ENVSUIT";
		Inventory.Icon "I_MASK";
		Inventory.PickupSound "misc/i_pkup";
		Inventory.PickupMessage "$TXT_ENVSUIT";
	}
	States
	{
	Spawn:
		MASK A -1;
		Stop;
	}
}


// Guard Uniform ------------------------------------------------------------

class GuardUniform : Inventory
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		Tag "$TAG_GUARDUNIFORM";
		Inventory.Icon "I_UNIF";
		Inventory.PickupMessage "$TXT_GUARDUNIFORM";
		Inventory.GiveQuest 15;
	}
	States
	{
	Spawn:
		UNIF A -1;
		Stop;
	}
}


// Officer's Uniform --------------------------------------------------------

class OfficersUniform : Inventory
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		Tag "$TAG_OFFICERSUNIFORM";
		Inventory.Icon "I_OFIC";
		Inventory.PickupMessage "$TXT_OFFICERSUNIFORM";
	}
	States
	{
	Spawn:
		OFIC A -1;
		Stop;
	}
}
	
	
// Flame Thrower Parts ------------------------------------------------------

class FlameThrowerParts : Inventory 
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		Inventory.Icon "I_BFLM";
		Tag "$TAG_FTHROWERPARTS";
		Inventory.PickupMessage "$TXT_FTHROWERPARTS";
	}
	States
	{
	Spawn:
		BFLM A -1;
		Stop;
	}
}

// InterrogatorReport -------------------------------------------------------
// SCRIPT32 in strife0.wad has an Acolyte that drops this, but I couldn't
// find that Acolyte in the map. It seems to be totally unused in the
// final game.

class InterrogatorReport : Inventory
{
	Default
	{
		+FLOORCLIP
		Tag "$TAG_REPORT";
		Inventory.PickupMessage "$TXT_REPORT";
	}
	States
	{
	Spawn:
		TOKN A -1;
		Stop;
	}
}


// Info ---------------------------------------------------------------------

class Info : Inventory
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		Tag "$TAG_INFO";
		Inventory.Icon "I_TOKN";
		Inventory.PickupMessage "$TXT_INFO";
	}
	States
	{
	Spawn:
		TOKN A -1;
		Stop;
	}
}


// Targeter -----------------------------------------------------------------

class Targeter : PowerupGiver
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		-INVENTORY.FANCYPICKUPSOUND
		Tag "$TAG_TARGETER";
		Powerup.Type "PowerTargeter";
		Inventory.MaxAmount 5;
		Inventory.Icon "I_TARG";
		Inventory.PickupSound "misc/i_pkup";
		Inventory.PickupMessage "$TXT_TARGETER";
	}
	States
	{
	Spawn:
		TARG A -1;
		Stop;
	}
}
	
// Communicator -----------------------------------------------------------------

class Communicator : Inventory
{
	Default
	{
		+NOTDMATCH
		Tag "$TAG_COMMUNICATOR";
		Inventory.Icon "I_COMM";
		Inventory.PickupSound  "misc/p_pkup";
		Inventory.PickupMessage "$TXT_COMMUNICATOR";
	}
	States
	{
	Spawn:
		COMM A -1;
		Stop;
	}
}

// Degnin Ore ---------------------------------------------------------------

class DegninOre : Inventory native
{
	Default
	{	
		Health 10;
		Radius 16;
		Height 16;
		Inventory.MaxAmount 10;
		+SOLID
		+SHOOTABLE
		+NOBLOOD
		+FLOORCLIP
		+INCOMBAT
		+INVENTORY.INVBAR
		Tag "$TAG_DEGNINORE";
		DeathSound "ore/explode";
		Inventory.Icon "I_XPRK";
		Inventory.PickupMessage "$TXT_DEGNINORE";
	}
	States
	{
	Spawn:
		XPRK A -1;
		Stop;
	Death:
		XPRK A 1 A_RemoveForceField;
		BNG3 A 0 A_SetTranslucent(1,1);
		BNG3 A 0 A_Scream;
		BNG3 A 3 Bright A_Explode(192,192,1,1);
		BNG3 BCDEFGH 3 Bright;
		Stop;
	}
}

// Gun Training -------------------------------------------------------------

class GunTraining : Inventory
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		+INVENTORY.UNDROPPABLE
		Inventory.MaxAmount 100;
		Tag "$TAG_GUNTRAINING";
		Inventory.Icon "I_GUNT";
	}
	States
	{
	Spawn:
		GUNT A -1;
		Stop;
	}
}

// Health Training ----------------------------------------------------------

class HealthTraining : Inventory native
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.INVBAR
		+INVENTORY.UNDROPPABLE
		Inventory.MaxAmount 100;
		Tag "$TAG_HEALTHTRAINING";
		Inventory.Icon "I_HELT";
	}
	States
	{
	Spawn:
		HELT A -1;
		Stop;
	}
}



// Scanner ------------------------------------------------------------------

class Scanner : PowerupGiver native
{
	Default
	{
		+FLOORCLIP
		+INVENTORY.FANCYPICKUPSOUND
		Inventory.MaxAmount 1;
		Tag "$TAG_SCANNER";
		Inventory.Icon "I_PMUP";
		Powerup.Type "PowerScanner";
		Inventory.PickupSound "misc/i_pkup";
		Inventory.PickupMessage "$TXT_SCANNER";
	}
	States
	{
	Spawn:
		PMUP AB 6;
		Loop;
	}
}

// Prison Pass --------------------------------------------------------------

class PrisonPass : Key native
{
	Default
	{
		Inventory.Icon "I_TOKN";
		Tag "$TAG_PRISONPASS";
		Inventory.PickupMessage "$TXT_PRISONPASS";
	}
	States
	{
	Spawn:
		TOKN A -1;
		Stop;
	}
}

//---------------------------------------------------------------------------
// Dummy items. They are just used by Strife to perform ---------------------
// actions and cannot be held. ----------------------------------------------
//---------------------------------------------------------------------------

class DummyStrifeItem : Inventory native
{
	States
	{
	Spawn:
		TOKN A -1;
		Stop;
	}
}

// Sound the alarm! ---------------------------------------------------------

class RaiseAlarm : DummyStrifeItem native
{
	Default
	{	
		Tag "$TAG_ALARM";
	}
}

// Open door tag 222 --------------------------------------------------------

class OpenDoor222 : DummyStrifeItem native
{
}

// Close door tag 222 -------------------------------------------------------

class CloseDoor222 : DummyStrifeItem native
{
}

// Open door tag 224 --------------------------------------------------------

class OpenDoor224 : DummyStrifeItem native
{
}

// Ammo ---------------------------------------------------------------------

class AmmoFillup : DummyStrifeItem native
{
	Default
	{
		Tag "$TAG_AMMOFILLUP";
	}
}

// Health -------------------------------------------------------------------

class HealthFillup : DummyStrifeItem native
{
	Default
	{
		Tag "$TAG_HEALTHFILLUP";
	}
}

// Upgrade Stamina ----------------------------------------------------------

class UpgradeStamina : DummyStrifeItem native
{
	Default
	{
		Inventory.Amount 10;
		Inventory.MaxAmount 100;
	}
}

// Upgrade Accuracy ---------------------------------------------------------

class UpgradeAccuracy : DummyStrifeItem native
{
}

// Start a slideshow --------------------------------------------------------

class SlideshowStarter : DummyStrifeItem native
{
}


