raze/wadsrc/static/zscript/games/duke/actors/piano.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

50 lines
822 B
Text

class RedneckPiano : DukeActor
{
default
{
spriteset "PIANO", "PIANOBUST";
}
override void Initialize()
{
self.lotag = 5;
self.clipdist = 0;
self.ChangeStat(STAT_ACTOR);
}
override void Tick()
{
if (self.lotag == 5)
if (!Duke.CheckSoundPlaying("PIANO_P2"))
self.PlayActorSound("PIANO_P2");
}
override void onHit(DukeActor hitter)
{
if (self.lotag == 5)
{
self.lotag = 0;
self.setSpriteSetImage(1);
self.PlayActorSound("PIANO_P3");
DukeSpriteIterator it;
for (let act = it.First(); act; act = it.Next())
{
if (act is 'RedneckPianoKeys') act.setSpriteSetImage(1);
}
}
}
}
class RedneckPianoKeys : DukeActor
{
default
{
spriteset "PIANOKEYS", "PIANOKEYSBUST";
}
override bool Animate(tspritetype tspr)
{
tspr.shade = self.shade;
return true;
}
}