gzdoom/wadsrc/static/zscript/hexen/flechette.txt
Christoph Oelckers 371712c53a - turned everything I could into non-action functions.
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
2016-10-22 17:49:08 +02:00

254 lines
4.2 KiB
Text

// 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";
}
native void 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) --------------------------------
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;
}
}