mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 00:42:08 +00:00
- moved Duke's miscellaneous stuff to a subfolder.
This commit is contained in:
parent
486745a4e1
commit
84b372f35a
24 changed files with 1462 additions and 1135 deletions
|
@ -63,17 +63,10 @@ version "4.10"
|
||||||
#include "zscript/games/duke/actors/projectiles.zs"
|
#include "zscript/games/duke/actors/projectiles.zs"
|
||||||
#include "zscript/games/duke/actors/mortar.zs"
|
#include "zscript/games/duke/actors/mortar.zs"
|
||||||
#include "zscript/games/duke/actors/recon.zs"
|
#include "zscript/games/duke/actors/recon.zs"
|
||||||
#include "zscript/games/duke/actors/destructibles.zs"
|
|
||||||
#include "zscript/games/duke/actors/greenslime.zs"
|
#include "zscript/games/duke/actors/greenslime.zs"
|
||||||
#include "zscript/games/duke/actors/heavyhbomb.zs"
|
#include "zscript/games/duke/actors/heavyhbomb.zs"
|
||||||
|
|
||||||
#include "zscript/games/duke/actors/transporter.zs"
|
|
||||||
#include "zscript/games/duke/actors/toiletwater.zs"
|
|
||||||
#include "zscript/games/duke/actors/burning.zs"
|
#include "zscript/games/duke/actors/burning.zs"
|
||||||
#include "zscript/games/duke/actors/explosion2.zs"
|
|
||||||
#include "zscript/games/duke/actors/waterbubble.zs"
|
|
||||||
#include "zscript/games/duke/actors/smallsmoke.zs"
|
|
||||||
#include "zscript/games/duke/actors/steam.zs"
|
|
||||||
#include "zscript/games/duke/actors/dukedecos.zs"
|
#include "zscript/games/duke/actors/dukedecos.zs"
|
||||||
#include "zscript/games/duke/actors/player.zs"
|
#include "zscript/games/duke/actors/player.zs"
|
||||||
|
|
||||||
|
@ -82,7 +75,6 @@ version "4.10"
|
||||||
#include "zscript/games/duke/actors/sixpak.zs"
|
#include "zscript/games/duke/actors/sixpak.zs"
|
||||||
#include "zscript/games/duke/actors/atomichealth.zs"
|
#include "zscript/games/duke/actors/atomichealth.zs"
|
||||||
#include "zscript/games/duke/actors/boss5.zs"
|
#include "zscript/games/duke/actors/boss5.zs"
|
||||||
#include "zscript/games/duke/actors/females.zs"
|
|
||||||
|
|
||||||
#include "zscript/games/duke/actors/flamethrowerflame.zs"
|
#include "zscript/games/duke/actors/flamethrowerflame.zs"
|
||||||
#include "zscript/games/duke/actors/firefly.zs"
|
#include "zscript/games/duke/actors/firefly.zs"
|
||||||
|
@ -161,6 +153,14 @@ version "4.10"
|
||||||
|
|
||||||
#include "zscript/games/duke/actors/dukestuff/blimp.zs"
|
#include "zscript/games/duke/actors/dukestuff/blimp.zs"
|
||||||
#include "zscript/games/duke/actors/dukestuff/breakables.zs"
|
#include "zscript/games/duke/actors/dukestuff/breakables.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/effects.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/females.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/fire.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/items.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/player.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/rubbercan.zs"
|
||||||
|
#include "zscript/games/duke/actors/dukestuff/stuff.zs"
|
||||||
|
|
||||||
#include "zscript/games/duke/actors/redneckcstuff/airplane.zs"
|
#include "zscript/games/duke/actors/redneckcstuff/airplane.zs"
|
||||||
#include "zscript/games/duke/actors/redneckcstuff/balloons.zs"
|
#include "zscript/games/duke/actors/redneckcstuff/balloons.zs"
|
||||||
#include "zscript/games/duke/actors/redneckcstuff/bowling.zs"
|
#include "zscript/games/duke/actors/redneckcstuff/bowling.zs"
|
||||||
|
|
|
@ -24,59 +24,3 @@ class RedneckMotoHit : DukeActor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// placeholders for CON scripted actors where we need the class.
|
|
||||||
|
|
||||||
class DukeForceRipple : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FORCERIPPLE";
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class DukeBurnedCorpse : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BURNEDCORPSE";
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeSpeaker : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SPEAKER";
|
|
||||||
+NOFALLER;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeFem6Pad: DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM6PAD";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class DukeHotMeat : DukeActor // (4427)
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "HOTMEAT";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeLavaBubble : DukeActor // (4340)
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "LAVABUBBLE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,3 @@
|
||||||
class DukeAtomicHealth : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "ATOMICHEALTH";
|
|
||||||
+FULLBRIGHT;
|
|
||||||
+BIGHEALTH;
|
|
||||||
+NOFLOORPAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
commonItemSetup();
|
|
||||||
self.cstat |= CSTAT_SPRITE_YCENTER;
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
t.pos.Z -= 4;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckGoogooCluster : DukeItemBase
|
class RedneckGoogooCluster : DukeItemBase
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
|
|
@ -1,16 +1,3 @@
|
||||||
class DukeBatteryAmmo : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BATTERYAMMO";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
commonItemSetup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckRifleAmmo : DukeActor
|
class RedneckRifleAmmo : DukeActor
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
|
|
@ -1,112 +1,3 @@
|
||||||
|
|
||||||
class DukeFloorFlame : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FLOORFLAME";
|
|
||||||
+FULLBRIGHT;
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.shade = -127;
|
|
||||||
self.ChangeStat(STAT_STANDABLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeBurning : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BURNING";
|
|
||||||
+FULLBRIGHT;
|
|
||||||
+FORCERUNCON;
|
|
||||||
+NOTELEPORT;
|
|
||||||
+NOFLOORPAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
if (!self.mapSpawned)
|
|
||||||
{
|
|
||||||
double c,f;
|
|
||||||
[c, f] = self.sector.getSlopes(self.pos.XY);
|
|
||||||
self.pos.Z = min(self.pos.Z, f - 12);
|
|
||||||
}
|
|
||||||
self.Scale = (0.0625, 0.0625);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
let OwnerAc = self.ownerActor;
|
|
||||||
|
|
||||||
if (OwnerAc && OwnerAc.statnum == STAT_PLAYER)
|
|
||||||
{
|
|
||||||
let p = Duke.GetViewPlayer();
|
|
||||||
if (display_mirror == 0 && OwnerAc == p.actor && p.over_shoulder_on == 0)
|
|
||||||
t.scale = (0, 0);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// not needed.
|
|
||||||
//t.Angle = (viewVec - t.pos.XY()).Angle();
|
|
||||||
//t.pos.XY = OwnerAc.pos.XY + t.Angle.ToVector();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
t.cstat |= CSTAT_SPRITE_YCENTER;
|
|
||||||
double d;
|
|
||||||
if (!bNOFLOORFIRE)
|
|
||||||
[d, t.pos.Z] = t.sector.getSlopes(t.pos.XY);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeBurning2 : DukeBurning
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BURNING2";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckFire : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FIRE";
|
|
||||||
+FULLBRIGHT;
|
|
||||||
+NOTELEPORT;
|
|
||||||
+NOFLOORPAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
let OwnerAc = self.ownerActor;
|
|
||||||
double d;
|
|
||||||
[d, t.pos.Z] = t.sector.getSlopes(t.pos.XY);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFire : RedneckFire
|
|
||||||
{
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
super.animate(t);
|
|
||||||
t.cstat |= CSTAT_SPRITE_YCENTER;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFire2 : DukeFire
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FIRE2";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeOnFire : DukeActor
|
class DukeOnFire : DukeActor
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
|
|
||||||
class DukeStatueFlash : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "STATUEFLASH";
|
|
||||||
+HITRADIUSCHECK;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
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 DukeStatue : DukeStatueFlash
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "STATUE";
|
|
||||||
+TRIGGERRESPAWN;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,182 +1,21 @@
|
||||||
class DukeHorseOnSide : DukeActor
|
|
||||||
|
class DukeLavaBubble : DukeActor // (4340)
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
{
|
{
|
||||||
pic "HORSEONSIDE";
|
pic "LAVABUBBLE";
|
||||||
+FORCERUNCON;
|
|
||||||
+CHECKSLEEP;
|
|
||||||
+MOVEFTA_MAKESTANDABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
if (!self.mapSpawned)
|
|
||||||
self.scale = (0.5, 0.5);
|
|
||||||
self.cstat = CSTAT_SPRITE_BLOCK_ALL | randomXFlip();
|
|
||||||
self.clipdist = 18;
|
|
||||||
self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DukeBurnedCorpse : DukeActor
|
||||||
class DukeExplodingBarrel : DukeHorseOnSide
|
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
{
|
{
|
||||||
pic "EXPLODINGBARREL";
|
pic "BURNEDCORPSE";
|
||||||
+DOUBLEDMGTHRUST;
|
|
||||||
+BREAKMIRRORS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFireBarrel : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FIREBARREL";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeNukeBarrel : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "NUKEBARREL";
|
|
||||||
+GREENBLOOD;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeFireVase : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FIREVASE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeNukeBarrelDented : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "NUKEBARRELDENTED";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeNukeBarrelLeaked : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "NUKEBARRELLEAKED";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeWoodenHorse : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "WOODENHORSE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeRubberCan : DukeHorseOnSide
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "RUBBERCAN";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
super.Initialize();
|
|
||||||
self.extra = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeWaterdripSplash : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "WATERDRIPSPLASH";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.scale = (0.375, 0.375);
|
|
||||||
self.ChangeStat(STAT_STANDABLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeWaterbubbleMaker : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "WATERBUBBLEMAKER";
|
|
||||||
+FORCERUNCON;
|
+FORCERUNCON;
|
||||||
}
|
}
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.hitag = 0;
|
|
||||||
self.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
||||||
self.ChangeStat(STAT_STANDABLE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class DukeFeces : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FECES";
|
|
||||||
+FORCERUNCON;
|
|
||||||
+BROWNBLOOD;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
if (!mapSpawned)
|
|
||||||
self.scale = (REPEAT_SCALE, REPEAT_SCALE);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeBlood : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BLOOD";
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.pos.Z -= 26;
|
|
||||||
if (!mapSpawned && self.ownerActor && self.ownerActor.pal == 6)
|
|
||||||
self.pal = 6;
|
|
||||||
self.scale = (0.25, 0.25);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckBlood : DukeBlood
|
|
||||||
{
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
Super.Initialize();
|
|
||||||
self.scale = (0.0625, 0.0625);
|
|
||||||
self.pos.Z -= 26;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class DukeMike : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "MIKE";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.yint = self.hitag;
|
|
||||||
self.ChangeStat(STAT_ACTOR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeWhispySmoke : DukeActor
|
class DukeWhispySmoke : DukeActor
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
@ -193,7 +32,6 @@ class DukeWhispySmoke : DukeActor
|
||||||
self.ChangeStat(STAT_MISC);
|
self.ChangeStat(STAT_MISC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DukeLavaSplash : DukeActor
|
class DukeLavaSplash : DukeActor
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
@ -202,19 +40,4 @@ class DukeLavaSplash : DukeActor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DukeSeriousSam : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SERIOUSSAM";
|
|
||||||
statnum STAT_ZOMBIEACTOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
self.extra = 150;
|
|
||||||
self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,5 @@
|
||||||
class DukeItemBase : DukeActor
|
|
||||||
{
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
commonItemSetup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class DukeCrystalAmmo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "CRYSTALAMMO";
|
|
||||||
+NOFLOORPAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
t.shade = int(Raze.BobVal(PlayClock << 4) * 16);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFlamethrowerSprite : DukeItemBase
|
class DukeFlamethrowerSprite : DukeItemBase
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
@ -38,235 +16,3 @@ class DukeFlamethrowerAmmo : DukeItemBase
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DukeSteroids : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "STEROIDS";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeHeatSensor : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "HEATSENSOR";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeShield : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SHIELD";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeAirtank : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "AIRTANK";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeTripbombSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "TRIPBOMBSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeJetpack : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "JETPACK";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeHoloDuke : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "HOLODUKE";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFirstgunSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FIRSTGUNSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeShotgunSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SHOTGUNSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeChaingunSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "CHAINGUNSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeRPGSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "RPGSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeShrinkerSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SHRINKERSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeFreezeSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FREEZESPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeDevastatorSprite : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "DEVISTATORSPRITE";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeShotgunammo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SHOTGUNAMMO";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFreezeammo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FREEZEAMMO";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeHBombammo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "HBOMBAMMO";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeGrowammo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "GROWAMMO";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeDevastatorammo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "DEVISTATORAMMO";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeRPGammo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "RPGAMMO";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class DukeAmmo : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "AMMO";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
commonItemSetup((0.25, 0.25));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeBoots : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BOOTS";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeAmmoLots : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "AMMOLOTS";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeCola : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "COLA";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFirstAid : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FIRSTAID";
|
|
||||||
+INVENTORY;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeAccessCard : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "ACCESSCARD";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
if (ud.multimode > 1 && ud.coop != 1)
|
|
||||||
{
|
|
||||||
self.scale = (0, 0);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.Scale = (0.5, 0.5);
|
|
||||||
self.shade = -17;
|
|
||||||
|
|
||||||
if (!self.mapSpawned) self.ChangeStat(STAT_ACTOR);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
||||||
self.makeitfall();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
356
wadsrc/static/zscript/games/duke/actors/dukestuff/effects.zs
Normal file
356
wadsrc/static/zscript/games/duke/actors/dukestuff/effects.zs
Normal file
|
@ -0,0 +1,356 @@
|
||||||
|
|
||||||
|
class DukeToiletWater : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "TOILETWATER";
|
||||||
|
+FORCERUNCON;
|
||||||
|
+NOTELEPORT;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
self.shade = -16;
|
||||||
|
self.changeStat(STAT_STANDABLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeExplosion2 : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "EXPLOSION2";
|
||||||
|
+FULLBRIGHT;
|
||||||
|
+FORCERUNCON;
|
||||||
|
+TRIGGER_IFHITSECTOR;
|
||||||
|
Strength 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
Duke.GetViewPlayer().visibility = -127;
|
||||||
|
Duke.setlastvisinc(32);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
|
||||||
|
if (owner && owner != self)
|
||||||
|
{
|
||||||
|
self.Angle = owner.Angle;
|
||||||
|
self.cstat = randomXFlip();
|
||||||
|
|
||||||
|
double c,f;
|
||||||
|
[c, f] = self.sector.getSlopes(self.pos.XY);
|
||||||
|
self.pos.Z = min(self.pos.Z, f - 12);
|
||||||
|
}
|
||||||
|
self.cstat |= CSTAT_SPRITE_YCENTER;
|
||||||
|
self.shade = -127;
|
||||||
|
self.Scale = (0.75, 0.75);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeExplosion2Bot : DukeExplosion2
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "EXPLOSION2BOT";
|
||||||
|
-TRIGGER_IFHITSECTOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class RedneckExplosion3 : DukeExplosion2
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "EXPLOSION3";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
Super.Initialize();
|
||||||
|
self.scale = (2, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeFloorFlame : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FLOORFLAME";
|
||||||
|
+FULLBRIGHT;
|
||||||
|
+FORCERUNCON;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
self.shade = -127;
|
||||||
|
self.ChangeStat(STAT_STANDABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeForceRipple : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FORCERIPPLE";
|
||||||
|
+FORCERUNCON;
|
||||||
|
Strength 0;
|
||||||
|
//StartAction "RIP_F";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeTransporterStar : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "TRANSPORTERSTAR";
|
||||||
|
+FORCERUNCON;
|
||||||
|
+NOTELEPORT;
|
||||||
|
Strength 0;
|
||||||
|
//StartAction "TRANSFOWARD";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
if (owner == nullptr || owner == self)
|
||||||
|
{
|
||||||
|
scale = (0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (owner.statnum == STAT_PROJECTILE)
|
||||||
|
{
|
||||||
|
self.scale = (0.125, 0.125);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.scale = (0.75, 1);
|
||||||
|
if (owner.statnum == STAT_PLAYER || owner.badguy())
|
||||||
|
self.pos.Z -= 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
|
||||||
|
self.angle = owner.angle;
|
||||||
|
|
||||||
|
self.vel.X = 8;
|
||||||
|
self.DoMove(CLIPMASK0);
|
||||||
|
self.SetPosition(self.pos);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
self.shade = -127;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeTransporterBeam : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "TRANSPORTERBEAM";
|
||||||
|
+FORCERUNCON;
|
||||||
|
+NOTELEPORT;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
if (owner == nullptr || owner == self)
|
||||||
|
{
|
||||||
|
scale = (0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self.scale = (0.484375, REPEAT_SCALE);
|
||||||
|
self.pos.Z = owner.sector.floorz - gs.playerheight;
|
||||||
|
|
||||||
|
self.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
|
||||||
|
self.angle = owner.angle;
|
||||||
|
|
||||||
|
self.vel.X = 8;
|
||||||
|
self.DoMove(CLIPMASK0);
|
||||||
|
self.SetPosition(self.pos);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
self.shade = -127;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeSteamBase : DukeActor // we need this for in-game checking and the shared CON code.
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
statnum STAT_STANDABLE;
|
||||||
|
+FORCERUNCON;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeCeilingSteam : DukeSteamBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "CEILINGSTEAM";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DukeSteam : DukeSteamBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "STEAM";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
|
||||||
|
if (owner && owner != self)
|
||||||
|
{
|
||||||
|
self.Angle = owner.Angle;
|
||||||
|
self.cstat = CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
|
||||||
|
self.vel.X = -0.5;
|
||||||
|
self.doMove(CLIPMASK0);
|
||||||
|
}
|
||||||
|
self.scale = (REPEAT_SCALE, REPEAT_SCALE);
|
||||||
|
self.ChangeStat(STAT_STANDABLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeSmallSmoke : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SMALLSMOKE";
|
||||||
|
+FORCERUNCON;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
|
||||||
|
if (owner && owner != self)
|
||||||
|
{
|
||||||
|
self.Angle = owner.Angle;
|
||||||
|
self.cstat = randomXFlip();
|
||||||
|
|
||||||
|
double c,f;
|
||||||
|
[c, f] = self.sector.getSlopes(self.pos.XY);
|
||||||
|
self.pos.Z = min(self.pos.Z, f - 12);
|
||||||
|
}
|
||||||
|
self.scale = (0.375, 0.375);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeBlood : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "BLOOD";
|
||||||
|
+FORCERUNCON;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
self.pos.Z -= 26;
|
||||||
|
if (!mapSpawned && self.ownerActor && self.ownerActor.pal == 6)
|
||||||
|
self.pal = 6;
|
||||||
|
self.scale = (0.25, 0.25);
|
||||||
|
temp_pos.Z = 72 * REPEAT_SCALE;
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class RedneckBlood : DukeBlood
|
||||||
|
{
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
Super.Initialize();
|
||||||
|
self.scale = (0.0625, 0.0625);
|
||||||
|
temp_pos.Z = 48 * REPEAT_SCALE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
184
wadsrc/static/zscript/games/duke/actors/dukestuff/females.zs
Normal file
184
wadsrc/static/zscript/games/duke/actors/dukestuff/females.zs
Normal file
|
@ -0,0 +1,184 @@
|
||||||
|
class DukeFemBase : DukeActor
|
||||||
|
{
|
||||||
|
meta int femflags;
|
||||||
|
property femflags: femflags;
|
||||||
|
|
||||||
|
default
|
||||||
|
{
|
||||||
|
+TRIGGERRESPAWN;
|
||||||
|
+HITRADIUSCHECK;
|
||||||
|
//StartAction "FEMANIMATE";
|
||||||
|
Strength TOUGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
const GROWSCRAP = 1;
|
||||||
|
const SLOWANIM = 2;
|
||||||
|
const TOUGHANIM = 4;
|
||||||
|
const TIPME = 8;
|
||||||
|
const KILLME = 16;
|
||||||
|
const FEMDANCE = 32;
|
||||||
|
const FREEZEANIM2 = 64;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DukeBloodyPole : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "BLOODYPOLE";
|
||||||
|
-TRIGGERRESPAWN;
|
||||||
|
-HITRADIUSCHECK;
|
||||||
|
StartAction 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
||||||
|
self.clipdist = 8;
|
||||||
|
self.ChangeStat(STAT_ZOMBIEACTOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale1 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM1";
|
||||||
|
DukeFemBase.femflags TIPME | FEMDANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale2 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM2";
|
||||||
|
DukeFemBase.femflags TIPME;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale3 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM3";
|
||||||
|
DukeFemBase.femflags TIPME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale4 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM4";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale5 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM5";
|
||||||
|
DukeFemBase.femflags FREEZEANIM2 | KILLME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale6 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM6";
|
||||||
|
+NOGRAVITY;
|
||||||
|
DukeFemBase.femflags FREEZEANIM2 | KILLME;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale7 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM7";
|
||||||
|
DukeFemBase.femflags TIPME;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale8 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM8";
|
||||||
|
DukeFemBase.femflags FREEZEANIM2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale9 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM9";
|
||||||
|
DukeFemBase.femflags FREEZEANIM2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFemale10 : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM10";
|
||||||
|
DukeFemBase.femflags SLOWANIM | FREEZEANIM2 | TIPME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeNaked : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "NAKED1";
|
||||||
|
-HITRADIUSCHECK;
|
||||||
|
+NOGRAVITY;
|
||||||
|
DukeFemBase.femflags GROWSCRAP | FREEZEANIM2 | KILLME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeToughGal : DukeFemBase
|
||||||
|
{
|
||||||
|
const MANWOMANSTRENGTH = 100;
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "TOUGHGAL";
|
||||||
|
-HITRADIUSCHECK;
|
||||||
|
Strength MANWOMANSTRENGTH;
|
||||||
|
DukeFemBase.femflags TOUGHANIM | FREEZEANIM2;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukePodFemale : DukeFemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "PODFEM1";
|
||||||
|
DukeFemBase.femflags GROWSCRAP | FREEZEANIM2 | KILLME;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFem6Pad: DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FEM6PAD";
|
||||||
|
}
|
||||||
|
}
|
97
wadsrc/static/zscript/games/duke/actors/dukestuff/fire.zs
Normal file
97
wadsrc/static/zscript/games/duke/actors/dukestuff/fire.zs
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
|
||||||
|
class DukeBurning : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "BURNING";
|
||||||
|
+FULLBRIGHT;
|
||||||
|
+FORCERUNCON;
|
||||||
|
+NOTELEPORT;
|
||||||
|
+NOFLOORPAL;
|
||||||
|
Strength WEAK;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
if (!self.mapSpawned)
|
||||||
|
{
|
||||||
|
double c,f;
|
||||||
|
[c, f] = self.sector.getSlopes(self.pos.XY);
|
||||||
|
self.pos.Z = min(self.pos.Z, f - 12);
|
||||||
|
}
|
||||||
|
self.Scale = (0.0625, 0.0625);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
let OwnerAc = self.ownerActor;
|
||||||
|
|
||||||
|
if (OwnerAc && OwnerAc.statnum == STAT_PLAYER)
|
||||||
|
{
|
||||||
|
let p = Duke.GetViewPlayer();
|
||||||
|
if (display_mirror == 0 && OwnerAc == p.actor && p.over_shoulder_on == 0)
|
||||||
|
t.scale = (0, 0);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// not needed.
|
||||||
|
//t.Angle = (viewVec - t.pos.XY()).Angle();
|
||||||
|
//t.pos.XY = OwnerAc.pos.XY + t.Angle.ToVector();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t.cstat |= CSTAT_SPRITE_YCENTER;
|
||||||
|
double d;
|
||||||
|
if (!bNOFLOORFIRE)
|
||||||
|
[d, t.pos.Z] = t.sector.getSlopes(t.pos.XY);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeBurning2 : DukeBurning
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "BURNING2";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class RedneckFire : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FIRE";
|
||||||
|
+FULLBRIGHT;
|
||||||
|
+NOTELEPORT;
|
||||||
|
+NOFLOORPAL;
|
||||||
|
Strength WEAK;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
let OwnerAc = self.ownerActor;
|
||||||
|
double d;
|
||||||
|
[d, t.pos.Z] = t.sector.getSlopes(t.pos.XY);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFire : RedneckFire
|
||||||
|
{
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
super.animate(t);
|
||||||
|
t.cstat |= CSTAT_SPRITE_YCENTER;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFire2 : DukeFire
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FIRE2";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
340
wadsrc/static/zscript/games/duke/actors/dukestuff/items.zs
Normal file
340
wadsrc/static/zscript/games/duke/actors/dukestuff/items.zs
Normal file
|
@ -0,0 +1,340 @@
|
||||||
|
class DukeItemBase : DukeActor
|
||||||
|
{
|
||||||
|
const PISTOLAMMOAMOUNT = 12;
|
||||||
|
const SHOTGUNAMMOAMOUNT = 10;
|
||||||
|
const CHAINGUNAMMOAMOUNT = 50;
|
||||||
|
const RPGAMMOBOX = 5;
|
||||||
|
const CRYSTALAMMOAMOUNT = 5;
|
||||||
|
const GROWCRYSTALAMMOAMOUNT = 20;
|
||||||
|
const DEVISTATORAMMOAMOUNT = 15;
|
||||||
|
const FREEZEAMMOAMOUNT = 25;
|
||||||
|
const FLAMETHROWERAMMOAMOUNT = 25;
|
||||||
|
const HANDBOMBBOX = 5;
|
||||||
|
const PIG_SHIELD_AMOUNT1 = 75;
|
||||||
|
const PIG_SHIELD_AMOUNT2 = 50;
|
||||||
|
const MAXPLAYERATOMICHEALTH = 200;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
commonItemSetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class DukeSteroids : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "STEROIDS";
|
||||||
|
+INVENTORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeBoots : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "BOOTS";
|
||||||
|
+INVENTORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeHeatSensor : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "HEATSENSOR";
|
||||||
|
+INVENTORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeShield : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SHIELD";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeAirtank : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "AIRTANK";
|
||||||
|
+INVENTORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeHoloDuke : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "HOLODUKE";
|
||||||
|
+INVENTORY;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeJetpack : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "JETPACK";
|
||||||
|
+INVENTORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeAccessCard : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "ACCESSCARD";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
if (ud.multimode > 1 && ud.coop != 1)
|
||||||
|
{
|
||||||
|
self.scale = (0, 0);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.scale = (0.5, 0.5);
|
||||||
|
self.shade = -17;
|
||||||
|
if (!self.mapSpawned) self.ChangeStat(STAT_ACTOR);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.ChangeStat(STAT_ZOMBIEACTOR);
|
||||||
|
self.makeitfall();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeAmmo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "AMMO";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
commonItemSetup((0.25, 0.25));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFreezeammo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FREEZEAMMO";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeShotgunammo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SHOTGUNAMMO";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeAmmoLots : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "AMMOLOTS";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeCrystalAmmo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "CRYSTALAMMO";
|
||||||
|
+NOFLOORPAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
t.shade = int(Raze.BobVal(PlayClock << 4) * 16);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeGrowammo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "GROWAMMO";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeBatteryAmmo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "BATTERYAMMO";
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
commonItemSetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeDevastatorammo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "DEVISTATORAMMO";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeRPGammo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "RPGAMMO";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeHBombammo : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "HBOMBAMMO";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeRPGSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "RPGSPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeShotgunSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SHOTGUNSPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeSixpak : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SIXPAK";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeCola : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "COLA";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeAtomicHealth : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "ATOMICHEALTH";
|
||||||
|
+FULLBRIGHT;
|
||||||
|
+BIGHEALTH;
|
||||||
|
+NOFLOORPAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
commonItemSetup();
|
||||||
|
self.cstat |= CSTAT_SPRITE_YCENTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
t.pos.Z -= 4;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFirstAid : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FIRSTAID";
|
||||||
|
+INVENTORY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFirstgunSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FIRSTGUNSPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeTripbombSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "TRIPBOMBSPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeChaingunSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "CHAINGUNSPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeShrinkerSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SHRINKERSPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeFreezeSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "FREEZESPRITE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukeDevastatorSprite : DukeItemBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "DEVISTATORSPRITE";
|
||||||
|
}
|
||||||
|
}
|
72
wadsrc/static/zscript/games/duke/actors/dukestuff/player.zs
Normal file
72
wadsrc/static/zscript/games/duke/actors/dukestuff/player.zs
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
class DukePlayerPawn : DukePlayerBase
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
Strength MAXPLAYERHEALTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DukePlayerOnWater : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "PLAYERONWATER";
|
||||||
|
+ALWAYSROTATE1;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
if (!mapSpawned && self.ownerActor)
|
||||||
|
{
|
||||||
|
self.scale = self.ownerActor.scale;
|
||||||
|
self.vel.Z = 0.5;
|
||||||
|
if (self.sector.lotag != ST_2_UNDERWATER)
|
||||||
|
self.cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||||
|
}
|
||||||
|
self.ChangeStat(STAT_DUMMYPLAYER);
|
||||||
|
}
|
||||||
|
|
||||||
|
override void OnHit(DukeActor proj)
|
||||||
|
{
|
||||||
|
// propagate the hit to its owner.
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
if (owner && self != owner) owner.OnHit(proj);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DukePlayerLyingDead : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "DUKELYINGDEAD";
|
||||||
|
+HITRADIUS_FORCEEFFECT;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
if (owner && owner.isPlayer())
|
||||||
|
{
|
||||||
|
self.scale = owner.scale;
|
||||||
|
self.shade = owner.shade;
|
||||||
|
self.pal = owner.GetPlayer().palookup;
|
||||||
|
}
|
||||||
|
self.vel.X = 292 / 16.;
|
||||||
|
self.vel.Z = 360 / 256.;
|
||||||
|
self.cstat = CSTAT_SPRITE_BLOCK_ALL;
|
||||||
|
self.extra = 1;
|
||||||
|
self.clipdist = 32;
|
||||||
|
self.ChangeStat(STAT_ACTOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override bool animate(tspritetype t)
|
||||||
|
{
|
||||||
|
t.pos.Z += 24;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
class DukeRubberCan : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "RUBBERCAN";
|
||||||
|
Strength WEAK;
|
||||||
|
+FORCERUNCON;
|
||||||
|
+CHECKSLEEP;
|
||||||
|
+MOVEFTA_MAKESTANDABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
if (!self.mapSpawned)
|
||||||
|
self.scale = (0.5, 0.5);
|
||||||
|
self.cstat = CSTAT_SPRITE_BLOCK_ALL | randomXFlip();
|
||||||
|
self.clipdist = 18;
|
||||||
|
self.ChangeStat(STAT_ZOMBIEACTOR);
|
||||||
|
self.extra = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
376
wadsrc/static/zscript/games/duke/actors/dukestuff/stuff.zs
Normal file
376
wadsrc/static/zscript/games/duke/actors/dukestuff/stuff.zs
Normal file
|
@ -0,0 +1,376 @@
|
||||||
|
class DukeSimpleItem : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
+FORCERUNCON;
|
||||||
|
+CHECKSLEEP;
|
||||||
|
+MOVEFTA_MAKESTANDABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
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";
|
||||||
|
Strength WEAKEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeHorseOnSide : DukeWoodenHorse
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "HORSEONSIDE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeWaterbubbleMaker : DukeSimpleItem
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "WATERBUBBLEMAKER";
|
||||||
|
+FORCERUNCON;
|
||||||
|
Strength 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
let owner = self.ownerActor;
|
||||||
|
if (owner && owner.isPlayer())
|
||||||
|
self.pos.Z -= 16;
|
||||||
|
if (owner != self)
|
||||||
|
self.angle = owner.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()
|
||||||
|
{
|
||||||
|
if (!mapSpawned)
|
||||||
|
self.scale = (REPEAT_SCALE, REPEAT_SCALE);
|
||||||
|
self.ChangeStat(STAT_MISC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeStatue : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "STATUE";
|
||||||
|
+TRIGGERRESPAWN;
|
||||||
|
+HITRADIUSCHECK;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
self.scale = (0.375, 0.375);
|
||||||
|
self.ChangeStat(STAT_STANDABLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class DukeSeriousSam : DukeActor
|
||||||
|
{
|
||||||
|
default
|
||||||
|
{
|
||||||
|
pic "SERIOUSSAM";
|
||||||
|
statnum STAT_ZOMBIEACTOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
override void Initialize()
|
||||||
|
{
|
||||||
|
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
||||||
|
self.extra = 150;
|
||||||
|
self.ChangeStat(STAT_ZOMBIEACTOR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
class DukeExplosion2 : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "EXPLOSION2";
|
|
||||||
+FULLBRIGHT;
|
|
||||||
+FORCERUNCON;
|
|
||||||
+TRIGGER_IFHITSECTOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
Duke.GetViewPlayer().visibility = -127;
|
|
||||||
Duke.setlastvisinc(32);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
|
|
||||||
if (owner && owner != self)
|
|
||||||
{
|
|
||||||
self.Angle = owner.Angle;
|
|
||||||
self.cstat = randomXFlip();
|
|
||||||
|
|
||||||
double c,f;
|
|
||||||
[c, f] = self.sector.getSlopes(self.pos.XY);
|
|
||||||
self.pos.Z = min(self.pos.Z, f - 12);
|
|
||||||
}
|
|
||||||
self.cstat |= CSTAT_SPRITE_YCENTER;
|
|
||||||
self.shade = -127;
|
|
||||||
self.Scale = (0.75, 0.75);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeExplosion2Bot : DukeExplosion2
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "EXPLOSION2BOT";
|
|
||||||
-TRIGGER_IFHITSECTOR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckExplosion3 : DukeExplosion2
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "EXPLOSION3";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
Super.Initialize();
|
|
||||||
self.scale = (2, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,130 +0,0 @@
|
||||||
class DukeBloodyPole : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "BLOODYPOLE";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
self.clipdist = 8;
|
|
||||||
self.ChangeStat(STAT_ZOMBIEACTOR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale1 : DukeBloodyPole
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM1";
|
|
||||||
+TRIGGERRESPAWN;
|
|
||||||
+HITRADIUSCHECK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale2 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM2";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale3 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM3";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale4 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM4";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale5 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM5";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale6 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM6";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale7 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM7";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale8 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM8";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale9 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM9";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeFemale10 : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "FEM10";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeNaked : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "NAKED1";
|
|
||||||
-HITRADIUSCHECK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeToughGal : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "TOUGHGAL";
|
|
||||||
-HITRADIUSCHECK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukePodFemale : DukeFemale1
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "PODFEM1";
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
Super.Initialize();
|
|
||||||
self.extra <<= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -7,70 +7,6 @@ class DukePlayerBase : DukeActor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DukePlayerPawn : DukePlayerBase
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukePlayerOnWater : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "PLAYERONWATER";
|
|
||||||
+ALWAYSROTATE1;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
if (!mapSpawned && self.ownerActor)
|
|
||||||
{
|
|
||||||
self.scale = self.ownerActor.scale;
|
|
||||||
self.vel.Z = 0.5;
|
|
||||||
if (self.sector.lotag != ST_2_UNDERWATER)
|
|
||||||
self.cstat |= CSTAT_SPRITE_INVISIBLE;
|
|
||||||
}
|
|
||||||
self.ChangeStat(STAT_DUMMYPLAYER);
|
|
||||||
}
|
|
||||||
|
|
||||||
override void OnHit(DukeActor proj)
|
|
||||||
{
|
|
||||||
// propagate the hit to its owner.
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
if (owner && self != owner) owner.OnHit(proj);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukePlayerLyingDead : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "DUKELYINGDEAD";
|
|
||||||
+HITRADIUS_FORCEEFFECT;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
if (owner && owner.isPlayer())
|
|
||||||
{
|
|
||||||
self.scale = owner.scale;
|
|
||||||
self.shade = owner.shade;
|
|
||||||
self.pal = owner.GetPlayer().palookup;
|
|
||||||
}
|
|
||||||
self.vel.X = 292 / 16.;
|
|
||||||
self.vel.Z = 360 / 256.;
|
|
||||||
self.cstat = CSTAT_SPRITE_BLOCK_ALL;
|
|
||||||
self.extra = 1;
|
|
||||||
self.clipdist = 32;
|
|
||||||
self.ChangeStat(STAT_ACTOR);
|
|
||||||
}
|
|
||||||
|
|
||||||
override bool animate(tspritetype t)
|
|
||||||
{
|
|
||||||
t.pos.Z += 24;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckPlayerLyingDead : DukeActor
|
class RedneckPlayerLyingDead : DukeActor
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,11 +1,3 @@
|
||||||
class DukeSixpak : DukeItemBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SIXPAK";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RedneckPorkRinds : DukeItemBase
|
class RedneckPorkRinds : DukeItemBase
|
||||||
{
|
{
|
||||||
default
|
default
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
class DukeSmallSmoke : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "SMALLSMOKE";
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
|
|
||||||
if (owner && owner != self)
|
|
||||||
{
|
|
||||||
self.Angle = owner.Angle;
|
|
||||||
self.cstat = randomXFlip();
|
|
||||||
|
|
||||||
double c,f;
|
|
||||||
[c, f] = self.sector.getSlopes(self.pos.XY);
|
|
||||||
self.pos.Z = min(self.pos.Z, f - 12);
|
|
||||||
}
|
|
||||||
self.scale = (0.375, 0.375);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
class DukeSteamBase : DukeActor // we need this for in-game checking and the shared CON code.
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
statnum STAT_STANDABLE;
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class DukeCeilingSteam : DukeSteamBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "CEILINGSTEAM";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class DukeSteam : DukeSteamBase
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "STEAM";
|
|
||||||
+FORCERUNCON;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
|
|
||||||
if (owner && owner != self)
|
|
||||||
{
|
|
||||||
self.Angle = owner.Angle;
|
|
||||||
self.cstat = CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
|
|
||||||
self.vel.X = -0.5;
|
|
||||||
self.doMove(CLIPMASK0);
|
|
||||||
}
|
|
||||||
self.scale = (REPEAT_SCALE, REPEAT_SCALE);
|
|
||||||
self.ChangeStat(STAT_STANDABLE);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
class DukeToiletWater : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "TOILETWATER";
|
|
||||||
+FORCERUNCON;
|
|
||||||
+NOTELEPORT;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
self.shade = -16;
|
|
||||||
self.changeStat(STAT_STANDABLE);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
|
|
||||||
class DukeTransporterStar : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "TRANSPORTERSTAR";
|
|
||||||
+FORCERUNCON;
|
|
||||||
+NOTELEPORT;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
if (owner == nullptr || owner == self)
|
|
||||||
{
|
|
||||||
scale = (0, 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (owner.statnum == STAT_PROJECTILE)
|
|
||||||
{
|
|
||||||
self.scale = (0.125, 0.125);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self.scale = (0.75, 1);
|
|
||||||
if (owner.statnum == STAT_PLAYER || owner.badguy())
|
|
||||||
self.pos.Z -= 32;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
|
|
||||||
self.angle = owner.angle;
|
|
||||||
|
|
||||||
self.vel.X = 8;
|
|
||||||
self.DoMove(CLIPMASK0);
|
|
||||||
self.SetPosition(self.pos);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
self.shade = -127;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class DukeTransporterBeam : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "TRANSPORTERBEAM";
|
|
||||||
+FORCERUNCON;
|
|
||||||
+NOTELEPORT;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
if (owner == nullptr || owner == self)
|
|
||||||
{
|
|
||||||
scale = (0, 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
self.scale = (0.484375, REPEAT_SCALE);
|
|
||||||
self.pos.Z = owner.sector.floorz - gs.playerheight;
|
|
||||||
|
|
||||||
self.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT;
|
|
||||||
self.angle = owner.angle;
|
|
||||||
|
|
||||||
self.vel.X = 8;
|
|
||||||
self.DoMove(CLIPMASK0);
|
|
||||||
self.SetPosition(self.pos);
|
|
||||||
self.ChangeStat(STAT_MISC);
|
|
||||||
self.shade = -127;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
class DukeWaterBubble : DukeActor
|
|
||||||
{
|
|
||||||
default
|
|
||||||
{
|
|
||||||
pic "WATERBUBBLE";
|
|
||||||
+FORCERUNCON;
|
|
||||||
+NOFLOORPAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void Initialize()
|
|
||||||
{
|
|
||||||
let owner = self.ownerActor;
|
|
||||||
if (owner && owner.isPlayer())
|
|
||||||
self.pos.Z -= 16;
|
|
||||||
if (owner != self)
|
|
||||||
self.angle = owner.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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue