swwmgz_m/zscript/player/swwm_player_extra.zsc

84 lines
1.3 KiB
Text

// unique voodoo doll, for better compatibility
Class SWWMVoodooDoll : PlayerPawn
{
Vector3 lastvel;
SWWMShadow myshadow;
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
{
// as simple as it gets
return "$OB_VOODOO";
}
override void Tick()
{
Super.Tick();
if ( !myshadow ) myshadow = SWWMShadow.Track(self);
// mikoportal compat
if ( !(pos.z ~== -32768) ) return;
if ( vel.length() <= lastvel.length() )
vel = lastvel;
lastvel = vel;
}
Default
{
Tag "$FN_VOODOO_NP";
Speed 1;
Health 100;
Radius 16;
Height 56;
Mass 100;
PainChance 255;
+NOBLOOD;
+DONTGIB;
+NOICEDEATH;
+DONTCORPSE;
+NOSKIN;
-FRIENDLY;
}
States
{
Spawn:
XZW1 A -1;
Stop;
Pain:
XZW1 A 1;
XZW1 B 2 A_StartSound("voodoodoll/hit",CHAN_BODY,CHANF_OVERLAP);
XZW1 CDEF 2;
Goto Spawn;
Death:
XZW1 A 2
{
A_StartSound("voodoodoll/fall",CHAN_BODY,CHANF_OVERLAP);
A_NoBlocking();
}
XZW1 GHIJKLMNO 2;
XZW1 PQR 2;
XZW1 S -1;
Stop;
}
}
// for the doom 2 cast
Class CastDemolitionist : Actor
{
Default
{
DeathSound "demolitionist/death";
}
States
{
Spawn:
See:
ZYX1 ABCDEFGHIJKLMNOP 2;
Loop;
Missile:
ZYX1 A 2;
ZYX2 ABCDEF 2;
Goto See;
Death:
ZYX1 A 2;
ZYX3 ABCDEFGHIJKLMNOP 2;
ZYX3 Q -1;
Stop;
}
}