CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
9.92k stars 4.08k forks source link

Microlab Modernization I: Parametrized Microlab Foes #74608

Open John-Candlebury opened 1 week ago

John-Candlebury commented 1 week ago

Summary

Content "Microlabs will now spawn foes from a series of mutually exclusive lists."

Purpose of change

The base framework of Microlab generation hasnt really received much attention since it was added between 3 and 5 years ago. Now that they are set to replace the standard RNG lab completely its worth to take a look into how they work and overhaul their generation to produce more interesting exploration experiences.

I've chosen to start by varying the monster lists encountered, as this is a simple chance witha very strong gameplay impact. That can also later on be used to inform the spawning of special maps within the lab.

Needless to say it'll be necessary to track the actual impact of this changes for a few months, as I expect some variants to require difficulty tweaks in the future.

Describe the solution

The base spawns placed by "GROUP_MICROLAB" have been greatly reduced, but each microlab now generated will complement those with any of these lists:

Lab variant Effect
mnm_more_density Increases the desnisty of group microlab, to current labs numbers
mnm_acid_zombies Places acid and spitter zombies
mnm_rust_zombies Places basic rust zumbies and predators
mnm_hunter_zombies Places runners and predators
mnm_phase_zombies Places phase skulkers and shrikes at a higher rates.
mnm_raptor_zombies Places pupas and basic raptors
mnm_robots Robotic defenders favoring prototype lab bots.
mnm_mutants Assorted evolved and unevolved mutants
mnm_wasps Places a high number of wasp nests. Terraforms the lab.
mnm_leech_plants Places leech plants all around the lab
mnm_slimes Places a small number of slimes that will eventually get out of control as slimes tent to do
mnm_shadows 12% chance to place a Wraith on every overmap tile
mnm_triffids Places lots of triffids and terraforms the lab. Rare
mnm_fungaloids Places lots of fungaloids. Lab gets terraformed eventually
mnm_migo Places mig patrols
mnm_tindalos Places a hound of tindalos on overmap lab tile with 25% chance. 1% chance to place an aditional star-crowned hound. Very rare
mnm_yrax Spaws neutral yrax bots inside the lab. Very rare

Testing

Visited most variants of lab by manually setting parameters.

github-actions[bot] commented 1 week ago

Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.

Click to expand * Yrax **triakis** * **triakis** remains

This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.

Hints for adding a new word to the dictionary * If the word is normally in all lowercase, such as the noun `word` or the verb `does`, add it in its lower-case form; if the word is a proper noun, such as the surname `George`, add it in its initial-caps form; if the word is an acronym or has special letter case, such as the acronym `CDDA` or the unit `mW`, add it by preserving the case of all the letters. A word in the dictionary will also match its initial-caps form (if the word is in all lowercase) and all-uppercase form, so a word should be added to the dictionary in its normal letter case even if used in a different letter case in a sentence. * For a word to be added to the dictionary, it should either be a real, properly-spelled modern American English word, a foreign loan word (including romanized foreign names), or a foreign or made-up word that is used consistently and commonly enough in the game. Intentional misspelling (including eye dialect) of a word should not be added unless it has become a common terminology in the game, because while someone may have a legitimate use for it, another person may spell it that way accidentally.