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

Combat exoskeleton update #68758

Merged
merged 88 commits into from
Apr 20, 2024

Conversation

BalthazarArgall
Copy link
Contributor

@BalthazarArgall BalthazarArgall commented Oct 19, 2023

Summary

Content "Rework exoskeletons"

Purpose of change

While combat exoskeletons are "functional" at the moment I think they have a few big issues:

  • They don't seem to be based of any actual exoskeleton and don't actually give any of the advantages that real life exoskeletons bring, like increased carry weight, and instead reduce their own encumbrance.
  • They don't seem to be lore accurate, they're using materials that should be exclusive to Rivtech products like Inert Hyperweave. The field combat exoskeleton is also less encumbering when on than the hyper advanced RM13 despite them being released at roughly the same time.
  • Their values are either old or were unbalanced from the start and some are straight up inconsistent or absurd. The regular combat exoskeleton is warmer than the others for no reason and the armor values are silly, 100% coverage, on every material, including rigid ones, with a thickness of 15mm.

While a single one of these issues may only require tweaking some values, I think that at this point it would be easier to completely rework them.

Those were only examples, basically I aim to bring exoskeleton up to modern standards regarding armor, fix their inconsistencies and add some features to them.

Describe the solution

Before describing my implementation, I would like to put a disclaimer: exoskeletons IRL while under development for military applications are not meant to be used in combat in any capacity, the existence of "combat exoskeletons" is fictional and while I tried to keep my implementation grounded in reality using real life examples and common sense the very concept of them needs to be accepted as such.

I will now give an overview of the changes I've made to combat exoskeletons:

  • Exoskeletons are now separated into their protective suit which includes the exoskeleton itself, and their armor, which are ablative armor pieces that you are meant to attach to the exoskeleton:
  • Exoskeletons now give bonus carry weight, this bonus scales off the user original carry weight and as such represent actual exoskeletons ability to "enhance" their user's strength. They still reduce their own encumbrance when active.
  • Exoskeleton armors have been modernized, they have gaps, use believable materials and layering but keep the original feel and intent of making the user near bulletproof with the heaviest armor.
  • Power usage have been drastically lowered but have been kept higher than their rivtech counterpart.
  • Exoskeleton helmets have been removed and replaced by the exoskeleton suit covering the head and allowing head armor to be equipped.
  • Exoskeleton frames have been removed, you can now equip backpacks and items in the strapped layer in general.
  • The skintight layer is now free so you can wear underwear or glasses inside an exoskeleton.
  • Exoskeleton generators have been removed, I just don't think they make a lot of sense given the existence of military plutonium batteries that could keep exoskeletons active for nearly an entire day.
  • Added some recipes to reinforce the now existing gaps in exoskeleton armor with chainmail, this is mainly aimed at melee survivors for which those kind of modifications make sense, this doesn't otherwise increase the protection values of the other parts and costs a couple of encumbrance points.
  • Slightly increased exoskeleton drop rates in TCLs, I feel like exoskeletons have been kind of forgotten due to their state and no modern content have them as reward, adding to that the rarity of TCLs I think it's fair to have the only place spawning them doing so with a bit more reliability.
  • Encumbrance values of exoskeletons/armors have been increased. The old values are insane with the light exoskeleton having literally no encumbrance and the regular one having as much as the RM13. They lightest combination is now slightly more encumbering than the RM13.
  • Exoskeleton suits now provide cooling similar to nomad gear when on, unlike nomad gear this climate control only cools the user, heating should be entirely unneeded.
  • Exoskeletons are now called as such in their ids, I couldn't remove all mentions of power armors but I removed most of them, this should reduce confusion when dealing with them in the code.

There's other minor features that I didn't mention like the ability to put MOLLE attachments on the torso armor for example.

Describe alternatives you've considered

  1. Remove combat exoskeletons altogether since they're not realistic but it would be a bit of a loss given their iconic nature and cool value.
  2. Some of the life support features of the exoskeleton suits should be able to be turned on and off when not needed, they should also consume gas filters and ice for the cooling system, this will come in a future PR.

Testing

Spawned, equipped and turned on every exoskeleton with different armors. I may have missed broken stuff and there is always a possibility that I may have missed something when copy pasting my jsons from my game directory to my github folder.

Additional context

This is my first PR but I'm confident I can do it. I also aim to update this description as I am working on the PR to match the changes done as well as adding some context to the changes made. I would like to mention @Drew4484 as I'm basically finishing what he started in #61486.

Edit: well, this took me a while, I went through a lot of concepts, ideas balance changes, a broken laptop and more. I'm sorry it took that long but I think working on this PR was a great learning experience, I'm pretty sure future PRs will take me less time, I think I now have a pretty good idea of what belongs or not in the game and how it should be implemented.

Here's a table of most balance-relevant values for the updated exoskeletons and their armor:

Exoskeletons Heavy Medium Light
Weight 13 Kg 13 Kg 13 Kg
Encumbrance (Off) 30 30 30
Encumbrance (Off) 18 14 10
Carry weight multiplier 1.8 1.6 1.4
Power usage 200 W 175 W 150 W
Armor Heavy Medium Light
Weight (total) 33.3 Kg 26.6 Kg 20 Kg
Encumbrance 8 6 4
Blunt Prot 74.6 52.6 30.6
Cut Prot 75.8 53.8 31.8
Bullet Prot 68 53 38

Updated json flags to accommodate for future items
Exoskeleton helmets serve no function anymore
@github-actions github-actions bot added [JSON] Changes (can be) made in JSON new contributor labels Oct 19, 2023
@BalthazarArgall BalthazarArgall mentioned this pull request Oct 19, 2023
14 tasks
@Drew4484
Copy link
Contributor

Drew4484 commented Oct 19, 2023

@BalthazarArgall Thanks for picking this up, shoot me a message on Discord if you run into any issues or questions. Are you going to do all the suits? My main goal was the armor plating and power supplies, in the write-up for the rest I was going to leave the existing pockets/storage intact. The power generation part is automatic now based on fuel type, and the stuff like strength bonuses should be easy effects.

@github-actions github-actions bot added astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Oct 19, 2023
BalthazarArgall and others added 3 commits October 20, 2023 00:57
Still very much WIP but the abstract exoskeleton item should give an idea of what I'm going for.

Also implemented abstract item for armor parts.
@BalthazarArgall
Copy link
Contributor Author

BalthazarArgall commented Oct 19, 2023

@Drew4484

I am indeed going to do all the suits. I'll change the PR comment to answer all these question and go more in depth with my plans but basically I planned pretty much the same. You can already check the updated power_armor.json commit to get a preview of the changes.

On a side note, it's actually uncanny, I was thinking about how I would rework the exoskeletons a couple months back and when I checked Github to actually do it I saw your PR and you had pretty much all the same ideas. Even down to the possibility to modify the utility exoskeleton into a makeshift combat exo. (Not that surprising actually, the concept is epic).

@github-actions github-actions bot added the Items: Armor / Clothing Armor and clothing label Oct 19, 2023
…BalthazarArgall/Cataclysm-DDA into CombatExoskeletonUpdate"

This reverts commit 7b9b9b6, reversing
changes made to 3d13b2a.
@github-actions github-actions bot added Mods Issues related to mods or modding Map / Mapgen Overmap, Mapgen, Map extras, Map display Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies Mods: Magiclysm Anything to do with the Magiclysm mod Mods: Xedra Evolved Anything to do with Xedra Evolved Mods: Mind Over Matter labels Oct 20, 2023
@Drew4484 Drew4484 removed Mods Issues related to mods or modding Map / Mapgen Overmap, Mapgen, Map extras, Map display Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies Mods: Magiclysm Anything to do with the Magiclysm mod Mods: Xedra Evolved Anything to do with Xedra Evolved Mods: Mind Over Matter labels Oct 20, 2023
Definitive weight and volume for exoskeleton armor parts
@github-actions github-actions bot added Mods Issues related to mods or modding Map / Mapgen Overmap, Mapgen, Map extras, Map display labels Oct 24, 2023
@BalthazarArgall
Copy link
Contributor Author

@Drew4484 I already sent a DM your way through Discord so this is redundant but I really need some clarifications here. I just can't find your comments, where are they?

Copy link
Contributor

@Drew4484 Drew4484 left a comment

Choose a reason for hiding this comment

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

See comments

data/json/items/armor/power_armor.json Outdated Show resolved Hide resolved
data/json/items/armor/power_armor.json Outdated Show resolved Hide resolved
data/json/items/armor/combat_exoskeleton.json Outdated Show resolved Hide resolved
data/json/items/armor/combat_exoskeleton_armor.json Outdated Show resolved Hide resolved
data/json/flags.json Outdated Show resolved Hide resolved
data/json/items/armor/combat_exoskeleton.json Outdated Show resolved Hide resolved
data/json/items/armor/combat_exoskeleton.json Show resolved Hide resolved
data/json/items/armor/combat_exoskeleton.json Show resolved Hide resolved
data/json/items/armor/combat_exoskeleton.json Show resolved Hide resolved
data/json/recipes/armor/combat_exoskeleton_armor.json Outdated Show resolved Hide resolved
@BalthazarArgall
Copy link
Contributor Author

@Drew4484 Perfect, thank you very much.

BalthazarArgall and others added 4 commits April 11, 2024 11:13
Applied Drew suggestion for salvaged exoskeleton description

Co-authored-by: Drew4484 <[email protected]>
remove environmental flags from salvaged exoskeleton

Co-authored-by: Drew4484 <[email protected]>
@github-actions github-actions bot removed the BasicBuildPassed This PR builds correctly, label assigned by github actions label Apr 11, 2024
@BalthazarArgall
Copy link
Contributor Author

@Drew4484 While we wait for anid to give their opinion, can you tell me if the PR is in a good state after this last round of changes?

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
  • You turn the exoskeleton on.\n>>Initiating boot sequence…\n//Loading DoubleOS v1.38…\n//Loading calibration profile…\n//Activating atmospheric filtration…\n//Activating liquid cooling…\n//Activating sound dampeners…\n>>Boot successful.
  • You turn the exoskeleton on.\n>>Initiating boot sequence…\n//Loading DoubleOS v2.86…\n//Loading calibration profile…\n//Activating atmospheric filtration…\n//Activating liquid cooling…\n//Activating sound dampeners…\n>>Boot successful.
  • You turn the exoskeleton on.\n>>Initiating boot sequence…\n//Loading DoubleOS v3.51…\n//Loading calibration profile…\n//Activating atmospheric filtration…\n//Activating liquid cooling…\n//Activating sound dampeners…\n>>Boot successful.

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 BasicBuildPassed This PR builds correctly, label assigned by github actions label Apr 12, 2024
@Drew4484
Copy link
Contributor

@Drew4484 While we wait for anid to give their opinion, can you tell me if the PR is in a good state after this last round of changes?

I wasn't able to do the playtest I wanted to this weekend but will ASAP.

@BalthazarArgall
Copy link
Contributor Author

@Drew4484 No worries, take your time. 👍

@Drew4484
Copy link
Contributor

@Drew4484 No worries, take your time. 👍

This looks good to me, it's a huge step forward.

@Maleclypse Maleclypse merged commit ebdd7b9 into CleverRaven:master Apr 20, 2024
27 checks passed
@Zireael07
Copy link
Contributor

Whoa, great to see it made it in!

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 [C++] Changes (can be) made in C++. Previously named `Code` Code: Tests Measurement, self-control, statistics, balancing. Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. Game: Achievements / Conducts / Scores Player goals and how they are tracked. 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 Mechanics: Enchantments / Spells Enchantments and spells Mods: Dark Days of the Dead Anything related to the DDotD mod (classic style zombies) Mods: Magiclysm Anything to do with the Magiclysm mod Mods: Mind Over Matter Mods: Xedra Evolved Anything to do with Xedra Evolved Mods Issues related to mods or modding Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies new contributor NPC / Factions NPCs, AI, Speech, Factions, Ownership Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants