mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-11 05:11:07 +00:00
ac1d1a90e0
When checked on the owner it can fall victim to garbage collection.
124 lines
1.7 KiB
Text
124 lines
1.7 KiB
Text
class DukeFlammable : DukeActor
|
|
{
|
|
default
|
|
{
|
|
statnum STAT_STANDABLE;
|
|
+HITRADIUS_FLAG1;
|
|
}
|
|
|
|
override void Initialize()
|
|
{
|
|
self.cstat = CSTAT_SPRITE_BLOCK_ALL; // Make it hitable
|
|
self.extra = 1;
|
|
}
|
|
|
|
override void Tick()
|
|
{
|
|
if (self.counter == 1)
|
|
{
|
|
self.temp_data[1]++;
|
|
if ((self.temp_data[1] & 3) > 0) return;
|
|
|
|
if (self.bFLAMMABLEPOOLEFFECT && self.temp_data[1] == 32)
|
|
{
|
|
self.cstat = 0;
|
|
let spawned = self.spawn("DukeBloodPool");
|
|
if (spawned)
|
|
{
|
|
spawned.pal = 2;
|
|
spawned.shade = 127;
|
|
spawned.detail = 1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (self.shade < 64) self.shade++;
|
|
else
|
|
{
|
|
self.Destroy();
|
|
return;
|
|
}
|
|
}
|
|
|
|
double scale = self.scale.X - random(0, 7) * REPEAT_SCALE;
|
|
if (scale < 0.15625)
|
|
{
|
|
self.Destroy();
|
|
return;
|
|
}
|
|
self.scale.X = scale;
|
|
|
|
scale = self.scale.Y - random(0, 7) * REPEAT_SCALE;
|
|
if (scale < 0.0625)
|
|
{
|
|
self.Destroy();
|
|
return;
|
|
}
|
|
self.scale.Y = scale;
|
|
}
|
|
if (self.bFALLINGFLAMMABLE)
|
|
{
|
|
self.makeitfall();
|
|
self.ceilingz = self.sector.ceilingz;
|
|
}
|
|
}
|
|
|
|
override void onHit(DukeActor hitter)
|
|
{
|
|
if (hitter.bINFLAME)
|
|
{
|
|
if (self.counter == 0)
|
|
{
|
|
self.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
|
|
self.counter = 1;
|
|
let burn = self.spawn("DukeBurning");
|
|
if (burn) burn.bNoFloorFire = self.bNoFloorFire;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
class DukeBox : DukeFlammable
|
|
{
|
|
default
|
|
{
|
|
pic "BOX";
|
|
+FALLINGFLAMMABLE;
|
|
}
|
|
}
|
|
|
|
class DukeTree1 : DukeFlammable
|
|
{
|
|
default
|
|
{
|
|
pic "TREE1";
|
|
+NOFLOORFIRE;
|
|
}
|
|
}
|
|
|
|
class DukeTree2 : DukeFlammable
|
|
{
|
|
default
|
|
{
|
|
pic "TREE2";
|
|
+NOFLOORFIRE;
|
|
}
|
|
}
|
|
|
|
class DukeTire : DukeFlammable
|
|
{
|
|
default
|
|
{
|
|
pic "TIRE";
|
|
+FLAMMABLEPOOLEFFECT;
|
|
}
|
|
}
|
|
|
|
class DukeCone : DukeFlammable
|
|
{
|
|
default
|
|
{
|
|
pic "CONE";
|
|
}
|
|
}
|
|
|