raze/wadsrc/static/zscript/games/duke/actors/redneckcstuff/balloons.zs
Christoph Oelckers 513de38723 - pass the spawner to Initialize as an explicit parameter.
Using ownerActor is not robust, for some actors this will have unwanted side effects.
2023-05-19 22:57:26 +02:00

68 lines
1.1 KiB
Text

class RedneckBalloons1 : DukeActor
{
Default
{
Spriteset "BALLOONS1", "BALLOONS1BROKE";
}
override void Initialize(DukeActor spawner)
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.Scale = (0.5, 0.5);
self.extra = 0;
self.hitag = 0;
self.ChangeStat(STAT_ACTOR);
}
override void Tick()
{
if (self.hitag > 2)
self.hitag = 0;
if (spritesetindex == 1 && self.hitag != 2)
{
self.hitag = 2;
self.extra = -100;
}
if (self.hitag == 0)
{
self.extra++;
if (self.extra >= 30)
self.hitag = 1;
}
else if (self.hitag == 1)
{
self.extra--;
if (self.extra <= -30)
self.hitag = 0;
}
else if (self.hitag == 2)
{
self.extra--;
if (self.extra <= -104)
{
self.spawnsprite(self.lotag);
self.Destroy();
}
}
self.movesprite((0, 0, self.extra / 128.), CLIPMASK0);
}
override void OnHit(DukeActor proj)
{
if (self.spritesetindex == 0)
{
self.SetSpritesetImage(1);
self.playActorSound("BALLOON");
}
}
}
class RedneckBalloons2 : DukeActor
{
Default
{
Spriteset "BALLOONS2", "BALLOONS2BROKE";
}
}