Fixes critical plane masters improperly not being readded in show_to (#72604)
## About The Pull Request
[Adds support for pulling z offset context from an atom's
plane](9f215c5316)
This is needed to fix paper bins, since the object we plane set there
isn't actually on a z level.
Useful elsewhere too!
[Fixes compiler errors that came from asserting that plane spokesmen had
a plane
var](b830002443)
[Ensures lighting backdrops ALWAYS exist for each lighting
plane.](0e931169f7)
They can't float becuase we can see more then one plane at once yaknow?
[Fixes parallax going to shit if a mob moved zs without having a
client](244b2b25ba)
Issue lies with how is_outside_bounds just blocked any plane readding
It's possible for a client to not be connected during z moves, so we
need to account for them rejoining in show_to, instead of just blocking
any of our edge cases.
Fixing this involved having parallax override blocks for show_plane and
anything with the right critical flags ensuring mobs have JUST the right
PMs and relays.
It's duped logic but I'm unsure of how else to handle it and frankly
this stuff is just kinda depressing.
Might refactor later
[show_to can be called twice successfully with no hide_from
call.](092581a5c0)
Ensures no runtimes off the registers from this
## Why It's Good For The Game
Fixes#72543
Fixes lighting looking batshit on multiz. None reported this I cry into
the night.
## Changelog
🆑
fix: Fixes parallax showing up ABOVE the game if you moved z levels
while disconnected
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* makes masks not render when something is supposed to obscure them (#71199)
## About The Pull Request
fixes#63752
ear sprites are still fucked but whatever
thanks to kapu for helping with this
## Why It's Good For The Game
holys hit
## Changelog
🆑 Kapu420
fix: makes masks not render when something is supposed to obscure them
/🆑
* makes masks not render when something is supposed to obscure them
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Easy's Super Omega "unarmed strike based species var moved to limbs" refractor, unarmed strike striking with specific body parts rather than it just being flavor, and brain based attacking limb selection extra chunky edition. And also bodypart traits.
* Removed all the conflicts, and started converting all the arms and legs to the proper typepaths
* Actually makes the game compile :)
* Makes the maps compile too!
* Early mirror of #71143 because it's more relevant to us
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes some monkey business with monkies trying to give items to mobs with no hands. (#71086)
held_items is only populated if the mob is able to hold things. In this case, lizards (and most simple / basic mobs) don't have hands, so it's just an empty list. Fixed that at the `/mob` level.
Also made the giving logic a little more robust to handle mobs mobs not actually wearing anything as well.
* Fixes some monkey business with monkies trying to give items to mobs with no hands.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles (#69084)
* - Fixes storage mass transfer
- Brings some sanity to storage procs
- Implements a griddle feature that never was
* Uncomment this
* Right-click attack fix
* Scoop fix
* Smartfridges use silent
* Restores some lost checks
* Fixes storage implants
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles
* update modular
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Biddle Verbs: Queues the Most Expensive Verbs for the Next Tick if the Server Is Overloaded (#65589)
This pr goes through: /client/Click(), /client/Topic(), /mob/living/verb/resist(), /mob/verb/quick_equip(), /mob/verb/examinate(), and /mob/verb/mode() and makes them queue their functionality to a subsystem to execute in the next tick if the server is overloaded. To do this a new subsystem is made to handle most verbs called SSverb_manager, if the server is overloaded the verb queues itself in the subsystem and returns, then near the start of the next tick that verb is resumed with the provided callback. The verbs are called directly after SSinput, and the subsystem does not yield until its queue is completely finished.
The exception are clicks from player input since they are extremely important for the feeling of responsiveness. I considered not queuing them but theyre too expensive not to, suffering from a death of a thousand cuts performance wise from many many things in the process adding up. Instead clicks are executed at the very start of the next tick, as the first action that SSinput completes, before player movement is processed even.
A few months ago, before I died I was trying to figure out why games at midpop (40-50 people) had non zero and consistent time dilation without maptick being consistently above 28% (which is when the MC stops yielding for maptick if its overloaded). I found it out, started working on this pr, then promptly died. luckily im a bit less dead now
the current MC has a problem: the cost of verbs is completely and totally invisible to it, it cannot account for them. Why is this bad? because verbs are the last thing to execute in the tick, after the MC and SendMaps have finished executing.
tick diagram2
If the MC is overloaded and uses 100% of the time it allots itself this means that if SendMaps uses the amount its expected to take, verbs have at most 2% of the tick to execute in before they are overtiming and thus delaying the start of the next tick. This is bad, and im 99% sure this is the majority of our overtime.
Take Click() for example. Click isnt listed as a verb but since its called as a result of client commands its executed at the end of the tick like other verbs. in this random 80 pop sybil round profile i had saved on my computer sybil 80 pop (2).txt /client/Click() has an overtime of only 1.8 seconds, which isnt that bad. however it has a self cpu of 2.5 seconds meaning 1.8/2.5 = 72% of its time is overtiming, and it also is calling 80.2 seconds worth of total cpu, which means that more than 57.7 seconds of overtime is attributed to just /client/Click() executing at the very end of a tick. the reason why this isnt obvious is just because the verbs themselves typically dont have high enough self cpu to get high enough on the rankings of overtiming procs to be noticed, all of their overtime is distributed among a ton of procs they call in the chain.
Since i cant guarantee the MC resumes at the very start of the next tick due to other sleeping procs almost always resuming first: I time the duration between clicks being queued up for the next tick and when theyre actually executed. if it exceeds 20 milliseconds of added latency (less than one tenth the average human reaction time) clicks will execute immediately instead of queuing, this should make instances where a player can notice the added latency a vanishingly small minority of cases. still, this should be tm'd
* Biddle Verbs: Queues the Most Expensive Verbs for the Next Tick if the Server Is Overloaded
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Tsu's Brand Spanking New Storage: or, How I Learned To Pass Github Copilot As My Own Code
* Delete storage.dm
* yippee
* shit
* holy shit i am stupid
* more fixes
* fuck
* woops
* Adds a chance for ID cards to be tastefully thick (#67359)
About The Pull Request
Adds a 1% chance for any ID to have a new trait (100% on golden IDs)
This trait adds a special interaction with ID appraisal chips
https://streamable.com/pdu7kj
Why It's Good For The Game
Impressive. Very nice. Let's see the Captain's card.
Changelog
cl
add: Adds a chance for ID cards to be tastefully thick
/cl
* Adds a chance for ID cards to be tastefully thick
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* [DNM] return null in get_item_for_held_index, and not FALSE (#64494)
* return null in get_item_for_held_index, and not FALSE
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Item Pickup Brush-Up (#64095)
* Item Pickup Brush-Up
Moves pickup animation code to items.dm
Removes sleep() from the current pickup animation. This affords it 3 decisecond to animate rather then 1
I believe this was causing the pixel shifting to end early. A 3 decisecond delay is more consistent with the
initial pr, and I think feels better. Maybe 2 tick is better? or 3 tick without any ending lag? not sure.
Adds a drop animation.
Hooks it in to items being removed from a player's hands, or items being transfered to a location. This includes when an item is removed from storage
Pickup animations have always felt somewhat stilted to me, and while I don't want the shake and long leadup included in the initial pr, I'm not even sure you can tell it's happening sometimes as things are now
It's by definition gonna feel a bit different since well, things are changing. I'm open to feedback on the delays here, especilly on the effect for taking things out of your bag. It's not new, but extending the pickup animation by 2 deciseconds really shows it
Lemme know what ya think yeah?
* Adds a random x bias to pickup/drops on the same tile, I think this will help lesson how crummy that can look
Lowers the same tile y shifting significantly, for similar reasons
Adds a Scale(0.7) to the end/start of pickup/drop. I think this makes things look just so much nicer
* Makes pickup scale slightly more before bouncing back to the size drop uses. starts out smaller anyway
* Moves the attack animation to items.dm. Makes it use the attacked atom's plane, which fixes attack animations playing behind mobs. Also makes it offset slightly on the x axis when you're attacking yourself, looks nicer I think
* Item Pickup Brush-Up
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* fixes hyperspace connect_loc_behalf bug (#60231)
turns out my move_stacks var doesnt work asynchronously since this bug made things with connect_loc_behalf runtime on every movement unless you somehow moved it back to the transit turf and off without it doing the runtime special.
(The sleep and hell the whole bit of code in space/Entered was unneeded, since it just happens normally as a part of move. Life is pain) -Lemon
also does misc code improvements i found while investigating ANOTHER c_l_b bug with stacks i found while testing this one, which i did NOT manage to fix unfortunately
* fixes hyperspace connect_loc_behalf bug
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* USB Cables -- Connect circuits to computers/machines (#59345)
* Initial commit
* Sprites, finishing work
* More ways to detach from circuitboards
* Clear TODOs, give bots a button
* Fix qdel loop
* Designs
* It's the bots that have them
* Grammar fix
* Feedback for connecting to circuit directly
* Add USB cable design to basic circuitry
* Better naming
* Feedback
* Fix for new code
* COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY
* span procs
* USB Cables -- Connect circuits to computers/machines
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Renews Maintenance Drones
* And these have conflicts too, but you can't see them
* Skyrat Map Updates (Adding Supermatter Room Area)
Co-authored-by: Jonathan Rubenstein <jrubcop@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Fixes runtimes related to quick equip. (#58043)
Basic sanity and ensure unequip is properly called before equipping again.
* Fixes runtimes related to quick equip.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* You can now put food on plates, and plate no longer materialize out of nowhere as you cook
* Update dish_drive.dm
* aaaaaaaaaaaaaaa
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs (#57263)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds pulling rabbits from top-hats (#56773)
This PR makes it so using a wand on a top-hat makes a rabbit appear in
your hand! Fun! There's a 10% chance that instead of a cute bun you get
angry bees though, but a true performer will soldier on anyway. You can
now also scoop up rabbits in your hands, and scooping animals only
requires one free hand to do so instead of all your hands being free.
* Adds pulling rabbits from top-hats
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Fixes#55112 - Swapping items no longer eats things (#55122)
Quick swapping items no longer hides them in the mobs contents
* Fixes#55112 - Swapping items no longer eats things
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Fixes a few bugs with greyscale stacks. (#54858)
Fixes greyscale floor tiles merging regardless of their materials.
Fixes greyscale floor tiles voiding materials when splitting the stack.
Fixes greyscale floor tile stacks being created with no mats_per_unit and only enough custom materials for a single unit.
Fixes greyscale tile flooring being created with the wrong amount of materials.
Fixes greyscale tile flooring not producing floor tiles/producing floor tiles with 0 units.
* Fixes a few bugs with greyscale stacks.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* [READY] Fixes being able to use items while inside a mech (#54302)
* [READY] Fixes being able to use items while inside a mech
Co-authored-by: Rohesie <rohesie@gmail.com>
* Fix ventcrawling bug I merged (#53704)
#53672 introduced a bug because held_items always has the same number of indexes as the mob has hands
* Fix ventcrawling bug I merged
Co-authored-by: spookydonut <github@spooksoftware.com>
* Optimize stat panel and fix guardian verbs (#53463)
Optimizes stat panel code for better performance, including icon caching and removing some unnecessary processing
Also fixes#53432fix#53381fix#53724
Changelog
add: icons are back on alt clicks
fix: horrible performance from alt clicking turfs with multiple objects
tweak:browser should notify the SS when it's ready to receive data
* Update statbrowser.html
* Apply suggestions from code review
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* hidden = TRUE
* almost ready
* Browser should notify when ready to receive data
* Apply MSO's suggestions
* reset cache if something in it gets deleted
* Fix runtime
* fix my stupid code
* send href_token when adding admin tabs
* fix an issue with cyborg suit topic
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* Optimize stat panel and fix guardian verbs
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* Converted check_obscured_slots() output to bitfield instead of list (#53241)
* Converted check_obscured_slots() output to bitfield instead of list
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
* Grabbing Yourself + Wound Fixes: Take 2 (+Minor Scar Changes) (#52951)
By clicking yourself with grab intent while targeting a limb of yours that's bleeding, you'll "grab" onto it with your free hand to apply pressure. This takes 1.5 seconds to do, takes up a hand while you do so, and applies a slowdown while you're holding it. In return, that limb will bleed 30% less while you're holding it (though it won't clot any faster). This stacks with the 25% reduction in bleeding you get from being horizontal, so laying down clutching your gushing gut while waiting for help is now both thematic and viable!
Other fixes and changes
I also made some other changes to wounds of various importance. Here's a quick list
-Most wound treatments now respect thick clothing/materials, so you can no longer suture slashes through spacesuits.
-Using sutures on slashes and pierces now actually use up sutures, and regen mesh must be opened to treat wounds with
-Infectious zombies (romerol) can now be wounded as intended
-Coagulant has been nerfed again to reduce bleeding less for every wound it's reducing bleeding on. This'll still need more love and attention later, but I need to find a good middle point where medipens are good for bleeding in an emergency without being a way to sidestep any and all bleeding wounds in one go.
-I added a recipe for improvised coagulant in the Wounds 2 PR using baked pulped banana peels and salglu, but then realized that recipe sucked and was overly complicated. You can now drink straight up ground/juiced banana peels to help close up slashes and piercings. Yuckm!
-You can no longer repeatedly disembowel people who have already lost their internal organs
-Whetstones now make things edged sharp rather than pointy sharp, fixing a carryover from when sharpness = 2 used to be accurate sharpness. This'll have the effect of making sharpened weapons less sucky at chopping people apart since slashing is usually more devastating than piercing
I've also made a few tweaks to scars, mostly making them a bit smaller. It now takes twice as much scar severity to reach "absolutely fucked up" when examined, and the other steps have been raised a few points as well. Minor scar examine text is a tad smaller text-wise, and the precise locations for the scars are a bit more procedural as well (more location modifiers like upper/lower/inner/outer wrist/whatever). These changes will hopefully add a bit more variety to the scarring you see on random crew members, since it's pretty easy to hit max examine severity as is.
* Grabbing Yourself + Wound Fixes: Take 2 (+Minor Scar Changes)
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* basic antag items
hey
based
game is on
ree
e
brings back good sprites
eueuuee
eeeeeeeeeeeeeeeeeeee
more
tgui baby
FINALLY
e
Small changes
adds better point s
Finishing touch!
FINISHED
ANTAG FINISHED. FUCKING. FINALLY
grammer
E
E?
* rebuilt tgui
* gamemode fixes
* i love inconsistent var names
* sprootes
* ath review
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Automatic changelog compile [ci skip]
* a shit ton of changes
* Apply suggestions from code review
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* sprootes
* more changes ree
* Fixes and upgrades
* sprootes done
* dmdoc compliance
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* mewtewnew revieww ~~
* e
* Automatic changelog compile [ci skip]
* e
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* autodoc
* E
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* removed Destroy()
* * 0.5
* bugsquash
* e
* changes to ashlord's rite
* e
e
* e?
* the fuck
* adds station wide alerts for ascension events
* fixes an autodoc
* tgui
* e
e
* removes a redundant line of code
* sickly blade is now normal size item
* changes a line of code in flesh
* no revives for ghouls!
* uwu
* Update code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
* E
* E2
* Automatic changelog compile [ci skip]
* Makes eldritch cult into HERETICS
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* unfucks medallions code
* long live list loops
* E
* E
* i love my git crashing
* Magics
* E
* removes TRAIT_GHOUL since it was redundant
* Update code/modules/mob/living/carbon/inventory.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/inventory.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/human/species.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/human/species.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/human/human_update_icons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* fixies uwu
* hopefully i fixed all return ..()
* E
* EEEEEEE
* wormie now is refactored
* removes destroy
* Update code/modules/surgery/bodyparts/bodyparts.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Automatic changelog compile [ci skip]
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* E
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* E?
* E
* one more
* k
* OH SHIT OH FUCK
* replaces ROLE_ECULT with ROLE_HERETIC and fixes preferences
* REE
* fleshy fixes
* fixes summonings
* REE
* texture fix
* fixes a stupid fucking runtime that i noticed coz i forgot people can be borged. FUCK
* grammer
* nullrods can now remove runes
* HOLY SHIT, HOTFIX NERF
* E
* E
* TEMPORARY SOLUTION TO MAKE HERETICS SPAWN NATURALLY
* Update code/modules/antagonists/eldritch_cult/eldritch_antag.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/eldritch_book.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/eldritch_effects.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/eldritch_items.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* SECOND TEMPORARY FIX
* fixes fixes fixes fixes
* i hope this no longer will qdel summons
* E
* please push this asap
* E
* buffs sickly blade to 17 damage and only allowes culties to use it
* Explanations uwu
* examine changes ree
* e
* E
* )
* E
* E
* Ash fix
* changes to mad touch
* replaces e_cult with heretics and fixes protect objective to suceed when someone suicides
* E
* makes worm code use COMSIG_MOVABLE_MOVED
* replaces bad var names
* makes eldritch knowledge an assoc list
* E
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* what the fuck
* the fuck
* fixies
* EEE
* fixes
* e
* fixes
* mansus grasp slight buff
* changes overall changes
* E
* logging
* changes the eldritch armor into a nicer looking kryson robes
* tgui bundle
* QOL sprites and a spell to contract armsy
* SPRITES
* readds rust floors
* Fixes pointed out by anturk
* E
* E
* E
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Cleanup
* Fixes
* E
* EEEEEEEEEEE
* makes heretics a little bit more common
* Update code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* EEE
* eee
* E
* E
* Init
* Makes shit more readable
* h
* e
* E
* wounds compatibility patch
* hnng
* rusty better sprite
* turn
* Apply suggestions from code review
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* E
* further renames e
* E
* JS side
* changes reee
* e
* E
* yeesh
* e
* E
* pr
* e
* E
* changes re
* AAAAAAAAAAAAAA
* e
* antag huud
* e
* e
* hnnng
* hnng
* HNNNNG final patch - LAST TESTMERGABLE COMMIT
* HNNG NEVERMIND THIS IS THE LAST TESTMERGABLE COMMIT DONT LISTEN TO LIES BELOW
* e
* FINAL PATCH - MERGE READY
Adds defines, buffs blood siphon a bit so it can utilize wounds and replaces ROLE_CULTIST with ROLE_HERETIC
* forgot about a single debug line aaa
* hnnnhng
* hng
* a!
* aaa
* applies code review
* e
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
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.
/🆑