Commit Graph

148 Commits

Author SHA1 Message Date
SkyratBot
411853c3c7 [MIRROR] Fixes a random unit test error that can happen with the hypnosis trauma (#7313)
* Fixes a random unit test error that can happen with the hypnosis trauma (#60607)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Fixes a random unit test error that can happen with the hypnosis trauma

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-08-03 18:33:05 +01:00
SkyratBot
227b722820 [MIRROR] Job refactor: strings to references and typepaths [This could seriously break things :)] (#7006)
* Job refactor: strings to references and typepaths

* 0

* holy fuck

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-28 21:12:42 +01:00
SkyratBot
c1163dff19 [MIRROR] EVEN MORE HARDDEL FIXES (#7017)
* EVEN MORE HARDDEL FIXES (#60228)

Fixes a ton of harddels, sourced from #59996
I think this brings us down to like, ~100 per round from ~200, with only like 20 of those being proper hell failures. I've seen harddel profiles below 1 second of total cost. Feeling good.

See you on the other side

Makes the cryopod control computer into a weakref, never trust bee code
Converts brig door timer internal lists to weakrefs
Fixes a harddel caused by qdeling a motion sensitive camera after it had left its source area, jesus christ why didn't we do this already holy shit
Converts the radio implant ref held by the antenna mutation to weakrefs because it isn't reliably cleaned up, makes the radio implant actually qdel its fucking radio
Removes the target var from the throwing datum, it does literally nothing and just exists to cause harddels, mostly for the singularity
 Fixes a cable harddel sourced from things that try to enter blueprints after smoothing, but before roundstart. IE, shuttles. Removes shuttles from the blueprints
Fixes emmisive blockers being added post qdel
Removes some manual ghosting from cryopods, I initially did this for harddel reasons, but I figured out a better fix for that. I'm now doing it because it's got this really strange logic for like "re-entering the game" that doesn't actually link to what the ghostize proc does. We should remove this at some point
Fixes robot hud objects harddeling due to hanging refs
Fixes buildmode related hanging refs, I'm coming for you admin team
Fixes a few instances of trying to add the forensics component post qdel, hhhhhhhhhhh
Fixes some split personality harddels/weirdness
Replaces a use of disconnect_duct with an init qdel hint, I suspect there's more issues with duct harddels, I've seen some odd logs about ahhh the area_contents list, but we can worry about that later
Makes teleporter targets into weakrefs, properly types them as /atom
Makes frequency devices into weakrefs
Makes cameras remove themselves from camera nets on Destroy
Makes tgui ui datums implement destroy, this means if I ever see one hang a ref to user or whatever, I know there's an error with calling close() properly. I've seen this harddel once, but not after this change so I assume there was some error with close(). IDK maybe this is a papering over? Would have to ask @ stylemistake
I've seen logs of beartraps being in world post del, putting a return there just in case. The same is true of nerf darts, but I haven't really looked into that yet
Makes a shoe's ref to untying alerts a weakref, yes this is needed.
Moves clearing client_in_contents to the Login of the new mob. This prevents doing things like ghosting someone before a mob qdel causing harddels
Fixes a harddel set sourced from adding a status effect to a qdeleted thing. Is this an error? I'm honestly not sure.
Converts bsa code to weakrefs
Converts the partner var of heat exchangers to weakrefs
Converts camera assemblies to weakrefs
Fixes some dumb behavior with ammo casings and assuming you'll be on a turf post Destroy parent call
Fixes? merger related harddels, you were never cleared from your own members list, so origin objects would end up making a new list, creating harddels. Potential input from @ ninjanomnom about the logic
Chasms store a static list of "falling atoms", which only exists for chasms that go somewhere else. This list wasn't being cleared of qdeleted objects, which is what happens when you fall in most chasms. Fixes this, and converts the list to weakrefs.
Fixes some runtimes in both sheet code, and the weather listener element. This is here because runtime spam made testing more of a pain, didn't think it needed its own pr
Fixes colorful reagent harddels sourced from reagents that were qdel'd before roundstart. I'm only like 50% sure this actually got it, but the issue may have been solved by #60174, so eh
Turns the nuke op antag datum's ref to the war button into a weakref
Fixes some holopad code that was not nulling refs all the time
Converts camera bugs to weakrefs, this was the result of the bug being "reworked" like 6 years back without taking the existing ref clearing into account. Whole item needs a redo, but this'll do for now.
Ensures that the both pulling and pullee refs are cleared on Destroy
The crew monitor held all users in a non clearing list, makes that list a weakref because I hate everything

Oh and I removed all sources of gas_mixture qdeletion, I'm kinda unsure on this since it's not technically supported, but any harddels from it might? indicate something going wrong with like, gas passing logic. I'd like @ MrStonedOne's thoughts, since I trust him to call me an idiot if I'm wrong.

<!-- Please add a short description of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding. -->

## Why it's not good for the game

I crashed sybil like 10 times to get this data, I'm gonna put it to good use. Don't think you're safe sybilites, I'm coming for you.

* EVEN MORE HARDDEL FIXES

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-07-20 12:59:41 +02:00
SkyratBot
99333fdfcc [MIRROR] Replace a number of New() overrides with Initialize() (#6945)
* Replace a number of New() overrides with Initialize() (#60223)

* Replace a number of New() overrides with Initialize()

Co-authored-by: coiax <yellowbounder@gmail.com>
2021-07-19 16:55:01 +12:00
SkyratBot
44f34fac20 [MIRROR] The to_chat proc no longer accepts null or empty strings and runtimes instead. (#6570)
* The to_chat proc no longer accepts null or empty strings and runtimes instead. (#59843)

* Catch null text sent to to_chat

* Brain traumas no longer send empty to_chat gain strings

* Make to_chat_immediate changes and clean up args list formatting

* Fix empty to_chat message where there is no memo for admins

* Fix additional edge case where there are no messages for the ckey.

* The to_chat proc no longer accepts null or empty strings and runtimes instead.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-06-28 14:18:18 +01:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
SkyratBot
b2209476cd [MIRROR] Fixes split personality sometimes switching to other person upon death (#6138)
* Fixes split personality sometimes switching to other person upon death (#59488)

Fixes split personality sometimes switching to other person upon death or loss.
This was due to both minds being bounded to the body, this fixes it.
Also changes free_backseat into new_backseat because the former is an incredibly unintuitive variable name.

* Fixes split personality sometimes switching to other person upon death

Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
2021-06-05 16:53:47 +12:00
SkyratBot
456f347dfa [MIRROR] USE SIGNAL_HANDLER REEEEEE (#5921)
* use SIGNAL_HANDLER REEEEEE (#59242)

makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did

* USE SIGNAL_HANDLER REEEEEE

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-05-25 03:42:11 +01:00
SkyratBot
5880be0168 [MIRROR] (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#5524)
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc

* WHEW THAT WAS EASY

* Update ammo.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-05-07 22:39:27 +01:00
SkyratBot
2ab15aecb5 [MIRROR] Remove all gamemodes except Dynamic (#5173)
* Remove all gamemodes except Dynamic

* qaaaaaaaa

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-04-25 21:20:30 +01:00
SkyratBot
ee9a63178e [MIRROR] Adds a phobia of guns (#4851)
* Adds a phobia of guns (#58308)

* Adds a phobia of guns

Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
2021-04-12 22:09:06 +01:00
SkyratBot
61647d09b4 [MIRROR] Renames TRAIT_MONKEYLIKE to TRAIT_DISCOORDINATED_TOOL_USER and fixes an issue with jungle fever (#4469)
* Renames TRAIT_MONKEYLIKE to TRAIT_DISCOORDINATED_TOOL_USER and fixes an issu with jungle fever (#57897)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Renames TRAIT_MONKEYLIKE to TRAIT_DISCOORDINATED_TOOL_USER and fixes an issue with jungle fever

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-03-28 03:02:24 +01:00
SkyratBot
e85f8a4486 [MIRROR] Replace some turf in range() with RANGETURFS and fix(?) bspace trauma (#4070)
* Replace some turf in range() with RANGETURFS and fix(?) bspace trauma (#57566)

* Replace some turf in range() with RANGETURFS and fix(?) bspace trauma

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2021-03-11 13:44:28 +01:00
SkyratBot
42e7eba82b [MIRROR] Adds an Ocky icky phobia (#3996)
* Adds an Ocky icky phobia (#57450)

Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: interestingusernam3 <51925758+interestingusernam3@ users.noreply.github.com>

* Adds an Ocky icky phobia

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: interestingusernam3 <51925758+interestingusernam3@ users.noreply.github.com>
2021-03-08 07:41:27 +00:00
SkyratBot
9268949ce0 [MIRROR] Defines some traits and cleans it out a little (#3873)
* Defines some traits and cleans it out a little

* Update stunbaton.dm

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-03-04 21:57:43 +00:00
Azarak
ec13ad8e36 Removes forced brain damage speech from dumbness trauma (#3630) 2021-02-25 13:51:16 +00:00
SkyratBot
786788ca56 [MIRROR] Allows ghosts to start messages with asterisks in deadchat again (#3644)
* Allows ghosts to start messages with asterisks in deadchat again (#57159)

#56519 had noble goals in trying to make emote code more robust for
ghosts, but in doing so it undid #47144, which was made to allow people
to start messages with asterisks in deadchat without getting hassled by
the game thinking you're emoting. This re-limits the emote checker to
the only two emotes ghosts have ever had, *spin and *flip.

* Allows ghosts to start messages with asterisks in deadchat again

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-02-25 13:41:20 +00:00
SkyratBot
d0dc199815 [MIRROR] /mob/living/proc/Life(delta_time) (#3509)
* /mob/living/proc/Life(delta_time)

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:55:52 +00:00
SkyratBot
43febe3145 [MIRROR] Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#3433)
* Converts many proc overrides to properly use list/modifiers, lots of other smaller things

* Update human_defense.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-17 14:18:21 +00:00
SkyratBot
b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
SkyratBot
e890b1282b [MIRROR] Replaces intents with combat mode (#3063)
* Replaces intents with combat mode

* updates

* a

* Update living_defense.dm

* https://github.com/tgstation/tgstation/pull/56638/files

* gunsafety!

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-05 16:58:16 +01:00
SkyratBot
0377dba670 [MIRROR] Mirror logging for brainwashing and hypnosis in the player panel and attack logs. (#2988)
* Mirror logging for brainwashing and hypnosis in the player panel and attack logs. (#56515)

Hypnosis and brainwashing now have entries in the Player Panel logging
under attack and entries in the attack logs.

Mirrors some logging that would otherwise just be in the game logs.
From an admin-perspective, issues where you'd want to check
brainwashing/hypnosis tend to go hand-in-hand with issues relating to
attack logs as opposed to game logs.

* Mirror logging for brainwashing and hypnosis in the player panel and attack logs.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-01-31 22:09:07 +00:00
SkyratBot
81395e3f52 [MIRROR] Adds Quirk-Related "Special Pool" to obsessed for Chaplain, Clown, and Mime targets. (#2859)
* Adds Quirk-Related "Special Pool" to obsessed for Chaplain, Clown, and Mime targets. (#56357)

* Adds Quirk-Related "Special Pool" to obsessed for Chaplain, Clown, and Mime targets.

Co-authored-by: RaveRadbury <3204033+RaveRadbury@users.noreply.github.com>
2021-01-24 16:32:53 +00:00
SpaceVampire
389d29cb34 Defibrillates Split-Personality (#2661)
* Update split_personality.dm

* Update personality_commune.dm
2021-01-24 03:04:33 +00:00
SkyratBot
6fc3910142 [MIRROR] Prevent phobias being triggered by words you don't understand (#2221)
* prevent phobias being triggered by words you don't understand (#55580)

* Prevent phobias being triggered by words you don't understand

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
2020-12-18 08:53:26 +01:00
SkyratBot
5f1a7a9385 [MIRROR] Sound Environments - Adds reverb and echos to rooms (#2067)
* Sound Environments - Adds reverb and echos to rooms

* Update sound.dm

* Update sound.dm

* Update datum_traitor.dm

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2020-12-07 10:35:36 +00:00
SkyratBot
c487c73f39 [MIRROR] Grep for space indentation (#1969)
* Grep for space indentation

* aa

* Update species.dm

* Update species.dm

* Update maps.dm

* Update examine.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-01 12:26:41 +01:00
IrkallaEpsilon
9a77148734 Bombards Split personality with an antigrain warhead (#1878)
* Bombards Split personality with an antigrain warhead

* Update split_personality.dm

* Meh Personality

Insert catgirl erp descriptor as argument.

* Update personality_commune.dm

* Update split_personality.dm

* Update split_personality.dm

* Update personality_commune.dm
2020-11-28 15:07:25 +01:00
SkyratBot
e768cef297 [MIRROR] /obj/screen --> /atom/movable/screen (#1646)
* /obj/screen --> /atom/movable/screen

* Update storage.dm

* Update radial.dm

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-11-11 04:12:50 +01:00
SkyratBot
03298fddfd [MIRROR] Fixes split personality switching (#1488)
* Merge pull request #54610 from YPOQ/splitpersonalityfix

Fixes split personality switching

* Fixes split personality switching

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-10-27 09:08:34 +00:00
SkyratBot
b8d9874c27 [MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342)

Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.

* Converts all A && A.B into A?.B

Co-authored-by: ZeWaka <zewakagamer@gmail.com>
2020-10-13 23:19:25 +02:00
SkyratBot
970a2b03d6 [MIRROR] Mobility refactor: no more update_mobility() (#1233)
* Mobility refactor: no more update_mobility()

* Update robot.dm

Fixes robots.

* megadumb

* Update robot.dm

* weh

* Update gunpoint_datum.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-10 02:31:35 +02:00
SkyratBot
7eeaefe645 [MIRROR] Fixes some potential sleeps as detected by SpacemanDMM improvements (#1216)
* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)

overrides weren't detected by should not sleep, i think i've mostly
fixed that with SpaceManiac/SpacemanDMM#214

Some of these are wacky but overall this pr is harmless

signals shouldnt sleep even in weird 1 in a million situations or due
to other people adding bad code

overrides of changeling can_sting() use alert() and input() and that's
just too fucked for me to fix in this pr

* Fixes some potential sleeps as detected by SpacemanDMM improvements

Co-authored-by: spookydonut <github@spooksoftware.com>
2020-10-09 18:28:59 +02:00
SkyratBot
35cbcf8a8b [MIRROR] replaces a cursed proc in trauma code with a blessed signal (#1184)
* replaces a cursed proc in trauma code with a blessed signal (#54208)

code: some cursed snowflake proc call now uses a blessed signal in trauma code

* replaces a cursed proc in trauma code with a blessed signal

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-10-07 15:58:16 +02:00
Azarak
5e78d0615b Update mild.dm (#1104) 2020-10-01 21:04:38 +01:00
SkyratBot
7c4b7cdb9a [MIRROR] limb disabled refactor (#757)
* limb disabled refactor (#53374)

    Fixes #53219
    Nukes is_disabled()
    Turns several variable value changes into events.
    bodypart_disabled turned into a boolean value.
    BODYPART_DISABLED_WOUND turned into TRAIT_DISABLED_BY_WOUND. Not the cleanest thing out there, but it works.
    Cleans some code and reduces number of updates, as only the extremities have a disabled effect.

* limb disabled refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-09-11 23:21:46 +02:00
SkyratBot
24502daba9 [MIRROR] Reenables SHOULD_NOT_SLEEP on initialize (#650)
* Reenables SHOULD_NOT_SLEEP on initialize (#53378)

* Reenables SHOULD_NOT_SLEEP on initialize

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-09-06 05:15:19 +02:00
SkyratBot
7f3a2027cc [MIRROR] Polling ghost candidates now uses real names (#480)
* Polling ghost candidates now uses real names (#53122)

* Polling ghost candidates now uses real names

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-23 20:43:25 +02:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)

Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
c5c00fc6ff [MIRROR] Confusion will no longer continue to confuse after being cured (#213)
* Confusion will no longer continue to confuse after being cured (#52286)

* Confusion will no longer continue to confuse after being cured

* Grammar comment fix

* Move to status effect

* Remove test per request

* Make confusion a status effect, confusion curing now completely neuters the confusion

* set_confusion changes, get_confusion

* Fix confusion going down twice per tick

* Change strength = to proc

* Move procs to status_procs

* Confusion will no longer continue to confuse after being cured

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-06 01:02:19 +01:00
RaveRadbury
11fda03cc4 Insect phobia (#52261)
* Add insect phobia

applies to moths, flies, and cockroaches

* Adds bee content
2020-07-20 18:27:55 -03:00
LemonInTheDark
d3f9b70c0f Adds a message modification packet to saycode to allow for unordered parsing of operator chars, like ;, #, :, or % (#51790) 2020-07-18 18:18:23 +02:00
skoglol
d513b14a58 Catatonics no longer get split personalities. (#52118)
* Catatonics no longer get split personalities.

* No switching to ssd either
2020-07-13 11:38:17 +02:00
Ryll Ryll
4a481bc861 Adds eye contact (#52108)
* doesn't do it for me

* signal and hijinx

* creep stare

* less lazy code
2020-07-12 03:39:57 +10:00
Ryll Ryll
0f6496a55c [READY] Adds Medical Wounds: Bamboo Bones and the Skin of Your Teeth (#50558)
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.
/🆑
2020-06-12 23:47:33 +12:00
William Wallace
ecdf74a329 phobias use less regular expressions and don't instantiate them all the time (#50631)
* individual phobia types now use a single regex that is cached

* move suffix out of phobia class
2020-04-26 19:54:21 +08:00
RaveRadbury
30444ee210 Fixes phobia issue, tweaks some phobia triggers (#50630)
Fixes phobia issue, tweaks some phobia triggers
2020-04-25 16:56:07 -07:00
Bobbahbrown
6578479184 [READY] Runechat: 'Runescape-like' Chat Message Overlays (It's back!) (#50608)
* first-version

* let's do those recommendations first

* color moment

* reorganization, prefs

* certified layer moment

* virtual speakers BEGONNE

* remove naughty bits, better sizing

* gimme the message mode

* rename that pesky pref and hide chat bubbles

* exponential decay moment

* async moment

* fixes

* fixes

* the players have decided they don't want to hear themselves on radio

* Fix bug with holograms incorrectly rendering messages

* rohesie's suggestion

* Color tweaks

* hallucinating now shows message properly

* pref moment

* updates

* rohesie's suggestions

* fix moment number 5

* less smelly more epic

* unfix the fixes and refix them

* a conscious change

* return of the prefs
2020-04-25 15:48:10 -03:00
Rohesie
0738549b5b Client loss on Login() handling (#50073)
The client variable can be nulled at any point between proc calls during Login(), at the very least between parent calls for sure. That can produce dirty additions to mob lists among other less problematic runtimes.
This attempts to handle it.
2020-04-07 08:13:38 +12:00
ShizCalev
0228bc2fbe Call the proper proc 2020-02-24 01:31:38 -05:00