// Poison Bag (Flechette used by Cleric) ------------------------------------ class PoisonBag : Actor { Default { Radius 5; Height 5; +NOBLOCKMAP +NOGRAVITY } native void 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) --------------------------------------- class FireBomb : Actor { Default { DamageType "Fire"; +NOGRAVITY +FOILINVUL RenderStyle "Translucent"; Alpha 0.6; DeathSound "FlechetteExplode"; } 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; } void A_TimeBomb() { AddZ(32, false); A_SetRenderStyle(1., STYLE_Add); A_Explode(); } } // Throwing Bomb (Flechette used by Fighter) -------------------------------- class ThrowingBomb : Actor { Default { Health 48; Speed 12; Radius 8; Height 10; DamageType "Fire"; +NOBLOCKMAP +DROPOFF +MISSILE BounceType "HexenCompat"; SeeSound "FlechetteBounce"; DeathSound "FlechetteExplode"; } native void A_CheckThrowBomb(); native void 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) ------------------------------------------ class ArtiPoisonBag : Inventory native { Default { +FLOATBOB Inventory.DefMaxAmount; Inventory.PickupFlash "PickupFlash"; +INVENTORY.INVBAR +INVENTORY.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) ---------------------------------------------- class ArtiPoisonBag1 : ArtiPoisonBag native { Default { Inventory.Icon "ARTIPSB1"; Tag "$TAG_ARTIPOISONBAG1"; } } // Poison Bag 2 (The Mage's) ------------------------------------------------ class ArtiPoisonBag2 : ArtiPoisonBag native { Default { Inventory.Icon "ARTIPSB2"; Tag "$TAG_ARTIPOISONBAG2"; } } // Poison Bag 3 (The Fighter's) --------------------------------------------- class ArtiPoisonBag3 : ArtiPoisonBag native { Default { Inventory.Icon "ARTIPSB3"; Tag "$TAG_ARTIPOISONBAG3"; } } // Poison Bag 4 (Custom Giver) ---------------------------------------------- class ArtiPoisonBagGiver : ArtiPoisonBag native { Default { Inventory.Icon "ARTIPSB4"; } } // Poison Bag 5 (Custom Thrower) -------------------------------------------- class ArtiPoisonBagShooter : ArtiPoisonBag native { Default { Inventory.Icon "ARTIPSB5"; } } // Poison Cloud ------------------------------------------------------------- class PoisonCloud : Actor native { Default { Radius 20; Height 30; Mass 0x7fffffff; +NOBLOCKMAP +NOGRAVITY +DROPOFF +NODAMAGETHRUST +DONTSPLASH +FOILINVUL +CANBLAST +BLOODLESSIMPACT +BLOCKEDBYSOLIDACTORS RenderStyle "Translucent"; Alpha 0.6; DeathSound "PoisonShroomDeath"; DamageType "PoisonCloud"; } native void A_PoisonBagDamage(); native void 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 ------------------------------------------------------------ class ZPoisonShroom : PoisonBag { Default { Radius 6; Height 20; PainChance 255; Health 30; Mass 0x7fffffff; +SHOOTABLE +SOLID +NOBLOOD +NOICEDEATH -NOBLOCKMAP -NOGRAVITY PainSound "PoisonShroomPain"; DeathSound "PoisonShroomDeath"; } native void 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; } }