gzdoom/wadsrc/static/zscript/heretic/hereticmisc.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

255 lines
3.9 KiB
Text

// Pod ----------------------------------------------------------------------
class Pod : Actor
{
Default
{
Health 45;
Radius 16;
Height 54;
Painchance 255;
+SOLID +NOBLOOD +SHOOTABLE +DROPOFF
+WINDTHRUST +PUSHABLE +SLIDESONWALLS
+CANPASS +TELESTOMP +DONTMORPH
+NOBLOCKMONST +DONTGIB +OLDRADIUSDMG
DeathSound "world/podexplode";
PushFactor 0.5;
}
native void A_PodPain (class<Actor> podtype = "PodGoo");
native void A_RemovePod ();
States
{
Spawn:
PPOD A 10;
Loop;
Pain:
PPOD B 14 A_PodPain;
Goto Spawn;
Death:
PPOD C 5 BRIGHT A_RemovePod;
PPOD D 5 BRIGHT A_Scream;
PPOD E 5 BRIGHT A_Explode;
PPOD F 10 BRIGHT;
Stop;
Grow:
PPOD IJKLMNOP 3;
Goto Spawn;
}
}
// Pod goo (falls from pod when damaged) ------------------------------------
class PodGoo : Actor
{
Default
{
Radius 2;
Height 4;
Gravity 0.125;
+NOBLOCKMAP +MISSILE +DROPOFF
+NOTELEPORT +CANNOTPUSH
}
States
{
Spawn:
PPOD GH 8;
Loop;
Death:
PPOD G 10;
Stop;
}
}
// Pod generator ------------------------------------------------------------
class PodGenerator : Actor
{
Default
{
+NOBLOCKMAP
+NOSECTOR
+DONTSPLASH
AttackSound "world/podgrow";
}
native void A_MakePod (class<Actor> podtype = "Pod");
States
{
Spawn:
TNT1 A 35 A_MakePod;
Loop;
}
}
// Teleglitter generator 1 --------------------------------------------------
class TeleGlitterGenerator1 : Actor
{
Default
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
+MOVEWITHSECTOR
}
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25);
Loop;
}
}
// Teleglitter generator 2 --------------------------------------------------
class TeleGlitterGenerator2 : Actor
{
Default
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
+MOVEWITHSECTOR
}
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter2", random[TeleGlitter2](0,31)-16, random[TeleGlitter2](0,31)-16, 0, 0,0,0.25);
Loop;
}
}
// Teleglitter 1 ------------------------------------------------------------
class TeleGlitter1 : Actor
{
Default
{
+NOBLOCKMAP +NOGRAVITY +MISSILE
RenderStyle "Add";
Damage 0;
}
native void A_AccTeleGlitter ();
States
{
Spawn:
TGLT A 2 BRIGHT;
TGLT B 2 BRIGHT A_AccTeleGlitter;
TGLT C 2 BRIGHT;
TGLT D 2 BRIGHT A_AccTeleGlitter;
TGLT E 2 BRIGHT;
Loop;
}
}
// Teleglitter 2 ------------------------------------------------------------
class TeleGlitter2 : TeleGlitter1
{
States
{
Spawn:
TGLT F 2 BRIGHT;
TGLT G 2 BRIGHT A_AccTeleGlitter;
TGLT H 2 BRIGHT;
TGLT I 2 BRIGHT A_AccTeleGlitter;
TGLT J 2 BRIGHT;
Loop;
}
}
// --- Volcano --------------------------------------------------------------
class Volcano : Actor
{
Default
{
Radius 12;
Height 20;
+SOLID
}
native void A_VolcanoSet ();
native void A_VolcanoBlast ();
States
{
Spawn:
VLCO A 350;
VLCO A 35 A_VolcanoSet;
VLCO BCDBCD 3;
VLCO E 10 A_VolcanoBlast;
Goto Spawn+1;
}
}
// Volcano blast ------------------------------------------------------------
class VolcanoBlast : Actor
{
Default
{
Radius 8;
Height 8;
Speed 2;
Damage 2;
DamageType "Fire";
Gravity 0.125;
+NOBLOCKMAP +MISSILE +DROPOFF
+NOTELEPORT
DeathSound "world/volcano/blast";
}
native void A_VolcBallImpact ();
States
{
Spawn:
VFBL AB 4 BRIGHT A_SpawnItemEx("Puffy", random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625,
0,0,0,0,SXF_ABSOLUTEPOSITION, 64);
Loop;
Death:
XPL1 A 4 BRIGHT A_VolcBallImpact;
XPL1 BCDEF 4 BRIGHT;
Stop;
}
}
// Volcano T Blast ----------------------------------------------------------
class VolcanoTBlast : Actor
{
Default
{
Radius 8;
Height 6;
Speed 2;
Damage 1;
DamageType "Fire";
Gravity 0.125;
+NOBLOCKMAP +MISSILE +DROPOFF
+NOTELEPORT
}
States
{
Spawn:
VTFB AB 4 BRIGHT;
Loop;
Death:
SFFI CBABCDE 4 BRIGHT;
Stop;
}
}