Un-hide DLC content (even if not implemented).

This commit is contained in:
Mari the Deer 2022-03-27 01:11:30 +01:00
commit bbc8e55afd
9 changed files with 289 additions and 120 deletions

215
README.md
View file

@ -68,7 +68,7 @@ All weapons also have a quick melee attack using the **Weapon State 1** button,
If a weapon has no actions on either the reload or zoom buttons, it may be replaced with some special idle action, such as spinning or fiddling around with it.
For now, the following are all weapons available. More will be added afterwards, in future updates *(oh boy)*.
Do note that *(with the exception of the **Deep Impact**)*, you can only have one of each weapon per slot. Make sure you think things through with how to set up your loadout, 'cause you can't carry everything *(that is, unless you toggle the option to do so, which completely defeats this attempt at balance)*.
### Deep Impact (slot 1) ~ Replaces Fist, Staff, Hexen starting weapons
![](docimg/deepimpact.png)
@ -92,6 +92,19 @@ What was going to be the new melee weapon in **Ultra Suite 2**, but it never hap
**Secondary fire:** Pull the drill bit back all the way in, then on button release push it back out with immense force. This will pretty much pierce a hole through anything, but if you miss there's a chance you'll lose grip on the weapon and it'll go flying until it hits something.
### Combat Hammer (slot 1) ~ Replaces Chainsaw, Gauntlets, Timon's Axe
![](docimg/hammer.png)
A hefty sledgehammer, built to smash things with extreme prejudice.
**Primary fire:** Swing it around, from side to side.
**Secondary fire:** Hold to lift it up, release to let it drop.
**Tertiary Fire:** Spin the damn thing, hitting all targets around you. Note that you have to keep tapping the button whenever the speed starts to drop so you can keep going, for as long as you want *(be wary of motion sickness)*.
Do note one important thing: This weapon benefits from the effects of the **Ragekit**. Yeah, have fun dealing *8X THE DAMAGE* swingin' it.
### Explodium Gun (slot 2) ~ Replaces Pistol, Elven Wand, Hexen starting weapons
![](docimg/explodiumgun.png)
@ -107,6 +120,19 @@ Equipped by default on spawned players. Has infinite ammo.
If you manage to get a second one, you can dual wield them, in which case secondary fire instead shoots your off-hand gun.
### Plasma Blaster (slot 2) ~ Replaces Pistol, Elven Wand, Hexen starting weapons
![](docimg/plasmablast.png)
Energy sidearm, for those times when you just want to let 'em burn. What it lacks in explosive potential compared to the **Explodium Gun**, it compensates by packing one hell of a scorching bite on direct hits.
**Primary fire:** Let loose some pew-pews. The projectiles aren't very fast, nor get very far.
**Secondary fire:** Hold firmly with both hands and charge up a potent shot. This one is a lot more lethal, as you may imagine.
**Reload:** Change up the plasma cell. Don't freak out if the display powers off, it's also powered by that same cell.
Likewise, also has infinite ammo, so go wild. And yeah, it can also be dual wielded, working the same way.
### Spreadgun (slot 3) ~ Replaces Shotgun, Ethereal Crossbow, Serpent Staff
![](docimg/spreadgun.png)
@ -134,6 +160,22 @@ on replaced item, may also come in bundles:
- ***"The ball"* (purple):** A big lead ball, 'nuff said. Somewhat rare.
- **Golden shell (self-explanatory color):** An extremely rare, but very valuable type. Fires a sabot packed with a very dense, high-grade **Explodium** charge, the shell also contains some gold glitter, but it's just for show. Clearly designed by someone completely insane, and definitely guaranteed to not fail catastrophically and blow up your gun, your hands, your arms, and the rest of your upper body. Unlike the others, this one is only available as a rare drop from powerful monsters (over 1000HP) and bosses. They may also appear in **Chanceboxes**.
### Puntzer Beta (slot 3) ~ Replaces Shotgun, Ethereal Crossbow, Serpent Staff
![](docimg/puntzerbeta.png)
A fine six-shooter for the gunslinger at heart. Single-action for that ol' fanning goodness.
**Primary fire:** It do the shoot.
**Secondary fire:** Hold for fast-fire mode, after which continuous tapping of primary will keep on slamming that hammer.
**Reload:** You can guess what it does. And hey, look, it's top-break. Ain't that a rarity nowadays...
### SMW.05 rounds ~ Replaces Clip / Shells, Wand Crystal / Ethereal Arrows
![](docimg/smwammo.png)
These 6.9mm **(nice)** corkscrew-shaped bullets have some fine drilling power, being capable of piercing nicely through various surfaces. You may find them in various forms, sometimes as speedloaders for the **Beta**, and other times as magazines for the **Gamma**.
### Wallbuster (slot 4) ~ Replaces SSG, Ethereal Crossbow, Frost Shards
![](docimg/wallbuster.png)
@ -154,6 +196,19 @@ A ludicrously overkill weapon, courtesy of the always-overkill **Blackmann Arms*
Should you make use of its multi-fire functionality, you will soon learn why it bears the name of ***"Wallbuster"***.
### Puntzer Gamma (slot 4) ~ Replaces SSG, Ethereal Crossbow, Frost Shards
![](docimg/puntzergamma.png)
Just your friendly neighborhood bullpup SMG, with a somewhat unconventional feeding system.
**Primary fire:** It shoots, what else. Note that you'll gradually lose accuracy the longer you keep firing.
**Secondary fire:** Toggles between full auto and... Fuller auto?
**Reload:** Ah yes, it reloads.
As its ammunition is interchangeable with the **Beta**, you won't be missing much *(other than the SPEED and the mag capacity)* if you decide to keep a **Wallbuster** in this slot.
### Eviscerator (slot 5) ~ Replaces Chaingun, Dragon Claw, Quietus (hilt)
![](docimg/eviscerator.png)
@ -172,6 +227,24 @@ This weapon made the **Unreal Engine** cry, so **GZDoom** may suffer a lot too.
Little bundles of fun (in hot lead form) found either as single units *(sometimes bunched up)* or six-packs. There is no explanation for why they have an **OwO** face scribbled on.
### Sheen HMG (slot 5) ~ Replaces Chaingun, Dragon Claw, Quietus (hilt)
![](docimg/sheenhmg.png)
**HEAVY MAH-SHEEN GUN!** The **Sheen** is one big bad son of a gun, letting you unload lead uninterrupted thanks to also feeding directly from **Hammerspace**.
**Primary fire:** It shoots, at a steady 700 RPM. Not very fast, but it's the most stable.
**Secondary fire:** 1050 RPM shooting. Things are speeding up, and you may notice some heat problems with extended use.
**Tertiary fire:** 2100 RPM shooting. Absolute curtain fire, gun's gonna catch on fire if you keep this up.
As you may guess, there is heat buildup to worry about with this thing. Despite its efficient heat dissipation, there's nothing that can be done against the sheer density of dakka you can deliver.
### 14.5mmMT bullets ~ Replaces Clip / Ammo Box, Wand Crystal / Claw Orb
![](docimg/sheenammo.png)
Things get intense when even your bullets have to be built with special, exotic materials made to resist extreme heat. You're gonna find plenty of these around, for sure. By the way, they're not tracer rounds, they just get so hot they literally set the air on fire. Ain't that metal...
### Hellblazer (slot 6) ~ Replaces Rocket Launcher, Phoenix Rod, Hammer of Retribution
![](docimg/hellblazer.png)
@ -197,6 +270,26 @@ Ammo for the **Hellblazer**, found either as single units or packs. There are fo
- ***"Ravager"* incendiary bombs:** Wide range, the flames will engulf pretty much everything around itself.
- ***"Slayer"* warheads:** Frickin' nukes, you better keep your distance, because they are ***STRONG***.
### Quadravol (slot 6) ~ Replaces Rocket Launcher, Phoenix Rod, Hammer of Retribution
![](docimg/quadravol.png)
One mighty relic of the beginnings of **UnSX**. This beefy handcannon spews potent fireballs that burn stuff up good, while also blasting it all into the air with extreme prejudice. And what's even better, it's lever-action!
**Primary fire:** Shoot 'em.
**Secondary fire:** Pumps more rounds into the gun, for extra potency *(up to 5x)*. Do note that the shot not only will become stronger, but also more unstable.
**Tertiary fire:** Hold for extended features with either fire button. Tapping primary fire will switch between single-shot and scatter-shot modes, and tapping secondary fire lets you switch the weapon stance, from two-handing to single-handing, you know, so you can give it a full-on spin like in the action movies.
**Reload:** Loads more rounds in reserve.
There's one special technique that you can make use of, should you decide to melee with this weapon. Yeah, timing it just right as you stab those bayonets into an enemy and then fire the gun, you'll release a potent point-blank blast for added damage and knockback. Smite those fools, smite them good.
### Quadravol cells ~ Replaces Rockets, Flame Orb
![](docimg/quadammo.png)
Each of these lil' things contains a mixture of high-incendiary exotic elements. The stuff's so powerful it even burns underwater, somehow.
### Biospark Carbine (slot 7) ~ Replaces Plasma Rifle, Hellstaff, Firestorm
![](docimg/biospark.png)
@ -217,6 +310,33 @@ If the beam hits either of the other energy blobs, they will detonate with highl
Ammunition for the Biospark Carbine. They contain a lot of energy, despite the small size.
### Sparkster Rifle (slot 7) ~ Replaces Plasma Rifle, Hellstaff, Firestorm
![](docimg/sparkster.png)
You've seen the granddaddy, now meet its young and promising descendant. The **Sparkster** is yet another signature weapon of the **UnSX** series, and you will not be disappointed with the mighty power you'll wield in your hands.
**Primary fire:** Kinylum plasma shots. Stable, steady, and quite explosive.
**Secondary fire:** Nokron plasma shots. A chaotic, scorching cloud of burnination.
**Primary fire + Secondary fire:** Holding both buttons at once will mix both compounds to produce a lethal orb of violet plasma.
**Primary reload:** Load in more Kinylum cells.
**Secondary reload:** Load in more Nokron cells.
Yes, this portable plasma artillery has two ammo types, handled separately. And yes also, they can be combined. Ain't that neat.
### Kinylum cells ~ Replaces Cells, Runes
![](docimg/sparksterammoblue.png)
Neatly packaged single-shot charges of Kinylum. Recognizable by its cyan color and fresh mint scent.
### Nokron cells ~ Replaces Cells, Runes
![](docimg/sparksterammored.png)
Neatly packaged single-shot charges of Nokron. Recognizable by its red color and delicious cheese aroma.
### Silver Bullet JET (slot 8) ~ Replaces Plasma Rifle, Hellstaff, Arc of Death
![](docimg/silverbullet.png)
@ -248,6 +368,31 @@ The more directly explosive counterpart of the **XSB**. Personally baptized by *
Same spawn conditions as the standard bullets.
### Mortal Rifle (slot 8) ~ Replaces Plasma Rifle, Hellstaff, Arc of Death
![](docimg/mortalrifle.png)
An experiment in creating the most definitive battle rifle for all armies across the universe. This thing came out of the **University of Nos-Kora**, so you can expect some things won't make a whole lot of sense with it.
**Primary fire:** The weapon is shot.
**Secondary fire:** Fire the under-barrel grenade. Or load one if empty.
**Tertiary fire:** Switch fire modes. There's the usual semi-auto, as well as... A shotgun? A stream of micro-bullets?? And a railgun??? Yeah, I don't even.
**Reload:** At least this does what you'd expect.
Don't rely too much on this thing, the ammo tends to be scarce.
### Mortal Bullets ~ Replaces Cells, Runes
![](docimg/mrbullet.png)
These 4.44x44.4mm, square-shaped telescoped rounds have a lot of *"fours"* in them for sure. You can find 'em as-is or rarely in full mags.
### Mortal Grenades ~ Replaces Cells, Runes
![](docimg/mrgrenade.png)
44.4mm grenades that burst into target-seeking micro-bombs. That sure is a thing, yes. They're more rare than the standard ammo, however.
### Candy Gun (slot 9) ~ Replaces BFG9000, Firemace, Bloodscourge (stub)
![](docimg/candygun.png)
@ -268,6 +413,31 @@ The ammo for this beast. Mags don't pop up on **Embiggeners**, and in Hexen only
In the world, you may find either spare bullets or full mags. Each seven bullets picked up will be automatically converted to a full mag in your inventory.
### Ray-Khom (slot 9) ~ Replaces BFG9000, Firemace, Bloodscourge (stub)
![](docimg/raykhom.png)
So, you are about to witness a weapon of legend from the ancient **UnSX** arsenal. This is a very, VERY big gun you've got here. Naturally, it serves as a staple of the **Xekkian** armies, being the standard-issue sidearm *(yes, sidearm)* of many soldiers and mercenaries alike. ~~It's also the most silent way to eliminate **Manderley**.~~
**Primary fire:** Silent plasma grenade shot. Goes quite far, and blows up good. Your enemies won't even hear it coming.
**Secondary fire:** Short-range arc lightning discharge. Stuns hard, with deadly potential on lesser targets. Make sure you're not standing in water when letting loose *(it's common sense)*.
**Primary reload:** Ammo reloading.
**Secondary reload:** Battery reloading. Yes, this is battery powered. It's a coilgun, after all. Note that for safety reasons the battery can't be removed unless it's almost depleted.
By the way, those sharp claws aren't just for show, they hurt real bad when you use quick melee with this thing.
### Ray-Khom Bolts ~ Replaces Cells, Runes
![](docimg/raybolt.png)
40mm magnetized bolts with a plasma payload. They're basically just grenades, really.
### Ray-Khom Battery ~ Replaces Cells, Runes
![](docimg/raybattery.png)
You're gonna need spares of these if you plan on using the **Ray-Khom** for a very extended period of time. Too bad they're kind of rare.
### Ynykron Artifact (slot 0) ~ Replaces BFG9000, Firemace, Wraithverge (arc)
![](docimg/ynykron.png)
@ -290,6 +460,24 @@ Additional ammo charge for the **Ynykron Artifact**. Contains a rod of polarized
These spawn VERY rarely and, like the weapon that uses them, you can't buy them either. It's also possible to find them in **Chanceboxes**, if you're lucky.
### Rafan-Kos (slot 0) ~ Replaces BFG9000, Firemace, Wraithverge (arc)
![](docimg/rafankos.png)
Yet another very legendary **UnSX** weapon of old that never saw the light of day... Until today. The name of this peculiar artifact translates to **Ultimate Weapon** in the language of the **Nukuri**. As you may expect, it's meant to be the last word in weaponry, that's why it shares the same slot as the other big fuck-off gun.
**Primary fire:** A very big, very thick, very DEADLY beam of plasma.
**Secondary fire:** Scattered beams, pure chaos, everything they touch just melts.
**Reload:** Reload reloads, very reloadingly.
You ever wanted a nice and concise way to tell someone to fuck off? Just use this. But something like this can't be bought in stores, oh no, it's so niche that only ONE of it exists in the whole world. Try to find it, have fun.
### Rafan-Kos Pods ~ Replaces Cell Pack, Greater Rune
![](docimg/rafankospod.png)
Don't eat them. Each of these contains star stuff, basically. They're just as rare as you might expect. If you're lucky, you'll see a full mag of four somewhere, maybe.
## The Pickups
![](docimg/demolitionist_items.png)
@ -391,7 +579,7 @@ You're fucking invincible for a total of 20 seconds.
Each of these you pick up increases your ammo capacity *(not necessarily doubling it)*, stacking up to 8 times. They also give you some extra ammo, like a vanilla backpack would *(though not for all weapons)*.
In some special cases you may find "Bulk" versions. These generally only pop up if the mapper decided to spawn several overlapping backpacks in one spot, as they result from all of those items merging together.
In some special cases you may find *"Bulk"* versions. These generally only pop up if the mapper decided to spawn several overlapping backpacks in one spot, as they result from all of those items merging together.
Note: In multiplayer, these can be traded between players, but do note that the receiver will not get any extra ammo from it.
@ -413,7 +601,7 @@ Reveals the entire layout of the map and shows key locations in the HUD. Also al
### Safety Tether ~ Replaces Chaos Device
![](docimg/tether.png)
On use, teleports you back to the start of the map. Basically acts exactly the same as a Chaos Device, although it also resets you to max health should you be under the weather. Additionally it also generates shockwaves on both ends, making your escape more dramatic.
On use, teleports you back to the start of the map. Basically acts exactly the same as a **Chaos Device**, although it also resets you to max health should you be under the weather. Additionally it also generates shockwaves on both ends, making your escape more dramatic.
### Mykradvo Artifact ~ May randomly replace Ghost Artifact or Invinciball
![](docimg/mykradvo.png)
@ -439,29 +627,29 @@ Same conditions as the other two. Make sure you find the perfect chance to unlea
## The Collectibles
![](docimg/chancebox.png)
Every now and then you will find these strange ***"Lucky Chance Boxes"*** in secret areas, which you can open by pressing Use. In Hexen, they will also replace Dark Servants, Banishment Devices and Porkalators *(as the game generally doesn't have secret areas)*.
Every now and then you will find these strange ***"Lucky Chance Boxes"*** in secret areas, which you can open by pressing Use. In **Hexen**, they will also replace **Dark Servants**, **Banishment Devices** and **Porkalators** *(as the game generally doesn't have secret areas)*.
While some will drop very useful goodies, others may provide you instead with a randomly selected item from a pool of various *"collectibles"*. On pickup, these will give you a nice extra score based on their estimated market price. Some of these collectibles will only appear when you play specific IWADs (or those that go chronologically after them, e.g.: Heretic collectibles appearing in Hexen).
While some will drop very useful goodies, others may provide you instead with a randomly selected item from a pool of various *"collectibles"*. On pickup, these will give you a nice extra score based on their estimated market price. Some of these collectibles will only appear when you play specific IWADs (or those that go chronologically after them, e.g.: **Heretic** collectibles appearing in **Hexen**).
### NUTATCO™ Chocolate Bar
![](docimg/nutatcobar.png)
A light snack, said to have a "savage taste". The branding was entirely Saya's doing thanks to her position as #1 sponsor of Vestal Foods.
A light snack, said to have a *"savage taste"*. The branding was entirely **Saya**'s doing thanks to her position as #1 sponsor of Vestal Foods.
### Frispy™ Tasty Corn Snack
![](docimg/frispycorn.png)
Saya's favorite barbecue-flavored corn nuts. She snacks on so many bags of these that their tasty scent has stuck to her permanently, becoming a walking advertisement for them. Kirin likes it, at least.
**Saya**'s favorite barbecue-flavored corn nuts. She snacks on so many bags of these that their tasty scent has stuck to her permanently, becoming a walking advertisement for them. **Kirin** likes it, at least.
### The Akari Project
![](docimg/akariproject.png)
A copy of Saya's famous sci-fi novel about interdimensional travel. Saya has frequently cited it to dab hard on the UAC and their failures. The interportal system devised by Saya in 2171 was named after this.
A copy of **Saya**'s famous sci-fi novel about interdimensional travel. **Saya** has frequently cited it to dab hard on the **UAC** and their failures. The interportal system devised by **Saya** in 2171 was named after this.
### Meidobot - Love Signals
![](docimg/lovesignals.png)
Debut album of Maidbot Miyamoto. Very cute and romantic J-Pop. Yes, it's a CD, and yes, some people still have CD drives out there. The album is considered a declaration of love to Saya, although it should be noted that this predates Maidbot gaining sentience *(not that it makes much of a difference, as her feelings for Saya turned out to be very real)*.
Debut album of **Meido Miyamoto**. Very cute and romantic J-Pop. Yes, it's a CD, and yes, some people still have CD drives out there. The album is considered a declaration of love to **Saya**, although it should be noted that this predates **Meido** gaining sentience *(not that it makes much of a difference, as her feelings for **Saya** turned out to be very real)*.
### Perfectly Generic Cube
![](docimg/generic.png)
@ -471,12 +659,17 @@ A perfectly generic cube. It is exactly 128mm across each side, sports a pure gr
### Haunted Saya Bean Plush
![](docimg/sayabean.png)
Eats your snacks and calls you a horny. Emits a giggle when you squeeze it. Yet another of Nukritas 2xx's little handcrafted dolls. May or may not be really haunted.
Eats your snacks and calls you a horny. Emits a giggle when you squeeze it. Yet another of **Nukritas 2xx**'s little handcrafted dolls. May or may not be really haunted.
### Mashiro Plush
![](docimg/mothplushy.png)
A cute plush doll of Saya's favorite moth girl. Apparently the Nukritas brothers give her one of these every time they piss her off, so she's got an entire pile in her bedroom. It appears that this one bears with it some sort of "contract", whatever that means.
A cute plush doll of **Saya**'s favorite moth girl. Apparently the **Nukritas** brothers give her one of these every time they piss her off, so she's got an entire pile in her bedroom. It appears that this one bears with it some sort of *"contract"*, whatever that means.
### Saya's Mug
![](docimg/sayasmug.png)
A personalized coffee mug that **Saya** uses to totally drink black coffee, without any sugar. Gifted by her brother **Taro** on her 16th birthday.
### Demolitionist Plush (Heretic)
![](docimg/demoplush.png)

View file

@ -9,12 +9,17 @@
# gametype: the game this belongs to (any, doom, heretic, hexen, raven, etc.)
acid,40,yes,any
allcoll,-1,no,any
#allinv,-1,yes,any
allitems,30,yes,nothexen
allkills,30,yes,nothexen
allsecrets,30,yes,nothexen
#allweapons,-21,yes,any
anom,10,yes,any
anone,0,no,any
#ara,100,yes,any
#arse,-8,yes,any
balls,10,yes,any
#ballself,0,no,any
barrel,500,yes,doom
barrier,20,yes,doom
baseball,0,no,doom
@ -28,40 +33,46 @@ butts,100,yes,any
candy,500,yes,any
cliffyb,0,no,nothexen
clonk,0,no,any
#combo,0,no,any
conga,10,yes,any
crush,0,no,any
cybully,0,no,doom
#cum,500,yes,any
#dab,200,yes,any
#dakka,60,no,any
cum,500,yes,any
dab,200,yes,any
dakka,60,no,any
#dbsucc,0,no,any
deadeye,7,yes,any
deva,10,yes,any
dime,0,no,any
divine,10,yes,any
doodle,20,yes,doom
#engine,0,no,any
everything,0,no,any
ezkill,50,yes,doom
ezkill,30,yes,raven
flight,2000,yes,any
#fluffy,50,yes,any
friend,20,yes,any
fuel,400,yes,any
#fuller,0,no,any
fuller,0,no,any
gcsandwich,10,yes,any
#gepgun,30,yes,any
gepgun,30,yes,any
ghost,20,yes,any
gib,1500,yes,any
golden,24,yes,any
gravity,10,yes,raven
grenade,20,yes,any
#hnd,6,yes,any
hnd,6,yes,any
hurry,0,no,any
jump,100,yes,any
kancho,0,no,hexen
keen,0,no,doom
#kirin,500,yes,hexen
lead,1500,yes,any
#lightning,0,no,any
lightning,0,no,any
ligma,0,no,any
love,10,yes,any
#marisa,0,no,doom
#mashiro,0,no,any
matryoshka,0,no,any
mbf,0,no,doom
@ -72,33 +83,38 @@ oneguy,0,no,any
onehp,10,yes,any
onestanding,0,no,nothexen
oopsie,0,no,any
#pachinko,0,no,any
par,15,yes,doom
parry,100,yes,any
peace,0,no,nothexen
#plasma,30,yes,any
plasma,30,yes,any
plush,10,yes,any
puzzle,0,no,hexen
rage,20,yes,any
#rail,16,yes,any
rail,16,yes,any
reflect,20,yes,any
refresh,30,yes,any
#roast,40,yes,any
roast,40,yes,any
salt,0,no,any
sanic,800,yes,any
sekiro,0,no,any
shame,0,no,any
shock,30,yes,any
#shuffle,100,yes,any
slayer,40,yes,doom
slayer,20,yes,raven
slemg,100,yes,any
sneaky,10,yes,raven
sneeze,20,yes,any
#spark,30,yes,any
spark,30,yes,any
#speen,60,yes,any
step,30,yes,any
stomp,40,yes,any
sunny,15,yes,any
#tbd,0,no,doom
tele,0,no,any
tender,100,yes,any
#tennis,0,no,any
thicc,100,yes,any
thruwall,20,yes,any
tornado,0,no,heretic
@ -107,4 +123,5 @@ travel,1000,yes,any
untouchable,0,no,nothexen
wantdie,0,no,any
wave,0,no,any
#words,100,yes,any
yeet,0,no,doom

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre \cu(Sat 26 Mar 21:53:04 CET 2022)\c-";
SWWM_SHORTVER="\cw1.3pre \cu(2022-03-26 21:53:04)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1 \cu(Sun 27 Mar 01:12:47 CET 2022)\c-";
SWWM_SHORTVER="\cw1.3pre r1 \cu(2022-03-27 01:12:47)\c-";

View file

@ -219,7 +219,7 @@ OptionMenu "SWWMOptionMenu"
Option "$SWWM_SIMPLEFOG", "swwm_simplefog", "YesNo"
Option "$SWWM_SHOTGIB", "swwm_shotgib", "YesNo"
Option "$SWWM_STRICTUNTOUCHABLE", "swwm_strictuntouchable", "SWWMUntouchableStrictness"
//Option "$SWWM_SWAPWEAPONS", "swwm_swapweapons", "YesNo" // comment out until DLC1
Option "$SWWM_SWAPWEAPONS", "swwm_swapweapons", "YesNo" // comment out until DLC1
StaticText " "
StaticText "$SWWM_ITITLE", 1
Option "$SWWM_USETOPICKUP", "swwm_usetopickup", "YesNo"

View file

@ -43,7 +43,7 @@ Index of contents:
2.3. Armors
2.4. Health
2.5. Others
2.6. DLC Weapon Set 1
2.6. DLC Weapon Set
2.6.1. Itamex Hammer
2.6.2. Plasma Blaster
2.6.3. Puntzer Beta
@ -335,7 +335,10 @@ very valuable.
2.6. DLC Weapon Set
- - - - - - - - - -
Coming soon. But here's a tease.
An additional set of 10 weapons to spice things up. Note that you can only have
one of each in every slot, so make sure you pick the right options for the
battles ahead (or you could just disable that mechanic entirely, if you're the
kinda person who prefers to carry EVERYTHING).
2.6.1. Itamex Hammer

View file

@ -49,8 +49,8 @@ Class SWWMShellAmmoSmall : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05Ammo3';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05Ammo3';
switch( Random[Replacements](0,9) )
{
case 0:
@ -75,8 +75,8 @@ Class SWWMShellAmmoBig : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05BigAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05BigAmmo';
switch( Random[Replacements](0,17) )
{
case 0:
@ -113,13 +113,13 @@ Class SWWMClipAmmoSmall : SWWMAmmoSpawner
{
if ( !Random[Replacements](0,4) )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenAmmo3':'SheenTinyAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenAmmo3':'SheenTinyAmmo';
if ( notondemand || SWWMUtility.ItemExists('Eviscerator') )
return 'EvisceratorShell';
}
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05Ammo':'SMW05Ammo2';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
return Random[Replacements](0,2)?'SMW05Ammo':'SMW05Ammo2';
return Random[Replacements](0,1)?'RedShell':'GreenShell';
}
}
@ -129,8 +129,8 @@ Class SWWMClipAmmoBig : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenSmallAmmo':'SheenBigAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenSmallAmmo':'SheenBigAmmo';
return Random[Replacements](0,5)?'EvisceratorShell':Random[Replacements](0,2)?'EvisceratorShell2':'EvisceratorShell3';
}
}
@ -140,8 +140,8 @@ Class SWWMBlastAmmoSmall : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenSmallAmmo':'SheenTinyAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenSmallAmmo':'SheenTinyAmmo';
return 'EvisceratorShell';
}
}
@ -151,8 +151,8 @@ Class SWWMBlastAmmoBig : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenBigAmmo':'SheenSmallAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
return Random[Replacements](0,2)?'SheenBigAmmo':'SheenSmallAmmo';
return Random[Replacements](0,2)?'EvisceratorShell':Random[Replacements](0,1)?'EvisceratorShell2':'EvisceratorShell3';
}
}
@ -162,7 +162,7 @@ Class SWWMRocketAmmoSmall : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('Quadravol')) ) return 'QuadravolAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('Quadravol')) ) return 'QuadravolAmmo';
return Random[Replacements](0,2)?'HellblazerMissiles':'HellblazerCrackshots';
}
}
@ -172,8 +172,8 @@ Class SWWMRocketAmmoBig : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('Quadravol')) )
return Random[Replacements](0,4)?'QuadravolAmmo2':'QuadravolAmmo3';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('Quadravol')) )
return Random[Replacements](0,4)?'QuadravolAmmo2':'QuadravolAmmo3';
switch ( Random[Replacements](0,11) )
{
case 0:
@ -201,18 +201,18 @@ Class SWWMCellAmmoSmall : SWWMAmmoSpawner
static Class<Actor> PickAmmo( bool notondemand = false )
{
/*if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('RayKhom') || SWWMUtility.ItemExists('GrandLance')) ) return 'RayBattery';*/
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('RayKhom')) ) return 'RayBattery';
if ( !Random[Replacements](0,2) )
{
if ( !Random[Replacements](0,3) )
{
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RayKhom')) ) return 'RayBolt2';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RayKhom')) ) return 'RayBolt2';
if ( notondemand || SWWMUtility.ItemExists('CandyGun') ) return 'CandyGunBullets';
}
/*if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('MisterRifle')) ) return 'MisterGAmmo';*/
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('MisterRifle')) ) return 'MisterGAmmo';
if ( notondemand || SWWMUtility.ItemExists('SilverBullet') ) return Random[Replacements](0,2)?'SilverBullets':'SilverBullets2';
}
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('ModernSparkster')) ) return Random[Replacements](0,2)?'SparksterBAmmo':'SparksterRAmmo';*/
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('ModernSparkster')) ) return Random[Replacements](0,2)?'SparksterBAmmo':'SparksterRAmmo';
return 'SparkUnit';
}
}
@ -224,27 +224,27 @@ Class SWWMCellAmmoBig : SWWMAmmoSpawner
{
if ( !Random[Replacements](0,3) )
{
//if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RafanKos')) && SWWMUtility.CheckNeedsItem('UltimateAmmo',true) && !SWWMUtility.ItemExists('UltimateAmmo',worldonly:true) && !SWWMUtility.ItemExists('RafanKos',worldonly:true) )
// return 'UltimateAmmo';
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RafanKos')) && SWWMUtility.CheckNeedsItem('UltimateAmmo',true) && !SWWMUtility.ItemExists('UltimateAmmo',worldonly:true) && !SWWMUtility.ItemExists('RafanKos',worldonly:true) )
return 'UltimateAmmo';
if ( (notondemand || SWWMUtility.ItemExists('Ynykron')) && SWWMUtility.CheckNeedsItem('YnykronAmmo',true) && !SWWMUtility.ItemExists('YnykronAmmo',worldonly:true) && !SWWMUtility.ItemExists('Ynykron',worldonly:true) )
return 'YnykronAmmo';
}
/*if ( Random[Replacements](0,1) )
if ( Random[Replacements](0,1) )
{
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('MisterRifle')) ) return Random[Replacements](0,2)?'MisterRound5':'MisterAmmo';
if ( notondemand || SWWMUtility.ItemExists('RayKhom') ) return Random[Replacements](0,2)?'RayBolt5':'RayAmmo';
}*/
}
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('SilverBullet')) )
{
if ( Random[Replacements](0,3) ) return Random[Replacements](0,2)?'SilverBullets_2':'SilverBullets2_2';
return Random[Replacements](0,2)?'SilverBulletAmmo':'SilverBulletAmmo2';
}
if ( notondemand || SWWMUtility.ItemExists('CandyGun') ) return Random[Replacements](0,3)?'CandyGunBullets3':'CandyGunAmmo';
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('ModernSparkster')) )
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('ModernSparkster')) )
{
if ( Random[Replacements](0,1) ) return Random[Replacements](0,2)?'SparksterBAmmo2':'SparksterBAmmo3';
return Random[Replacements](0,2)?'SparksterRAmmo2':'SparksterRAmmo3';
}*/
}
return Random[Replacements](0,3)?'SparkUnit':'SparkUnit2';
}
}

View file

@ -172,7 +172,7 @@ Class SWWMCreditsMenu : GenericMenu
cassets.Push(new("SWWMCreditsEntry").Init("Nash","WidePix"));
cmusic.Push(new("SWWMCreditsEntry").Init("Teque","Traumatic State\nDragony\nHidden Tune #242\nHypercardish 1.1"));
cmusic.Push(new("SWWMCreditsEntry").Init("BouncyTEM","Solitary Apprehension"));
cvoice.Push(new("SWWMCreditsEntry").Init("Vyolette","$SWWM_VOICENAME_DEFAULT"));
cvoice.Push(new("SWWMCreditsEntry").Init("Vyolette","$T_DEMOLITIONIST"));
cfanart.Push(new("SWWMCreditsEntry").Init("Substance20 (@S20TBL)"));
cfanart.Push(new("SWWMCreditsEntry").Init("Captain J (@Jho7835)"));
cfanart.Push(new("SWWMCreditsEntry").Init("Redead-ITA"));

View file

@ -120,14 +120,7 @@ Class SWWMStatScreen : StatusScreen abstract
int maxtip = StringTable.Localize("$SWWM_NINTERTIP").ToInt();
Array<Int> ents;
ents.Clear();
for ( int i=1; i<=maxtip; i++ )
{
// skip DLC tips for now
if ( (i >= 59) && (i <= 68) ) continue;
ents.Push(i);
}
// account for skipped dlc tips (important, will crash otherwise)
maxtip -= 10;
for ( int i=1; i<=maxtip; i++ ) ents.Push(i);
if ( pdata.lasttip.Size() >= maxtip )
{
// exclude last one, start over

View file

@ -2096,99 +2096,65 @@ Class SWWMUtility
if ( ItemExists(a,mapstart:true) ) return b;
return Random[Replacements](0,1)?a:b;
}
static private Class<Weapon> PickTrio( Class<Weapon> a, Class<Weapon> b, Class<Weapon> c )
{
if ( ItemExists(a,mapstart:true) )
{
if ( ItemExists(b,mapstart:true) )
return c;
return Random[Replacements](0,1)?b:c;
}
if ( ItemExists(b,mapstart:true) )
{
if ( ItemExists(c,mapstart:true) )
return a;
return Random[Replacements](0,1)?a:c;
}
if ( ItemExists(c,mapstart:true) )
Random[Replacements](0,1)?a:b;
switch ( Random[Replacements](0,2) )
{
case 0:
return a;
case 1:
return b;
}
return c;
}
// melee weapons + extra slot 2 guns (50% chance)
static Class<Weapon> PickSWWMSlot1()
{
// so the player can recover it if they decided to drop it in a previous map, or they didn't start with it
if ( CheckNeedsItem('DeepImpact') ) return 'DeepImpact';
bool hasmelee = (!CheckNeedsItem('PusherWeapon')/*||!CheckNeedsItem('ItamexHammer')*/);
bool hasallmelee = (!CheckNeedsItem('PusherWeapon')/*&&!CheckNeedsItem('ItamexHammer')*/);
bool gunexists = ItemExists('ExplodiumGun',worldonly:true)/*||ItemExists('PlasmaBlast',worldonly:true)*/;
bool hasmelee = (!CheckNeedsItem('PusherWeapon')||!CheckNeedsItem('ItamexHammer'));
bool hasallmelee = (!CheckNeedsItem('PusherWeapon')&&!CheckNeedsItem('ItamexHammer'));
bool gunexists = ItemExists('ExplodiumGun',worldonly:true)||ItemExists('PlasmaBlast',worldonly:true);
// if the player already has a melee weapon, 50% chance to spawn either slot 2 weapon as long as one doesn't exist in the map already
// if the player has ALL melee weapons (somehow), that chance becomes 100%
if ( hasmelee && !gunexists && (hasallmelee || Random[Replacements](0,1)) )
return PickSWWMSlot2();
//return PickPair('PusherWeapon','ItamexHammer');
return 'PusherWeapon';
return PickPair('PusherWeapon','ItamexHammer');
}
// pistol spawn, pretty simple
static Class<Weapon> PickSWWMSlot2()
{
//return PickPair('ExplodiumGun','PlasmaBlast');
return 'ExplodiumGun';
return PickPair('ExplodiumGun','PlasmaBlast');
}
// shotgun spawn
static Class<Weapon> PickSWWMSlot3()
{
//return PickPair('Spreadgun','PuntzerBeta');
return 'Spreadgun';
return PickPair('Spreadgun','PuntzerBeta');
}
// super shotgun spawn
static Class<Weapon> PickSWWMSlot4()
{
//return PickPair('Wallbuster','PuntzerGamma');
return 'Wallbuster';
return PickPair('Wallbuster','PuntzerGamma');
}
// chaingun spawn
static Class<Weapon> PickSWWMSlot5()
{
//return PickPair('Eviscerator','HeavyMahSheenGun');
return 'Eviscerator';
return PickPair('Eviscerator','HeavyMahSheenGun');
}
// rocket launcher spawn
static Class<Weapon> PickSWWMSlot6()
{
//return PickPair('Hellblazer','Quadravol');
return 'Hellblazer';
return PickPair('Hellblazer','Quadravol');
}
// first plasma rifle spawn
static Class<Weapon> PickSWWMSlot7()
{
//return PickPair('Sparkster','ModernSparkster');
return 'Sparkster';
return PickPair('Sparkster','ModernSparkster');
}
// second plasma rifle spawn
static Class<Weapon> PickSWWMSlot8()
{
//return PickPair('SilverBullet','MisterRifle');
return 'SilverBullet';
return PickPair('SilverBullet','MisterRifle');
}
// first bfg spawn
static Class<Weapon> PickSWWMSlot9()
{
//return PickPair('CandyGun','RayKhom');
return 'CandyGun';
return PickPair('CandyGun','RayKhom');
}
// second bfg spawn (each weapon can only exist once)
static Class<Weapon> PickSWWMSlot0( bool fallback = true )
{
/*if ( ItemExists('Ynykron',mapstart:true) )
if ( ItemExists('Ynykron',mapstart:true) )
{
if ( ItemExists('RafanKos',mapstart:true) )
return fallback?PickSWWMSlot9():null;
@ -2196,15 +2162,13 @@ Class SWWMUtility
}
if ( ItemExists('RafanKos',mapstart:true) )
return 'Ynykron';
return Random[Replacements](0,1)?'Ynykron':'RafanKos';*/
if ( ItemExists('Ynykron',mapstart:true) ) return fallback?PickSWWMSlot9():null;
return 'Ynykron';
return Random[Replacements](0,1)?'Ynykron':'RafanKos';
}
// either plasma rifle spawn
static Class<Weapon> PickDoomSlot6()
{
bool hasslot7 = (!CheckNeedsItem('Sparkster')/*||!CheckNeedsItem('ModernSparkster')*/);
bool hasslot8 = (!CheckNeedsItem('SilverBullet')/*||!CheckNeedsItem('MortalRifle')*/);
bool hasslot7 = (!CheckNeedsItem('Sparkster')||!CheckNeedsItem('ModernSparkster'));
bool hasslot8 = (!CheckNeedsItem('SilverBullet')||!CheckNeedsItem('MisterRifle'));
// if the player already has a slot 7 weapon...
if ( hasslot7 )
{
@ -2215,13 +2179,12 @@ Class SWWMUtility
}
// otherwise, always spawn a slot 7 weapon first
return PickSWWMSlot7();
}
// either bfg spawn
static Class<Weapon> PickDoomSlot7()
{
bool hasslot9 = (!CheckNeedsItem('CandyGun')/*||!CheckNeedsItem('RayKhom')*/);
bool hasslot0 = (!CheckNeedsItem('Ynykron')/*||!CheckNeedsItem('RafanKos')*/);
bool hasslot9 = (!CheckNeedsItem('CandyGun')||!CheckNeedsItem('RayKhom'));
bool hasslot0 = (!CheckNeedsItem('Ynykron')||!CheckNeedsItem('RafanKos'));
let rep = PickSWWMSlot0(false);
// if the player already has a slot 9 weapon (and a slot 0 weapon can still spawn)...
if ( hasslot9 && rep )
@ -2239,8 +2202,8 @@ Class SWWMUtility
{
// always slot 3 after map start, prevents shotgun guys from dropping wallbusters, which is weird af
if ( level.maptime ) return PickSWWMSlot3();
bool hasslot3 = (!CheckNeedsItem('Spreadgun')/*||!CheckNeedsItem('PuntzerBeta')*/);
bool hasslot4 = (!CheckNeedsItem('Wallbuster')/*||!CheckNeedsItem('PuntzerGamma')*/);
bool hasslot3 = (!CheckNeedsItem('Spreadgun')||!CheckNeedsItem('PuntzerBeta'));
bool hasslot4 = (!CheckNeedsItem('Wallbuster')||!CheckNeedsItem('PuntzerGamma'));
// if the player already has a slot 3 weapon...
if ( hasslot3 )
{