Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(balance): military locations overhaul, part 1 #4051

Merged
merged 14 commits into from
Jan 6, 2024

Conversation

chaosvolt
Copy link
Member

@chaosvolt chaosvolt commented Jan 4, 2024

Purpose of change

I've been meaning to rebalance and update military locations for a while, and I decided to tackle the hard part first and hit the military base with the rebalancing stick first. Main reasons are:

  1. It's the biggest location of the ones on my initial todo list (though oh god I haven't even looked at the aircraft carrier to see what kinda improvements it could use auuuugh)
  2. It's by FAR the most janky, with its item spawns having some serious Specific Use Storage style problems with being a giant cornucopia of low-variety spawns. Worse than the SUS itemgroups in fact because it spams an absolute fuckload of spawns consisting of a single tile having a giant pile of just one item, the tile next to it having its own giant pile of another single specific itemgroup, and so on until anyone trying to read the mapgen file develops a migraine and gives up.
  3. One of the changes planned entails making it so this is the main place you go to obtain military mechs, instead of easily swiping them from bunkers, especially now that mechs are actually relatively worth bothering with. Since starting with bunkers would de-facto remove military mechs from the game until I got around to re-adding them here, it made more sense to add the reward room containing them to military bases and remove them from bunkers later when I actually get around to overhauling bunkers.

Describe the solution

Changes and additions to the location:

  1. In general, updated the standard buildings to use brick exterior walls and regular walls for the interior instead of using exclusively plaster walls for the whole building, and traded wooden doors for metal doors on the exterior as well. Windows also favor barred windows instead of just plain house windows.
  2. Updated mapgen palette accordingly, removing the old-fashioned "| and - are both t_wall just used differently for aesthetics" to free up using one for exterior walls and the other for interior walls, likewise setting aside tiles for elevator and elevator controls.
  3. Axed calls to empty itemgroup mil_base_mess_hall.
  4. Overhauled the contents of the warehouse shelves. Less use of giant piles of single item spawns in favor of appropriate usage of fitting itemgroups, at a saner amount on average. A lot of the itemgroup changes below were made to make better use of itemgroups for this location in particular, adding in some items that were spawned as explicit items here but not present in the relevant itemgroups (also readily done for the armory and motor pool locations below).
  5. Overhauled the interior of the armory building. As above its item spawns have been massively tweaked to sanity-check them and not use a fuckload of single-item spawns called en masse. Additionally, the actual munitions have been moved belowground (see below), allowing for the storage shelves to be placed a bit more neatly and in a less cramped manner. Basement access also adjusted a bit to fit in better.
  6. Likewise adjusted the motor pool building. As noted below the overall shape is a bit better suited to large vehicles, but the easternmost garage has also been converted from being primarily a storage room to a vehicle elevator, providing access to an area as outlined below.
  7. Added calls to GROUP_ROBOTS_MIL inside the warehouse, armory, and command center. Removed any zed spawns in those buildings where present, instead making it so these points of interest require contending with potentially more dangerous robots, who should be isolated enough from the zeds outside that they'll be less likely to infight and make things too easy. :3
  8. Tweaked the shape of the motor pool and armory buildings a bit to fit some minor changes in layout, updating the roof layouts accordingly. The motor pool area additionally has better width and placement for its garage doors, adjusted to more comfortably fit the widest sorts of vehicles that may get shoved into them (especially if using mods that add beefier military vehicles like Tankmod: Revived).
  9. Added storage underneath the motor pool area, accessible via a working elevator. Contains some of the supplies previously held in the garage as well as part of the location's main reward: a military mech locked up in a sealed room with turrets (also containing the alloy and hard plates previously spawned topside).
  10. Likewise, added a lower level to the armory that holds most of the actual weapons and munitions the armory spawned, requiring one to swipe an ID card or break in and contend with turrets to access. In addition to the greatly reworked variety of itemgroup spawns (with vastly less spam of individual calls to specific items), it includes some actual use of the previously lab-exclusive military itemgroup along with being where the battery for the above mech is stored.
  11. Adjusted how the command center bunker is accessed, beefing up the doors a bit and locking it behind another card reader with turrets. In the future I'm considering adjusting the command center bunker to have a chance of having an NPC holdout spawn, either instead of or hidden away from the zombies that spawn down there.
  12. A few other tweaks to item spawns here and there, like the motor pool fire extinguishers not being individually placed in every locker, the contents of the laundry room being adjusted a bit, etc. I started running out of steam with just how much needed to be hit with the sanity-checking stick so I've kinda overlooked some areas that seemed lower priority.

Related itemgroup changes:

  1. Reworked clothing_military_distribution to work for spawning assorted relevant clothing items.
  2. Added a lil variety to clothing_soldier_shirt, including tank top variations.
  3. Expanded clothing_tactical_leg and clothing_tactical_torso to include relevant storage items previously spawned individually in the warehouse.
  4. Defined military_ballistic_armor for specifically the common everyday vests and helmets to be seen in military storage.
  5. Defined itemgroup mil_armor_electronics for certain other spawns to use, includes the radios, UPS spawns, etc.
  6. Bundled some spawns in mil_armor to make use of relevant child itemgroups at fitting weights, to streamline the group and make places that call this group more consistent with places that call the relevant sub-itemgroups.
  7. Adjusted contents of pwr_armor so that it uses the same general odds of getting a given variant of power armor as dropped by armored zombies. Additionally has decent odds of pairing a suit with its resepective helm.
  8. Adjusted relative weights of pwr_armor_acc to favor the accessories that'd likely be used the most, the hauling frame and mag carrier.
  9. Merged some spawns in mil_accessories into calls to relevant sub-itemgroups as done with mil_armor.
  10. Did some similar tweaks to mil_armor_torso using appropriate sub-itemgroups.
  11. Added salted meat slices to dry_goods as it was notably not used in any fitting itemgroup but mainly spawned via explicit item spawns in the military base warehouse.
  12. Fixed bots itemgroup calling for obsoleted inactive bots.
  13. Added ATGM gun and ammo to guns_launcher_rocket as most fitting place for it.
  14. Added field repair manual to book_military as it was the only noteworthy book in the military base's warehouse not already in that itemgroup.
  15. Defined itemgroup mil_bedding for use in relevant places, merging some spawns in army_bed into a call to this itemgroup.
  16. Made use of mil_armor_electronics in itemgroups mil_hw and helicopter.
  17. Overhauled contents of inactive_bots_milspec to have a more logical spread between utility bots, hacks, security bots, and turrets.
  18. Reworked contents of supplies_mechanics_milspec to incorporate more military-related vehiclepart items that were present in the military base motor pool but previous absent from the itemgroup, and stripped out some spare part items called for in other related groups.
  19. Defined itemgroups nested_m2browning and everyday_m2browning, adding them to guns_rifle_milspec and carried_guns_rifle_milspec as they were notably absent from those groups.

Monster and monstergroup changes:

  1. Defined monstergroup GROUP_ROBOTS_MIL for use in military locations. In particular this will also see some use in military outposts and helipads in the future, for now it's used most notably in this location. Includes a few non-military security bots like the lower-tier dispatch bot and riot bots, but excludes stationary and flying bots.
  2. Changed molebots from having DIGS to CAN_DIG so they can actually properly spawn and path on hard surfaces.

Scenario changes:

  1. Updated starting location of Overrun scenario, changing it from only spawning you in the warehouse (which can now be infested with dangerous robots, on top of easy access to potentially reducing some of the challenge) to instead adding your choice of spawning in one of the barracks buildings, the mess hall, or the communications center.
  2. Fixed Overrun not counting as a CITY_START scenario despite its overmap special having a minimum city size required to spawn.
  3. Tweaked scenario description to not refer to getting stuck in the warehouse specifically.

Changes to mods:

  1. Removed overrides to military base in No Hope because no goddamn it, I'm not dealing with this mess again. >:C
  2. Removed injection of classic bots into military zed monstergroups in No Hope because (see right below) Aftershock does this too.
  3. Changed injection of classic bots in Aftershock from the old military monstergroups to only being present in the new itemgroup, at a slightly increased weight.

Describe alternatives you've considered

Banishing this awful fucking mess of a location to the shadow realm because holy shit this was so much work to update and there still will likely be some areas that could use improvement.

Notably, while I tweaked the contents of the motor pool workshops a bit it could potentially use a more intimate look, likewise I didn't look at the items in the infirmary, mess hall, communications center, command center, command center bunker, nor the barracks buildings.

Testing

  1. Checked affected files for syntax and lint errors.
  2. Load-tested and spawned in, looked at various locations to confirm they didn't feel too potat.
  3. Spawned in a few more times to confirm new starting locations all seem to work right, in particular testing barracks location multiple times.
Screenshots:

Warehouse:
image

Motor pool, showing a hint of the adjusted primary garage and the elevator in the secondary garage:
image

Armory, now with more danger:
image

A hint of how much harder it'll be to break into the command center's bunker:
image

Basement level of the armory building and how it now connects to the tunnels:
image

Garage space and storage under the motor pool, showing the mech spawn as well:
image

Additional context

This took so fucking long to finish up. Having to bounce it back and forth between my desktop and laptop didn't help, been a busy past week or two.

Eventually though the military outpost, helipad, and bunker will be overhauled too...

Checklist

@github-actions github-actions bot added the JSON related to game datas in JSON format. label Jan 4, 2024
@github-actions github-actions bot added the mods PR changes related to mods. label Jan 4, 2024
Copy link
Member

@scarf005 scarf005 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scarf005 scarf005 merged commit 6bff212 into cataclysmbnteam:main Jan 6, 2024
9 checks passed
@chaosvolt chaosvolt deleted the mil-base-rework branch January 6, 2024 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JSON related to game datas in JSON format. mods PR changes related to mods.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants