raze/wadsrc/static/zscript/games/duke/actors/dukemisc.zs

958 lines
10 KiB
Text

class DukePlug : DukeActor
{
default
{
pic "PLUG";
}
override void Initialize()
{
self.lotag = 9999;
self.ChangeStat(STAT_STANDABLE);
}
override bool OnUse(DukePlayer p)
{
p.actor.PlayActorSound("SHORT_CIRCUIT");
p.actor.extra -= random(2, 5);
p.pals = Color(32, 48, 48, 64);
return true;
}
}
class DukeFemMag : DukeActor
{
default
{
pic "FEMMAG1";
}
override void Initialize()
{
self.cstat &= ~CSTAT_SPRITE_BLOCK_ALL;
self.ChangeStat(STAT_DEFAULT);
}
}
class DukeTag : DukeActor
{
default
{
pic "DUKETAG";
}
override void Initialize()
{
if (ud.multimode < 2 && self.pal)
{
self.scale = (0, 0);
self.ChangeStat(STAT_MISC);
}
else self.pal = 0;
}
}
class DukeMaskWall : DukeActor
{
default
{
pic "MASKWALL1";
}
override void Initialize()
{
let j = self.cstat & (CSTAT_SPRITE_ALIGNMENT_MASK | CSTAT_SPRITE_XFLIP | CSTAT_SPRITE_YFLIP);
self.cstat = j | CSTAT_SPRITE_BLOCK;
self.ChangeStat(STAT_DEFAULT);
}
}
class DukeFootprints : DukeActor
{
default
{
spriteset "FOOTPRINTS", "FOOTPRINTS2", "FOOTPRINTS3", "FOOTPRINTS4";
+SE24_REMOVE;
}
override void Initialize()
{
if (!self.mapSpawned)
{
bool away = self.isAwayFromWall(5.25);
if (!away)
{
self.scale = (0, 0);
return;
}
self.cstat = CSTAT_SPRITE_ALIGNMENT_FLOOR;
self.insertspriteq();
}
let sect = self.sector;
self.pos.Z = sect.floorz;
if (sect.lotag != ST_1_ABOVE_WATER && sect.lotag != ST_2_UNDERWATER)
self.scale = (0.5, 0.5);
self.setSpriteSetImage(random(0, 3));
self.ChangeStat(STAT_MISC);
}
override bool animate(tspritetype t)
{
if (self.shade == 127) t.shade = 127;
if (t.pal == 6) t.shade = -127;
return true;
}
}
class DukeBulletHole : DukeActor
{
default
{
pic "BULLETHOLE";
+SE24_REMOVE;
+NOTELEPORT;
}
override void Initialize()
{
self.cstat = CSTAT_SPRITE_ALIGNMENT_WALL | randomFlip();
self.insertspriteq();
self.Scale = (0.046875, 0.046875);
self.ChangeStat(STAT_MISC);
}
override bool animate(tspritetype t)
{
t.shade = 16;
return true;
}
}
class DukeGenericPole : DukeActor
{
default
{
pic "GENERICPOLE";
}
override void Initialize()
{
if (ud.multimode < 2 && self.pal != 0)
{
self.scale = (0, 0);
self.ChangeStat(STAT_MISC);
}
else self.pal = 0;
}
}
class DukeCameraPole : DukeGenericPole
{
default
{
pic "CAMERAPOLE";
}
override void Initialize()
{
if (gs.camerashitable) self.cstat = CSTAT_SPRITE_BLOCK_ALL;
else self.cstat = 0;
self.extra = 1;
super.Initialize();
}
}
class DukeNeon : DukeActor
{
default
{
pic "NEON1";
}
override void Initialize()
{
self.cstat |= CSTAT_SPRITE_BLOCK_ALL;
self.ChangeStat(STAT_MISC);
}
override void Tick()
{
if ((Duke.global_random() / (self.lotag + 1) & 31) > 4) self.shade = -127;
else self.shade = 127;
}
override bool Animate(tspritetype t)
{
t.shade = self.shade;
return true;
}
}
class DeveloperCommentary : DukeActor
{
default
{
spriteset "DEVELOPERCOMMENTARY", "DEVELOPERCOMMENTARYON";
}
override bool TriggerSwitch(DukePlayer p)
{
if (!wt_commentary) return true;
if (self.spriteSetIndex == 0)
{
if (Duke.StartCommentary(self.lotag, self))
self.setSpriteSetImage(1);
}
else
{
Duke.StopCommentary();
self.setSpriteSetImage(0);
}
return true;
}
override bool animate(tspritetype t)
{
if (!wt_commentary) t.scale = (0, 0);
else t.shade = self.shade;
return true;
}
}
// These ones are either inert or use CON but also have flags attached
class DukeBarBroke : DukeActor
{
default
{
pic "BARBROKE";
+SE24_NOCARRY;
}
}
class DukeBearingPlate : DukeActor
{
default
{
pic "BEARINGPLATE";
}
}
class DukeBurnedCorpse : DukeActor
{
default
{
pic "BURNEDCORPSE";
+FORCERUNCON;
}
}
class DukeLaserSite : DukeActor
{
default
{
pic "LASERSITE";
+FORCERUNCON;
}
}
class DukeSpeaker : DukeActor
{
default
{
pic "SPEAKER";
+NOFALLER;
}
}
class RedneckUfoLight : DukeActor
{
default
{
pic "UFOLIGHT";
}
}
class DukeNewBeast : DukeActor
{
default
{
pic "NEWBEAST";
+BADGUY;
+KILLCOUNT;
+GREENSLIMEFOOD;
+GREENBLOOD;
}
}
class DukeNewBeastStayput : DukeNewBeast
{
default
{
pic "NEWBEASTSTAYPUT";
+BADGUYSTAYPUT;
}
}
class DukeNewBeastHang : DukeNewBeast
{
default
{
pic "NEWBEASTHANG";
}
}
class DukeTank : DukeActor
{
default
{
pic "TANK";
+BADGUY;
+KILLCOUNT;
+NODAMAGEPUSH;
+NORADIUSPUSH;
}
}
class DukeFoodObject6: DukeActor
{
default
{
pic "FOODOBJECT6";
}
}
class DukeFoodObject11: DukeActor
{
default
{
pic "FOODOBJECT11";
}
}
class DukeFoodObject12: DukeActor
{
default
{
pic "FOODOBJECT12";
}
}
class DukeFoodObject13: DukeActor
{
default
{
pic "FOODOBJECT13";
}
}
class DukeFoodObject14: DukeActor
{
default
{
pic "FOODOBJECT14";
}
}
class DukeFoodObject15: DukeActor
{
default
{
pic "FOODOBJECT15";
}
}
class DukeFoodObject16: DukeActor
{
default
{
pic "FOODOBJECT16";
}
}
class DukeFoodObject17: DukeActor
{
default
{
pic "FOODOBJECT17";
}
}
class DukeSkinnedChicken: DukeActor
{
default
{
pic "SKINNEDCHICKEN";
}
}
class DukeShoppingCart: DukeActor
{
default
{
pic "SHOPPINGCART";
}
}
class DukeRobotDog2: DukeActor
{
default
{
pic "ROBOTDOG2";
}
}
class DukeFeatheredChicken: DukeActor
{
default
{
pic "FEATHEREDCHICKEN";
}
}
class DukeDolphin1: DukeActor
{
default
{
pic "DOLPHIN1";
}
}
class DukeDolphin2: DukeActor
{
default
{
pic "DOLPHIN2";
}
}
class DukeSnakep: DukeActor
{
default
{
pic "SNAKEP";
}
}
class DukeDonuts: DukeActor
{
default
{
pic "DONUTS";
}
}
class DukeDonuts2: DukeActor
{
default
{
pic "DONUTS2";
}
}
class DukeMailbag: DukeActor
{
default
{
pic "MAILBAG";
}
}
class DukeTeddybear: DukeActor
{
default
{
pic "TEDDYBEAR";
}
}
class DukeClock: DukeActor
{
default
{
pic "CLOCK";
}
}
class DukeBrokenClock: DukeActor
{
default
{
pic "BROKENCLOCK";
}
}
class DukeJollyMeal: DukeActor
{
default
{
pic "JOLLYMEAL";
}
}
class DukeGumballMachine: DukeActor
{
default
{
pic "GUMBALLMACHINE";
}
}
class DukeGumballMachineBroke: DukeActor
{
default
{
pic "GUMBALLMACHINEBROKE";
}
}
class DukeBurger: DukeActor
{
default
{
pic "DUKEBURGER";
}
}
class DukePoliceLightPole: DukeActor
{
default
{
pic "POLICELIGHTPOLE";
}
}
class DukeTopSecret: DukeActor
{
default
{
pic "TOPSECRET";
}
}
class DukeGunpowderbarrel: DukeActor
{
default
{
pic "GUNPOWDERBARREL";
}
}
class DukeFloorbasket: DukeActor
{
default
{
pic "FLOORBASKET";
}
}
class DukeRobotmouse: DukeActor
{
default
{
pic "ROBOTMOUSE";
}
}
class DukeRobotpirate: DukeActor
{
default
{
pic "ROBOTPIRATE";
}
}
class DukePirate1A: DukeActor
{
default
{
pic "PIRATE1A";
}
}
class DukeMan: DukeActor
{
default
{
pic "MAN";
}
}
class DukeMan2: DukeActor
{
default
{
pic "MAN2";
}
}
class DukePirate2A: DukeActor
{
default
{
pic "PIRATE2A";
}
}
class DukePirate3A: DukeActor
{
default
{
pic "PIRATE3A";
}
}
class DukePirate4A: DukeActor
{
default
{
pic "PIRATE4A";
}
}
class DukePirate5A: DukeActor
{
default
{
pic "PIRATE5A";
}
}
class DukePirate6A: DukeActor
{
default
{
pic "PIRATE6A";
}
}
class DukeFoodObject2: DukeActor
{
default
{
pic "FOODOBJECT2";
}
}
class DukeFem6Pad: DukeActor
{
default
{
pic "FEM6PAD";
}
}
class DukeCannonball: DukeActor
{
default
{
pic "CANNONBALL";
}
}
class DukeSpaceShuttle : DukeActor // (487)
{
default
{
pic "SPACESHUTTLE";
}
}
class DukeSatellite2 : DukeActor // (489)
{
default
{
pic "SATELLITE";
}
}
class DukeMop : DukeActor // (4497)
{
default
{
pic "MOP";
}
}
class DukeBroom : DukeActor // (4496)
{
default
{
pic "BROOM";
}
}
class DukeWetFloor : DukeActor // (4495)
{
default
{
pic "WETFLOOR";
}
}
class DukeDeskLamp : DukeActor // (4370)
{
default
{
pic "DESKLAMP";
}
}
class DukeHatRack : DukeActor // (4367)
{
default
{
pic "HATRACK";
}
}
class DukeCoffeeMachine : DukeActor // (4372)
{
default
{
pic "COFFEEMACHINE";
}
}
class DukeWoman : DukeActor // (4874)
{
default
{
pic "WOMAN";
}
}
class DukePirateHalf : DukeActor // (4516)
{
default
{
pic "PIRATEHALF";
}
}
class DukeChestOfGold : DukeActor // (4520)
{
default
{
pic "CHESTOFGOLD";
}
}
class DukeRobotDog : DukeActor // (4402)
{
default
{
pic "ROBOTDOG";
}
}
class DukePleaseWait : DukeActor // (4887)
{
default
{
pic "PLEASEWAIT";
}
}
class DukeFoodObject1 : DukeActor // (4530)
{
default
{
pic "FOODOBJECT1";
}
}
class DukeFoodObject3 : DukeActor // (4532)
{
default
{
pic "FOODOBJECT3";
}
}
class DukeFoodObject4 : DukeActor // (4533)
{
default
{
pic "FOODOBJECT4";
}
}
class DukeFoodObject5 : DukeActor // (4534)
{
default
{
pic "FOODOBJECT5";
}
}
class DukeFoodObject7 : DukeActor // (4536)
{
default
{
pic "FOODOBJECT7";
}
}
class DukeFoodObject8 : DukeActor // (4537)
{
default
{
pic "FOODOBJECT8";
}
}
class DukeFoodObject9 : DukeActor // (4538)
{
default
{
pic "FOODOBJECT9";
}
}
class DukeFoodObject10 : DukeActor // (4539)
{
default
{
pic "FOODOBJECT10";
}
}
class DukeFoodObject18 : DukeActor // (4547)
{
default
{
pic "FOODOBJECT18";
}
}
class DukeFoodObject19 : DukeActor // (4548)
{
default
{
pic "FOODOBJECT19";
}
}
class DukeFoodObject20 : DukeActor // (4549)
{
default
{
pic "FOODOBJECT20";
}
}
class DukeHeadLamp : DukeActor // (4550)
{
default
{
pic "HEADLAMP";
}
}
class DukeGavals : DukeActor // (4374)
{
default
{
pic "GAVALS";
}
}
class DukeGavals2 : DukeActor // (4375)
{
default
{
pic "GAVALS2";
}
}
class DukeCups : DukeActor // (4373)
{
default
{
pic "CUPS";
}
}
class DukeMeter : DukeActor // (4453)
{
default
{
pic "METER";
}
}
class DukeDeskPhone : DukeActor // (4454)
{
default
{
pic "DESKPHONE";
}
}
class DukeMace : DukeActor // (4464)
{
default
{
pic "MACE";
}
}
class DukeCoffeeMug : DukeActor // (4438)
{
default
{
pic "COFFEEMUG";
}
}
class DukeDevastatorBlast : DukeActor // (1642)
{
default
{
pic "DEVISTATORBLAST";
}
}
class DukeCannonballs : DukeActor // (1818)
{
default
{
pic "CANNONBALLS";
}
}
class DukeCannon : DukeActor // (1810)
{
default
{
pic "CANNON";
}
}
class DukeHotMeat : DukeActor // (4427)
{
default
{
pic "HOTMEAT";
}
}
class DukeLavaBubble : DukeActor // (4340)
{
default
{
pic "LAVABUBBLE";
}
}
class DukeNewBeastHangDead : DukeNewBeast // (4671)
{
default
{
pic "NEWBEASTHANGDEAD";
}
}
class DukeNewBeastJump : DukeNewBeast // (4690)
{
default
{
pic "NEWBEASTJUMP";
}
}