mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-03 09:32:45 +00:00
513de38723
Using ownerActor is not robust, for some actors this will have unwanted side effects.
376 lines
6.4 KiB
Text
376 lines
6.4 KiB
Text
class DukeSimpleItem : DukeActor
|
|
{
|
|
default
|
|
{
|
|
+FORCERUNCON;
|
|
+CHECKSLEEP;
|
|
+MOVEFTA_MAKESTANDABLE;
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
if (!self.mapSpawned)
|
|
self.scale = (0.5, 0.5);
|
|
self.cstat = CSTAT_SPRITE_BLOCK_ALL | randomXFlip();
|
|
self.clipdist = 18;
|
|
self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeExplodingBarrel : DukeSimpleItem
|
|
{
|
|
default
|
|
{
|
|
pic "EXPLODINGBARREL";
|
|
+DOUBLEDMGTHRUST;
|
|
+BREAKMIRRORS;
|
|
Strength 26;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeWoodenHorse : DukeSimpleItem
|
|
{
|
|
default
|
|
{
|
|
pic "WOODENHORSE";
|
|
precacheClass "DukeHorseOnSide";
|
|
Strength WEAKEST;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeHorseOnSide : DukeWoodenHorse
|
|
{
|
|
default
|
|
{
|
|
pic "HORSEONSIDE";
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeWaterbubbleMaker : DukeSimpleItem
|
|
{
|
|
default
|
|
{
|
|
pic "WATERBUBBLEMAKER";
|
|
+FORCERUNCON;
|
|
Strength 0;
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
self.hitag = 0;
|
|
self.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
self.ChangeStat(STAT_STANDABLE);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeWaterBubble : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "WATERBUBBLE";
|
|
+FORCERUNCON;
|
|
+NOFLOORPAL;
|
|
Strength 0;
|
|
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
if (spawner && spawner.isPlayer())
|
|
self.pos.Z -= 16;
|
|
if (spawner && spawner != self)
|
|
self.angle = spawner.angle;
|
|
|
|
self.scale = (0.0625, 0.0625);
|
|
self.ChangeStat(STAT_MISC);
|
|
}
|
|
|
|
override bool animate(tspritetype t)
|
|
{
|
|
if (dlevel.floorsurface(t.sector) == Duke.TSURF_SLIME)
|
|
{
|
|
t.pal = 7;
|
|
}
|
|
else
|
|
{
|
|
t.copyfloorpal(t.sector);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeNukeBarrel : DukeSimpleItem
|
|
{
|
|
default
|
|
{
|
|
pic "NUKEBARREL";
|
|
+GREENBLOOD;
|
|
Strength MEDIUMSTRENGTH;
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeNukeBarrelDented : DukeNukeBarrel
|
|
{
|
|
default
|
|
{
|
|
pic "NUKEBARRELDENTED";
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeNukeBarrelLeaked : DukeNukeBarrel
|
|
{
|
|
default
|
|
{
|
|
pic "NUKEBARRELLEAKED";
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeFireBarrel : DukeSimpleItem
|
|
{
|
|
default
|
|
{
|
|
pic "FIREBARREL";
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeFireVase : DukeFireBarrel
|
|
{
|
|
default
|
|
{
|
|
pic "FIREVASE";
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeFeces : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "FECES";
|
|
+FORCERUNCON;
|
|
+BROWNBLOOD;
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
if (!mapSpawned)
|
|
self.scale = (REPEAT_SCALE, REPEAT_SCALE);
|
|
self.ChangeStat(STAT_MISC);
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeStatue : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "STATUE";
|
|
+TRIGGERRESPAWN;
|
|
+HITRADIUSCHECK;
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
self.clipdist = 32;
|
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
|
}
|
|
|
|
override void OnHit(DukeActor proj)
|
|
{
|
|
self.lotsofcolourglass(40);
|
|
self.PlayActorSound("GLASS_HEAVYBREAK");
|
|
self.angle = frandom(0, 360);
|
|
self.lotsofglass(8);
|
|
self.Destroy();
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeStatueFlash : DukeStatue
|
|
{
|
|
default
|
|
{
|
|
pic "STATUEFLASH";
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeMike : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "MIKE";
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
self.yint = self.hitag;
|
|
self.ChangeStat(STAT_ACTOR);
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeHotMeat : DukeActor // HOTMEAT (4427)
|
|
{
|
|
default
|
|
{
|
|
pic "HOTMEAT";
|
|
Strength TOUGH;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeSpeaker : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "SPEAKER";
|
|
+NOFALLER;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeWaterdripSplash : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "WATERDRIPSPLASH";
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
self.scale = (0.375, 0.375);
|
|
self.ChangeStat(STAT_STANDABLE);
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
//
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
class DukeSeriousSam : DukeActor
|
|
{
|
|
default
|
|
{
|
|
pic "SERIOUSSAM";
|
|
statnum STAT_ZOMBIEACTOR;
|
|
}
|
|
|
|
override void Initialize(DukeActor spawner)
|
|
{
|
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
|
self.extra = 150;
|
|
self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
}
|
|
}
|
|
|