Skip to content

Commit

Permalink
feat: Rework many aspects of Ice Cave maps (hellmonk)
Browse files Browse the repository at this point in the history
Many ice cave maps don't define variants for the hard difficulty version
of the portal that places at later levels, which means less map variety
at these locations. Additionally, terrain in many maps includes freezing
vapour generators that are randomly placed, leading to annoying gameplay
and many out-of-LOS collateral monster kills. Many maps place large deep
water areas that are either completely enclosed with rock or lead to
spoilery dead ends with no gameplay relevance. Finally, some maps share
common functions and data for defining thematic monsters and loot, but
these are a patchwork that's not used consistently among all maps. This
commit addresses these issues.

Partially based on hellmonk's PR #1942, we add hard variant monster and
item sets to all ice caves. To help achieve this, the vault functions
for items and monsters are generalized and shared to some degree among
all maps. As before this commit, there are two thematic sets of
monsters, natural and demons+undead, but instead of using the natural
set only for easy difficulty and undead+demons only for hard, both sets
have definitions for each difficulty. Both sets define eight monster
definitions using the same glyphs 1 through 8, with a designated
function at each glyph like "statue monster", "miniboss", and "boss".
This way any map can use the definitions interchangeably, regardless of
monster set or difficulty. All but four maps use these monster sets, and
the three "sprawling caverns" can use either set at either difficulty,
randomly choosing between the two.

The monster lists have been tweaked to be more coherent with more
well-defined difficulty progression. For statue monsters, we use ice
statue for both sets at easy, orange crystal statue for the natural
natural at hard difficulty, and obsidian statue for undead+demon at
hard. To allow Shadow Creatures to work for orange crystal statues and
the player spell, both monster sets defined appropriate random monster
lists at both difficulties. Additionally the simulacrum lists used by
the undead+demon set have been expanded to have definitions at both
difficulties, rebalanced, and refactored to be more easily reused.

Both sets now define two boss monsters, a stronger, but smaller group
monsters and a weaker, but larger group monster, and most maps randomly
choose one of these two configurations. For the natural monster set at
easy difficulty, the player faces either two ironbound frosthearts or a
single frost giant. At hard difficulty, this is either two or more frost
giants or one to two shard shrikes. For the undead+demons set at easy
difficulty, the player faces either two bog bodies or a single reaper.
At hard difficulty, this is either two or more blizzard demons or one to
two ice fiends.

Trivia: the infamous double ice fiend found on ice_cave_small_demon at
hard difficulty was due to a bug where the original author misapplied a
substitution pattern used in other maps. They meant to give either two
blizzard demons or one ice fiend, and gave instead either one blizzard
demon or two ice fiends. This double fiend is so universally loved that
I made it possible on any map using the undead+necro set at high
difficulty, albeit with reduced chance. I also expanded the idea to the
natural monster set using shard shrikes. Enjoy!

The ice-themed common loot definitions have been improved to have six
common classes of items: three tiers of armour (aux+light, medium, and
heavy), two tiers of weapons (any weapon and upper-tier weapons), and a
magic set (books, enhancers, jewellery, and misc items). Additionally,
necromancy-themed maps share a common ice-themed necromancy loot
definition. These definitions used to some degree by all maps, replacing
the many different and overlapping definitions used previously. Larger
maps that place loot items at early or midpoint locations now always
place one of the armour class items at these locations, so a player
might get access to rC before the map is finished. The tier of armour
item at these locations is randomized, so it won't always be light
armour, for example.

For maps that previously had hidden water caverns, we turns some of
these areas on each map into randomized shortcuts that are each open 50%
of the time. These shortcuts contain either deep water (encouraging use
of flight or amphibiousness) or floor with a freezing vapour generator.
These shortcuts are at fixed locations that provide meaningful skips of
significant fights and in a way where collateral monster deaths to
freezing vapour will be reduced. More randomly placed freezing vapour
machines are gone altogether, with the exception for the ones at the end
of ice_cave_small_demon. All freezing vapour machines now place with the
same power level (cloud duration), but vary by size (number of clouds
placed) as appropriate for their map location.

Many other aspects of monster placement and composition have changed on
a per-map basis. Comments have been updated at the top of each map to
summarize types of monsters and loot, and there are comments for each
group of SUBST/NSUBST/SHUFFLE. On each map, comments above the
conditional check for hard or easy difficulty describe the major
differences between the two difficulties. Some additional notes on
specific maps:

ice_cave_small_demon: Any reaper placed now gets a robe of cold
resistance and either a ring of protection from cold or a ring of ice,
bringing it to rC+++ and freezing vapour immunity. Gone are the days of
the mysterious dead reaper! This map could randomize between reapers and
blizzard fiends since it doesn't have an explicit necromancy theme, but
for now we're going with reapers only for tier 2 demons.

ice_cave_statue_garden_transporter: The final transporter area has been
reworked to be small enough so it can be entirely seen by the player
before taking the transporter.

ice_cave_statue_garden_chambered: The map was created before circlelos
became squarelos, when visual range was 8 squares for all characters.
Hence its ice statues were all in view of each other before squarelos,
but it wasn't updated for the reduction of visual range to 7 squares.
I've reduced the map two squares in its longest dimension to bring them
back within LOS of each other.

Closes #1942.
  • Loading branch information
gammafunk committed Jul 5, 2021
1 parent 84e617a commit cc58b11
Showing 1 changed file with 1,046 additions and 720 deletions.
Loading

0 comments on commit cc58b11

Please sign in to comment.