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] Add small Enforcer Station #74471

Merged
merged 15 commits into from
Jun 18, 2024

Conversation

QuillInkwell
Copy link
Contributor

@QuillInkwell QuillInkwell commented Jun 12, 2024

Summary

Mods "Adds a police station to the Aftershock Exoplanet. As well as content supporting that."

Purpose of change

Continuing to work on adding new locations to the Aftershock Excoplanet.

Describe the solution

Add the Enforcer Station. A two story prefab that serves as a base of operations for Mercurial Corporate Security or Enforcers. Of note the station has a garage which can sometimes spawn vehicles as well as police bots(broken or inactive). An armory that may or may not be looted. An evidence lockup. And cyber security department that might spawn hacking equipment.

This PR makes a number of other supporting changes and additions listed below:
Lore:
Enforcers: Mercurial Corporate Security force.
Net Breacher: Basically Netrunners from cyberpunk. Currently refers to cyber security specialists in the employ of the Enforcers.

Item groups:
afs_police_armor: For use in armor specifically meant to be layered over police winter gear. Currently just refers to civilian ballistic gear and spaceship crew armor.

afs_wintersuit_police_advanced: For use if the police ever get their own winter exosuit. Currently just refers to the Magellan suit.

afs_police_evidence_locker: Currently just differs to the existing evidence locker group. Added in case we want to add to or complete redo that group for AFS themed items.

afs_police_bot_storage: Inactive and broken police robots that can spawn in police robot charging docks.

afs_police_hacker_gear: Currently just refers to the programming item group with the addition of VR headsets. If better or police specific hacking tools get created this group is ready to receive them.

afs_police_armory: Currently just a civilian armory with Tazers throw in.

afs_police_anti_robot_armory: Spawns an EMP rifle or ammo for said rifle. I imagine robots and cyborgs are enough of a common place threat the police would regularly stock the means to deal with them.

afs_swat_emp: Used by police anti robot armory. EMP rifles for police use should be added here.

afs_anti_robot_grenades: Contains any grenades I found specifically for dealing with robots.

Terrain and Furniture

New Keycard and Reader:
Enforcer Master card added as well as a new card reader for use in enforcer locations.

New Net Breacher Recliner:
Just a fancy arm chair inspired by the chairs you often see Netrunners using in Cyberpunk. Breaks into some basic electronic and neural io scrap.

Security Gate:
Closed Security Gate and Security gate frames added. Basically just a really tough metal door and a frame just for it. (For use in ter_fur_transforms to open and close it.)

Security Panel:
Security access point that when hacked opens a nearby security gate.

EOC Changes
General Hacking EOC updated to take a radius in which to perform it's ter_fur_transform. For use in opening larger security gates.

Monster and Item Renaming
Eyebot, Riotbot, and Policebot have all had "afs" pre-pended to their names to evade the migration happening on the base game that automagically replaces them and their items with other things.

Vehicles
Enforcer patrol car added which is just an atomic version of the existing police car. However it does also have one trunk replaced with a robot cargo. Since Enforcers probably deploy with robots often enough to have a spot for them in their car.

Light Cycle: Super bike converted to use an electric engine and given a police light. Does not have a mini-reactor, instead more intended for limited use in town then recharge back the station.

The structure itself:
image
The first floor has an airlock that opens to a small reception lobby. Beyond that are several dedicated office spaces. The patrol room which borders the armory and garage. A server room next to Cyber Security department. Which houses Net Breacher recliners and several consoles. And finally the garage itself which can house police vehicles and robots.

The armory can spawn either broken into with the door removed all loot taken, or unlooted and secured.
The garage can spawn open with no vehicles or closed. If closed it can spawn either up to 2 Light cycles or a patrol car. No vehicles are guaranteed to spawn so it can also just be closed and empty.

Like my other structures the lights can be on or off which applies to the whole structure.
This structure can either spawn with moxies on both floors or rampant police robots.

image
The second floor opens to life support systems near the stairs. On one side of the floor you have the holding cells and an interview room. A little bit down past that is the Evidence lock up and small gym. Next to the gym is robot repair workshop for servicing police bots. Though it could probably also double for forensics on recovered robots and hardware. On the far side of the holding cells is the breakroom, lockers, bathrooms, and one final office. The lockers can spawn the advanced winter suites that enforcers might use. The roof area has some random bits of decoration/life support.

Describe alternatives you've considered

I considered not adding the evidence lockup group and just directly referring to the original.
I greatly considered adding a variant of the Magellan suit for police use but left that up to someone else.
Same for the addition of a police electrohack.

I attempted to use a special garage keycard reader for the garage door. Instead of adding the security gate and security panel. But I found that while swiping your card always used the settings set in the JSON. Hacking the read always produced the same result, a 3 radius change of metal door locked to metal door unlocked. Which was not ideal for these circumstances. I also considered using a computer to do the job but found none of the hardcoded actions fit my needs properly.
I also considered using some kind of winch. Or creating a new furniture that executed a specific eoc for opening the door. I also considered having no door at all. But I wanted players to have to work to get the car out because I'm mean.

In the end expanding the EOC is what I settled on. Since security gates were planned anyway. I don't know if I would consider this the optimal way in which they should be implemented. But for now it at least serves as a way to get the dang garage door open.

When editing the EOC I considering also allowing the ability to specify a ter_fur_transform to use. I opted not to since in this case it was not needed.

I considered allowing the hardware lab and Net breacher department to be swapped out for other rooms using nested map gen. However I had no other ideas for rooms so I opted against of doing so.

I wanted to change out more of the floors but I couldn't think of much else that would fit so metal it is.

Testing

Loaded into the world and verified the structure was spawning.
Verified items spawning and roughly balanced item spawns to something that felt okay.
Verified all variations of nested map gen spawning.
Verified vehicles spawning in the garage.
Tested the vehicles a bit to ensure they work.
Tested unlocking intermodal crates to ensure they had not broken.
Tested unlocking reinforced display cases to ensure they had not broken.
Tested the security gate to verify it works with the new hacking changes.

Additional context

image
The original design for this structure is almost two weeks old now.

@Procyonae
Copy link
Contributor

Why are you renaming a bunch of ids (and without migration)?

@github-actions github-actions bot added Mods Issues related to mods or modding [JSON] Changes (can be) made in JSON Map / Mapgen Overmap, Mapgen, Map extras, Map display Vehicles Vehicles, parts, mechanics & interactions 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. Items: Ammo / Guns Ammunition for all kinds of weapons and these weapons themselves Mods: Aftershock Anything to do with the Aftershock mod Items: Armor / Clothing Armor and clothing EOC: Effects On Condition Anything concerning Effects On Condition labels Jun 12, 2024
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
  • Issued only to the highest echelons of Mercurial corporate security, these cards provide unfettered access to all enforcer prefab facilites built before the year 2152. A lucrative find for any salvor on Salus IV.
  • The security gate recedes into the cieling.

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.

@github-actions github-actions bot added the astyled astyled PR, label is assigned by github actions label Jun 12, 2024
@QuillInkwell
Copy link
Contributor Author

Why are you renaming a bunch of ids (and without migration)?

I ran into a problem where the robot items kept getting replaced by other items. Upon digging into the problem what I found was that the Eyebot, Copbot, and Riotbot are removed from the base game and being moved to Aftershock. And while this is happening there is active migration on the base game that is turning any and all of those items into broken lab defense bots.
When I asked what to do I was prompted that the best solution was to rename the ids of the items so as to avoid them turning into other things while the migration occurs.

As to why I didn't apply my own migration: Truthfully I did not think to do that and will go in do that now!

QuillInkwell and others added 2 commits June 11, 2024 18:35
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>
@Procyonae
Copy link
Contributor

Oh right I literally agreed that was the only real solution earlier, goldfish memory ;D

@github-actions github-actions bot added the json-styled JSON lint passed, label assigned by github actions label Jun 12, 2024
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Jun 12, 2024
@John-Candlebury
Copy link
Member

Pretty cool work here.

@John-Candlebury John-Candlebury merged commit 668e0d9 into CleverRaven:master Jun 18, 2024
20 of 24 checks passed
@QuillInkwell QuillInkwell deleted the afs_enforcer_station branch June 18, 2024 04:20
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 EOC: Effects On Condition Anything concerning Effects On Condition Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. Items: Ammo / Guns Ammunition for all kinds of weapons and these weapons themselves Items: Armor / Clothing Armor and clothing [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 Vehicles Vehicles, parts, mechanics & interactions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants