raze/wadsrc/static/zscript/games/duke/actors/dukecstuff/rat.zs

54 lines
974 B
Text
Raw Normal View History

2022-11-27 19:25:41 +00:00
class DukeRat : DukeActor
{
default
{
pic "RAT";
+INTERNAL_BADGUY;
+ALWAYSROTATE1;
2022-11-27 19:25:41 +00:00
}
override void Initialize(DukeActor spawner)
2022-11-27 19:25:41 +00:00
{
if (!self.mapSpawned) self.lotag = 0;
2022-11-27 19:25:41 +00:00
self.makeitfall();
self.angle = frandom(0, 360);
self.cstat = 0;
2022-11-27 19:25:41 +00:00
if (spawner)
{
self.timetosleep = 0;
self.ChangeStat(STAT_ACTOR);
if (isRR()) self.shade = spawner.shade;
2022-11-27 19:25:41 +00:00
}
else self.ChangeStat(STAT_ZOMBIEACTOR);
self. clipdist = 10;
self. scale = (0.75, 0.75);
2022-11-27 19:25:41 +00:00
}
override void Tick()
{
self.makeitfall();
if (self.DoMove(CLIPMASK0))
{
if (!isRRRA() && random(0, 255) == 0) self.PlayActorSound("RATTY");
self.angle += Raze.BAngToDegree * (random(-15, 15) + Raze.BobVal(self.counter << 8) * 8);
2022-11-27 19:25:41 +00:00
}
else
{
self.counter++;
if (self.counter > 1)
2022-11-27 19:25:41 +00:00
{
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);
}
}