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

[Aftershock] Gene Clinics #79197

Merged
merged 10 commits into from
Jan 17, 2025

Conversation

QuillInkwell
Copy link
Contributor

Summary

Mods "[Aftershock] Add Gene Clinics Mapgen"

Purpose of change

Now that we have Genetech it would be nice if there was mapgen where it could be found or looted instead of only buying it from Port Augustmoon. The Exoplanet also just needs all the Mapgen it can get.

Describe the solution

Add Mercurial Gene Clinics: Shops where colonists could purchase and undergo Genetech treatments.

image
The first floor is heavily inspired by Mobile Phone stores with a bit of Fashion store mixed in. The street sidewalk is lined with ad mirrors. The front of the structure is lined with glass showcases full of ads and and Genetech mannequins. Painted plastic figures display prominent genetic alterations and mutant friendly fashions.

At the front door theirs a sign welcoming you into the clinic and sputtering some corpo tag lines. Just past the Airlock is a small waiting area with a check in desk. Beyond that is an open floor with multiple customer service desks to sit down clients with sales reps.

There is also a small utility closet to store Mutant compatible EVA gear for people gaining mutations that would prohibit continued use of whatever EVA gear they came in with.

The first floor is extremely likely to spawn with a decent number of Moxies.

image
The second floor is much more inspired by the Augmentation Clinic. Straight off the stairs are 3 recovery wards for clients. Across from that are two dressing rooms for clients to doff their EVA gear before procedures. There is also another public bathroom for clients in the recovery ward. At the end of the hallway is a small storage room to hold client's personal effects while they under go gene treatments.

Down the side hall is the Employee breakroom and locker room. I went with a pretty sizable breakroom since I imagine this store mostly employees a Genetech-Augmented human workforce. Primarily to better sell the product they are offering. The Life support room is tucked in next to the breakroom.

Opposite to the storage closet is a security gate that leads to Gene-Editing lab stairwell. A small interior security turret sits on the other side. Since it's not currently possible even if you had the keycard (That doesn't spawn currently) the turret won't despawn. The door requires either hacking or a Mercurial Master key.

The second floor is also highly likely to spawn a large group of Moxies.

image
The third floor is the Gene-Editing Lab. Round the stair well and down the main hall is a guaranteed spawn of at least a "Moderately Dangerous" robot enemy. If you are lucky it will be a Sentinel or Laser bot. But if the games hate you you might get one of Wraitheons Humaniform milbots. So bring a big gun and probably a shield. And some anti-robot weapons for good measure. Seriously they don't play.

The Operating theatres spawn off the side of the Mainhall. Each one spawns with an inactive Gene-editor (Even if the power is on, but we can change that if we need to). Each Theatre is protected by a keycard. There is a small chance for low risk robots to spawn in the Theatres.

Opposite to the operating Theatres is the drone storage and Maintenance closet. There is a small chance for low risk drones to spawn here. The room is protected by a Keycard. The Maintenance closet has been deliberately left empty for candlebury's use in a later PR.

Down the sidehall are two Doctor's offices for Genetech Operators. And across that is Gene-Vault. The Genevault is protected by a keycard and stores some disposable Genetech on the shelves. The shelves spawn useful worker and combat traits far less often. Further in the vault is an electronic safe that stores a much larger amount of Genetech. The Genetech in the safe uses the same trait weighting as Port Augustmoon's vendor. Though it still primarily spawns disposable Genetech with a small chance for some Re-usable.

There is also an inactive sentinel on a charger locked behind a pane of reinforced glass. In the future if you fail at cracking the safe badly enough we hope to have it destroy the Genetech stored inside and unleash the killer robot. Currently this is not implemented.

(Variants):
The Map can spawn with power on or off as all Aftershock structures I've added.
The Map can spawned looted or unlooted. The looted version will have all the valuable items stripped out. Security doors will be cut open. Trash will be littered everywhere. Robots will not spawn (but still moxies.) Even the food and suit lockers will be emptied. And of course the gene vault will be totally raided and the safe open. The Gene-Editors spawn a custom gutted version that has all the good scrap removed from it's bash and deconstruct. It's also written have being completely ravaged for parts.

The spawn rate on the looted variant is 60:40 favoring unlooted.

Describe alternatives you've considered

I considered expanding the "ravaged" variations to include the Drone chargers. Making a completely looted variant of the furniture. But left that out for now. Not sure if the Drone charger actually gives very valuable loot or not.

As mentioned above it's actually quite trivial to make the Gene editor spawned powered if the building has power. But I opted against this as I am not sure if that would be too op. Maybe the buildings backup power is enough lights but nothing else? It would explain why powered buildings don't have heat running.

I did consider making even the inactive version pretty busted too, but the robot you are asked to fight is no chump so the reward feels somewhat adequate.

I did mention wanting to do a ruined version. But again I find I am not totally sure how to execute on that. It was also not entirely made clear if there are ruined structures inside the inner city or not. So for now that ball was kicked down the road. I might try ruining structures as part of larger PR in the future. If that's desirable, someone let me know.

I did consider reducing the difficulty of the location. I originally added the guaranteed murder bot spawn because I thought the talon was guaranteed in the Aug clinic. But it's not. So technically with it's interior turret and murder bot the Gene Clinic is actually dramatically harder to raid then the Aug clinic. But I kind of think that maybe the Aug Clinic should just be harder in general as well. So somebody tell me if this configuration is too punishing for the reward or not please!

Testing

Loaded in a world. Spawned structures and tested both parameters worked. Teleported to naturally occuring structures: verified the structures spawning as expected. Verified monsters spawning where expected in amounts expected. Eyeballed the item groups to vaguely appropriate values. Tried killing some of the robots in the new monster group. Can confirm: Am in great amounts of pain.

Did notice the Wraitheon Aegis is broken right now. Need to write an issue for that as well. Left it in the group anyway.

Additional context

Raw Tiled Map pre-Export
image
image
image

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Mods Issues related to mods or modding Map / Mapgen Overmap, Mapgen, Map extras, Map display Spawn Creatures, items, vehicles, locations appearing on map Monsters Monsters both friendly and unfriendly. Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. Mods: Aftershock Anything to do with the Aftershock mod labels Jan 16, 2025
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Jan 16, 2025
Copy link
Contributor

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

Click to expand
  • A life-size painted plastic figure of a person displaying prominent genetic alterations. Commonly used as part of Mercurial Ad campaigns intended to sell the public on Genetech treatments.
  • Deactivated Mercurial Resequencer
  • Genetech display mannequin
  • Mercurial Gene Clinic: Welcome to the better you. Genetech: Embrace the next evolution.
  • Ravaged Mercurial Resequencer

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.

@PGR-14
Copy link

PGR-14 commented Jan 17, 2025

Oh HELL yeah.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jan 17, 2025
@Maleclypse Maleclypse merged commit 9925761 into CleverRaven:master Jan 17, 2025
28 checks passed
@QuillInkwell QuillInkwell deleted the aftershock_gene_clinic branch January 17, 2025 15:43
b3brodie added a commit to b3brodie/Cataclysm-DDA that referenced this pull request Jan 18, 2025
* Make storage unit pallete and array of objects

All of the other JSON in data/json is.

* Gun variants: Better common token & dupe checking

Require at least 3 letters for common tokens, with some explicit
exceptions. It might be worth going to 4 letters, but going to 3 cleaned
up some issues.

Also make the dupe check an actual error (resulting in test failure)
than just a silent one.

The guns caught by the dupe check are allowed as separate by the variant
criteria, but it may be being too lenient there and they should instead
be combined.

Fix the errors that surfaced.
- two guns had 16" and 20" barrels, name the longer one long-barreled
- Two revolvers (chiappa_rhino and colt_python) were named the same,
  name the python to indicate it looks like a old west revolver
- Name the BLR magazine with a common identifier to the the gun
- Give the FN57 an identifier (FN)
- Add pistol to BAD_IDENTIFIERS, so the USP identifier is detected

Both the FN57 and USP pistol were using "pistol" as the identifier.
The BLR was using "ing".

* Sort gun variant script valid identifier list

So it's stable and looks nicer.

* Remove some unused CBM snippets

* Reuse built clang-tidy plugin across the shards

* makes lit candle more distinct

* Update NPC.md

* Initial commit

* Fire action accounts for all kinds of shoulder straps

I've noticed only "adjustable strap" works with the fire action to drawn
weapon, and only with default format (hanging like backpack). Happens
that code checks for that specific item. Solution is to check for a flag
instead, and so works with all kinds of attachments

* initial commit

* A couple small C++20 fixes

* Add versioning to vcpkg setup

* make xedra translocators examinable in faction territory

* Set SDL_HINT_APP_NAME for tiles

See https://wiki.libsdl.org/SDL2/SDL_HINT_APP_NAME

* [Xedra Evolved] Add `fey_magick` magic type (CleverRaven#79113)

* Initial commit

* Add NO_SPELLCASTING to flags too

* Focus the default selection in popups

* [Magiclysm] Biomancy is disturbing (CleverRaven#79117)

* Initial commit

* Add pain effects to some spells

* Reduce amount of pain caused

* Fix scroll name

* Fix ClangBuildAnalyzer workflow

* [MoM] Fix Mind-sight goggles special vision sprite (CleverRaven#79119)

* Extended description window shows potential deconstruction and bash yields (CleverRaven#79107)

* Basic addition of deconstruction yields to extended description

* Deduplicate and add skill info

* Add bash yields replacing the Smashable tag

* Add the extended description keybind text to the look around window

* Less lazy formatting

* [Xedra Evolved] Increase mana cost on Arvore mana-using traits (CleverRaven#79096)

* Remove ghc/filesystem polyfill now that we are on C++17 (CleverRaven#79092)

* Remove ghc/filesystem shim now that we are on C++17

* fixies

* astyle

* teach clang-tidy about <filesystem>

* Battery compartment mod can use medium storage batteries (CleverRaven#79091)

* Update toolmod.json

* Lint

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* [MoM] Fix Leukocyte Accumulation class (CleverRaven#79123)

* Initial commit

* Add magic class

* remove const from distance_limit

* [Xedra Evolved] Fix treesung baselard recipe (CleverRaven#79131)

* Extract special vision descriptions for translation (CleverRaven#79108)

* Extract special vision descriptions for translation

* Add includes

* Add origin arguments

* Attempt to appease flake8

* Missed iterating an array

* Fix typo

* Our flake8 makes me want to commit war crimes

* Fix various flake8 errors

* Weekly Changelog 2025-01-06 to 2025-01-13 (CleverRaven#79127)

* Weekly Changelog 2025-01-06 to 2025-01-13

* Apply suggestions from code review

---------

Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>

* {CR} Adds three new lore log snippets! (CleverRaven#79058)

* new lore log snippets (draft)

the lore log snippets are one of my favorite things to be featured in cataclysm, and I wanted to write some of my own!

* Update e_logs.json

* Add three new lore log snippets

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* lint changes

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

* replace 3 spaces with 2 spaces

---------

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>

* Weekly Changelog 2024-12-30 to 2025-01-06 (CleverRaven#78977)

* Weekly Changelog 2024-12-30 to 2025-01-06

* Apply suggestions from code review

---------

Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* Fix Irradiant weapon attack

* Move refugee center start from isolationist to its own scenario (CleverRaven#79140)

* Change to start outside refugee center entrance

* Move refugee center start to its own option

* Starting on path by entrance

* use test monsters in shotgun tests (CleverRaven#79141)

* use test monsters

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Don't try to GENERATE typed coordinates (CleverRaven#79137)

* Don't try to GENERATE typed coordinates

* Adjusted according to comments

* [MoM] Add null grenades (CleverRaven#79147)

* Initial commit

* Add expended grenades

* Add snippet

* Change id to avoid confusion with _null terrain etc

* Create user mods dir automatically. (CleverRaven#79057)

* mod manager

* Update src/mod_manager.cpp

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [Magiclysm] Fix werewolf aura (CleverRaven#79151)

* Initial commit

* Fixes

* typified a-f

* [Magiclysm] Rename 'Introduction to the Divine' to 'The Limits of Magical Recovery' (CleverRaven#79153)

* Initial commit

* Itemgroup changes

* Update data/mods/Magiclysm/items/spellbooks.json

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* Aftershock: Genetech Mutation system or Genetically engineered Catgirls. (CleverRaven#79128)

* Aftershock Genetech

* Apply suggestions from code review

Co-authored-by: Marc <altairre.atsu@gmail.com>

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Marc <altairre.atsu@gmail.com>

* [Aftershock] Add human++ genemods (CleverRaven#79149)

* Add genemods

* Add hobbies

* Add Genemod: Beauty

* Fix errors

* Spelling

* [Aftershock] UICA Shuttle Bases (CleverRaven#79144)

* Add UICA Shuttlebases to the Exo-Planet

* Lint

* Add a Quartermaster NPC. They can be bribed to sell you UICA gear and supplies.

* Lint

* Add Lynx Explorer Vehicle, Quartermaster has less stuff to sell, Shuttlebase spawns ground vehicles

* Add Vehicle Repair group stub

* Bump up Bribe to $3000

* Rewrite some Quartermaster dialog

* Please test gods

* Test gods please, I beg

* Correct Shuttlebase to Shuttle Base

* [ Xedrea Evolved ] Gracken Legs first tier (CleverRaven#79122)

* Legs first tier

Update harvest_monster_hunter_gracken.json

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update data/mods/Xedra_Evolved/items/gracken_trait_improvements.json

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* Sort docs into subfolders

* update paths to moved docs

* better name for LORE_FAQ doc, as suggested by Kevin (thanks!)

* [MoM] Concentrating on powers at higher Nether Attunement has a chance of backlash (CleverRaven#79163)

* Initial commit

* Check for backlash on concentration breaking too.

* Change backlash messages to not reference unleashing powers

* Nether Attunement vitamin at 15 or higher, not powers maintained at 15 or higher

* Spelling

* Temporary script to automate this

* Remove meaningless weight fields

* Fix compile error, remove unneeded string initialisation, correct translation, don't write required mutation string if we're about to overwrite it with incompatible bionics

* Update skyscraper_lab_modular.json

* monstergroups "name" -> "id" in /data/json

* Commit the script so out of repo + personal mods can use it

* monstergroups "name" -> "id" in /data/mods

* Update deserialisation

* Get annoyed at flake8

* Put the script in the wrong folder like a numpty

* Fix MSVC build with lld linker

* Add an ignorable error and legacy load

* flake8 is rood

* Change C++ ids called "name" to something better too

* Rename doc/COMPILING/ -> doc/c++/

* Remove string spawn item overloads (CleverRaven#79173)

* Remove evil overloads

* Deal with fallout

* Rename map:: get_global->get_abs, bub_from_abs->get_bub, omt_from_abs->get_omt (CleverRaven#79167)

* Renamed map:: getglobal->get_abs, bub_from_abs->get_bub, omt_from_abs->get_omt

* astyle

* [Magiclysm] Remove duplicate religious professions (CleverRaven#79162)

* Update professions.json

* Redirect Lost Faith to vanilla professions, add books

* Reformat item field?

* Update data/mods/Magiclysm/scenarios.json

* Add scenario EoC

* Remove debug message

* Kick tests

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* [ Xedra Evolved ] Fix Renfield Drops (CleverRaven#79166)

* typify game.h/cpp

* use typed point in android code

* Use sub_bodypart_str_id::NULL_ID() where appropriate

* Add attack_vector_id::NULL_ID()

* typify g - lightmap

* [MoM] Update and simplify Nether Attunement backlash EoC (CleverRaven#79175)

* More updates

* More edits

* Updating remaining effects

* Initial commit

* Initial commit

* Expand bodypart_str_id::NULL_ID() usage where appropriate

* Deal with /tests fallout

* Initial commit

* please clang

* Add CMake function do debug targets

* Add targets with dynamic linking

* Use VCPKG dynamic linking triplet

* Obey linter

* Apply review suggestions

* Fix Debug configuration linking with MSVS + LLD

* Fix zlib linking

* Prevent initialising an activity actor's type every turn it's active

* [MoM] Fix Research Facility having an oldlab underneath (CleverRaven#79191)

* Initial commit

* Implement suggestions from code review

* fix not being able to move items with charges with AIM (CleverRaven#79183)

* fix can move items with charges

* astyle

---------

Co-authored-by: marilynias <marilynias57+github@gmail.com>

* [Aftershock] Gene Clinics (CleverRaven#79197)

* Implement Gene Clinic variant 1

* Renovate Clinic to Add service room. Add Murder Bots and Moxies. Implement powered down gene editor

* Add most of the item spawn groups

* Add item groups, Monster Spawns, and Mapgen Nests

* Add trash to the ground in looted variant. Adjust spawn rates of looted vrs unlooted to 60-40 in the players favor

* Geneclinics also spawn without the Exo-Planet

* Remove redudant spawn of the larger genetech disposable group, low tier already spawns worker and combat rarely

* Mapgen now correctly murders plants when power is out

* String fixes for test gods

* Slime body can't hold cbms (CleverRaven#79086)

* [MoM] Switch mi-go psions to copy-from, giver the mindrender a power-based telepathic attack (CleverRaven#79199)

* Initial commit

* Kick tests

* [Aftershock] Ensure Outfitter always has at least one full EVA suit (CleverRaven#79218)

* Outfitter always has at least one full suit.

* Lint

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update fema_evacuee_1.json (CleverRaven#79203)

---------

Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com>
Co-authored-by: Sab Pyrope <99945024+Uwuewsky@users.noreply.github.com>
Co-authored-by: moxian <moxian@users.noreply.github.com>
Co-authored-by: gettingusedto <78019001+gettingusedto@users.noreply.github.com>
Co-authored-by: EliadOArias <2144359102@qq.com>
Co-authored-by: Standing-StormStanding-Storm git config --global user.name Standing-Storm git config --global user.name Standing-Storm <dorchadas@gmail.com>
Co-authored-by: Andrew Rosa <dev@andrewhr.io>
Co-authored-by: GuardianDll <antisim009@gmail.com>
Co-authored-by: Dee Anzorge <d.anzorge@gmail.com>
Co-authored-by: Standing-Storm <120433252+Standing-Storm@users.noreply.github.com>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>
Co-authored-by: gisaku33 <jjboyd21@gmail.com>
Co-authored-by: Kevin Granade <kevin.granade@gmail.com>
Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: 7erracotta <89712754+7erracotta@users.noreply.github.com>
Co-authored-by: John Candlebury <johncandlebury@gmail.com>
Co-authored-by: Further Reading <roy.healy87+gh@gmail.com>
Co-authored-by: osuphobia <78858975+osuphobia@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PatrikLundell <j.patrik.r.lundell@gmail.com>
Co-authored-by: EArias <152629049+EliadOArias@users.noreply.github.com>
Co-authored-by: Marc <altairre.atsu@gmail.com>
Co-authored-by: akrieger <akrieger@users.noreply.github.com>
Co-authored-by: mqrause <martin@qrause.de>
Co-authored-by: alef <alef@users.noreply.github.com>
Co-authored-by: marilynias <98028585+marilynias@users.noreply.github.com>
Co-authored-by: marilynias <marilynias57+github@gmail.com>
Co-authored-by: Risuga <oosyrag@gmail.com>
Maleclypse added a commit that referenced this pull request Jan 18, 2025
* adjust dreaming spell xp requirements

* remove old xp eoc

* Add max book learn value and use for dream magic type

* method definition fix

* add casting_xp_formula_id which calculates how much xp is gained per cast and add a simple use for dream magic

* add failure cost percent field

* dream spells use 10% mana on failure

* add failure_eocs field to magic_type

* add failure_exp_percent and make dream magic give full xp on failure

* astyle

* documentation

* Fix Conflict (#2)

* Make storage unit pallete and array of objects

All of the other JSON in data/json is.

* Gun variants: Better common token & dupe checking

Require at least 3 letters for common tokens, with some explicit
exceptions. It might be worth going to 4 letters, but going to 3 cleaned
up some issues.

Also make the dupe check an actual error (resulting in test failure)
than just a silent one.

The guns caught by the dupe check are allowed as separate by the variant
criteria, but it may be being too lenient there and they should instead
be combined.

Fix the errors that surfaced.
- two guns had 16" and 20" barrels, name the longer one long-barreled
- Two revolvers (chiappa_rhino and colt_python) were named the same,
  name the python to indicate it looks like a old west revolver
- Name the BLR magazine with a common identifier to the the gun
- Give the FN57 an identifier (FN)
- Add pistol to BAD_IDENTIFIERS, so the USP identifier is detected

Both the FN57 and USP pistol were using "pistol" as the identifier.
The BLR was using "ing".

* Sort gun variant script valid identifier list

So it's stable and looks nicer.

* Remove some unused CBM snippets

* Reuse built clang-tidy plugin across the shards

* makes lit candle more distinct

* Update NPC.md

* Initial commit

* Fire action accounts for all kinds of shoulder straps

I've noticed only "adjustable strap" works with the fire action to drawn
weapon, and only with default format (hanging like backpack). Happens
that code checks for that specific item. Solution is to check for a flag
instead, and so works with all kinds of attachments

* initial commit

* A couple small C++20 fixes

* Add versioning to vcpkg setup

* make xedra translocators examinable in faction territory

* Set SDL_HINT_APP_NAME for tiles

See https://wiki.libsdl.org/SDL2/SDL_HINT_APP_NAME

* [Xedra Evolved] Add `fey_magick` magic type (#79113)

* Initial commit

* Add NO_SPELLCASTING to flags too

* Focus the default selection in popups

* [Magiclysm] Biomancy is disturbing (#79117)

* Initial commit

* Add pain effects to some spells

* Reduce amount of pain caused

* Fix scroll name

* Fix ClangBuildAnalyzer workflow

* [MoM] Fix Mind-sight goggles special vision sprite (#79119)

* Extended description window shows potential deconstruction and bash yields (#79107)

* Basic addition of deconstruction yields to extended description

* Deduplicate and add skill info

* Add bash yields replacing the Smashable tag

* Add the extended description keybind text to the look around window

* Less lazy formatting

* [Xedra Evolved] Increase mana cost on Arvore mana-using traits (#79096)

* Remove ghc/filesystem polyfill now that we are on C++17 (#79092)

* Remove ghc/filesystem shim now that we are on C++17

* fixies

* astyle

* teach clang-tidy about <filesystem>

* Battery compartment mod can use medium storage batteries (#79091)

* Update toolmod.json

* Lint

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* [MoM] Fix Leukocyte Accumulation class (#79123)

* Initial commit

* Add magic class

* remove const from distance_limit

* [Xedra Evolved] Fix treesung baselard recipe (#79131)

* Extract special vision descriptions for translation (#79108)

* Extract special vision descriptions for translation

* Add includes

* Add origin arguments

* Attempt to appease flake8

* Missed iterating an array

* Fix typo

* Our flake8 makes me want to commit war crimes

* Fix various flake8 errors

* Weekly Changelog 2025-01-06 to 2025-01-13 (#79127)

* Weekly Changelog 2025-01-06 to 2025-01-13

* Apply suggestions from code review

---------

Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>

* {CR} Adds three new lore log snippets! (#79058)

* new lore log snippets (draft)

the lore log snippets are one of my favorite things to be featured in cataclysm, and I wanted to write some of my own!

* Update e_logs.json

* Add three new lore log snippets

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* lint changes

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>

* Update data/json/snippets/e_logs.json

* replace 3 spaces with 2 spaces

---------

Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>

* Weekly Changelog 2024-12-30 to 2025-01-06 (#78977)

* Weekly Changelog 2024-12-30 to 2025-01-06

* Apply suggestions from code review

---------

Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* Fix Irradiant weapon attack

* Move refugee center start from isolationist to its own scenario (#79140)

* Change to start outside refugee center entrance

* Move refugee center start to its own option

* Starting on path by entrance

* use test monsters in shotgun tests (#79141)

* use test monsters

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Don't try to GENERATE typed coordinates (#79137)

* Don't try to GENERATE typed coordinates

* Adjusted according to comments

* [MoM] Add null grenades (#79147)

* Initial commit

* Add expended grenades

* Add snippet

* Change id to avoid confusion with _null terrain etc

* Create user mods dir automatically. (#79057)

* mod manager

* Update src/mod_manager.cpp

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [Magiclysm] Fix werewolf aura (#79151)

* Initial commit

* Fixes

* typified a-f

* [Magiclysm] Rename 'Introduction to the Divine' to 'The Limits of Magical Recovery' (#79153)

* Initial commit

* Itemgroup changes

* Update data/mods/Magiclysm/items/spellbooks.json

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* Aftershock: Genetech Mutation system or Genetically engineered Catgirls. (#79128)

* Aftershock Genetech

* Apply suggestions from code review

Co-authored-by: Marc <altairre.atsu@gmail.com>

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Marc <altairre.atsu@gmail.com>

* [Aftershock] Add human++ genemods (#79149)

* Add genemods

* Add hobbies

* Add Genemod: Beauty

* Fix errors

* Spelling

* [Aftershock] UICA Shuttle Bases (#79144)

* Add UICA Shuttlebases to the Exo-Planet

* Lint

* Add a Quartermaster NPC. They can be bribed to sell you UICA gear and supplies.

* Lint

* Add Lynx Explorer Vehicle, Quartermaster has less stuff to sell, Shuttlebase spawns ground vehicles

* Add Vehicle Repair group stub

* Bump up Bribe to $3000

* Rewrite some Quartermaster dialog

* Please test gods

* Test gods please, I beg

* Correct Shuttlebase to Shuttle Base

* [ Xedrea Evolved ] Gracken Legs first tier (#79122)

* Legs first tier

Update harvest_monster_hunter_gracken.json

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update data/mods/Xedra_Evolved/items/gracken_trait_improvements.json

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* Sort docs into subfolders

* update paths to moved docs

* better name for LORE_FAQ doc, as suggested by Kevin (thanks!)

* [MoM] Concentrating on powers at higher Nether Attunement has a chance of backlash (#79163)

* Initial commit

* Check for backlash on concentration breaking too.

* Change backlash messages to not reference unleashing powers

* Nether Attunement vitamin at 15 or higher, not powers maintained at 15 or higher

* Spelling

* Temporary script to automate this

* Remove meaningless weight fields

* Fix compile error, remove unneeded string initialisation, correct translation, don't write required mutation string if we're about to overwrite it with incompatible bionics

* Update skyscraper_lab_modular.json

* monstergroups "name" -> "id" in /data/json

* Commit the script so out of repo + personal mods can use it

* monstergroups "name" -> "id" in /data/mods

* Update deserialisation

* Get annoyed at flake8

* Put the script in the wrong folder like a numpty

* Fix MSVC build with lld linker

* Add an ignorable error and legacy load

* flake8 is rood

* Change C++ ids called "name" to something better too

* Rename doc/COMPILING/ -> doc/c++/

* Remove string spawn item overloads (#79173)

* Remove evil overloads

* Deal with fallout

* Rename map:: get_global->get_abs, bub_from_abs->get_bub, omt_from_abs->get_omt (#79167)

* Renamed map:: getglobal->get_abs, bub_from_abs->get_bub, omt_from_abs->get_omt

* astyle

* [Magiclysm] Remove duplicate religious professions (#79162)

* Update professions.json

* Redirect Lost Faith to vanilla professions, add books

* Reformat item field?

* Update data/mods/Magiclysm/scenarios.json

* Add scenario EoC

* Remove debug message

* Kick tests

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* [ Xedra Evolved ] Fix Renfield Drops (#79166)

* typify game.h/cpp

* use typed point in android code

* Use sub_bodypart_str_id::NULL_ID() where appropriate

* Add attack_vector_id::NULL_ID()

* typify g - lightmap

* [MoM] Update and simplify Nether Attunement backlash EoC (#79175)

* More updates

* More edits

* Updating remaining effects

* Initial commit

* Initial commit

* Expand bodypart_str_id::NULL_ID() usage where appropriate

* Deal with /tests fallout

* Initial commit

* please clang

* Add CMake function do debug targets

* Add targets with dynamic linking

* Use VCPKG dynamic linking triplet

* Obey linter

* Apply review suggestions

* Fix Debug configuration linking with MSVS + LLD

* Fix zlib linking

* Prevent initialising an activity actor's type every turn it's active

* [MoM] Fix Research Facility having an oldlab underneath (#79191)

* Initial commit

* Implement suggestions from code review

* fix not being able to move items with charges with AIM (#79183)

* fix can move items with charges

* astyle

---------

Co-authored-by: marilynias <marilynias57+github@gmail.com>

* [Aftershock] Gene Clinics (#79197)

* Implement Gene Clinic variant 1

* Renovate Clinic to Add service room. Add Murder Bots and Moxies. Implement powered down gene editor

* Add most of the item spawn groups

* Add item groups, Monster Spawns, and Mapgen Nests

* Add trash to the ground in looted variant. Adjust spawn rates of looted vrs unlooted to 60-40 in the players favor

* Geneclinics also spawn without the Exo-Planet

* Remove redudant spawn of the larger genetech disposable group, low tier already spawns worker and combat rarely

* Mapgen now correctly murders plants when power is out

* String fixes for test gods

* Slime body can't hold cbms (#79086)

* [MoM] Switch mi-go psions to copy-from, giver the mindrender a power-based telepathic attack (#79199)

* Initial commit

* Kick tests

* [Aftershock] Ensure Outfitter always has at least one full EVA suit (#79218)

* Outfitter always has at least one full suit.

* Lint

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update fema_evacuee_1.json (#79203)

---------

Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com>
Co-authored-by: Sab Pyrope <99945024+Uwuewsky@users.noreply.github.com>
Co-authored-by: moxian <moxian@users.noreply.github.com>
Co-authored-by: gettingusedto <78019001+gettingusedto@users.noreply.github.com>
Co-authored-by: EliadOArias <2144359102@qq.com>
Co-authored-by: Standing-StormStanding-Storm git config --global user.name Standing-Storm git config --global user.name Standing-Storm <dorchadas@gmail.com>
Co-authored-by: Andrew Rosa <dev@andrewhr.io>
Co-authored-by: GuardianDll <antisim009@gmail.com>
Co-authored-by: Dee Anzorge <d.anzorge@gmail.com>
Co-authored-by: Standing-Storm <120433252+Standing-Storm@users.noreply.github.com>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>
Co-authored-by: gisaku33 <jjboyd21@gmail.com>
Co-authored-by: Kevin Granade <kevin.granade@gmail.com>
Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: 7erracotta <89712754+7erracotta@users.noreply.github.com>
Co-authored-by: John Candlebury <johncandlebury@gmail.com>
Co-authored-by: Further Reading <roy.healy87+gh@gmail.com>
Co-authored-by: osuphobia <78858975+osuphobia@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PatrikLundell <j.patrik.r.lundell@gmail.com>
Co-authored-by: EArias <152629049+EliadOArias@users.noreply.github.com>
Co-authored-by: Marc <altairre.atsu@gmail.com>
Co-authored-by: akrieger <akrieger@users.noreply.github.com>
Co-authored-by: mqrause <martin@qrause.de>
Co-authored-by: alef <alef@users.noreply.github.com>
Co-authored-by: marilynias <98028585+marilynias@users.noreply.github.com>
Co-authored-by: marilynias <marilynias57+github@gmail.com>
Co-authored-by: Risuga <oosyrag@gmail.com>

* clang stuff

---------

Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com>
Co-authored-by: Sab Pyrope <99945024+Uwuewsky@users.noreply.github.com>
Co-authored-by: moxian <moxian@users.noreply.github.com>
Co-authored-by: gettingusedto <78019001+gettingusedto@users.noreply.github.com>
Co-authored-by: EliadOArias <2144359102@qq.com>
Co-authored-by: Standing-StormStanding-Storm git config --global user.name Standing-Storm git config --global user.name Standing-Storm <dorchadas@gmail.com>
Co-authored-by: Andrew Rosa <dev@andrewhr.io>
Co-authored-by: GuardianDll <antisim009@gmail.com>
Co-authored-by: Dee Anzorge <d.anzorge@gmail.com>
Co-authored-by: Standing-Storm <120433252+Standing-Storm@users.noreply.github.com>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
Co-authored-by: Procyonae <45432782+Procyonae@users.noreply.github.com>
Co-authored-by: gisaku33 <jjboyd21@gmail.com>
Co-authored-by: Kevin Granade <kevin.granade@gmail.com>
Co-authored-by: David Seguin <davidseguin@live.ca>
Co-authored-by: 7erracotta <89712754+7erracotta@users.noreply.github.com>
Co-authored-by: John Candlebury <johncandlebury@gmail.com>
Co-authored-by: Further Reading <roy.healy87+gh@gmail.com>
Co-authored-by: osuphobia <78858975+osuphobia@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PatrikLundell <j.patrik.r.lundell@gmail.com>
Co-authored-by: EArias <152629049+EliadOArias@users.noreply.github.com>
Co-authored-by: Marc <altairre.atsu@gmail.com>
Co-authored-by: akrieger <akrieger@users.noreply.github.com>
Co-authored-by: mqrause <martin@qrause.de>
Co-authored-by: alef <alef@users.noreply.github.com>
Co-authored-by: marilynias <98028585+marilynias@users.noreply.github.com>
Co-authored-by: marilynias <marilynias57+github@gmail.com>
Co-authored-by: Risuga <oosyrag@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Map / Mapgen Overmap, Mapgen, Map extras, Map display Mods: Aftershock Anything to do with the Aftershock mod Mods Issues related to mods or modding Monsters Monsters both friendly and unfriendly. Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants