
// Poison Bag (Flechette used by Cleric) ------------------------------------

ACTOR PoisonBag
{
	Radius 5
	Height 5
	+NOBLOCKMAP +NOGRAVITY

	action native A_PoisonBagInit();

	States
	{
	Spawn:
		PSBG A 18 Bright
		PSBG B 4 Bright
		PSBG C 3
		PSBG C 1 A_PoisonBagInit
		Stop
	}
}

// Fire Bomb (Flechette used by Mage) ---------------------------------------

ACTOR FireBomb
{
	DamageType "Fire"
	+NOGRAVITY
	+FOILINVUL
	RenderStyle Translucent
	Alpha 0.6
	DeathSound "FlechetteExplode"

	action native A_TimeBomb();

	States
	{
	Spawn:
		PSBG A 20
		PSBG AA 10
		PSBG B 4
		PSBG C 4 A_Scream
		XPL1 A 4 Bright A_TimeBomb
		XPL1 BCDEF 4 Bright
		Stop
	}
}

// Throwing Bomb (Flechette used by Fighter) --------------------------------

ACTOR ThrowingBomb
{
	Health 48
	Speed 12
	Radius 8
	Height 10
	DamageType "Fire"
	+NOBLOCKMAP +DROPOFF +MISSILE
	BounceType "HexenCompat"
	SeeSound "FlechetteBounce"
	DeathSound "FlechetteExplode"

	action native A_CheckThrowBomb();
	action native A_CheckThrowBomb2();

	States
	{
	Spawn:
		THRW A 4 A_CheckThrowBomb
		THRW BCDE 3 A_CheckThrowBomb
		THRW F 3 A_CheckThrowBomb2
		Loop
		THRW G 6 A_CheckThrowBomb
		THRW F 4 A_CheckThrowBomb
		THRW H 6 A_CheckThrowBomb
		THRW F 4 A_CheckThrowBomb
		THRW G 6 A_CheckThrowBomb
		THRW F 3 A_CheckThrowBomb
		Wait
	Death:
		CFCF Q 4 Bright A_NoGravity
		CFCF R 3 Bright A_Scream
		CFCF S 4 Bright A_Explode
		CFCF T 3 Bright
		CFCF U 4 Bright
		CFCF W 3 Bright
		CFCF X 4 Bright
		CFCF Z 3 Bright
		Stop
	}
}

// Poison Bag Artifact (Flechette) ------------------------------------------

ACTOR ArtiPoisonBag : Inventory native
{
	+FLOATBOB
	Inventory.DefMaxAmount
	Inventory.PickupFlash "PickupFlash"
	+INVBAR +FANCYPICKUPSOUND
	Inventory.Icon "ARTIPSBG"
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$TXT_ARTIPOISONBAG"
	Tag "$TAG_ARTIPOISONBAG"
	States
	{
	Spawn:
		PSBG A -1
		Stop
	}
}

// Poison Bag 1 (The Cleric's) ----------------------------------------------

ACTOR ArtiPoisonBag1 : ArtiPoisonBag native
{
	Inventory.Icon "ARTIPSB1"
	Tag "$TAG_ARTIPOISONBAG1"
}

// Poison Bag 2 (The Mage's) ------------------------------------------------

ACTOR ArtiPoisonBag2 : ArtiPoisonBag native
{
	Inventory.Icon "ARTIPSB2"
	Tag "$TAG_ARTIPOISONBAG2"
}

// Poison Bag 3 (The Fighter's) ---------------------------------------------

ACTOR ArtiPoisonBag3 : ArtiPoisonBag native
{
	Inventory.Icon "ARTIPSB3"
	Tag "$TAG_ARTIPOISONBAG3"
}


// Poison Bag 4 (Custom Giver) ----------------------------------------------

ACTOR ArtiPoisonBagGiver : ArtiPoisonBag native
{
	Inventory.Icon "ARTIPSB4"
}

// Poison Bag 5 (Custom Thrower) --------------------------------------------

ACTOR ArtiPoisonBagShooter : ArtiPoisonBag native
{
	Inventory.Icon "ARTIPSB5"
}

// Poison Cloud -------------------------------------------------------------

ACTOR PoisonCloud native
{
	Radius 20
	Height 30
	Mass 0x7fffffff
	+NOBLOCKMAP +NOGRAVITY +DROPOFF
	+NODAMAGETHRUST
	+DONTSPLASH +FOILINVUL +CANBLAST +BLOODLESSIMPACT +BLOCKEDBYSOLIDACTORS
	RenderStyle Translucent
	Alpha 0.6
	DeathSound "PoisonShroomDeath"
	DamageType PoisonCloud

	action native A_PoisonBagDamage();
	action native A_PoisonBagCheck();

	States
	{
	Spawn:
		PSBG D 1
		PSBG D 1 A_Scream
		PSBG DEEEFFFGGGHHHII 2 A_PoisonBagDamage
		PSBG I 2 A_PoisonBagCheck
		PSBG I 1 A_PoisonBagCheck
		Goto Spawn + 3
	Death:
		PSBG HG 7
		PSBG FD 6
		Stop
	}
}

// Poison Shroom ------------------------------------------------------------

ACTOR ZPoisonShroom : PoisonBag
{
	Radius 6
	Height 20
	PainChance 255
	Health 30
	Mass 0x7fffffff
	+SHOOTABLE
    +SOLID
    +NOBLOOD
	+NOICEDEATH
	-NOBLOCKMAP
	-NOGRAVITY
	PainSound "PoisonShroomPain"
	DeathSound "PoisonShroomDeath"

	action native A_PoisonShroom();

	States
	{
	Spawn:
		SHRM A 5 A_PoisonShroom
		Goto Pain+1
	Pain:
		SHRM A 6
		SHRM B 8 A_Pain
		Goto Spawn
	Death:
		SHRM CD 5
		SHRM E 5 A_PoisonBagInit
		SHRM F -1
		Stop
	}
}

