mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-02 00:53:16 +00:00
304 lines
5.2 KiB
Text
304 lines
5.2 KiB
Text
class BloodMissileBase : BloodActor
|
|
{
|
|
meta double speed;
|
|
meta double angleofs;
|
|
meta VMFunction callback;
|
|
meta int spawnsoundID;
|
|
meta Sound spawnsound;
|
|
meta double movementAdd;
|
|
meta double randomVel;
|
|
meta int seqID;
|
|
meta name seqName;
|
|
meta VMFunction seqCallback;
|
|
|
|
property prefix: none;
|
|
property speed: speed;
|
|
property angleofs: angleofs;
|
|
property callback: callback;
|
|
property spawnsound: spawnsound;
|
|
property spawnsoundID: spawnsoundID;
|
|
property movementAdd: movementAdd;
|
|
property randomVel: randomVel;
|
|
property seqID: seqID;
|
|
property seqName: seqName;
|
|
property seqCallback: seqCallback;
|
|
|
|
default
|
|
{
|
|
seqID -1;
|
|
spawnsoundID -1;
|
|
}
|
|
|
|
virtual void initMissile(BloodActor spawner)
|
|
{
|
|
self.vel += self.movementAdd * spawner.vel;
|
|
if (self.randomVel > 0)
|
|
{
|
|
self.vel += (Blood.Random2F(self.randomVel), Blood.Random2F(self.randomVel), Blood.Random2F(self.randomVel) );
|
|
}
|
|
if (self.seqName != 'None')
|
|
{
|
|
// todo: the game cannot handle named seqs yet.
|
|
}
|
|
else if (self.seqID > -1)
|
|
{
|
|
self.seqSpawnID(self.seqID, self.seqCallback);
|
|
}
|
|
if (self.callback != null)
|
|
{
|
|
self.evPostActorCallback(0, self.callback);
|
|
}
|
|
if (self.spawnsound != 0)
|
|
{
|
|
// todo: currently only IDs supported.
|
|
//self.play3DSound(self.spawnsound, 0, 0);
|
|
}
|
|
else if (self.spawnsoundID > -1)
|
|
{
|
|
self.play3DSoundID(self.spawnsoundID, 0, 0);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
class BloodMissileButcherKnife : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "ButcherKnife";
|
|
speed 14.933319;
|
|
angleOfs 90.000000;
|
|
scale 0.625000, 0.625000;
|
|
shade -16;
|
|
clipdist 4.000000;
|
|
}
|
|
|
|
override void initMissile(BloodActor spawner)
|
|
{
|
|
super.initMissile(spawner);
|
|
self.cstat |= CSTAT_SPRITE_ALIGNMENT_WALL;
|
|
}
|
|
|
|
}
|
|
class BloodMissileFlareRegular : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "FLAREBURST";
|
|
speed 48.000000;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 8.000000;
|
|
callback fxFlareSpark;
|
|
spawnsoundID 422;
|
|
}
|
|
}
|
|
class BloodMissileTeslaAlt : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "Fireball";
|
|
speed 42.666656;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 8.000000;
|
|
callback fxTeslaAlt;
|
|
}
|
|
}
|
|
class BloodMissileFlareAlt : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "FLAREBURST";
|
|
speed 37.333328;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 1.000000;
|
|
callback fxFlareSpark;
|
|
spawnsoundID 422;
|
|
}
|
|
|
|
override void initMissile(BloodActor spawner)
|
|
{
|
|
super.initMissile(spawner);
|
|
self.evPostActorCallback(30, FlareBurst);
|
|
}
|
|
}
|
|
class BloodMissileFlameSpray : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 17.066666;
|
|
scale 0.375000, 0.375000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
movementAdd 0.5;
|
|
RandomVel 0x11111;
|
|
}
|
|
|
|
override void initMissile(BloodActor spawner)
|
|
{
|
|
super.InitMissile(spawner);
|
|
int index = Blood.Chance(0x8000)? 1 : 0;
|
|
self.seqSpawnID(index, nullptr);
|
|
}
|
|
|
|
}
|
|
class BloodMissileFireball : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 17.066666;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 8.000000;
|
|
spawnsoundID 441;
|
|
seqID 22;
|
|
seqCallback FireballSeqCallback;
|
|
}
|
|
}
|
|
class BloodMissileTeslaRegular : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "Teslaball";
|
|
speed 42.666656;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
spawnsoundID 251;
|
|
}
|
|
}
|
|
class BloodMissileEctoSkull : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "EctoSkull";
|
|
speed 10.666656;
|
|
scale 0.500000, 0.500000;
|
|
shade -24;
|
|
clipdist 8.000000;
|
|
spawnsoundID 493;
|
|
}
|
|
}
|
|
class BloodMissileFlameHound : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 17.066666;
|
|
scale 0.375000, 0.375000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
seqID 27;
|
|
movementAdd 0.5;
|
|
randomVel 0x11111;
|
|
}
|
|
}
|
|
class BloodMissilePukeGreen : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 12.799988;
|
|
scale 0.250000, 0.250000;
|
|
shade -16;
|
|
clipdist 4.000000;
|
|
seqID 29;
|
|
}
|
|
}
|
|
class BloodMissileUnused : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 12.799988;
|
|
scale 0.125000, 0.125000;
|
|
clipdist 4.000000;
|
|
}
|
|
}
|
|
class BloodMissileArcGargoyle : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "Fireball";
|
|
speed 32.000000;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
spawnsoundID 252;
|
|
}
|
|
}
|
|
class BloodMissileFireballNapalm : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 37.333328;
|
|
scale 0.468750, 0.468750;
|
|
shade -128;
|
|
clipdist 6.000000;
|
|
spawnsoundID 441;
|
|
seqID 61;
|
|
seqCallback NapalmSeqCallback;
|
|
}
|
|
}
|
|
class BloodMissileFireballCerberus : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 37.333328;
|
|
scale 0.468750, 0.468750;
|
|
shade -128;
|
|
clipdist 6.000000;
|
|
seqID 61;
|
|
seqCallback Fx32Callback;
|
|
}
|
|
}
|
|
class BloodMissileFireballTchernobog : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
speed 21.333328;
|
|
scale 0.375000, 0.375000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
seqID 23;
|
|
seqCallback Fx33Callback;
|
|
movementAdd 0.5;
|
|
RandomVel 0x11111;
|
|
}
|
|
}
|
|
class BloodMissileLifeLeechRegular : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "LeechBall";
|
|
speed 42.666656;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
callback fxFlameLick;
|
|
}
|
|
}
|
|
class BloodMissileLifeLeechAltNormal : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "Fireball";
|
|
speed 37.333328;
|
|
scale 0.250000, 0.250000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
}
|
|
}
|
|
class BloodMissileLifeLeechAltSmall : BloodMissileBase
|
|
{
|
|
default
|
|
{
|
|
pic "Fireball";
|
|
speed 26.666656;
|
|
scale 0.500000, 0.500000;
|
|
shade -128;
|
|
clipdist 4.000000;
|
|
callback fxArcSpark;
|
|
}
|
|
}
|
|
|
|
|