mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-28 23:12:18 +00:00
68 lines
1 KiB
Text
68 lines
1 KiB
Text
|
class DukeRespawnController : DukeActor
|
||
|
{
|
||
|
default
|
||
|
{
|
||
|
statnum STAT_FX;
|
||
|
extra 66 - 13;
|
||
|
}
|
||
|
|
||
|
override void Initialize()
|
||
|
{
|
||
|
if (ud.multimode < 2 && self.pal == 1)
|
||
|
{
|
||
|
self.scale = (0, 0);
|
||
|
self.ChangeStat(STAT_MISC);
|
||
|
}
|
||
|
else
|
||
|
self.cstat = CSTAT_SPRITE_INVISIBLE;
|
||
|
}
|
||
|
|
||
|
override void Tick()
|
||
|
{
|
||
|
if (self.extra == 66)
|
||
|
{
|
||
|
let newact = self.spawnsprite(self.hitag);
|
||
|
if (Raze.isRRRA() && newact)
|
||
|
{
|
||
|
newact.pal = self.pal;
|
||
|
|
||
|
// RRRA's ghost monsters.
|
||
|
if (newact.pal == 8)
|
||
|
{
|
||
|
newact.cstat |= CSTAT_SPRITE_TRANSLUCENT;
|
||
|
}
|
||
|
|
||
|
if (newact.pal != 6)
|
||
|
{
|
||
|
self.Destroy();
|
||
|
return;
|
||
|
}
|
||
|
self.extra = (66 - 13);
|
||
|
newact.pal = 0;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
self.Destroy();
|
||
|
}
|
||
|
}
|
||
|
else if (self.extra > (66 - 13))
|
||
|
self.extra++;
|
||
|
}
|
||
|
|
||
|
override void onRespawn(int low)
|
||
|
{
|
||
|
if (self.lotag == low)
|
||
|
{
|
||
|
if (Duke.badguyID(self.hitag) && ud.monsters_off) return;
|
||
|
|
||
|
let star = self.spawn("DukeTransporterStar");
|
||
|
if (star)
|
||
|
{
|
||
|
star.pos.Z -= 32;
|
||
|
}
|
||
|
self.extra = 66 - 12; // Trigger the spawn countdown
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|