mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-06 13:01:03 +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.
236 lines
3.4 KiB
Text
236 lines
3.4 KiB
Text
|
|
// Wraith -------------------------------------------------------------------
|
|
|
|
class Wraith : Actor
|
|
{
|
|
Default
|
|
{
|
|
Health 150;
|
|
PainChance 25;
|
|
Speed 11;
|
|
Height 55;
|
|
Mass 75;
|
|
Damage 10;
|
|
Monster;
|
|
+NOGRAVITY +DROPOFF +FLOAT
|
|
+FLOORCLIP +TELESTOMP
|
|
SeeSound "WraithSight";
|
|
AttackSound "WraithAttack";
|
|
PainSound "WraithPain";
|
|
DeathSound "WraithDeath";
|
|
ActiveSound "WraithActive";
|
|
HitObituary "$OB_WRAITHHIT";
|
|
Obituary "$OB_WRAITH";
|
|
}
|
|
|
|
native void A_WraithInit();
|
|
native void A_WraithChase();
|
|
native void A_WraithFX3();
|
|
native void A_WraithMelee();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
WRTH A 10;
|
|
WRTH B 5 A_WraithInit;
|
|
Goto Look;
|
|
Look:
|
|
WRTH AB 15 A_Look;
|
|
Loop;
|
|
See:
|
|
WRTH ABCD 4 A_WraithChase;
|
|
Loop;
|
|
Pain:
|
|
WRTH A 2;
|
|
WRTH H 6 A_Pain;
|
|
Goto See;
|
|
Melee:
|
|
WRTH E 6 A_FaceTarget;
|
|
WRTH F 6 A_WraithFX3;
|
|
WRTH G 6 A_WraithMelee;
|
|
Goto See;
|
|
Missile:
|
|
WRTH E 6 A_FaceTarget;
|
|
WRTH F 6;
|
|
WRTH G 6 A_CustomMissile("WraithFX1", 32, 0);
|
|
Goto See;
|
|
Death:
|
|
WRTH I 4;
|
|
WRTH J 4 A_Scream;
|
|
WRTH KL 4;
|
|
WRTH M 4 A_NoBlocking;
|
|
WRTH N 4 A_QueueCorpse;
|
|
WRTH O 4;
|
|
WRTH PQ 5;
|
|
WRTH R -1;
|
|
Stop;
|
|
XDeath:
|
|
WRT2 A 5;
|
|
WRT2 B 5 A_Scream;
|
|
WRT2 CD 5;
|
|
WRT2 E 5 A_NoBlocking;
|
|
WRT2 F 5 A_QueueCorpse;
|
|
WRT2 G 5;
|
|
WRT2 H -1;
|
|
Stop;
|
|
Ice:
|
|
WRT2 I 5 A_FreezeDeath;
|
|
WRT2 I 1 A_FreezeDeathChunks;
|
|
Wait;
|
|
}
|
|
}
|
|
|
|
// Buried wraith ------------------------------------------------------------
|
|
|
|
class WraithBuried : Wraith
|
|
{
|
|
Default
|
|
{
|
|
Height 68;
|
|
-SHOOTABLE
|
|
-SOLID
|
|
+DONTMORPH
|
|
+DONTBLAST
|
|
+SPECIALFLOORCLIP
|
|
+STAYMORPHED
|
|
+INVISIBLE
|
|
PainChance 0;
|
|
}
|
|
|
|
native void A_WraithRaiseInit();
|
|
native void A_WraithRaise();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
Goto Super::Look;
|
|
See:
|
|
WRTH A 2 A_WraithRaiseInit;
|
|
WRTH A 2 A_WraithRaise;
|
|
WRTH A 2 A_FaceTarget;
|
|
WRTH BB 2 A_WraithRaise;
|
|
Goto See + 1;
|
|
Chase:
|
|
Goto Super::See;
|
|
}
|
|
}
|
|
|
|
// Wraith FX 1 --------------------------------------------------------------
|
|
|
|
class WraithFX1 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 14;
|
|
Radius 10;
|
|
Height 6;
|
|
Mass 5;
|
|
Damage 5;
|
|
DamageType "Fire";
|
|
Projectile;
|
|
+FLOORCLIP
|
|
SeeSound "WraithMissileFire";
|
|
DeathSound "WraithMissileExplode";
|
|
}
|
|
|
|
native void A_WraithFX2();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
WRBL A 3 Bright;
|
|
WRBL B 3 Bright A_WraithFX2;
|
|
WRBL C 3 Bright;
|
|
Loop;
|
|
Death:
|
|
WRBL D 4 Bright;
|
|
WRBL E 4 Bright A_WraithFX2;
|
|
WRBL F 4 Bright;
|
|
WRBL GH 3 Bright A_WraithFX2;
|
|
WRBL I 3 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Wraith FX 2 --------------------------------------------------------------
|
|
|
|
class WraithFX2 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 2;
|
|
Height 5;
|
|
Mass 5;
|
|
+NOBLOCKMAP +DROPOFF
|
|
+FLOORCLIP +NOTELEPORT
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
WRBL JKLMNOP 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Wraith FX 3 --------------------------------------------------------------
|
|
|
|
class WraithFX3 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 2;
|
|
Height 5;
|
|
Mass 5;
|
|
+NOBLOCKMAP +DROPOFF +MISSILE
|
|
+FLOORCLIP +NOTELEPORT
|
|
DeathSound "Drip";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
WRBL QRS 4 Bright;
|
|
Loop;
|
|
Death:
|
|
WRBL S 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Wraith FX 4 --------------------------------------------------------------
|
|
|
|
class WraithFX4 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 2;
|
|
Height 5;
|
|
Mass 5;
|
|
+NOBLOCKMAP +DROPOFF +MISSILE
|
|
+NOTELEPORT
|
|
DeathSound "Drip";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
WRBL TUVW 4;
|
|
Loop;
|
|
Death:
|
|
WRBL W 10;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Wraith FX 5 --------------------------------------------------------------
|
|
|
|
class WraithFX5 : WraithFX4
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
WRBL XYZ 7;
|
|
Loop;
|
|
Death:
|
|
WRBL Z 35;
|
|
Stop;
|
|
}
|
|
}
|