* 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>
* Fix shuttle loader (#54200)
Set mode = SHUTTLE_PREARRIVAL to shuttle that initially placed to transit docking port.
No more SSshuttles delete transit for half loaded shuttle
Fix#54232
* Fix shuttle loader big shuttle load issues.
Co-authored-by: Dennok <Deneles@yandex.ru>
* Some shuttes rework. Allow many shuttles of one template to work at the same time. (#53993)
* add replace button to shuttle panel
load button now only load new shuttle
* shuttle teplate loads as shuttle
* new shuttle console connects to shuttle
* new navigation computer connect to shurrle
* docking_port id now unique
add count to id if id already in work
* many docks from one base tenplate
* up
* fix unregister
* up
* up
* up
* block multiple shuttle loading
* return preview button
* up id generation
* Some shuttes rework. Allow many shuttles of one template to work at the same time.
Co-authored-by: Dennok <Deneles@yandex.ru>
* Cross server evacuation messages now include the evacuation reason (#53980)
Co-authored-by: Bobbahbrown <bobbahbrown@ gmail.com>
* Cross server evacuation messages now include the evacuation reason
Co-authored-by: Hulkamania <39933245+JetBrody@users.noreply.github.com>
Co-authored-by: Bobbahbrown <bobbahbrown@ gmail.com>
* Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Emergency Shuttle Toggle (#53912)
Admins now have the option to enable or disable the shuttle(located in the admin tab).
Disabling the shuttle will basically pause it where it is, regardless(unless game is over). Until the admins enable it again. It will resume exactly back to where it was and continue from there. This is great for events. You can't recall or call the shuttle while it's disabled.
Admins also now get the option when calling the shuttle to disable the recall of said shuttle unless they cancel it or select enable shuttle.
* Emergency Shuttle Toggle
Co-authored-by: Gandalf <jzo123@hotmail.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* New Event: Shuttle Catastrophe (#53003)
The shuttle runs into some kind of horrible event, and is no longer servicable. The station is given a new one!
* New Event: Shuttle Catastrophe
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.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.
/🆑
Living and machine stat vars are pretty different, one uses flags and other number-defines.
This should make some other mass-replacements and searches a bit easier.
About The Pull Request
This PR add "Bluespace Navigation Gigabeacon" that shuttles can use as a target for the jump computer.
You can customize locked status by multitool or name of beacons by multitool with unscrewed beacon.
If you, or emp, lock beacon you are still able see it in choice list like a "Locked" destination, but unable to jump to it.
Why It's Good For The Game
Now any spacemen can construct their own Space station on any Z lvl (that not reserved, centcom, away mission) and dock (by custom dock) his ship to it.
Now we actially have some shuttles that have ability to place custom dock.
That one is whiteship, but only if its not UFO, 4 ships in caravan ambush(for 2 need sindycate access), +1 for nuclear ops(sindycate access), but dont forgot that Admins can spawn "navigation computer" to any shuttle.).
Lavaland safari likers now can land anywhere where they can fit a ship, on lava, basalt, and plating turfs, also asteroid.
I drop some bombs to clear spot and land to lavaland.
http://recordit.co/qN10qfuift
Here i create dry dock near station and dock ship into it.
http://recordit.co/R4kXqN8rnt
all walls and other floors are forbidden to prevent you landing on the station
possibly more random gibberish?)
maybe change plating to reinforced (engine) floor.
Navigation computer now use trait blacklist to filter out z levels to where it can't place custom dock.
This make easy to add new z lvls where it can place dock.
* Removes shuttle manipulator
* oops
* fuck it lets just remove it.
* Revert "fuck it lets just remove it."
This reverts commit 8a95879f21d3f4aad3d56e33fa90ebc1940c1e27.
* re-remove the old admin proc
* Make shuttles load in transit level
* Add check
* oops
* i need coffee
* Removes shuttle manipulator
* oops
* moves ui to ssshuttle
* fuck it lets just remove it.
* ooops
* Revert "fuck it lets just remove it."
This reverts commit 8a95879f21d3f4aad3d56e33fa90ebc1940c1e27.
* re-remove the old admin proc
* De-linkifies names in deadchat_broadcast(), makes deadsay css class default too
* Makes the source argument come after message, since it is optional
* Removes excess </span>
* Refactors shuttles to be loaded in, rather than be on the station maps
- Shuttles are now loaded in by the shuttle subsystem.
You configure what shuttles are loaded in via
`/obj/configuration/shuttle_load` objects.
* Box arrivals shuttle is now imported from template
* Moves things out of the #ifdef
* Box emergency shuttle is now imported
* Box emergency shuttle is now templated
* Box ferry and whiteship now load from template
* More shuttles on Box done
* Apart from the pods, Box is now completely templated
* Delta now has all non-awkward shuttles loaded in
And Centcom..
* Removes no ops turfs, more error messages
* Fixes slightly chopped off external wall
* Massaging more shuttles into working correctly
* Debug messages are king
* Delta cargo shuttle now docks again
* First pass of Metastation shuttles
* Omegastation first pass
* Metastation now has its own shuttle
* Did most shuttles on Pubby
* Turns out Pubby arrival shuttle is slightly smaller than Box arrival
* Whoops, missed a stationary port
* TGMified the pubby arrival shuttle
* First pass, box is working
* All stations now have roundstart_template and no configuration objects
* Removes roundstart_move
* Why do we even have these unused keys
* Remove unused coded vars
* removes some excessive safety checks
* Missed some Centcom cargo dock stuff
* Got it working again
* That thing that Cyberboss wanted
* Noop turfs the shuttle templates
* And template noop for the area
* Attempts to assuage travis
* Warning!
* Please love me, Travis
* RIP Remie
* Add a proc for getting the station center
* Add a couple of comments to ZTRAIT defines
* Remove unused global_map list
* Refactor weather to use the trait system
* Un-hardcode the transit z-level
* Use Z traits to determine Portal Storm event areas
* Fix loading away missions containing anything that reads traits
More deadchat messages now follow the following format.
> George Mellons has done a thing at AreaName.
- Shuttle calling
- Shuttle recalling
- Security level changing
- Maintenance accessing
- Swiping for red,emergency maint, bsa
- Messenging centcom, syndicate
Fixes#34230.
Fixes#34231.