gzdoom/wadsrc/static/zscript/hexen/firedemon.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

236 lines
3.5 KiB
Text

// FireDemon ----------------------------------------------------------------
class FireDemon : Actor
{
Default
{
Health 80;
ReactionTime 8;
PainChance 1;
Speed 13;
Radius 20;
Height 68;
Mass 75;
Damage 1;
Monster;
+DROPOFF +NOGRAVITY +FLOAT
+FLOORCLIP +INVULNERABLE +TELESTOMP
SeeSound "FireDemonSpawn";
PainSound "FireDemonPain";
DeathSound "FireDemonDeath";
ActiveSound "FireDemonActive";
Obituary "$OB_FIREDEMON";
}
native void A_FiredRocks();
native void A_FiredChase();
native void A_FiredAttack();
native void A_FiredSplotch();
States
{
Spawn:
FDMN X 5 Bright;
FDMN EFG 10 Bright A_Look;
Goto Spawn + 1;
See:
FDMN E 8 Bright;
FDMN F 6 Bright;
FDMN G 5 Bright;
FDMN F 8 Bright;
FDMN E 6 Bright;
FDMN G 7 Bright A_FiredRocks;
FDMN HI 5 Bright;
FDMN J 5 Bright A_UnSetInvulnerable;
Chase:
FDMN ABC 5 Bright A_FiredChase;
Loop;
Pain:
FDMN D 0 Bright A_UnSetInvulnerable;
FDMN D 6 Bright A_Pain;
Goto Chase;
Missile:
FDMN K 3 Bright A_FaceTarget;
FDMN KKK 5 Bright A_FiredAttack;
Goto Chase;
Crash:
XDeath:
FDMN M 5 A_FaceTarget;
FDMN N 5 A_NoBlocking;
FDMN O 5 A_FiredSplotch;
Stop;
Death:
FDMN D 4 Bright A_FaceTarget;
FDMN L 4 Bright A_Scream;
FDMN L 4 Bright A_NoBlocking;
FDMN L 200 Bright;
Stop;
Ice:
FDMN R 5 A_FreezeDeath;
FDMN R 1 A_FreezeDeathChunks;
Wait;
}
}
// FireDemonSplotch1 -------------------------------------------------------
class FireDemonSplotch1 : Actor
{
Default
{
ReactionTime 8;
Radius 3;
Height 16;
Mass 100;
+DROPOFF +CORPSE
+NOTELEPORT +FLOORCLIP
}
States
{
Spawn:
FDMN P 3;
FDMN P 6 A_QueueCorpse;
FDMN Y -1;
Stop;
}
}
// FireDemonSplotch2 -------------------------------------------------------
class FireDemonSplotch2 : FireDemonSplotch1
{
States
{
Spawn:
FDMN Q 3;
FDMN Q 6 A_QueueCorpse;
FDMN Z -1;
Stop;
}
}
// FireDemonRock1 ------------------------------------------------------------
class FireDemonRock1 : Actor
{
Default
{
ReactionTime 8;
Radius 3;
Height 5;
Mass 16;
+NOBLOCKMAP +DROPOFF +MISSILE
+NOTELEPORT
}
native void A_SmBounce();
States
{
Spawn:
FDMN S 4;
Loop;
Death:
FDMN S 5 A_SmBounce;
XDeath:
FDMN S 200;
Stop;
}
}
// FireDemonRock2 ------------------------------------------------------------
class FireDemonRock2 : FireDemonRock1
{
States
{
Spawn:
FDMN T 4;
Loop;
Death:
FDMN T 5 A_SmBounce;
XDeath:
FDMN T 200;
Stop;
}
}
// FireDemonRock3 ------------------------------------------------------------
class FireDemonRock3 : FireDemonRock1
{
States
{
Spawn:
FDMN U 4;
Loop;
Death:
FDMN U 5 A_SmBounce;
XDeath:
FDMN U 200;
Stop;
}
}
// FireDemonRock4 ------------------------------------------------------------
class FireDemonRock4 : FireDemonRock1
{
States
{
Spawn:
FDMN V 4;
Loop;
Death:
FDMN V 5 A_SmBounce;
XDeath:
FDMN V 200;
Stop;
}
}
// FireDemonRock5 ------------------------------------------------------------
class FireDemonRock5 : FireDemonRock1
{
States
{
Spawn:
FDMN W 4;
Loop;
Death:
FDMN W 5 A_SmBounce;
XDeath:
FDMN W 200;
Stop;
}
}
// FireDemonMissile -----------------------------------------------------------
class FireDemonMissile : Actor
{
Default
{
ReactionTime 8;
Speed 10;
Radius 10;
Height 6;
Mass 5;
Damage 1;
DamageType "Fire";
Projectile;
RenderStyle "Add";
DeathSound "FireDemonMissileHit";
}
States
{
Spawn:
FDMB A 5 Bright;
Loop;
Death:
FDMB BCDE 5 Bright;
Stop;
}
}