mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-18 16:41:24 +00:00
371712c53a
- 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.
255 lines
3.9 KiB
Text
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;
|
|
}
|
|
}
|
|
|
|
|