mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-02 06:52:58 +00:00
All classes with no skill filter now need an explicit noskill declaration. The only exception is inert sprites using DukeActor directly, these will never get filtered by skill.
53 lines
1,018 B
Text
53 lines
1,018 B
Text
|
|
|
|
class DukeRat : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "RAT";
|
|
+INTERNAL_BADGUY;
|
|
+ALWAYSROTATE1;
|
|
}
|
|
|
|
override void Initialize()
|
|
{
|
|
if (!self.mapSpawned) self.lotag = 0;
|
|
|
|
self.makeitfall();
|
|
self.angle = frandom(0, 360);
|
|
self.cstat = 0;
|
|
|
|
if (!self.mapSpawned && self.ownerActor)
|
|
{
|
|
self.timetosleep = 0;
|
|
self.ChangeStat(STAT_ACTOR);
|
|
if (Raze.isRR()) self.shade = self.ownerActor.shade;
|
|
}
|
|
else self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
self. clipdist = 10;
|
|
self. scale = (0.75, 0.75);
|
|
}
|
|
|
|
override void Tick()
|
|
{
|
|
self.makeitfall();
|
|
if (self.DoMove(CLIPMASK0))
|
|
{
|
|
if (!Raze.isRRRA() && random(0, 255) == 0) self.PlayActorSound("RATTY");
|
|
self.angle += Raze.BAngToDegree * (random(-15, 15) + Raze.BobVal(self.temp_data[0] << 8) * 8);
|
|
}
|
|
else
|
|
{
|
|
self.temp_data[0]++;
|
|
if (self.temp_data[0] > 1)
|
|
{
|
|
self.Destroy();
|
|
return;
|
|
}
|
|
else self.angle = frandom(0, 360);
|
|
}
|
|
if (self.vel.X < 8)
|
|
self.vel.X += 1/8.;
|
|
self.angle += Raze.BAngToDegree * (random(0, 3) - 6);
|
|
}
|
|
}
|