About The Pull Request
This PR adds medical wounds, new forms of injuries that people can suffer that cause debilitation and complications, and often require more than what can be found in a medkit to treat. But let's be honest, big complicated walls of text about medical changes make people's eyes glaze over easily- so I created a handy infograph to explain the basics!
Also there's a full guide here!
dreamseeker_2020-04-18_20-42-19.png
The infograph may not be fully up to date with the specifics of the PR's status, but it'll be updated along with major changes so people have something to use as a crash course for familiarizing themselves with how wounds function. I also have another infograph with all 9 of the possible initial wounds coming, and will be up soon. You can also find the longform design doc here with more info on the broad details, including descriptions of treatments: hackmd whee
What this does
There's a lot to cover, but here's the bullet points of the main features and changes:
Getting lots of damage on a limb can result in wounds, with more damage causing worse wounds. These can range from dislocated joints and minor cuts to compound fractures and fourth degree burns, and can affect you in different ways depending on what bodypart they're applied to (namely with broken bones).
You can damage individual bodyparts on clothing (only jumpsuits for now) through the use of lasers and sharp weapons. Bodyparts that reach max damage are considered "shredded" and will not apply any protection for that zone until it is repaired with cloth. If all zones are disabled, the entire piece of clothing is shredded and unwearable until repaired with 3 cloth. Jumpsuits give a small amount of wound protection, and since sharp weapons and lasers generally get extra wound bonuses against bare flesh, even a plain jumpsuit provides decent protection from a few laser shots or scalpel stabs.
Lasers gain a powerful niche versus unarmored/lightly armored carbons! As noted above, lasers can shred clothing and burn away zones of jumpsuits in 2 shots each, after which the target's bare flesh is exposed (barring other clothing), and lasers excel at dealing burn wounds against uncovered skin. Think big, nasty charring!
Bleeding is now totally limb based, and gauze is as well. Bleeding is also 95% cut wound based, meaning sharp weapons make you bleed rather than just having 40+ brute on a limb.
The more wounds and damage you get on a bodypart, the easier it'll be to gain more severe wounds. Wounds are arranged from Moderate, to Severe, to Critical in increasing severity, and you'll generally have to suffer the lesser ones before getting the worse ones.
dreamseeker_2020-05-15_03-15-59.png
Above: Someone having an incredibly bad day from bloodloss
dreamseeker_2020-05-04_22-29-29.png
Above: Scars from healed wounds
ShareX_2020-05-15_06-55-20.png
Above: Actual combat involving someone's head getting cracked
Here's a quick, if non-exhaustive, list of things I have left to do before I consider it feature complete
Finish adding treatments for each wound type/severity (mostly surgeries/triage for critical wounds)
Add second winds for bad injuries to give the victim a chance to get away
Flesh out severe & critical injuries in general
Find sprites for the bonesetter, bone gel, and anything else that might be needed
Add the medical items for treating the less severe wounds to the station
Polish code and remove any redundancies I left behind
Quick balance pass to make sure nothing is horribly abuseable
Why It's Good For The Game
Adds a flexible new system for representing damage on carbons with injuries that can be treated in different ways. Moderate wounds from getting toolboxed or sliced with a scalpel can usually be treated by a buddy or even by yourself with the right tools, but getting flayed with a fireaxe or a laser gun emptied into your bare skin may require extra attention or even surgery in bad cases! Also makes laser guns cooler and more like 40k lasguns that can flash fry people (cool!)
This should also make spessmen more resilient and harder to kill outright, while still adding consequences and complications to getting hurt. Wounds aren't immediately fatal, but they can do things like slow down interactions, deal damage over time through infections, and generally make you more fragile until fixed. They can also give you a "second wind" on being applied that gives you a small adrenaline boost (or whatever) to help disengage and escape immediate danger.
Changelog
🆑 Ryll/Shaps
add: Introduces medical wounds, new injuries that can happen to fleshy carbons when they sustain lots of damage on a bodypart. There's quite a lot of change here, but you can read the guide at: https://tgstation13.org/wiki/Guide_to_wounds and an extended changelog is available here: https://hackmd.io/l_FI9b3tSqa_woDadewJXA
add: Introduces scars and temporal scarring! Healing a wound leaves a scar behind that can be seen by examining someone twice rapidly, and if Temporal Scarring is enabled in character prefs, surviving a round with scars will save them to be granted at roundstart another round! Let your body tell stories!
tweak: Bleeding is now fully bodypart-focused, and 95% of bleeding comes from cut wounds from sharp weapons. Gauze is applied on a limb-by-limb basis, and helps staunch bloodflow rather than totally stop it. Notably, you no longer bleed just from having 40+ brute damage on a limb.
del: Organic bodyparts are no longer disabled at maximum damage, but are easier to cause wounds to
add: O2 medkits in emergency lockers have been replaced with new emergency medkits with basic tools for diagnosing and treating wounds and basic damage
tweak: Herapin now rapidly increases bleeding on all open cuts, rather than causing bleeding by itself. The more cuts on the target, the more it will affect them.
tweak: Neckgrab table slams now hit the targeted limb rather than just the head, with a large chance to dislocate or break a bone
tweak: Sharp weapons and burning weapons can now shred zones on jumpsuits, disabling protection on that limb. Damaged clothes can be repaired with cloth.
tweak: Slaughter demons now deal less raw damage, but gain the ability to cause cut wounds, which becomes more powerful with each attack on a humanoid but resets when bloodcrawling.
/🆑
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.
* Fixes some comments
* Fixes map issue
* Restart lints
* Properly resolves conflicts
* Initial work on tgui conversion for DNA Consoles
* Some initial button logic complete
TODO: Scanner Open button should disable while scanner is locked
TODO: Scramble DNA should disable while on cooldown
* Tabs for the tab God
* Dropdown changes, genetic sequencer modifications
* Mutation and genetic sequencer functionality
Almost complete. Need to implement Advanced Injectors still.
* Mostly done, converted most of genetic makeup code
* Tactical pocket linting
* More changes
* Everything except advanced injectors complete
* First complete alpha version
* Fixed debug/testing change
* Removal of more debugging code
* Fix pulse bug
* Bugbusters
* Fix for accidental changes
* Fix broken genetics disk changes, fix list of lists
* Squash tgui tab-key bugs and clean up attackby
* Code documenting, refactoring, bugfixing, spellcheck
* Documentation and misc bug squashes and runtime error fixes
* Fixes, features and tweaks
* Special check for those who have shuffled off this mortal coil
* New interface concept for console storage
* Mini code refactor
* Massive refactoring of DnaConsole interface (WIP)
- De-spaghettifying of LawyerCode
- Fixed the flex-basis bug, and removed ForcedBox since it's no
longer needed.
- Added a Divider component.
* Implemented requested changes.
Removed list() versions of strings.
Removed used TGUI-exclusive constants from data object. Currently unused ones still remain, can be removed if they're no longer necessary.
Fixed other DM data structures to serialise as JS Arrays instead of Objects.
Minor TGUI logic fixes for various edge cases.
Added some comments in DnaConsole.js outlining some minor notes and TODOs.
* Fixes "Save to X" being disabled.
* Included 2px outline CSS
* Additional minor logic patches
Don't want certain buttons active unless the mutation relation to them is also active
* Makes these transforms use a timer
* Fixed transformation race condition and stuff.
* Mutation source defined in DM. Conditional formatting improvements.
* Custom cache directory with BYOND_CACHE env var
* Fix gene cycler on index of -1
* Framework and TODO for next interface element. Cleared TODO list a bit.
* Fix 1px shift in gene cycle buttons
* Pass raw event with GeneCycler
* More robust combining logic
* Fix some cycler bugs, start working on enzymes
* Conditional highlighting for unsolved mutations and X'd genes.
* Lint for the Lint God
* Enzyme UI and more refactoring incoming
* Finish tgui refactoring, enzymes injectors done
* Whack-a-Bug
* Unlinted. Advanced injectors moved and improved. Implemented disk genetic data readout.
* Partial linting
* Assorted bug fixes
* Remove debugging code
* DNA Consoles are now more conversational. Initial state set.
* Final tweaks, implemented mutation combining, complete?
* Fixes tooltop, re-enables delayed enzyme transfer, cleans up some data params
* 10 Fix a bug, 20 make a bug, 30 goto 10
* The definition of irony
* Don't drink and derive, kids || How I learned to stop coding while drunk and rely on stylemistake to Flex on my formatting.
* uniqBy
* Add support for dropdowns with disabilities.
* Cleanup
* Remove current mutation from combinations
* Dividing
* Document BYOND_CACHE env var
* Outline cleanup
* Declare radiation constants since they were removed in DM
* Combine mutations only after checking for null
* Advanced Injectors actually work now.
* Comment cleanup, DMDOC, stard and end processing at appropriate times
* Pressing Ctrl-S occasionally helps things
* Fix enzyme mutator timeout bug, added injector timeout display.
* Rebuild tgui
* Rebuild tgui
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
About The Pull Request
Examining someone holding a circled hand from using the *circle emote while next to them can now alert said person, and if you don't act fast, they'll bop you! You'll have a split second to move away before this happens. Losing the circle game to a hulk will result in a very forceful bop.
Bopping someone will award an achievement, "HA, GOTTEM"
Also adds COMSIG_PARENT_EXAMINE to carbon and human's examines, cause they never had that set, and adds TRAIT_HULK to being hulk since I forgot to actually give it its own trait when I added said trait in another PR
Why It's Good For The Game
Enhances pranking. It's honestly amazing to me that this functionality wasn't built in when this was first made.
Changelog
cl Ryll/Shaps
add: The *circle emote now has additional functionality! Go prank your friends!
/cl
About The Pull Request
It annoyed me that we have a perfectly good frag grenade item, and a perfectly good shrapnel component, but no crossover episode between the two. This remedies that, and does a lot, lot more.
dreamseeker_2020-03-30_05-01-13.png
dreamseeker_2020-03-30_05-01-26.png
Big points:
Adds new component: pellet_cloud, which can be used by ammo casings, guns, and landmines to spray shrapnel and display aggregate hit messages ("You're hit by 6 buckshot pellets!" vs "You're hit by the buckshot pellet in the X" x6). All gun ammo that shoot multiple pellets now use this component on firing.
Adds stingbangs, premium less-lethal grenades that shoot off lots of stinger pellets, to cargo. Frag grenades are also reworked to have smaller booms, but shoot off lots of shrapnel shards. You can jump on top of these grenades to absorb a portion of the shrapnel to save those around you! There's an achievement for dying this way, called "Look Out, Sir!"
Projectiles can now embed items/shrapnel. Adds .38 DumDum ammo to cargo that does less damage and has negative armor pen, but can embed in people. This is the only ammo that currently embeds.
Bullets can now ricochet off walls, structures, and machinery (harder surfaces are more likely to ricochet). Only standard .38 and Match Grade .38/.357/L6 ammo can ricochet, with Match Grade being much better at ricocheting. You can buy Match Grade .38 from cargo and Match Grade L6 ammo from the nuke uplink, while Match .357 is admin only.
Armor now protects you from harmful embeds, taking the better of the bullet/bomb armor on the affected limb. Armor penetration can modify this of course, and many blunt embeds like stingbangs and DumDum bullets are significantly worse if you have even 1 armor.
Other misc fixes/changes
Refactored the embed element a bunch and fixed it creating new elements for every instance rather than expected bespoke behavior. There are new /obj/item helpers for modifying and adding embedding.
Fixes#49989: Spears can no longer embed in turfs cause their sprite is annoying to me, it's generally harder for most things to embed in turfs
Fixes#49741: New carbon helpers for removing embedded objects
Fixes#46416: Handles embedded objects getting qdel'd or moved while embedded
Renamed the old shrapnel component for RPG loot to MIRV to avoid confusion
Repathed frag grenades from under minibombs to under base grenades, and added explosion vars to base grenades
Why It's Good For The Game
Fixes a bunch of janky design with embeds, adds lots of new avenues for projectile and grenade variety, ricochets and collateral damage are fun!
Changelog
🆑 Ryll/Shaps
add: Adds stingbangs to cargo (and one in the sec vendor premium), premium less-lethal grenades that shoot off a giant swarm of stingball pellets to help incapacitate swarms of people in tight quarters. You can jump on top of a live one to be a hero and absorb a bunch of shrapnel, same with frag grenades. There's even an achievement for dying to a grenade you jumped on!
add: Projectiles can now embed in people! Or at least grenade shrapnel and the new .38 DumDum ammo, now available in cargo, can. DumDum rounds excel against unarmored targets, but are pricey and do poorly against armored targets.
add: Bullets can now ricochet! Or at least, standard .38 and the new .38/L6 Match Grade ammo can. Match Grade ammo is finely tuned to ricochet easier and seek targets off bounces better, and can be purchased from cargo (for the .38) or nuke ops uplink (for the L6), but standard .38 ammo has a chance to ricochet as well.
tweak: Frag grenades now have smaller explosions but shoot off a bunch of devastating shrapnel, excellent for soft targets!
tweak: Shotguns and other multi-pellet guns now print aggregate messages, so you'll get one "You've been hit by 6 buckshot pellets!" rather than 6 "You've been hit by the buckshot pellet in the X!" messages. Bye bye lag!
balance: Armor can now protect against embedding weapons, taking the best of either the bullet or bomb armor for the limb in question away from the embed chance. Some weapons are better at piercing armor than others!
/🆑
* huthtuthuthuthtuhtuthuthuthuthtuthuthuthtuthut
* documents and expands, adds new glove types
* Adds slamming into tables and neatens up throwingdatum handling (+stuff)
* bit less squishy
* adds sprites, offbrands, swaps most combat insuls for tacklers
* adds dolphin and rocket gloves to BEPIS
* changes dna to traits, buffs tackling
* same as last commit but moreso
* updates docs, nerfs stuns
* vending machines, better docs
* window tackles for good measure
* gets window splats working
* polish off
* LAST DAY OF SCHOOL
* getting somewhere
* cleanup one
* cleanup two
* supermatter immunity > HADS
* more fluff
* proper return, compile
* lint
* lint 2 electric boogaloo
* cobby happy
* HADS
* some more changes
* i don't know why this file went rogue
* final fixes, small name change, difficulty up (polish!)
* skog help
* EUREKAAAAAAAAAAAAAAAAAAA
* chelp
* reverts some regenerate limbs changes as they are no longer needed, fully integrates attach limb power
* minor fuck before the big fuck
* the big fuck ALMOST DONE, FINISHING TOUCHES NEEDED
* the big fuck finale
* teenie fuck ;)
* line endings
Co-authored-by: spookydonut <github@spooksoftware.com>
About The Pull Request
Working on detecting type mismatches of parameters for SpacemanDMM and discovered these.
I also checked by hand that all uses of cast() provide a list as the first argument.
* relic file
* Revert "Merge branch 'master' of https://github.com/tralezab/tgstation"
This reverts commit 826916d87b421dbb0ebcfce7fad96e456b6d3674, reversing
changes made to a0f476d874.
* tongue spike, chem spike
* oh god github desktop is shitting and farting
* ahhhh so broken bros
* final commit before recreation
* readds sprites, makes it work and compile
* webs
* sprite readded
* web icon
* cooldown fix
* compile dammit
* review done
* early return
* I HATE SCREAMING
eugh AHGGGHH CGRAHHHG REEOEEERRRREEE
* I'm dumb and I hope this makes me undumb
* I extra dumb
* This is why I should stop webediting and fix my git
* change the delay time
* shortens delay
* Adds sorting to most input() lists.
* Sorted some global lists, added more input sorting
* Should now use correct sort everywhere.
* compiles
* Last fixes.
* Switches out the three billion args of electrocute act for flags
* Adds autodoc to electrocute flags, sets the boolean I removed and tries to fix the ed209 file
* tries to fix ed209 again
* Fixes 209 hopefully
* Finally fixes that darn file
* one final one to fix the diff
* Or i guess i'll just do it myself
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
About The Pull Request
Some mutation changes
Laser eyes and TK now use signals.
species_allowed now uses less lists.
Adds a message when you shoot with laser eyes.
Why It's Good For The Game
New and improved. Click code should be as straight forward as possible.
Changelog
cl
tweak: Laser eyes now generate a message when shot.
code: Cleaned up mutation code.
/cl
* Removes/Moves some weirdly placed variables in martial arts. Splits NO_GUNS and CHUNCKY_FINGERS traits.
* Maybe this should actually compile
* c begone