82 lines
1.2 KiB
Text
82 lines
1.2 KiB
Text
// unique voodoo doll, for better compatibility
|
|
Class SWWMVoodooDoll : PlayerPawn
|
|
{
|
|
Vector3 lastvel;
|
|
|
|
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
|
{
|
|
// as simple as it gets
|
|
return "$OB_VOODOO";
|
|
}
|
|
override void Tick()
|
|
{
|
|
Super.Tick();
|
|
// mikoportal compat
|
|
if ( !(pos.z ~== -32768) ) return;
|
|
if ( vel.length() <= lastvel.length() )
|
|
vel = lastvel;
|
|
lastvel = vel;
|
|
}
|
|
Default
|
|
{
|
|
Tag "$FN_VOODOO";
|
|
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;
|
|
}
|
|
}
|