raze/wadsrc/static/zscript/games/duke/actors/redneckstuff/items.zs
Christoph Oelckers 513de38723 - pass the spawner to Initialize as an explicit parameter.
Using ownerActor is not robust, for some actors this will have unwanted side effects.
2023-05-19 22:57:26 +02:00

367 lines
5.9 KiB
Text

extend class DukeItemBase
{
const CASULAMMOAMOUNT = 6;
const SHOTGUNAMMOAMOUNT_RR = 10;
const RIFLEAMMOAMOUNT = 30;
const CROSSBOWAMMOBOX = 5;
const CHICKENBOWAMMOBOX = 5;
const ALIENBLASTERAMMOAMOUNT = 33;
const DYNAMITEBOX = 5;
const MOONSHINE_AMOUNT = 400;
const SHIELD_AMOUNT = 100;
const SCUBA_AMOUNT = 6400;
const HEAT_AMOUNT = 1200;
const COWPIE_AMOUNT = 600;
const BEER_AMOUNT = 2400;
const WHISKEY_AMOUNT = MAXPLAYERHEALTH;
const BOOT_AMOUNT = 2000;
const POWDERKEGBLASTRADIUS = 3880;
}
class RedneckMoonshine : DukeItemBase
{
default
{
pic "STEROIDS";
+INVENTORY;
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.203125, 0.140625));
}
}
class RedneckHipWader : DukeItemBase
{
default
{
pic "BOOTS";
+INVENTORY;
}
}
class RedneckCowpie : DukeItemBase
{
default
{
pic "COWPIE";
+INVENTORY;
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.125, 0.09375));
}
}
class RedneckBeer : DukeItemBase
{
default
{
pic "BEER";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.078125, 0.0625));
}
}
class RedneckSnorkel : DukeItemBase
{
default
{
pic "AIRTANK";
+INVENTORY;
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.296875, 0.25));
}
}
class RedneckDoorkey : DukeAccessCard
{
override void Initialize(DukeActor spawner)
{
super.Initialize(spawner);
self.Scale = (0.171875, 0.1875);
}
}
class RedneckAmmo : DukeItemBase
{
default
{
pic "AMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.140625, 0.140625));
}
}
class RedneckTitAmmo : DukeItemBase
{
default
{
pic "TEATAMMO";
}
}
class RedneckSawAmmo : DukeItemBase
{
default
{
pic "SAWAMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.1875, 0.109375));
}
}
class RedneckShotgunammo : DukeItemBase
{
default
{
pic "SHOTGUNAMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.28125, 0.265625));
if (isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}
class RedneckRifleAmmo : DukeItemBase
{
default
{
pic "BATTERYAMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.234375, 0.234375));
}
}
class RedneckBlaster : DukeItemBase
{
default
{
pic "ALIENBLASTERSPRITE";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.28125, 0.265625));
}
}
class RedneckBlasterammo : DukeItemBase
{
default
{
pic "DEVISTATORAMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.15625, 0.140625));
}
}
class RedneckBowlingBallsprite : DukeItemBase
{
default
{
pic "BOWLINGBALLSPRITE";
strength BOWLINGBALL_WEAPON_STRENGTH;
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.171875, 0.171875), -1, true);
}
}
class RedneckDynamiteAmmo : DukeItemBase
{
default
{
pic "HBOMBAMMO";
}
}
class RedneckCrossbow : DukeItemBase
{
default
{
pic "CROSSBOWSPRITE";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.25, 0.21875));
}
}
class RedneckShotgun : DukeItemBase
{
default
{
pic "SHOTGUNSPRITE";
}
}
class RedneckRipsaw : DukeItemBase
{
default
{
pic "RIPSAWSPRITE";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.34375, 0.203125));
}
}
class RedneckTitgun : DukeItemBase
{
default
{
pic "TITSPRITE";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.265625, 0.25));
}
}
class RedneckPorkRinds : DukeItemBase
{
default
{
pic "SIXPAK";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.203125, 0.140625));
if (isRRRA()) self.cstat = CSTAT_SPRITE_BLOCK_HITSCAN;
}
}
class RedneckGoogooCluster : DukeItemBase
{
default
{
pic "ATOMICHEALTH";
+FULLBRIGHT;
+BIGHEALTH;
+NOFLOORPAL;
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.125, 0.125));
self.cstat |= CSTAT_SPRITE_YCENTER;
}
override bool animate(tspritetype t)
{
t.pos.Z -= 4;
return false;
}
}
class RedneckWhiskey : DukeItemBase
{
default
{
pic "FIRSTAID";
+INVENTORY;
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.125, 0.125));
}
}
class RedneckRevolver : DukeItemBase
{
default
{
pic "FIRSTGUNSPRITE";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, ((0.25, 0.25)));
}
}
class RedneckPowderKeg : DukeItemBase
{
default
{
pic "POWDERKEG";
+NOFLOORPAL;
+EXPLOSIVE;
+DOUBLEDMGTHRUST;
+BREAKMIRRORS;
+INFLAME;
}
override void Tick()
{
let sectp = self.sector;
if (sectp.lotag != ST_1_ABOVE_WATER && (!(ud.mapflags & MFLAG_ALLSECTORTYPES) && sectp.lotag != ST_160_FLOOR_TELEPORT))
if (self.vel.X != 0)
{
movesprite((self.Angle.ToVector()* self.vel.X, self.vel.Z), CLIPMASK0);
self.vel.X -= 1. / 16.;
}
Super.Tick();
}
override bool shootthis(DukeActor actor, DukePlayer p, Vector3 spos, double sang) const
{
let j = actor.spawn("RedneckPowderKeg");
if (j)
{
j.vel.X = 2;
j.Angle = actor.Angle;
j.pos.Z -= 5;
}
return true;
}
}
class RedneckRiflegun : DukeItemBase
{
default
{
pic "RIFLEGUNSPRITE";
}
}
class RedneckMotoAmmo : DukeItemBase
{
default
{
pic "MOTOAMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.359375, 0.359375));
}
}
class RedneckBoatAmmo : DukeItemBase
{
default
{
pic "BOATAMMO";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.359375, 0.359375));
}
}
class RedneckChickenArrows : DukeItemBase
{
default
{
pic "RPG2SPRITE";
}
override void Initialize(DukeActor spawner)
{
commonItemSetup(spawner, (0.34375, 0.3125));
}
}