raze/wadsrc/static/zscript/games/duke/actors/lumberblade.zs
Christoph Oelckers 3a00480efd - do not use properties to set the sprite fields, part 1.
As soon as default init for CON gets in this won't work right anymore - these must come last, not first.
This commit contains all the trivial cases with no inheritance concerns.
2023-01-08 15:46:23 +01:00

83 lines
No EOL
1.3 KiB
Text

class RedneckLumberBlade : DukeActor
{
default
{
spriteset "LUMBERBLADE1", "LUMBERBLADE";
}
override void Initialize()
{
self.ChangeStat(STAT_LUMBERMILL);
self.extra = 0;
}
override void Tick()
{
if (self.hitag == 100)
{
self.pos.Z += 4;
if (self.pos.Z >= self.sector.floorz + 59.25)
self.pos.Z = self.sector.floorz + 59.25;
}
if (self.spritesetindex == 1)
{
self.extra++;
if (self.extra == 192)
{
self.hitag = 0;
self.pos.Z = self.sector.floorz - 59.25;
self.extra = 0;
self.setSpritesetImage(0);
dlevel.resetswitch(999);
}
}
}
override bool onUse(DukePlayer user)
{
if (user == null) // guard against unwanted activation
{
self.setSpritesetImage(1);
self.hitag = 100;
self.extra = 0;
self.PlayActorSound("BK_JIB2");
return true;
}
return false;
}
override void onTouch(DukePlayer user)
{
if (self.spritesetindex == 0)
{
user.quickkill();
user.actor.PlayActorSound("JOE9000B");
}
}
}
// Development garbage?
Class RedneckKegHolder : DukeActor
{
default
{
pic "KEGHOLDER";
}
override void Initialize()
{
self.cstat = CSTAT_SPRITE_INVISIBLE;
self.ChangeStat(STAT_LUMBERMILL);
}
override bool OnUse(DukePlayer user)
{
if (user != null) return false;
self.Destroy();
return true;
}
}