SamsaraHold Resurrection + Enhancer

Maps, modifications, add-ons, projects, and other releases for Zandronum. Also includes announcers.
bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#221

Post by bruiserdaemon » Sun Mar 15, 2015 5:24 pm

HexaDoken wrote: The problem is that wraithverge is highly nerf-resistant.

Thing is - a lot of wraithverge functionality is hard-coded, i.e. impossible to change without changing the source of the game. And changing the source of the game would mean that there'd need to be a separate version of Zandro to play this with. In general, because of this, there is honestly not a whole lot a modder can do about it.
Not at all... i tried to edit the ghost damage from 1,8 * (random) to something like 1,2 * (random) and i obtained exactly what i was looking for: a less powerful 'verge, still ass kicking against packed hordes but not nearly as powerful as it was.

As for bosses, the player is supposed to use his brain when playing so if you know the wraithverge is not effective against bosses, you should avoid using it against them and switch to the hammer of retribution or whatever else.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#222

Post by Untitled » Sun Mar 15, 2015 9:52 pm

bruiserdaemon wrote:
HexaDoken wrote: The problem is that wraithverge is highly nerf-resistant.

Thing is - a lot of wraithverge functionality is hard-coded, i.e. impossible to change without changing the source of the game. And changing the source of the game would mean that there'd need to be a separate version of Zandro to play this with. In general, because of this, there is honestly not a whole lot a modder can do about it.
Not at all... i tried to edit the ghost damage from 1,8 * (random) to something like 1,2 * (random) and i obtained exactly what i was looking for: a less powerful 'verge, still ass kicking against packed hordes but not nearly as powerful as it was.

As for bosses, the player is supposed to use his brain when playing so if you know the wraithverge is not effective against bosses, you should avoid using it against them and switch to the hammer of retribution or whatever else.
The boss problem isn't so much that the wraithverge is useless to bosses so much is it that nothing parias has works against bosses. Axe? Only usable in melee. Frost shards are usable against bruisers/pyros/diabolists, but otherwise not good. Hammer? Too low damage-per-second to work, if, say, 3 cyberdemons appear - remember, the monsters are all heading for a goal - you have limited time to kill them. If you can't kill the monsters fast enough (which Parias can't), the ONLY solution becomes item-spam.

And, really, if I'm going to make it mandatory to use items, I'm making equally mandatory - either I force everyone to use items, or I force nobody (discounting skill differences, of course).

Hence why the Wraithverge is getting an anti-boss buff - a functional one, this time.

EDIT: Just private tested - on a per-shot basis, into a horde of hell knights, the Wraithverge did less damage than the LAZ device, Spear of Destiny, and Wave Motion Cannon. Unless it's out-doing all 3 of those (though spear might be in for another nerf, and WMC is supposed to be that way because it takes forever to fire), it's not that overpowered.

Unless you quad-wraithverge. But there is absolutely nothing whatsoever I can do about quad-wraithverge.

Nothing.
Last edited by Untitled on Sun Mar 15, 2015 10:01 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#223

Post by bruiserdaemon » Sun Mar 15, 2015 10:58 pm

I did beat the game easily with Parias using the verge to destroy the lesser demons, then finishing off the bosses with the hammer of retribution. Wiping off the cyber wave on mission 5 tier 5 ( the one with 4 cyberdemons and a horde of mini cybers ) for example was easy stuff. Killed all the miny cybers in a couple of wraithverge shoots, then switched to the hammer and mauld them from a distance. The hammer has a large dmg radius too, so it is easy to damage multiple enemies with it.

You know what, in almost all of the missions i didn't even need to use the quad damage, just wipe off the majority of the enemies with the verge, then finishing off the remainings with the hammer ( but i admit that sometimes i did use the time freezer to stop them from reaching the goal, then destroying them with the axe ).
Last edited by bruiserdaemon on Sun Mar 15, 2015 11:01 pm, edited 1 time in total.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#224

Post by Untitled » Sun Mar 15, 2015 11:44 pm

It's relative, though - the spear of destiny, for instance, works wonders when placed well - hence why the wraithverge isn't in need of a giant nerf; it's good, but is it really better than every other slot VII?

Speaking of nerfs, Wraithverge getting nerfed again - deals less damage to non-bosses, deals much more damage to bosses - relative to normal damage, it's 1/3rd instead of 1/12th.

Wraithverge also for next version takes more ammo to fire, which should help stem it, since you could fire it 30 times off 600 cells (face it, bullet/shell ammo is not normally a problem, except on STR16), compared to most ultimate's 15 times off 600 cells.

Also, I think another thing that makes the wraithverge feel overpowered is the low-skill gate - since, you know, it does your aiming for you, you don't actually need to put *any* skill to wield it, for power comparable to the other "ultimate" ultimates (BFG, LAZ, Spear, WMC)
Last edited by Untitled on Sun Mar 15, 2015 11:44 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#225

Post by bruiserdaemon » Mon Mar 16, 2015 1:31 pm

The spear of destiny IS overpowered, it eats 40 cells ( like the BFG ) but it is at least twice more powerful than the BFG and it will own packed hordes even hordes of bosses.

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#226

Post by bruiserdaemon » Tue Mar 17, 2015 5:58 pm

Even though the number of creatures is high, they are indeed beginning to feel old. Take a look for example at the psychophobia 2 roster, there are an impressive number of nice additions, like the schyted ghost from Blood, plasma rifle space marine, lord of heresy, the flying spidermind, the ice baron, yellow cacos and so on...
Last edited by bruiserdaemon on Sun Jul 16, 2017 1:36 am, edited 2 times in total.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#227

Post by Untitled » Tue Mar 17, 2015 7:07 pm

bruiserdaemon wrote: And one last thing... even though the number of creatures is high, they are indeed beginning to feel old. Take a look for example at the psychophobia 2 roster, there are an impressive number of nice additions, like the schyted ghost from Blood, plasma rifle space marine, lord of heresy, the flying spidermind, the ice baron, yellow cacos and so on...

Plus, i noticed there is something lame when monsters hurt each other. When the cybruisers, cyber demons and masterminds are spawned at the back of an horde, they will kill all their comrades which doens't make any sense at all. I think they should always appear at the front of an horde since they are the leading demons, or not spawn at all... the waves with the kamikaze bombers are quite ridicolous too, since they will blow up all the demons, and they make camping extremely easy.
There are a lot more considerations before you make roster changes; the only one I've added was the satyr (and really, even that was more to compliment the Azazel than anything else), and even then, roster changes are hard, partially because >samsara >deathstates

I've actually considered switching up the roster immensely, but I think me making the game way too hard is more likely than me making it legitimately much more fun, especially with the decision to add new monsters on a whim.

Particularly given STR34, formerly the hardest map in the wad in multiplayer mode, and still brutal in single player, which had a long reign of not really being possible in multiplayer (then I nerfed it this last beta so it's now playable to a team of mortal players).

All of the "Friendly Fire" demons I've found don't kill too many of their team mates (Cyberdemons, Bruiserdemons and Pyrodemons excepted), because typically they're used in conjunction with enemies that DO survive longer than usual - most notably hell nobles. The rest will hurt their teammates, but the majority are still your job to take out.

Also, the problem you get when the toughest monsters /lead/ a charge is that the multipliers kick in multiplayer, meaning they form a wall. What was 5 pyrodemons because 40 pyrodemons which isn't actually possible. As I said, one player with an SSG can fight 3 pyrodemons if he's very skilled; 8 players cannot fight 20.

Also, the ACS doesn't really have a support for this kind of thing without some serious hackiness that gives me issues.

On another note, beta 3 is out. It's simply a hotfix for a single issue in beta 2, but a hotfix is a hotfix, so have fun.
Last edited by Untitled on Tue Mar 17, 2015 7:07 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#228

Post by bruiserdaemon » Tue Mar 17, 2015 9:29 pm

Untitled wrote: one player with an SSG can fight 3 pyrodemons if he's very skilled; 8 players cannot fight 20.
This is why i tought to beef up the lower slots, so that players have a chance even without their superweapons, or low on ammo for them. And increase each player survivability ( like 150 base health instead of 100 ) would help a bit. Plus the pyrodemons are really the nastiest creatures because not only they are powerful but they teleport constantly, covering large distances in a short time if left unchecked.

I don't see why adding new monsters would brake the game... there are a ton of interesting monsters which would make a nice addition without making the game more difficult, and btw it seems like you want your friends to win the game no matter what. If you don't play well you are not supposed to win...
Last edited by bruiserdaemon on Sat Apr 08, 2017 3:55 pm, edited 1 time in total.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#229

Post by Untitled » Thu Mar 19, 2015 5:09 pm

bruiserdaemon wrote:
Untitled wrote: one player with an SSG can fight 3 pyrodemons if he's very skilled; 8 players cannot fight 20.
This is why i tought to beef up the lower slots, so that players have a chance even without their superweapons, or low on ammo for them. And increase each player survivability ( like 150 base health instead of 100 ) would help a bit. Plus the pyrodemons are really the nastiest creatures because not only they are powerful but they teleport constantly, covering large distances in a short time if left unchecked.
Yeah, Pyrodemons are a very extreme example.

Actually, an even better example is that 1 player with a BFG9000 can defeat 5 Pyrodemons, which is tough but hard.

8 players with BFGs cannot fight 35. This isn't because they're that tough (Pyrodemons will actually die, only having 2500 health, less than a cyberdemon), but if there's 35 of them, what happens is that they fire so much fire you physically can't dodge all of the incoming shots. This is particularly prevalent on all of the "Advanced Hell Nobles" (Bruisers, Archons, Pyros, Azazels), because they are threatening while still being small enough that several of them will fit at once.

In terms of things that because a wall by virtue of not being possible to stop, we got Terminators for that, heh.
bruiserdaemon wrote: I don't see why adding new monsters would brake the game... there are a ton of interesting monsters which would make a nice addition without making the game more difficult, and btw it seems like you want your friends to win the game no matter what. If you don't play well you are not supposed to win samsarahold, like all other games... players do not need a baby sitter modder who makes them win, losing sometimes should be part of the game.
Well, for starters, there's about a 50% chance that if I add monsters, they will be in the upper tiers, and god knows what comes out of that.

For weaker monsters, it's not so much balance as it is this: Purpose.
Spoiler: What Purpose Means (Open)
Purpose basically means that there should be a reason why any given monster in a monster roster exists; the Catharsi, as much as I hate the god-damn things, serve the purpose of putting a rapid-fire function on imp-like monsters, which nothing else has. Phase Imps teleport, which only high-tier monsters otherwise have that ability. The Advanced Hell Nobles are bosses that don't have the same wall-effect the actual "bosses" (Cyberdemon, Spider Mastermind/Demolisher, Terminator) have, due to lower hit point counts. Cybruisers make a "Just below high tier" monster. Terminators are "Make the players stop in fear of these things" monster that are deliberately kind of unfair to fight.

Purpose doesn't even need to balance related; you can add monsters for flavor too; Hellions and Diabolists compliment the Archvile; Demolishers and Fusion Spiders (though fusion spiders serve area-denial, which few monsters can do) compliment Spider-masterminds and Arachnotrons, Hectebi (which serve as an ammo-tax monster if you don't have your BFGs yet) compliment Mancubi. Suicide Bombers are there to have a padding-monster that doesn't actually slow the wave down.

The only monster I've officially introduced is the satyr, and even that was only because they compliment the Azazel - which a moot point since they only appear in Tier 6, but still.

Most people couldn't figure out that the Satyr wasn't originally part of Stronghold - it blended in very well.

That's the point; I want the monster roster to feel smooth; to feel as if every single monster is part of a single game, rather than an amalgamation of different ones. Many custom monsters are more "rips from other games" that kind of rip the feel out of the game.
Also, remember that all of my maps are designed with the Stronghold-Untitled-Patch in mind, so I'd rather keep all of my monsters doom-like.
Spoiler: Eliminated: (Open)
-Monsters from other games
-Monsters that are copies of other monsters
-Monsters that everyone would hate (nostalgia is the only reason we tolerate lost souls)
-Monsters that ruin balance (obviously)
-Any Custom zombies, except maybe some sort of plasma rifle zombie.
Spoiler: Monsters that could POSSIBLY be added (but most likely not) (Open)
Low tier:
-Some sort of Plasma Rifle zombie, to compliment the Rocket Zombie.
-More standard Dark Imps if I figure out how to move the Dark Imp out of the Doom reinforcement slot.
-Pyro Imps (125 HP, 3-way spread fireball (not the pyrodemon fireshot, for obvious reasons)).
-Bloodfiend/Lurker/Cyberfiend; though if we need more pinky variants is probably a no, since there's already a bunch.
Mid tier:
-Daedabus: Mancubi upgrades that are actually more threatening than the Hectebus, in terms of dodging (since hectebi are easier to dodge in stronghold), but have less health.
-Nightmare Cacodemons (700 HP, more aggressive): A caco variant that's more threatening than the cacodemon-family without using Hades Elementals.
Boss Tier:
-Hades Overlord: You thought the Hades Elemental was bad, didn't you.
-Cyber Annihilator: AAAAAAAAAAAAAAHAHAHAHAHAHAHA.
In case it's not clear, the reason why I'm not doing custom bosses is that I'm not good at boss design; the Cyberdemon MK II was more my brother's invention, and the STBoss was a collaberation between me and him, of which he did more work on it.

Of course, most of that, as much as I can come up with it, has absolutely nothing to the two real reasons why nothing of this is getting through, the two absolute reasons:
Spoiler: Reason One (Open)
The maps.

The maps of stronghold, as they are now, are -mostly- balanced. Some impossible waves up in tier six, some "ok, seriously" things here and there, some "lol this is a joke" things, but mostly I've got the balance in a spot where I like it.

The thing is, I've learned from wave composition that in many waves, the weaker monsters can influence the feel of wave immensely. If I decide to just randomly add four-dozen catharsi to an easy wave, you're not gonna have an easy time - what this means is that I can't just willy-nilly throw around the weaker monsters with little thought about it - the new STR32, for example, would've been a shining example of this had my brother not intervened to make it not dumb.

Adding new monsters doesn't do anything unless they actually appear in the missions; and there's no space for them to migrate to - all of the mission slots have been filled.

Well, that, and STR34 and STR35 are designed to be missions where I feature every single monster in the game, and those missions don't need to be any longer than they are right now.
Spoiler: Reason Two (Open)
The elephant in the room: The code.

Samsarahold is not a fun codebase. Numbers are pretty much the only thing you can modify without the thing trying to kill you.

Adding new monsters requires:
-Appropriate damage-types (so 1.5x Dragon Claw, 1.15x Corvus Crossbow, 0.2x Corvus Hellstaff Tomed IF and only if it's a top-tier boss, 2.0x Marathon Fusion if it's mechanical, any other applicable ones).
-Adding a new state for when they get killed by any of Chexters' weapons (since they should zorch instead of death-state)
-Adding a new state for when they get frozen (Parias, Duke). I still haven't actually created frozen sprites for the rest of the monsters, as is.
-Adding a new state for when they get killed by anything Duke has; since Duke should be given a chance to taunt.
^-with different taunts if it's a boss, and different taunts if it's killed via mighty-boot.
-A pain-state for the mighty boot.
-If it's a boss, giving Duke a chance to taunt on sight (coded in the monster, not in the player-class).
-A death-state for samsara_cl_bloodyhell -1.
-A death-state for samsara_cl_bloodyhell 1.
-A death-state for samsara_cl_bloodyhell 2.
-A pain-state for the Stunner Rifle.
-The proper amount of credits given for every single one of the aforementioned death states.

This is the reason why samsara isn't super-widespread; if you want a project with custom monsters in it, you have to code all of those states (except the money and stunner rifle ones, unless your also playing with stronghold, see: samsarahold), you have to go through every single one of those.

This isn't fun. This is incredibly tedious, and if there's bugs, incredibly frustrating.

If we didn't have to go through that many different states, believe that I would've crossed samsara with everything (because samsara is pretty much the best mod ever created imo, you REALLY should check out the original samsara).

It's why Hard Doom+Samsara and Complex Doom+Samsara aren't both things I've done myself.
As for the "You can't lose" problem.

Uh.

I'd would like to announce that it is, in fact, possible to lose. In fact, if you try doing UV without items, you will very quickly learn that Tier 3 isn't possible, and that tiers beyond that are more impossible.

Basically, items are the difficulty setting.

I might make UV a bit harder, but if I'm doing so, it's most likely going to just be me reducing the amount of ammo you get - sometimes you get so much it causes framerate issues.

On entirely unrelated news, nerfed Spear of Destiny again (accidentally actually buffed it this last beta instead of nerf, whoops), nerfed Wraithverge again (Stops stunlocking monsters 40 tics after the spirits come out).

EDIT: Also, feel free to edit the maps and give me monster-composition suggestions, at this point, since it's more stabilized for now that the STR20-STR32 switch is done.
Last edited by Untitled on Thu Mar 19, 2015 5:10 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#230

Post by bruiserdaemon » Thu Mar 19, 2015 6:43 pm

It is actually very simple: 90% of waves totally lack variety.

You have usually the 1st wave: dumb zombies killing each other. 2nd wave: imps, catharsi and a few demons. 3rd wave: imps, demons, specters, chaingunners ( which will kill many of their comrades ). 4th wave: some hell knight, demons, blood demons..... all of these will be killed by your sentries + reinforcements ( camping ).

So the challenge basically arrives at wave 5: wow, there are finally some interesting species like barons, mancubii, arachnotrons, hectebi... ooops they still get owned quite easily with some item usage. Let's go the the final wave then: cyberdemons killing other comrades, cybruisers killing other demons ( and get killed by the cybers ), they will all get owned by some player with Quad + Invuln.

The maps i really like are, in fact, secret map 1 ( starts with some marine helpers, but gradually get owned by the powerful waves of mixed demons ), map 5 tier 3 ( long waves of mixed monsters ), map 5 tier 5 ( multiple entrances with many different demons ). 10 waves at least per map are required for getting some excitement, imho. The maps with 5-6-7 waves are somehow pathetic because by the time you wish for some real challenge, you already beat the mission. Sheesh.

Not mentioning that you seem to lack ability in balancing the waves: some are very tough, some very easy, some early waves are in fact harder than later ones ( i suppose you didn't actually edited every single wave of every map, you just took some random waves per map and pump them up randomly ).

If you want me to script the wave composition for you, i will do it, i think i can do a nice job.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#231

Post by Untitled » Fri Mar 20, 2015 2:00 am

bruiserdaemon wrote: It is actually very simple: 90% of waves totally lack variety.

You have usually the 1st wave: dumb zombies killing each other. 2nd wave: imps, catharsi and a few demons. 3rd wave: imps, demons, specters, chaingunners ( which will kill many of their comrades ). 4th wave: some hell knight, demons, blood demons..... all of these will be killed by your sentries + reinforcements ( camping ).

So the challenge basically arrives at wave 5: wow, there are finally some interesting species like barons, mancubii, arachnotrons, hectebi... ooops they still get owned quite easily with some item usage. Let's go the the final wave then: cyberdemons killing other comrades, cybruisers killing other demons ( and get killed by the cybers ), they will all get owned by some player with Quad + Invuln.

The maps i really like are, in fact, secret map 1 ( starts with some marine helpers, but gradually get owned by the powerful waves of mixed demons ), map 5 tier 3 ( long waves of mixed monsters ), map 5 tier 5 ( multiple entrances with many different demons ). 10 waves at least per map are required for getting some excitement, imho. The maps with 5-6-7 waves are somehow pathetic because by the time you wish for some real challenge, you already beat the mission. Sheesh.
>STR16
>Old STR20
>STR28 on anything other than single player
>STR30
>Easy
right, then (STR16 is first "real slaughter", STR20 lacks ammo, STR28 has Archons, then Bruisers, then Pyros, STR30 AHAHAHAHAHA).

Honestly, I'll freely admit there are only 6 missions in the game that are hard if you prepare an optimized item layout: STR26 (T5M5), STR31 (T6M5), STR32 (T6M6), STR34 (T6M8), STR35 (Final), and STR54 (Secret - Fortress of Damnation). Optimizing your item use makes the rest rather easy, once you know the maps so you know what waves to use your quads (in the case of STR34, the technique is making wave 12 long enough your quads run out, and STR35's case is being 20 waves long, heh).

The thing is, if I balance assuming you are using an optimized item layout, you WILL create a map that is casually impossible - I did this to STR27 once, disappointed with how easy the introduction to Tier Six was.

Then we tried it with 5 players.

And then it lasted an hour. And then we STILL failed on Wave 10, due to a lol nightmare demon getting past us (I've since then removed the nightmare demons and replaced them with revenants, which are more visible, though more deadly).

Missions, at 4 players, (STR34, STR35, and STR54 aside because they're deliberately long), should not last more than 30 minutes. A single wave should NEVER last more than 5 minutes, unless there's like 8 players.

This is because a lot of players only intend to invest about 1-2 hours of play-time on the server - that MUST be enough to get through more than one mission (except, again, the final - Final mission is pretty much my "screw you now" mission).
Not mentioning that you seem to lack ability in balancing the waves: some are very tough, some very easy, some early waves are in fact harder than later ones ( i suppose you didn't actually edited every single wave of every map, you just took some random waves per map and pump them up randomly ).

If you want me to script the wave composition for you, i will do it, i think i can do a nice job.
I'm aware of some of this - a lot of this is stuff that the original stronghold did that I'm too lazy to change. Some of this balances out - T5M3, for example, still remains probably the second-best mission of T5 (and T5M5 was my brother's work, mostly. T5M4 is too subjective; some people hate that one). I only really edit individual waves when it sticks out that this one wave is dumb. Wave 7 of Orbit, for example, could take upwards of 6 minutes to complete on higher player counts - and no one wants to spend 6 minutes slowly mopping up enemies that take forever to spawn - and EVERYONE complained about it (including a bunch of reasonable people), so I kind of had to change that.

Others are STR15, which I'm not fixing because the map layout isn't salvageable. The fun is in breaking that map.

And go ahead - wave compositions are much more stable now, so feel free to edit them, and give individual wave help - again, most of this is just stuff leftover from stronghold.

A few pointers though:
-Don't go crazy on deadline/milestone missions - everyone HATES losing because "lol one demon got past you".
-Don't go raise the monster count too high on limit modes - I found this out when older versions of STR27 and STR30 could take upwards of 45 minutes to complete. Less a problem now, thanks to improved spawn rates, but still, if it takes more than 15-20 minutes in single player, it's probably too long in multi, unless you're inducing length as difficulty factor (which please don't, it's not fun).
-Consider what the scalars will be like on 8 players before you add monsters - one player against 3 terminators with a BFG is fair; 8 players against 24 terminators...really isn't.
-Don't use Pyrodemons, Azazels, or Terminators unless the mission is a tier six mission. Ever. Those three are off-limits due to insanity.

And yeah, sorry about rejecting your offer for custom monsters, but there are reasons, as listed in last post. Mostly the code that throws it off, but still.

And again sorry for rejecting custom bosses, but I'm actually bad at boss design - Cyberdemon MK II and Mephistopheles were both collaborations with my brother.
Last edited by Untitled on Fri Mar 20, 2015 2:12 am, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#232

Post by bruiserdaemon » Fri Mar 20, 2015 12:06 pm

I will send you the *maps directory, or the whole samsarahold code file if necessary, where can i send this file? E-mail?

Whoops, just noticed that the link to both core and code is broken! Reupload?
Last edited by bruiserdaemon on Fri Mar 20, 2015 12:08 pm, edited 1 time in total.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#233

Post by Untitled » Fri Mar 20, 2015 12:46 pm

Links reuploaded, thank you.

It's probably best just to detail the changes you made, as long as that is, because then I have it documented exactly what's being changed - I'll miss a lot of stuff if I don't have a log.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#234

Post by bruiserdaemon » Fri Mar 20, 2015 12:57 pm

A detailed changelog for every single map? Well no heh... you didn't do that so why do i have to do it? I will just post the complete wave composition, map per map, then play it.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#235

Post by Untitled » Fri Mar 20, 2015 3:31 pm

bruiserdaemon wrote: A detailed changelog for every single map? Well no heh... you didn't do that so why do i have to do it? I will just post the complete wave composition, map per map, then play it.
Yeah, I don't; but that's mostly because that remains secret on my end; I like surprising players.

Changelog, mapping wise from beta 1-3
beta 1:
-STR20 and STR32 swapped positions - Snake Corridors (now much easier, no longer being in Tier 6) is in T4M4, Dusk (now much harder, due to being in tier six) is in T6M6.
-STR33 (T6M7) has a few extra nasty monsters mixed in.
-STR14 (T3M3) wave 7 shortened due to taking 6+ minutes in multiplayer, and everyone hated it.

beta 2/3 (no changes to maps were made in beta 3):
-STR34 (T6M8) much easier in multiplayer - it was getting to a point where your team had to be mostly experienced players - it wasn't possible otherwise, thanks to the former wave 9.
-STR32 (T6M6) now has enough ammo to actually be beaten more conventionally.
-STR30 (T6M4) wave 7 shortened due to taking 9 minutes at 5 players to beat.
-STR27 (T6M1) shortened dramatically; from 60-ish minutes at 4-5 players to 35-ish minutes.
-STR25 now has increasing invincibility time for the overmind.
-STR21: also now has more invincibility time, starting at 20 seconds per wave.
-STR16 (T3M5) shortened due to taking like 45 minutes in multiplayer.
-Due to a bug, STR35 (Final Mission) fails to actually spawn the STBoss. This will be rectified, WHOOPS

Also, again, Hard Modes; they exist for a reason; it's purely for people who felt the game was too easy and needed an optional challenge.
Last edited by Untitled on Fri Mar 20, 2015 7:20 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#236

Post by bruiserdaemon » Fri Mar 20, 2015 6:21 pm

Ooook! So here's the first 10 maps ( STR02 -> STR12 ). Just copy and paste the wave composition over the existing one of the respective map, overwriting it.

[spoiler]
-STR02:
// Monsters
WaveEnemy( 1, "ZombieMan", 10 );
WaveEnemy( 1, "ShotgunGuy", 5 );
WaveEnemy( 1, "DoomImp", 6 );


WaveEnemy( 2, "ZombieMan", 12 );
WaveEnemy( 2, "ShotgunGuy", 7 );
WaveEnemy( 2, "DoomImp", 10 );

WaveEnemy( 3, "ZombieMan", 12 );
WaveEnemy( 3, "ShotgunGuy", 7 );
WaveEnemy( 3, "DoomImp", 12 );
WaveEnemy( 3, "ZombieTank", 2 );

WaveEnemy( 4, "Demon", 5 );
WaveEnemy( 4, "ShotgunGuy", 7 );
WaveEnemy( 4, "DoomImp", 13 );

WaveEnemy( 5, "DoomImp", 13 );
WaveEnemy( 5, "Demon", 3 );
WaveEnemy( 5, "ChaingunGuy", 3 );
WaveEnemy( 5, "ZombieTank", 3 );

WaveEnemy( 6, "DoomImp", 13 );
WaveEnemy( 6, "HellKnight", 3 );
WaveEnemy( 6, "Demon", 3 );

WaveEnemy( 7, "DoomImp", 15 );
WaveEnemy( 7, "Zombieman", 20 );
WaveEnemy( 7, "Spectre", 4 );
WaveEnemy( 7, "Demon", 4 );

WaveEnemy( 8, "DoomImp", 18 );
WaveEnemy( 8, "Shotgunguy", 10 );
WaveEnemy( 8, "Demon", 5 );
WaveEnemy( 8, "Spectre", 5 );

WaveEnemy( 9, "Demon", 3 );
WaveEnemy( 9, "Spectre", 3 );
WaveEnemy( 9, "HellKnight", 5 );

WaveEnemy( 10, "Demon", 3 );
WaveEnemy( 10, "Spectre", 3 );
WaveEnemy( 10, "BaronOfHell", 6 );

WaveEnemy( 1, "HardModeSatyr", 2 );
WaveEnemy( 2, "HardModeSatyr", 4 );
WaveEnemy( 3, "HardModeSatyr", 6 );
WaveEnemy( 4, "HardModeSatyr", 8 );
WaveEnemy( 5, "HardModeHellKnight", 3 );
WaveEnemy( 6, "HardModeHellKnight", 5 );
WaveEnemy( 7, "HardModeHellKnight", 6 );
WaveEnemy( 8, "HardModeBaronOfHell", 4 );
WaveEnemy( 9, "HardModeBaronOfHell", 5 );
WaveEnemy( 10, "HardModeSatyr", 8 );
WaveEnemy( 10, "HardModeCybruiser", 2 );

-STR03:

// Monsters
WaveEnemy( 1, "Demon", 6 );
WaveEnemy( 1, "DoomImp", 12 );

WaveEnemy( 2, "Demon", 6 );
WaveEnemy( 2, "DoomImp", 18 );
WaveEnemy( 2, "HellKnight", 2 );

WaveEnemy( 3, "Spectre", 4 );
WaveEnemy( 3, "Demon", 6 );
WaveEnemy( 3, "DoomImp", 8 );
WaveEnemy( 3, "HellKnight", 4 );

WaveEnemy( 4, "BloodDemon", 4 );
WaveEnemy( 4, "Demon", 8 );
WaveEnemy( 4, "Spectre", 4 );
WaveEnemy( 4, "HellKnight", 6 );

WaveEnemy( 5, "RocketGuy", 10 );
WaveEnemy( 5, "HellKnight", 4 );
WaveEnemy( 5, "BaronOfHell", 4 );
WaveEnemy( 5, "ZombieTank", 2 );

WaveEnemy( 6, "Catharsi", 2 );
WaveEnemy( 6, "DoomImp", 2 );
WaveEnemy( 6, "Demon", 5 );
WaveEnemy( 6, "HellKnight", 5 );
WaveEnemy( 6, "BloodDemon", 8 );

WaveEnemy( 7, "BaronOfHell", 4 );
WaveEnemy( 7, "HellKnight", 6 );
WaveEnemy( 7, "Spectre", 4 );
WaveEnemy( 7, "Demon", 6 );
WaveEnemy( 7, "NightmareDemon", 3 );

WaveEnemy( 8, "BaronOfHell", 4 );
WaveEnemy( 8, "Demon", 12 );
WaveEnemy( 8, "BloodDemon", 12 );

WaveEnemy( 9, "Catharsi", 4 );
WaveEnemy( 9, "DoomImp", 20 );
WaveEnemy( 9, "Spectre", 8 );
WaveEnemy( 9, "NightmareDemon", 6 );

WaveEnemy( 10, "BaronOfHell", 6 );
WaveEnemy( 10, "BloodDemon", 20 );

WaveEnemy( 1, "HardModeDemon", 4 );
WaveEnemy( 2, "HardModeSpectre", 5 );
WaveEnemy( 3, "HardModeBloodDemon", 6 );
WaveEnemy( 4, "HardModeNightmareDemon", 7 );
WaveEnemy( 5, "HardModeHellKnight", 5 );
WaveEnemy( 6, "HardModeBaronOfHell", 6 );
WaveEnemy( 7, "HardModeSatyr", 7 );
WaveEnemy( 8, "HardModeDemon", 8 );
WaveEnemy( 9, "HardModeSpectre", 9 );
WaveEnemy( 10, "HardModeBloodDemon", 5 );
WaveEnemy( 10, "HardModeNightmareDemon", 5 );
WaveEnemy( 10, "HardModeRevenant", 6 );
WaveEnemy( 10, "HardModeZombieTank", 2 );

-STR04:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "ZombieMan", 5 );
WaveEnemy( 1, "ShotgunGuy", 3 );
WaveEnemy( 1, "DoomImp", 4 );

WaveEnemy( 2, "ZombieMan", 6 );
WaveEnemy( 2, "ShotgunGuy", 2 );
WaveEnemy( 2, "Catharsi", 2 );
WaveEnemy( 2, "DoomImp", 6 );
WaveEnemy( 2, "ZombieTank", 1 );

WaveEnemy( 3, "ShotgunGuy", 3 );
WaveEnemy( 3, "Catharsi", 3 );
WaveEnemy( 3, "DoomImp", 8 );
WaveEnemy( 3, "ZombieTank", 2 );

WaveEnemy( 4, "BloodDemon", 4 );
WaveEnemy( 4, "DoomImp", 6 );

WaveEnemy( 5, "Catharsi", 4 );
WaveEnemy( 5, "DoomImp", 8 );
WaveEnemy( 5, "BloodDemon", 2 );

WaveEnemy( 6, "Catharsi", 2 );
WaveEnemy( 6, "DoomImp", 6 );
WaveEnemy( 6, "Cacodemon", 3 );
WaveEnemy( 6, "Demon", 2 );
WaveEnemy( 6, "BloodDemon", 1 );

WaveEnemy( 7, "Catharsi", 4 );
WaveEnemy( 7, "DoomImp", 8 );
WaveEnemy( 7, "Demon", 2 );
WaveEnemy( 7, "Spectre", 4 );

WaveEnemy( 8, "Catharsi", 6 );
WaveEnemy( 8, "DoomImp", 10 );
WaveEnemy( 8, "BloodDemon", 1 );
WaveEnemy( 8, "Spectre", 4 );

WaveEnemy( 9, "BloodDemon", 2 );
WaveEnemy( 9, "Spectre", 2 );
WaveEnemy( 9, "BaronOfHell", 6 );

WaveEnemy( 10, "DoomImp", 6 );
WaveEnemy( 10, "Demon", 2 );
WaveEnemy( 10, "BloodDemon", 2 );
WaveEnemy( 10, "Cybruiser", 2 );

WaveEnemy( 1, "HardModeWicked", 2 );
WaveEnemy( 2, "HardModeWicked", 2 );
WaveEnemy( 3, "HardModeEnhancedCaco", 3 );
WaveEnemy( 4, "HardModeEnhancedCaco", 3 );
WaveEnemy( 5, "HardModeArachnotron", 3 );
WaveEnemy( 6, "HardModeFatso", 3 );
WaveEnemy( 7, "HardModeFusionSpider", 4 );
WaveEnemy( 8, "HardModeCacodemon", 4 );
WaveEnemy( 9, "HardModeCacodemon", 4 );
WaveEnemy( 10, "HardModeFatso", 4 );
WaveEnemy( 10, "HardModeArachnotron", 4 );
WaveEnemy( 10, "HardModeHectebus", 1 );

-STR05:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "Cacodemon", 3 );

WaveEnemy( 2, "LostSoul", 3 );
WaveEnemy( 2, "Cacodemon", 4 );

WaveEnemy( 3, "LostSoul", 2 );
WaveEnemy( 3, "Cacodemon", 4 );
WaveEnemy( 3, "PainElemental", 1 );

WaveEnemy( 4, "LostSoul", 4 );
WaveEnemy( 4, "Cacodemon", 6 );
WaveEnemy( 4, "PainElemental", 1 );

WaveEnemy( 5, "EnhancedCaco", 8 );

WaveEnemy( 6, "LostSoul", 2 );
WaveEnemy( 6, "Cacodemon", 4 );
WaveEnemy( 6, "EnhancedCaco", 4 );

WaveEnemy( 7, "DoomImp", 8 );
WaveEnemy( 7, "Cacodemon", 4 );
WaveEnemy( 7, "EnhancedCaco", 2 );

WaveEnemy( 8, "DoomImp", 10 );
WaveEnemy( 8, "Cacodemon", 4 );
WaveEnemy( 8, "PainElemental", 1 );

WaveEnemy( 9, "Demon", 4 );
WaveEnemy( 9, "Cacodemon", 4 );
WaveEnemy( 9, "EnhancedCaco", 4 );

WaveEnemy( 10, "BaronOfHell", 4 );
WaveEnemy( 10, "DoomImp", 4 );
WaveEnemy( 10, "EnhancedCaco", 4 );
WaveEnemy( 10, "PainElemental", 1 );

WaveEnemy( -1, "Guardian", 2 );
WaveEnemy( -2, "Guardian", 3 );
WaveEnemy( -3, "Guardian", 4 );
WaveEnemy( -4, "Guardian", 5 );
WaveEnemy( -5, "Cacodemon", 4 );
WaveEnemy( -6, "Cacodemon", 4 );
WaveEnemy( -7, "Cacodemon", 4 );
WaveEnemy( -8, "Guardian", 8 );
WaveEnemy( -9, "Guardian", 8 );
WaveEnemy( -10, "Guardian", 8 );
WaveEnemy( -10, "Cacodemon", 6 );

-STR06:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "ZombieMan", 10 );
WaveEnemy( 1, "ShotgunGuy", 10 );
WaveEnemy( 1, "DoomImp", 12 );
WaveEnemy( 1, "ZombieTank", 2 );

WaveEnemy( 2, "Demon", 6 );
WaveEnemy( 2, "ShotgunGuy", 10 );
WaveEnemy( 2, "DoomImp", 14 );

WaveEnemy( 3, "Demon", 8 );
WaveEnemy( 3, "DoomImp", 14 );
WaveEnemy( 3, "ChaingunGuy", 3 );

WaveEnemy( 4, "Spectre", 8 );
WaveEnemy( 4, "DoomImp", 16 );
WaveEnemy( 4, "HellKnight", 4 );

WaveEnemy( 5, "DoomImp", 20 );
WaveEnemy( 5, "Demon", 10 );
WaveEnemy( 5, "Spectre", 8 );

WaveEnemy( 6, "DoomImp", 24 );
WaveEnemy( 6, "HellKnight", 4 );
WaveEnemy( 6, "BloodDemon", 6 );

WaveEnemy( 7, "Demon", 12 );
WaveEnemy( 7, "NightmareDemon", 4 );
WaveEnemy( 7, "DoomImp", 8 );
WaveEnemy( 7, "HellKnight", 6 );
WaveEnemy( 7, "BaronOfHell", 3 );

WaveEnemy( 8, "DoomImp", 30 );
WaveEnemy( 8, "HellKnight", 8 );
WaveEnemy( 8, "BaronOfHell", 6 );

WaveEnemy( 9, "Fatso", 12 );
WaveEnemy( 9, "Arachnotron", 16 );
WaveEnemy( 9, "BloodDemon", 5 );

WaveEnemy( 10, "SuicideBomber", 200 );
WaveEnemy( 10, "ZombieTank", 8 );

WaveEnemy( 1, "HardModeHellWarrior", 5 );
WaveEnemy( 2, "HardModeHellWarrior", 6 );
WaveEnemy( 3, "HardModeHellWarrior", 7 );
WaveEnemy( 4, "HardModeArachnotron", 8 );
WaveEnemy( 5, "HardModeFatso", 8 );
WaveEnemy( 6, "HardModeArachnotron", 9 );
WaveEnemy( 7, "HardModeFatso", 9 );
WaveEnemy( 8, "HardModeFusionSpider", 8 );
WaveEnemy( 8, "HardModeHectebus", 4 );
WaveEnemy( 9, "HardModeFusionSpider", 10 );
WaveEnemy( 9, "HardModeHectebus", 5 );
WaveEnemy( 10, "HardModeHellWarrior", 20 );
WaveEnemy( 10, "HardModeZombieTank", 5 );
WaveEnemy( 10, "HardModeCybruiser", 2 );
WaveEnemy( 10, "HardModeBruiserDemon", 1 );

-STR07:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "ZombieMan", 6 );
WaveEnemy( 1, "ShotgunGuy", 4 );
WaveEnemy( 1, "DoomImp", 4 );
WaveEnemy( 1, "ZombieTank", 2 );

WaveEnemy( 2, "ZombieMan", 12 );
WaveEnemy( 2, "ShotgunGuy", 8 );
WaveEnemy( 2, "DoomImp", 12 );
WaveEnemy( 2, "ZombieTank", 4 );

WaveEnemy( 3, "Demon", 12 );
WaveEnemy( 3, "ShotgunGuy", 8 );
WaveEnemy( 3, "DoomImp", 16 );

WaveEnemy( 4, "Demon", 18 );
WaveEnemy( 4, "ShotgunGuy", 6 );
WaveEnemy( 4, "DoomImp", 24 );

WaveEnemy( 5, "HellKnight", 8 );
WaveEnemy( 5, "BloodDemon", 8 );
WaveEnemy( 5, "ChaingunGuy", 4 );

WaveEnemy( 6, "Spectre", 16 );
WaveEnemy( 6, "HellKnight", 10 );
WaveEnemy( 6, "NightmareDemon", 4 );

WaveEnemy( 7, "Spectre", 14 );
WaveEnemy( 7, "DuneWarrior", 4 );
WaveEnemy( 7, "DoomImp", 6 );
WaveEnemy( 7, "BaronOfHell", 8 );

WaveEnemy( 8, "Spectre", 10 );
WaveEnemy( 8, "DoomImp", 20 );
WaveEnemy( 8, "Revenant", 8 );
WaveEnemy( 8, "NightmareDemon", 5 );

WaveEnemy( 9, "Revenant", 12 );
WaveEnemy( 9, "BaronOfHell", 12 );
WaveEnemy( 9, "BloodDemon", 14 );

WaveEnemy( 10, "BloodDemon", 16 );
WaveEnemy( 10, "Catharsi", 12 );
WaveEnemy( 10, "Archvile", 4 );

WaveEnemy( 1, "HardModeSatyr", 3 );
WaveEnemy( 1, "HardModeNightmareDemon", 2 );
WaveEnemy( 1, "HardModeCybruiser", 1 );
WaveEnemy( 2, "HardModeSatyr", 4 );
WaveEnemy( 2, "HardModeNightmareDemon", 3 );
WaveEnemy( 2, "HardModeCybruiser", 1 );
WaveEnemy( 3, "HardModeSatyr", 5 );
WaveEnemy( 3, "HardModeNightmareDemon", 4 );
WaveEnemy( 3, "HardModeCybruiser", 2 );
WaveEnemy( 4, "HardModeSatyr", 6 );
WaveEnemy( 4, "HardModeNightmareDemon", 5 );
WaveEnemy( 4, "HardModeCybruiser", 2 );
WaveEnemy( 5, "HardModeBaronOfHell", 5 );
WaveEnemy( 6, "HardModeBaronOfHell", 7 );
WaveEnemy( 7, "HardModeBaronOfHell", 9 );
WaveEnemy( 8, "HardModeSatyr", 7 );
WaveEnemy( 8, "HardModeNightmareDemon", 6 );
WaveEnemy( 8, "HardModeCybruiser", 2 );
WaveEnemy( 9, "HardModeSatyr", 8 );
WaveEnemy( 9, "HardModeNightmareDemon", 7 );
WaveEnemy( 9, "HardModeCybruiser", 2 );
WaveEnemy( 10, "HardModeSatyr", 6 );
WaveEnemy( 10, "HardModeNightmareDemon", 4 );
WaveEnemy( 10, "HardModeCybruiser", 2 );
WaveEnemy( 10, "HardModeBaronOfHell", 6 );

-STR08:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "ShotgunGuy", 4 );
WaveEnemy( 1, "Cacodemon", 3 );
WaveEnemy( 1, "DoomImp", 12 );
WaveEnemy( 1, "ZombieTank", 2 );

WaveEnemy( 2, "Hellion", 10 );
WaveEnemy( 2, "HellKnight", 6 );
WaveEnemy( 2, "DoomImp", 16 );

WaveEnemy( 3, "ZombieMan", 25 );
WaveEnemy( 3, "ShotgunGuy", 8 );
WaveEnemy( 3, "DoomImp", 28 );
WaveEnemy( 3, "ZombieTank", 4 );

WaveEnemy( 4, "Fatso", 6 );
WaveEnemy( 4, "DoomImp", 16 );
WaveEnemy( 4, "Catharsi", 8 );
WaveEnemy( 4, "Shadow", 6 );

WaveEnemy( 5, "HellKnight", 10 );
WaveEnemy( 5, "Cacodemon", 12 );
WaveEnemy( 5, "BloodDemon", 10 );

WaveEnemy( 6, "SuicideBomber", 8 );
WaveEnemy( 6, "HellKnight", 6 );
WaveEnemy( 6, "EnhancedCaco", 6 );
WaveEnemy( 6, "DuneWarrior", 4 );
WaveEnemy( 6, "ZombieTank", 4 );

WaveEnemy( 7, "BaronOfHell", 6 );
WaveEnemy( 7, "HellKnight", 12 );
WaveEnemy( 7, "DoomImp", 20 );

WaveEnemy( 8, "DoomImp", 80 );
WaveEnemy( 8, "DuneWarrior", 8 );
WaveEnemy( 8, "NightmareDemon", 12 );

WaveEnemy( 9, "FusionSpider", 10 );
WaveEnemy( 9, "DoomImp", 12 );
WaveEnemy( 9, "Catharsi", 8 );
WaveEnemy( 9, "BloodDemon", 4 );

WaveEnemy( 10, "Cyberdemon", -1 );
WaveEnemy( 10, "Cyberdemon", 1 );
WaveEnemy( 10, "Hectebus", 3 );

WaveEnemy( -1, "DoomImp", 24 );
WaveEnemy( -2, "DoomImp", 28 );
WaveEnemy( -3, "SuicideBomber", 20 );
WaveEnemy( -4, "Catharsi", 36 );
WaveEnemy( -5, "Hellion", 40 );
WaveEnemy( -6, "SuicideBomber", 20 );
WaveEnemy( -6, "ZombieTank", 4 );
WaveEnemy( -7, "Hellion", 48 );
WaveEnemy( -8, "BaronOfHell", 8 );
WaveEnemy( -9, "HellKnight", 14 );
WaveEnemy( -10, "SuicideBomber", 30 );
WaveEnemy( 10, "HardModeCyberdemon", 1 );
WaveEnemy( 10, "HardModeHectebus", 2 );

-STR09:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "ZombieMan", -10);
WaveEnemy( 1, "ShotgunGuy", -8);
WaveEnemy( 1, "ZombieMan", 12);
WaveEnemy( 1, "ShotgunGuy", 10);
WaveEnemy( 1, "ZombieTank", 4);
WaveEnemy( 1, "NightmareDemon", 6);
WaveEnemy( -1, "LostSoul", 4);
WaveEnemy( -1, "Guardian", 8);
WaveEnemy( -1, "Hellion", 4);
WaveEnemy( 1, "HardModeHellKnight", 4);
WaveEnemy( 1, "HardModeSatyr", 5);
WaveEnemy( 1, "HardModeBruiserDemon", 1);

WaveEnemy( 2, "DoomImp", -12);
WaveEnemy( 2, "ShotgunGuy", -6);
WaveEnemy( 2, "Demon", 12);
WaveEnemy( 2, "DoomImp", 12);
WaveEnemy( 2, "Catharsi", 10);
WaveEnemy( 2, "ZombieMan", 10);
WaveEnemy( 2, "ShotgunGuy", 4);
WaveEnemy( 2, "ZombieTank", 6);
WaveEnemy( 2, "BloodDemon", 6);
WaveEnemy( 2, "HellKnight", 4);
WaveEnemy( -2, "LostSoul", 8);
WaveEnemy( -2, "Guardian", 12);
WaveEnemy( -2, "Hellion", 8);
WaveEnemy( 2, "HardModeHellKnight", 6);
WaveEnemy( 2, "HardModeSatyr", 7);
WaveEnemy( 2, "HardModeBruiserDemon", 2);

WaveEnemy( 3, "Shotgunguy", -20);
WaveEnemy( 3, "DoomImp", -30);
WaveEnemy( 3, "SuicideBomber", -18);
WaveEnemy( 3, "Catharsi", -18);
WaveEnemy( 3, "BloodDemon", -12);
WaveEnemy( 3, "Nightmaredemon", -8);
WaveEnemy( 3, "Shotgunguy", 12);
WaveEnemy( 3, "DoomImp", 14);
WaveEnemy( 3, "SuicideBomber", 18);
WaveEnemy( 3, "Catharsi", 12);
WaveEnemy( 3, "BloodDemon", 14);
WaveEnemy( 3, "Nightmaredemon", 12);
WaveEnemy( 3, "BaronOfHell", 10);
WaveEnemy( 3, "Cybruiser", 4);
WaveEnemy( -3, "LostSoul", 12);
WaveEnemy( -3, "Guardian", 20);
WaveEnemy( -3, "Hellion", 16);
WaveEnemy( 3, "HardModeBaronOfHell", 6);
WaveEnemy( 3, "HardModeSatyr", 8);
WaveEnemy( 3, "HardModeBruiserDemon", 2);

WaveEnemy( 4, "Satyr", 25);
WaveEnemy( 4, "HellKnight", 18);
WaveEnemy( 4, "BaronOfHell", 12);
WaveEnemy( 4, "Cybruiser", 5);
WaveEnemy( 4, "ArchonOfHell", 4);
WaveEnemy( 4, "BloodDemon", 8);
WaveEnemy( 4, "NightmareDemon", 6);
WaveEnemy( -4, "LostSoul", 10);
WaveEnemy( -4, "Guardian", 22);
WaveEnemy( -4, "PainElemental", 4);
WaveEnemy( -4, "Hellion", 30);
WaveEnemy( -4, "Archvile", 4);
WaveEnemy( 4, "HardModeBruiserDemon", 4);

-STR10:

// Monsters
WaveEnemy( 1, "ZombieMan", 16 );
WaveEnemy( 1, "ShotgunGuy", 10 );
WaveEnemy( 1, "DoomImp", 6 );
WaveEnemy( 1, "ZombieTank", 4 );

WaveEnemy( 2, "RocketGuy", 6 );
WaveEnemy( 2, "Shadow", 12 );
WaveEnemy( 2, "DoomImp", 8 );
WaveEnemy( 2, "ZombieMan", 8 );
WaveEnemy( 2, "ZombieTank", 2 );
WaveEnemy( 2, "Catharsi", 4 );

WaveEnemy( 3, "Shadow", 16 );
WaveEnemy( 3, "Catharsi", 12 );
WaveEnemy( 3, "DoomImp", 16 );

WaveEnemy( 4, "BloodDemon", 8 );
WaveEnemy( 4, "Demon", 12 );
WaveEnemy( 4, "Shadow", 14 );

WaveEnemy( 5, "Cacodemon", 8 );
WaveEnemy( 5, "Guardian", 10 );
WaveEnemy( 5, "BloodDemon", 6 );
WaveEnemy( 5, "Spectre", 8 );

WaveEnemy( 6, "ZombieTank", 4 );
WaveEnemy( 6, "HellKnight", 12 );
WaveEnemy( 6, "Spectre", 10 );
WaveEnemy( 6, "BaronOfHell", 4 );

WaveEnemy( 7, "DoomImp", 20 );
WaveEnemy( 7, "NightmareDemon", 12 );
WaveEnemy( 7, "Fatso", 8 );

WaveEnemy( 8, "Arachnotron", 8 );
WaveEnemy( 8, "BloodDemon", 12 );
WaveEnemy( 8, "Spectre", 10 );

WaveEnemy( 9, "BaronOfHell", 8 );
WaveEnemy( 9, "PainElemental", 4 );
WaveEnemy( 9, "FusionSpider", 8 );
WaveEnemy( 9, "Guardian", 12 );

WaveEnemy( 10, "Cybruiser", 4 );
WaveEnemy( 10, "HellKnight", 18 );
WaveEnemy( 10, "BaronOfHell", 12 );
WaveEnemy( 10, "Satyr", 14 );

WaveEnemy( 1, "HardModeHellWarrior", 3 );
WaveEnemy( 2, "HardModeHellWarrior", 4 );
WaveEnemy( 3, "HardModeHellKnight", 6 );
WaveEnemy( 4, "HardModeHellKnight", 8 );
WaveEnemy( 5, "HardModeBaronOfHell", 5 );
WaveEnemy( 6, "HardModeBaronOfHell", 8 );
WaveEnemy( 7, "HardModeHectebus", 4 );
WaveEnemy( 8, "HardModeArchonOfHell", 3 );
WaveEnemy( 9, "HardModeArchonOfHell", 4 );
WaveEnemy( 10, "HardModeHellWarrior", 8 );
WaveEnemy( 10, "HardModeArchonOfHell", 4 );

-STR11:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "Zombieman", 16 );
WaveEnemy( 1, "ShotgunGuy", 12 );
WaveEnemy( 1, "DoomImp", 10 );
WaveEnemy( 1, "ZombieTank", 4 );

WaveEnemy( 2, "Demon", 10 );
WaveEnemy( 2, "ShotgunGuy", 8 );
WaveEnemy( 2, "DoomImp", 20 );
WaveEnemy( 2, "Catharsi", 6 );

WaveEnemy( 3, "Spectre", 12 );
WaveEnemy( 3, "ShotgunGuy", 6 );
WaveEnemy( 3, "ChaingunGuy", 4 );
WaveEnemy( 3, "Catharsi", 10 );
WaveEnemy( 3, "DoomImp", 14 );
WaveEnemy( 3, "ZombieTank", 6 );

WaveEnemy( 4, "Spectre", 16 );
WaveEnemy( 4, "BloodDemon", 10 );
WaveEnemy( 4, "Catharsi", 12 );
WaveEnemy( 4, "DoomImp", 16 );

WaveEnemy( 5, "SuicideBomber", 10 );
WaveEnemy( 5, "BloodDemon", 12 );
WaveEnemy( 5, "HellKnight", 8 );

WaveEnemy( 6, "BaronOfHell", 10 );
WaveEnemy( 6, "HellKnight", 14 );
WaveEnemy( 6, "EnhancedCaco", 8 );

WaveEnemy( 7, "CacoDemon", 16 );
WaveEnemy( 7, "EnhancedCaco", 10 );
WaveEnemy( 7, "PainElemental", 4 );
WaveEnemy( 7, "Guardian", 20 );

WaveEnemy( 8, "HellKnight", 24 );
WaveEnemy( 8, "BaronOfHell", 16 );
WaveEnemy( 8, "Cybruiser", 4 );
WaveEnemy( 8, "HellWarrior", 12 );

WaveEnemy( 9, "Fatso", 12 );
WaveEnemy( 9, "SuicideBomber", 18 );
WaveEnemy( 9, "BloodDemon", 28 );
WaveEnemy( 9, "Hectebus", 4 );

WaveEnemy( 10, "BloodDemon", 20 );
WaveEnemy( 10, "CyberDemon", 3 );
WaveEnemy( 10, "Hectebus", 6 );


WaveEnemy( 1, "HardModeHellWarrior", 5 );
WaveEnemy( 2, "HardModeHellWarrior", 6 );
WaveEnemy( 3, "HardModeHellKnight", 7 );
WaveEnemy( 4, "HardModeHellKnight", 8 );
WaveEnemy( 5, "HardModeFatso", 4 );
WaveEnemy( 6, "HardModeArachnotron", 6 );
WaveEnemy( 7, "HardModeHectebus", 6 );
WaveEnemy( 8, "HardModeFusionSpider", 10 );
WaveEnemy( 9, "HardModeRevenant", 14 );
WaveEnemy( 10, "HardModeBaronOfHell", 10 );
WaveEnemy( 10, "HardModeHectebus", 6 );
WaveEnemy( 10, "HardModeFusionSpider", 8 );
WaveEnemy( 10, "HardModeCyberdemon", 1 );
WaveEnemy( 10, "HardModeTerminator", 1 );

-STR12:

// Monsters
WaveEnemy( 1, "BloodDemon", 4 );
WaveEnemy( 1, "ZombieMan", 4 );
WaveEnemy( 1, "ShotgunGuy", 12 );
WaveEnemy( 1, "Arachnotron", 2 );

WaveEnemy( 2, "BloodDemon", 8 );
WaveEnemy( 2, "Catharsi", 4 );
WaveEnemy( 2, "DoomImp", 6 );
WaveEnemy( 2, "ShotgunGuy", 4 );
WaveEnemy( 2, "Chaingunguy", 4 );
WaveEnemy( 2, "ZombieTank", 2 );

WaveEnemy( 3, "Revenant", 4 );
WaveEnemy( 3, "Catharsi", 8 );
WaveEnemy( 3, "Arachnotron", 8 );
WaveEnemy( 3, "BloodDemon", 8 );

WaveEnemy( 4, "Spectre", 8 );
WaveEnemy( 4, "Revenant", 4 );
WaveEnemy( 4, "ShotgunGuy", 4 );
WaveEnemy( 4, "Chaingunguy", 4 );

WaveEnemy( 5, "Demon", 12 );
WaveEnemy( 5, "BloodDemon", 2 );
WaveEnemy( 5, "Spidermastermind", -2 );

WaveEnemy( 6, "Blooddemon", 4 );
WaveEnemy( 6, "Catharsi", 4 );
WaveEnemy( 6, "DoomImp", 6 );
WaveEnemy( 6, "Arachnotron", 12 );

WaveEnemy( 7, "DuneWarrior", 3 );
WaveEnemy( 7, "Revenant", 6 );
WaveEnemy( 7, "Demon", 12 );
WaveEnemy( 7, "Shotgunguy", 24 );

WaveEnemy( 8, "DuneWarrior", 4 );
WaveEnemy( 8, "Arachnotron", 4 );
WaveEnemy( 8, "Fusionspider", 4 );
WaveEnemy( 8, "Spidermastermind", -3 );

WaveEnemy( 9, "DuneWarrior", 2 );
WaveEnemy( 9, "BloodDemon", 4 );
WaveEnemy( 9, "Arachnotron", 6 );
WaveEnemy( 9, "Demolisher", -1 );

WaveEnemy( 10, "Arachnotron", 16 );
WaveEnemy( 10, "Fusionspider", 8 );
WaveEnemy( 10, "Spidermastermind", 4 );
WaveEnemy( 10, "Demolisher", 2 );

WaveEnemy( 1, "HardModeFatso", 3 );
WaveEnemy( 2, "HardModeFatso", 4 );
WaveEnemy( 3, "HardModeFatso", 5 );
WaveEnemy( 4, "HardModeFatso", 6 );
WaveEnemy( 5, "HardModeHectebus", 4 );
WaveEnemy( 6, "HardModeHectebus", 5 );
WaveEnemy( 7, "HardModeHectebus", 6 );
WaveEnemy( 8, "HardModeFatso", 7 );
WaveEnemy( 9, "HardModeFatso", 8 );
WaveEnemy( 10, "HardModeFatso", 8 );
WaveEnemy( 10, "HardModeHectebus", 6 );

[/spoiler]

Please enjoy! The game is a bit harder but nowhere frustrating, it's all about the fun! Camping will be a bit harder but since these are the first 10 maps, i have been soft and they are still quite easy.

PS: @Untitled: you may as well give 20% resistance to bullets and explosives to the ZombieTank ( damage factor to 0.8 for those attacks ). Why? Well a tank is a steel plated vehicle, and second, i used it as somewhat an anti camping species, so it would be a shame seeing these tanks being easily killed by zombies, and by each other ( as they do ).

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#237

Post by Untitled » Fri Mar 20, 2015 7:35 pm

THANK YOU, this is EXACTLY the kind of exact help that makes things run smoothly.

It's Tier 1-2 though, so I probably won't change that much (Tier 5 is the biggest contender for change, honestly), but this kind of format, this is what I like.

While I can't say I perfectly agree with your ideologies (I'm very stubborn, as you've probably noticed), but I really respect the effort you go to with these kinds of things.

Not all of them are going to be changed (zombie tanks are generally not well-liked by the playerbase, so seeing them in every mission would annoy some, particularly tehvappy50), but still. Some of this looks cool.
Last edited by Untitled on Fri Mar 20, 2015 7:40 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#238

Post by bruiserdaemon » Fri Mar 20, 2015 8:22 pm

Weill i hope you try it with your friends. Obviously the zombie tanks are just a small part of the modification, all the waves have been pumped up one way or another. Your friend doesn't like them, well because they make camping harder because they hit quite hard and are fast. They are expecially good at anti-camping so tell your friend that there's no glory in winning easy ^^

Just a little secret: most of the fun comes from the most mixed waves, expecially when there are multiple spawn points, and players cannot camp properly ( think about Deep Space ). Keep in mind this for the next release.

Untitled
Forum Regular
Posts: 519
Joined: Sat Dec 29, 2012 4:41 pm
Location: it is a mystery

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#239

Post by Untitled » Fri Mar 20, 2015 8:53 pm

bruiserdaemon wrote: Weill i hope you try it with your friends. Obviously the zombie tanks are just a small part of the modification, all the waves have been pumped up one way or another. Your friend doesn't like them, well because they make camping harder because they hit quite hard and are fast. They are expecially good at anti-camping so tell your friend that there's no glory in winning easy ^^

Just a little secret: most of the fun comes from the most mixed waves, expecially when there are multiple spawn points, and players cannot camp properly ( think about Deep Space ). Keep in mind this for the next release.
Zombie Tanks aren't actually great camp-breakers; they're great at escaping the camp because they're both fast and hitscan, but, say, against a bunch of sentries, they're not that good.

The problem is they're hitscan.

This guy is TerminusEst13, creator of samsara (and again, check that out). He knows a lot of things about good game design.

http://forum.zdoom.org/viewtopic.php?f= ... 64#p723430

http://terminusest13.tumblr.com/post/68 ... not-saying

This is why everyone hates zombie tanks. Their inherent toughness is tough enough they can't die like flies, they're fast, meaning that it's easy to "whoops deadline" to them, AND they're literally impossible to avoid. If you don't have a long-distance weapon (ie you're not playing BJ), prepare for pain.

Nightmare Demons I'm also on the cutting block. Not because they are very deadly (they really aren't), but it's very easy to let them through because they move -very- fast, are partially translucent, and don't look like they move fast. Losing because of "lol whoops" is something I want to avoid - no one enjoys it (hence why T1M4 isn't getting harder, everyone hates it).

Deadlines + Nightmare Demons = FFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUU-

In short, if I'm going to make the players lose, I want it to be because we're actually losing; not because of "lol whoops random spectre". No one likes losing in this fashion.
Last edited by Untitled on Fri Mar 20, 2015 9:06 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
Spoiler: Me in a nutshell (Open)
<Untitled> this is a terrible idea
<Untitled> lets do it anyway

<Untitled> Depends
<Untitled> What kind of wad error is "Address not Mapped to Object (Signal 11)"?

<Untitled> So today I found out that stupidity is nested fractally
<Untitled> There is no lower bound
Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053

bruiserdaemon
Forum Regular
Posts: 151
Joined: Sun Dec 28, 2014 2:42 pm

RE: SamsaraHold - 0.12 - Open for dicussion, back in Development!

#240

Post by bruiserdaemon » Fri Mar 20, 2015 9:09 pm

[spoiler]
-STR13:

// Monsters
WaveEnemy( 1, "ZombieMan", 12 );
WaveEnemy( 1, "ShotgunGuy", 9 );
WaveEnemy( 1, "DoomImp", 8 );
WaveEnemy( 1, "Demon", 4 );
WaveEnemy( 1, "BloodDemon", 2 );

WaveEnemy( 2, "DoomImp", 12 );
WaveEnemy( 2, "ShotgunGuy", 8 );
WaveEnemy( 2, "Demon", 6 );
WaveEnemy( 2, "BloodDemon", 3 );

WaveEnemy( 3, "DoomImp", 12 );
WaveEnemy( 3, "Demon", 8 );
WaveEnemy( 3, "ShotgunGuy", 6 );
WaveEnemy( 3, "ChaingunGuy", 2 );
WaveEnemy( 3, "ZombieTank", 2 );

WaveEnemy( 4, "Shadow", 8 );
WaveEnemy( 4, "DoomImp", 12 );
WaveEnemy( 4, "Demon", 8 );
WaveEnemy( 4, "NightmareDemon", 3 );

WaveEnemy( 5, "DoomImp", 12 );
WaveEnemy( 5, "Catharsi", 8 );
WaveEnemy( 5, "Demon", 10 );
WaveEnemy( 5, "BloodDemon", 4 );

WaveEnemy( 6, "Catharsi", 10 );
WaveEnemy( 6, "Shadow", 12 );
WaveEnemy( 6, "BloodDemon", 5 );
WaveEnemy( 6, "NightmareDemon", 3 );

WaveEnemy( 7, "DoomImp", 12 );
WaveEnemy( 7, "HellKnight", 8 );
WaveEnemy( 7, "BaronOfHell", 4 );

WaveEnemy( 8, "DoomImp", 32 );
WaveEnemy( 8, "Hellion", 16 );
WaveEnemy( 8, "Archvile", 1 );

WaveEnemy( 9, "HellKnight", 7 );
WaveEnemy( 9, "BaronOfHell", 4 );
WaveEnemy( 9, "Cybruiser", 1 );

WaveEnemy( 10, "DoomImp", 12 );
WaveEnemy( 10, "Catharsi", 8 );
WaveEnemy( 10, "HellKnight", 2 );
WaveEnemy( 10, "BaronOfHell", 2 );
WaveEnemy( 10, "BruiserDemon", 1 );

WaveEnemy( 1, "HardModeBaronOfHell", 1 );
WaveEnemy( 2, "HardModeBaronOfHell", 2 );
WaveEnemy( 3, "HardModeBaronOfHell", 3 );
WaveEnemy( 4, "HardModeBaronOfHell", 4 );
WaveEnemy( 5, "HardModeCybruiser", 1 );
WaveEnemy( 6, "HardModeCybruiser", 2 );
WaveEnemy( 7, "HardModeCybruiser", 2 );
WaveEnemy( 8, "HardModeArchonOfHell", -2 );
WaveEnemy( 9, "HardModeArchonOfHell", -2 );
WaveEnemy( 9, "HardModeArchonOfHell", 1 );
WaveEnemy( 10, "HardModeArchonOfHell", -1 );
WaveEnemy( 10, "HardModeArchonOfHell", 1 );
WaveEnemy( 10, "HardModeCybruiser", 2 );

-STR14:

// Monsters
WaveEnemy( 1, "Catharsi", 15 );
WaveEnemy( 1, "DoomImp", 30 );

WaveEnemy( 2, "Demon", 15 );
WaveEnemy( 2, "Spectre", 15 );

WaveEnemy( 3, "Demon", 15 );
WaveEnemy( 3, "BloodDemon", 10 );
WaveEnemy( 3, "DoomImp", 15 );

WaveEnemy( 4, "BloodDemon", 10 );
WaveEnemy( 4, "HellKnight", 10 );
WaveEnemy( 4, "BaronOfHell", 10 );

WaveEnemy( 5, "Satyr", 12 );
WaveEnemy( 5, "HellKnight", 12 );
WaveEnemy( 5, "BaronOfHell", 8 );
WaveEnemy( 5, "Cybruiser", 2 );

WaveEnemy( 6, "PhaseImp", 6 );
WaveEnemy( 6, "NightmareDemon", 12 );
WaveEnemy( 6, "Spectre", 18 );
WaveEnemy( 6, "Shadow", 24 );

WaveEnemy( 7, "Arachnotron", 5 );
WaveEnemy( 7, "FusionSpider", 5 );
WaveEnemy( 7, "Fatso", 5 );
WaveEnemy( 7, "Hectebus", 5 );
WaveEnemy( 7, "HellKnight", 7 );
WaveEnemy( 7, "BaronOfHell", 7 );
WaveEnemy( 7, "NightmareDemon", 10 );
WaveEnemy( 7, "Spectre", 15 );
WaveEnemy( 7, "Shadow", 30 );

WaveEnemy( 8, "Cybruiser", 8 );
WaveEnemy( 8, "Demon", 10 );
WaveEnemy( 8, "Catharsi", 24 );
WaveEnemy( 8, "DoomImp", 12 );

WaveEnemy( 9, "Revenant", 8 );
WaveEnemy( 9, "NightmareDemon", 16 );
WaveEnemy( 9, "Spectre", 24 );
WaveEnemy( 9, "PhaseImp", 32 );
WaveEnemy( 9, "Shadow", 40 );

WaveEnemy( 10, "PyroDemon", 1 );
WaveEnemy( 10, "PyroDemon", -4 );

WaveEnemy( -1, "BloodDemon", 4 );
WaveEnemy( -2, "BloodDemon", 6 );
WaveEnemy( 3, "HardModeBaronOfHell", 3 );
WaveEnemy( 4, "HardModeBaronOfHell", 4 );
WaveEnemy( 5, "HardModeArchonOfHell", 2 );
WaveEnemy( -6, "HardModeHellWarrior", 8 );
WaveEnemy( -7, "HardModeArchonOfHell", 3 );
WaveEnemy( -8, "HardModeNightmareDemon", 10 );
WaveEnemy( -9, "HardModeHectebus", 4 );
WaveEnemy( -10, "SuicideBomber", 20 );
WaveEnemy( -10, "Satyr", 20 );
WaveEnemy( -10, "HellKnight", 10 );
WaveEnemy( -10, "BaronOfHell", 4 );
WaveEnemy( -10, "Cybruiser", 2 );

-STR15:

// Monsters
WaveEnemy( 1, "Spectre", 12 );
WaveEnemy( 1, "Shadow", 8 );
WaveEnemy( 1, "NightmareDemon", 4 );

WaveEnemy( 2, "BaronOfHell", 2 );
WaveEnemy( 2, "Hellknight", 6 );
WaveEnemy( 2, "DoomImp", 20 );

WaveEnemy( 3, "BaronOfHell", 4 );
WaveEnemy( 3, "Cacodemon", 10 );
WaveEnemy( 3, "DoomImp", 12 );
WaveEnemy( 3, "BloodDemon", 6 );

WaveEnemy( 4, "Catharsi", 14 );
WaveEnemy( 4, "EnhancedCaco", 8 );
WaveEnemy( 4, "DoomImp", 40 );
WaveEnemy( 4, "Guardian", 16 );

WaveEnemy( 5, "PhaseImp", 6 );
WaveEnemy( 5, "BloodDemon", 8 );
WaveEnemy( 5, "Hellknight", 10 );
WaveEnemy( 5, "BaronOfHell", 4 );

WaveEnemy( 6, "Fatso", 12 );
WaveEnemy( 6, "Arachnotron", 10 );
WaveEnemy( 6, "Cybruiser", 2 );

WaveEnemy( 7, "Fatso", 6 );
WaveEnemy( 7, "Hectebus", 6 );
WaveEnemy( 7, "Arachnotron", 6 );
WaveEnemy( 7, "FusionSpider", 6 );
WaveEnemy( 7, "Cybruiser", 2 );
WaveEnemy( 7, "ArchonOfHell", 2 );

WaveEnemy( 8, "EnhancedCaco", 12 );
WaveEnemy( 8, "Cacodemon", 16 );
WaveEnemy( 8, "Guardian", 30 );
WaveEnemy( 8, "PainElemental", 3 );

WaveEnemy( 9, "Hellion", 28 );
WaveEnemy( 9, "PhaseImp", 8 );
WaveEnemy( 9, "Catharsi", 24 );
WaveEnemy( 9, "Shadow", 52 );
WaveEnemy( 9, "DoomImp", 80 );
WaveEnemy( 9, "SuicideBomber", 56 );

WaveEnemy( 10, "Terminator", 1 );
WaveEnemy( 10, "BaronOfHell", 4 );

WaveEnemy( 1, "HardModeBaronOfHell", 2 );
WaveEnemy( 2, "HardModeBaronOfHell", 4 );
WaveEnemy( 3, "HardModeArchonOfHell", 2 );
WaveEnemy( 4, "HardModeArchonOfHell", 2 );
WaveEnemy( 5, "HardModeBruiserDemon", 1 );
WaveEnemy( 6, "HardModeBruiserDemon", 2 );
WaveEnemy( 7, "HardModeBruiserDemon", 1 );
WaveEnemy( 7, "HardModePyroDemon", 1 );
WaveEnemy( 8, "HardModeCybruiser", 3 );
WaveEnemy( 9, "HardModeCyberdemon", 1 );
WaveEnemy( 10, "HardModeCybruiser", 2 );
WaveEnemy( 10, "HardModeHectebus", 4 );

-STR16:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "DoomImp", 40 );
WaveEnemy( 1, "Catharsi", 20 );
WaveEnemy( 1, "SuicideBomber", 25 );
WaveEnemy( 1, "Demon", 35 );
WaveEnemy( 1, "Satyr", 20 );
WaveEnemy( 1, "BloodDemon", 16 );
WaveEnemy( 1, "ZombieTank", 8 );

WaveEnemy( 2, "DoomImp", 44 );
WaveEnemy( 2, "PhaseImp", 12 );
WaveEnemy( 2, "Catharsi", 24 );
WaveEnemy( 2, "Demon", 40 );
WaveEnemy( 2, "Spectre", 24 );
WaveEnemy( 2, "HellKnight", 20 );
WaveEnemy( 2, "BaronOfHell", 10 );

WaveEnemy( 3, "Satyr", 20 );
WaveEnemy( 3, "HellKnight", 25 );
WaveEnemy( 3, "Cacodemon", 18 );
WaveEnemy( 3, "EnhancedCaco", 12 );
WaveEnemy( 3, "BloodDemon", 30 );
WaveEnemy( 3, "Revenant", 18 );

WaveEnemy( 4, "DoomImp", 40 );
WaveEnemy( 4, "SuicideBomber", 25 );
WaveEnemy( 4, "PhaseImp", 15 );
WaveEnemy( 4, "Catharsi", 15 );
WaveEnemy( 4, "Demon", 15 );
WaveEnemy( 4, "NightmareDemon", 15 );
WaveEnemy( 4, "BloodDemon", 15 );
WaveEnemy( 4, "BaronOfHell", 18 );

WaveEnemy( 5, "HellKnight", 24 );
WaveEnemy( 5, "BaronOfHell", 16 );
WaveEnemy( 5, "Cybruiser", 8 );
WaveEnemy( 5, "BruiserDemon", 6 );

WaveEnemy( 6, "Hellion", 36 );
WaveEnemy( 6, "Shadow", 32 );
WaveEnemy( 6, "Spectre", 28 );
WaveEnemy( 6, "Demon", 24 );
WaveEnemy( 6, "BloodDemon", 20 );
WaveEnemy( 6, "NightmareDemon", 18 );
WaveEnemy( 6, "Revenant", 16 );
WaveEnemy( 6, "ArchVile", 6 );
WaveEnemy( 6, "Diabloist", 1 );

WaveEnemy( 7, "DoomImp", 24 );
WaveEnemy( 7, "Shadow", 24 );
WaveEnemy( 7, "SuicideBomber", 24 );
WaveEnemy( 7, "Demon", 20 );
WaveEnemy( 7, "Spectre", 20 );
WaveEnemy( 7, "BloodDemon", 20 );
WaveEnemy( 7, "Hellion", 16 );
WaveEnemy( 7, "Catharsi", 16 );
WaveEnemy( 7, "PhaseImp", 16 );
WaveEnemy( 7, "Cacodemon", 12 );
WaveEnemy( 7, "EnhancedCaco", 12 );
WaveEnemy( 7, "Wicked", 12 );
WaveEnemy( 7, "Terminator", 3 );
WaveEnemy( 7, "Terminator", -3 );

WaveEnemy( 8, "SuicideBomber", 64 );
WaveEnemy( 8, "HS", 64 );
WaveEnemy( 8, "Catharsi", 64 );
WaveEnemy( 8, "RocketGuy", 64 );
WaveEnemy( 8, "InfernoDemon", -1 );

WaveEnemy( 1, "HardModeArchonOfHell", 2 );
WaveEnemy( 2, "HardModeArchonOfHell", 3 );
WaveEnemy( 3, "HardModeArchonOfHell", 4 );
WaveEnemy( 4, "HardModeArchonOfHell", 3 );
WaveEnemy( 4, "HardModeBruiserDemon", 2 );
WaveEnemy( 5, "HardModeArchonOfHell", 4 );
WaveEnemy( 5, "HardModePyrodemon", 2 );
WaveEnemy( 6, "HardModeCyberdemon", 3 );
WaveEnemy( 7, "HardModeCyberdemon", 4 );
WaveEnemy( -8, "Hellion", 64 );
WaveEnemy( -8, "Archvile", 8 );
WaveEnemy( -8, "Diabloist", 1 );
WaveEnemy( 8, "HardModeBruiserDemon", 4 );
WaveEnemy( 8, "HardModePyrodemon", 2 );

-STR17:

// Monsters
WaveEnemy( 1, "Demon", 12 );
WaveEnemy( 1, "ShotgunGuy", 10 );
WaveEnemy( 1, "DoomImp", 20 );
WaveEnemy( 1, "HellWarrior", 4 );
WaveEnemy( 1, "ZombieTank", 4 );

WaveEnemy( 2, "Shadow", 24 );
WaveEnemy( 2, "ShotgunGuy", 8 );
WaveEnemy( 2, "DoomImp", 30 );
WaveEnemy( 2, "NightmareDemon", 8 );

WaveEnemy( 3, "Demon", 20 );
WaveEnemy( 3, "Shadow", 16 );
WaveEnemy( 3, "Rocketguy", 6 );
WaveEnemy( 3, "ZombieTank", 6 );
WaveEnemy( 3, "HellWarrior", 6 );

WaveEnemy( 4, "BloodDemon", 12 );
WaveEnemy( 4, "NightmareDemon", 8 );
WaveEnemy( 4, "DoomImp", 16 );
WaveEnemy( 4, "PhaseImp", 10 );

WaveEnemy( 5, "Hellion", 25 );
WaveEnemy( 5, "BloodDemon", 12 );
WaveEnemy( 5, "HellWarrior", 10 );
WaveEnemy( 5, "BaronOfHell", 4 );

WaveEnemy( 6, "HellKnight", 16 );
WaveEnemy( 6, "Fatso", 8 );
WaveEnemy( 6, "Spectre", 18 );

WaveEnemy( 7, "BaronOfHell", 10 );
WaveEnemy( 7, "HellKnight", 14 );
WaveEnemy( 7, "NightmareDemon", 10 );
WaveEnemy( 7, "HellWarrior", 6 );

WaveEnemy( 8, "Arachnotron", 12 );
WaveEnemy( 8, "Catharsi", 20 );
WaveEnemy( 8, "FusionSpider", 8 );

WaveEnemy( 9, "Hectebus", 4 );
WaveEnemy( 9, "Hellion", 32 );
WaveEnemy( 9, "HellKnight", 16 );

WaveEnemy( 10, "Cybruiser", 4 );
WaveEnemy( 10, "HellKnight", 12 );
WaveEnemy( 10, "BaronOfHell", 8 );
WaveEnemy( 10, "Satyr", 12 );
WaveEnemy( 10, "ArchonOfHell", 2 );

WaveEnemy( 1, "HardModeRevenant", 6 );
WaveEnemy( 2, "HardModeRevenant", 8 );
WaveEnemy( 3, "HardModeBaronOfHell", 4 );
WaveEnemy( 4, "HardModeBaronOfHell", 5 );
WaveEnemy( 5, "HardModeZombieTank", 5 );
WaveEnemy( 6, "HardModeArchonOfHell", 2 );
WaveEnemy( 6, "HardModePhaseImp", 6 );
WaveEnemy( 7, "HardModeArchonOfHell", 3 );
WaveEnemy( 8, "HardModeRevenant", 14 );
WaveEnemy( 9, "HardModeCybruiser", 3 );
WaveEnemy( 10, "HardModeTerminator", 1 );

-STR18:

// Monsters
// wave, actor, number to spawn
WaveEnemy( 1, "Shadow", 20 );
WaveEnemy( 1, "ShotgunGuy", 8 );
WaveEnemy( 1, "NightmareDemon", 6 );

WaveEnemy( 2, "ZombieMan", 14 );
WaveEnemy( 2, "Demon", 16 );
WaveEnemy( 2, "BloodDemon", 10 );

WaveEnemy( 3, "ZombieMan", 28 );
WaveEnemy( 3, "ShotgunGuy", 16 );
WaveEnemy( 3, "Rocketguy", 6 );
WaveEnemy( 3, "ZombieTank", 8 );

WaveEnemy( 4, "Demon", 10 );
WaveEnemy( 4, "DoomImp", 20 );
WaveEnemy( 4, "BaronOfHell", 4 );
WaveEnemy( 4, "HellKnight", 8 );

WaveEnemy( 5, "DoomImp", 20 );
WaveEnemy( 5, "PhaseImp", 10 );
WaveEnemy( 5, "Demon", 16 );
WaveEnemy( 5, "NightmareDemon", 8 );

WaveEnemy( 6, "DoomImp", 20 );
WaveEnemy( 6, "HellKnight", 12 );
WaveEnemy( 6, "BaronOfHell", 8 );
WaveEnemy( 6, "Shadow", 14 );
WaveEnemy( 6, "HellWarrior", 8 );

WaveEnemy( 7, "DoomImp", 20 );
WaveEnemy( 7, "NightmareDemon", 6 );
WaveEnemy( 7, "BaronOfHell", 8 );
WaveEnemy( 7, "ArchonOfHell", 4 );

WaveEnemy( 8, "Catharsi", 18 );
WaveEnemy( 8, "PhaseImp", 16 );
WaveEnemy( 8, "DoomImp", 32 );
WaveEnemy( 8, "Demon", 24 );

WaveEnemy( 9, "BloodDemon", 12 );
WaveEnemy( 9, "NightmareDemon", 12 );
WaveEnemy( 9, "Satyr", 20 );
WaveEnemy( 9, "HellKnight", 15 );
WaveEnemy( 9, "BaronOfHell", 10 );
WaveEnemy( 9, "ArchonOfHell", 5 );

WaveEnemy( 10, "Diabloist", -1 );
WaveEnemy( 10, "ArchVile", 2 );
WaveEnemy( 10, "Hellion", 20 );
WaveEnemy( 10, "Shadow", 20 );
WaveEnemy( 10, "ZombieTank", 4 );
WaveEnemy( 10, "SuicideBomber", 20 );
WaveEnemy( 10, "Demon", 12 );
WaveEnemy( 10, "Spectre", 12 );
WaveEnemy( 10, "BloodDemon", 8 );
WaveEnemy( 10, "NightmareDemon", 8 );
WaveEnemy( 10, "Revenant", 6 );

WaveEnemy( 1, "HardModeHellWarrior", 3 );
WaveEnemy( 2, "HardModeHellWarrior", 5 );
WaveEnemy( 3, "HardModeCybruiser", 2 );
WaveEnemy( 4, "HardModeHectebus", 3 );
WaveEnemy( 5, "HardModeBaronOfHell", 6 );
WaveEnemy( 6, "HardModeArchonOfHell", 2 );
WaveEnemy( 7, "HardModeGuardian", 14 );
WaveEnemy( 7, "HardModePainElemental", 3 );
WaveEnemy( 8, "HardModeBruiserDemon", 3 );
WaveEnemy( 9, "HardModeBruiserDemon", 4 );
WaveEnemy( 10, "HardModeTerminator", 2 );

-STR19:

// Monsters
WaveEnemy( 1, "Shadow", 12 );
WaveEnemy( 1, "DoomImp", 16 );
WaveEnemy( 1, "Spectre", 6 );
WaveEnemy( 1, "Demon", 10 );

WaveEnemy( 2, "NightmareDemon", 6 );
WaveEnemy( 2, "Hellion", 12 );
WaveEnemy( 2, "DoomImp", 20 );
WaveEnemy( 2, "Shadow", 16 );

WaveEnemy( 3, "Wicked", 10 );
WaveEnemy( 3, "Cacodemon", 10 );
WaveEnemy( 3, "LostSoul", 10 );
WaveEnemy( 3, "HellKnight", 16 );

WaveEnemy( 4, "Demon", 20 );
WaveEnemy( 4, "Spectre", 10 );
WaveEnemy( 4, "BaronOfHell", 8 );
WaveEnemy( 4, "DoomImp", 24 );
WaveEnemy( 4, "PhaseImp", 10 );

WaveEnemy( 5, "Wicked", 12 );
WaveEnemy( 5, "Enhancedcaco", 12 );
WaveEnemy( 5, "Hellwarrior", 6 );
WaveEnemy( 5, "Hellion", 18 );

WaveEnemy( 6, "HellKnight", 10 );
WaveEnemy( 6, "DoomImp", 25 );
WaveEnemy( 6, "Hellion", 18 );
WaveEnemy( 6, "BruiserDemon", 2 );

WaveEnemy( 7, "Cyberdemon", 2 );
WaveEnemy( 7, "Spectre", 16 );
WaveEnemy( 7, "Cacodemon", 12 );
WaveEnemy( 7, "EnhancedCaco", 10 );
WaveEnemy( 7, "Hellwarrior", 8 );

WaveEnemy( 8, "Hellion", 30 );
WaveEnemy( 8, "DoomImp", 30 );
WaveEnemy( 8, "Cacodemon", 14 );
WaveEnemy( 8, "Guardian", 24 );
WaveEnemy( 8, "Archvile", 3 );

WaveEnemy( 9, "Cyberdemon", 2 );
WaveEnemy( 9, "Catharsi", 40 );
WaveEnemy( 9, "HellKnight", 20 );
WaveEnemy( 9, "BaronOfHell", 12 );
WaveEnemy( 9, "Cybruiser", 4 );

WaveEnemy( 10, "DoomImp", 20 );
WaveEnemy( 10, "Satyr", 16 );
WaveEnemy( 10, "Cacodemon", 10 );
WaveEnemy( 10, "EnhancedCaco", 8 );
WaveEnemy( 10, "Wicked", 4 );
WaveEnemy( 10, "Bruiserdemon", 6 );
WaveEnemy( 10, "Guardian", 20 );

WaveEnemy( 1, "HardModeHellWarrior", 4 );
WaveEnemy( 2, "HardModeHellWarrior", 6 );
WaveEnemy( 3, "HardModeBloodDemon", 10 );
WaveEnemy( 4, "HardModeBloodDemon", 12 );
WaveEnemy( 5, "HardModeWicked", 4 );
WaveEnemy( 5, "HardModePainElemental", 4 );
WaveEnemy( 6, "HardModeHElemental", 3 );
WaveEnemy( 7, "HardModeArchonOfHell", 2 );
WaveEnemy( 7, "HardModeHS", 30 );
WaveEnemy( 8, "HardModeCybruiser", 4 );
WaveEnemy( 9, "HardModeArchonOfHell", 4 );
WaveEnemy( 10, "HardModeCybruiser", 8 );
WaveEnemy( 10, "HardModeHellWarrior", 12 );


-STR21:

WaveEnemy(1, "DoomImp", 30);
WaveEnemy(1, "Demon", 14);
WaveEnemy(1, "BloodDemon", 8);
WaveEnemy(1, "NightmareDemon", 6);
WaveEnemy(1, "PhaseImp", 6);

WaveEnemy(2, "Shadow", 32);
WaveEnemy(2, "Spectre", 16);
WaveEnemy(2, "NightmareDemon", 8);
WaveEnemy(2, "HellKnight", 6);

WaveEnemy(3, "PhaseImp", 25);
WaveEnemy(3, "DoomImp", 25);
WaveEnemy(3, "BloodDemon", 25);
WaveEnemy(3, "BaronOfHell", 4);

WaveEnemy(4, "ArchVile", 3);
WaveEnemy(4, "HS", 24);
WaveEnemy(4, "Hellion", 48);

WaveEnemy(5, "Revenant", 24);
WaveEnemy(5, "HS", 36);
WaveEnemy(5, "SuicideBomber", 18);
WaveEnemy(5, "BloodDemon", 16);

WaveEnemy(6, "Cacodemon", 96);
WaveEnemy(6, "HS", 48);

WaveEnemy(7, "HElemental", 4);
WaveEnemy(7, "HS", 60);
WaveEnemy(7, "SuicideBomber", 30);
WaveEnemy(7, "ArchonOfHell", 3);

WaveEnemy(1, "HardModeBaronOfHell", 6);
WaveEnemy(2, "HardModeBaronOfHell", 8);
WaveEnemy(3, "HardModeHellKnight", 10);
WaveEnemy(4, "HardModeHellKnight", 12);
WaveEnemy(5, "HardModeEnhancedCaco", 10);
WaveEnemy(6, "HardModeEnhancedCaco", 12);
WaveEnemy(7, "HardModeEnhancedCaco", 15);
WaveEnemy(7, "HardModeHElemental", 1);

-STR22:

// Monsters
WaveEnemy( 1, "Shotgunguy", 8 );
WaveEnemy( 1, "Demon", 10 );
WaveEnemy( 1, "Revenant", 4 );
WaveEnemy( 1, "Chaingunguy", 2 );
WaveEnemy( 1, "ZombieTank", 2 );

WaveEnemy( 2, "BloodDemon", 8 );
WaveEnemy( 2, "Shadow", 12 );
WaveEnemy( 2, "Revenant", 6 );
WaveEnemy( 2, "DoomImp", 14 );

WaveEnemy( 3, "Shadow", 18 );
WaveEnemy( 3, "Shotgunguy", 10 );
WaveEnemy( 3, "Spectre", 12 );
WaveEnemy( 3, "Chaingunguy", 2 );
WaveEnemy( 3, "ZombieTank", 4 );
WaveEnemy( 3, "HellWarrior", 4 );

WaveEnemy( 4, "Hellion", 20 );
WaveEnemy( 4, "BloodDemon", 12 );
WaveEnemy( 4, "Revenant", 10 );
WaveEnemy( 4, "HellKnight", 6 );

WaveEnemy( 5, "BloodDemon", 10 );
WaveEnemy( 5, "Shadow", 20 );
WaveEnemy( 5, "Cyberdemon", -1 );

WaveEnemy( 6, "ZombieTank", 6 );
WaveEnemy( 6, "NightmareDemon", 8 );
WaveEnemy( 6, "HellWarrior", 8 );
WaveEnemy( 6, "Guardian", 12 );

WaveEnemy( 7, "Hellion", 20 );
WaveEnemy( 7, "Demon", 25 );
WaveEnemy( 7, "Archvile", 4 );

WaveEnemy( 8, "Shadow", 20 );
WaveEnemy( 8, "Blooddemon", 12 );
WaveEnemy( 8, "Cyberdemon", -1 );
WaveEnemy( 8, "Cyberdemon", 1 );

WaveEnemy( 9, "ArchonOfHell", 4 );
WaveEnemy( 9, "Spectre", 16 );
WaveEnemy( 9, "BloodDemon", 10 );
WaveEnemy( 9, "Archvile", 4 );

WaveEnemy( 10, "Hellion", 20 );
WaveEnemy( 10, "Archvile", 4 );
WaveEnemy( 10, "Diabloist", 2 );
WaveEnemy( 10, "BruiserDemon", 2 );

WaveEnemy( 1, "HardModeWicked", 3 );
WaveEnemy( 2, "HardModeWicked", 5 );
WaveEnemy( 3, "HardModeBaronOfHell", 4 );
WaveEnemy( 4, "HardModeBaronOfHell", 5 );
WaveEnemy( 5, "HardModeCybruiser", 3 );
WaveEnemy( 6, "HardModePainElemental", 3 );
WaveEnemy( 6, "HardModeWicked", 6 );
WaveEnemy( 7, "HardModeArchonOfHell", 3 );
WaveEnemy( 8, "HardModeBruiserDemon", 4 );
WaveEnemy( 9, "HardModeBruiserDemon", 4 );
WaveEnemy( 10, "HardModeWicked", 6 );
WaveEnemy( 10, "HardModeRevenant", 8 );
WaveEnemy( 10, "Hellion", 20 );
WaveEnemy( 10, "Pyrodemon", 1 );

WaveEnemy( -11, "Archvile", 1 );
WaveEnemy( -12, "Diabloist", -1 );
[/spoiler]

And here is another load. If you don't want the zombie tanks feel free to replace them with an hell knight or whatever you like.

Important: IF your friends keep crying because they can't own every wave just by camping and feel impotent, feel free then to add some power to some of the weaker lower slots ( like DoomGuy's weak chaingun and single shotgun, Ranger's junk double shotgun, Chexter's weak single zorcher/rapid zorcher for example ).

Post Reply