* Firelocks can't close if an holofan is placed on their turf (#58332)
* Firelocks can't close if an holofan is placed on their turf
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* refactors pods, new helper for spawning items from pods through code (#58222)
* refactors pods, new helper for spawning items from pods through code
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Adds color picking as RPD right click action (#58309)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds color picking as RPD right click action
Co-authored-by: thebleh <43266738+rdragan@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Implements a new auto-tagging system for ID card which adds a config to auto-flag them as an intern. (#58236)
About The Pull Request
ID cards when equipped will check the player's living hours if the USE_LOW_LIVING_HOUR_INTERN flag is set. If their living hours is less than the first of the following (checked in order from 1st to 3rd until a valid value is found):
Config USE_LOW_LIVING_HOUR_INTERN_HOURS
Config USE_EXP_RESTRICTIONS_HEADS_HOURS
Hardcoded 15 hours
Then their ID card is tagged as Intern Assignment, unless they're a Head of Staff in which case they become an Assignment-in-Training.
PDAs, Wallets and Tablets also update any ID cards they hold, so equipping a PDA, Tablet or Wallet will also update any ID cards inside it.
This occurs automatically, even if the card does not belong to the owner. This only occurs when the user's assigned_role is a station job.
* Implements a new auto-tagging system for ID card which adds a config to auto-flag them as an intern.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Refactor /obj/item/food/chewable into a chewable element (#58243)
* Refactor /obj/item/food/chewable into a chewable component
* Element, always process
* Refactor /obj/item/food/chewable into a chewable element
* Update maint_loot_trash.dm
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Gives rotting things a timer before they become fully effective to give more leeway for cleanup. Lowers the max values for disease effect and proc chance significantly. Cleans up some silly zone selection code. (#58290)
* Makes rot more forgiving of slow cleanup
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Pluoxium can currently be created in mico amounts on a lot of tiles, which creates a lot of unneeded active (#58306)
turfs, and wastes processing time.
Let's only make pluox in cold mixes then, and since it's not gonna mitigate high power runaways quite as hard
now, let's make it a net negative on waste gas output for the sm.
* Makes radiation related pluouxium only generate in cold conditions
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Allows the connect_loc element to have a listener different from the tracked object (#58276)
* Allows the connect_loc element to have a listener different from the tracked object
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Can no longer buckle to objects through walls (#58230)
* what
* huh?
* who?????
* Can no longer buckle to objects through walls
Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
* Fixes the borg hug module being able to harm and shove simple mobs (#58175)
* Fixes the borg hug module being able to harm and shove simple mobs
Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
* After revolutionaries win, one living headrev (if any are able to) will be allowed to rename the station with a revolutionary banner (#58165)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* After revolutionaries win, one living headrev (if any are able to) will be allowed to rename the station with a revolutionary banner
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Terror in the Toybox: The Rouny Plushie (#58221)
* rouny plushie
* rouny prizes
* loar
* Terror in the Toybox: The Rouny Plushie
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
* Armless people can no longer buckle people (#58176)
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Armless people can no longer buckle people
Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Smart Pipes(reborn) (#58038)
How these new pipes work.
-Smart pipes autoconnect to nearby smart pipes
-They are now color coded, so they only connect to the same colored pipe, the GREY pipe is the wildcard and can connect to every other color, so be aware of this
-ALL components spawned by the RPD can be colored (from pumps to connectors, from pipes to manifolds), if you leave them GREY they can connect to every other color. Color adapters can be colored, but they'll still connect two pipes with different colors. BUILDABLE machines are GREY (thermomachines, cryo, HFR) so be aware of this
-Trying to go across another smart pipe will now build a bridge pipe automatically already colored of the color you choose, so you don't have to place it yourself anymore (is still available in the RPD tho)
-ALL binary components, layer manifolds, color adapters and bridge pipe can be put ONTOP of a smart pipe, but not on another of these. Smart pipes can't be placed on top of these pipes, so you have to build them first.
-Lcrossings can't be made anymore (sorry y'all i tryed, if someone have a way of doing them ping me on discord)
-REMEMBER you still have 5 layers to go, these rules apply to the same layer pipes, so if you do a crossing on different layers you won't see a bridge pipe appear.
* Smart Pipes(reborn)
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Placing a fireman carried person onto a table no longer harms them (#58147)
Previously, clicking on a table with a fireman carried person while not in combat mode would start a do_after(), then harmfully smash the person you fireman carrying into the table. This harmful smash has been replaced by your character merely placing the fireman carried person onto the table, like what happens when you click on a table while not in combat mode while you have someone in a grab. You can still click on a table with a fireman carried person while in combat mode to perform a limb smash, if you wish.
* Placing a fireman carried person onto a table no longer harms them
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Refactors shielded hardsuits into a component, fixes kisses consuming shield charges (#57797)
Shielded hardsuits (like the syndie ones) and shielded cult robes, despite functioning very similarly, were actually implemented twice in their own pockets of clothing code. This merges them into one component that lets you block a certain number of attacks while your suit has charges, and have the suit recharge itself after going so long without being hit (optional, cult robes still don't regain lost charges).
This PR also fixes harmless kiss projectiles consuming charges on shielded suits, I'm sure to much disappointment. They'll now pass directly through though, so you can still try your luck to see if love truly conquers all (it probably won't).
One casualty of this is that you can no longer toggle the shield color of syndie hardsuits with a multitool since that it was annoying to componentize, not something that affected gameplay, and probably something noone knew you could do anyway.
Fixes: #57723
* Refactors shielded hardsuits into a component, fixes kisses consuming shield charges
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* RCD now rebuilds existing constructs faster and with less resources (#58029)
* RCD now rebuilds faster
* Reconstructing now costs less
* Fix _
* Remove unused flag, use helper proc
* Add sound
* Remove previously useless, now inaccurate comment
* Add MIN_COMPILER_VERSION warning
* RCD now rebuilds existing constructs faster and with less resources
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Persistence now cleans up json entries (fixes a lot of runtimes involved) (#58084)
* super duper persistence cleaning
* compiles now, much better written
* Persistence now cleans up json entries (fixes a lot of runtimes involved)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* changes most uses of SSvis_overlays.add_vis_overlay() inside of update_overlays() to true overlays (#57985)
* changes most uses of SSvis_overlays.add_vis_overlay() inside of update_overlays() to true overlays
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Layer overhaul (#57915)
## About The Pull Request
Changes up some layer and plane defines for no particular reason lol
## Why It's Good For The Game
Planes actually override layers, and layers control ordering within planes. A lot of the usage of plane and layer was wholly unnecessary. This refactor helps future maintainability while also being needed staging for _future features._
* Layer overhaul
* aaaaaaaaa
a
Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* rpds can now interact with the unwrench upgrade (#57959)
Adds the functionality to upgrade the RPD by 'slapping' the unwrench upgrade disk with the RPD itself
It doesn't exactly revolutionize gameplay and at most allows engineering cyborg players to at least upgrade their RPD to unwrench saving them a headache and a module slot when doing their thing I suppose
* RPDs can install the unwrench upgrade by interacting with the disk
Co-authored-by: DuffCreeper <treyparn@yahoo.com.au>
* Now that batongs have been debatonged it's time to rebatong the new batong
* aaa
* aaaaaaaaaaa
* Update packs.dm
* RMOV BANTONG
* Update peacekeeper_baton.dm
* Update peacekeeper_baton.dm
* Update peacekeeper_items.dmi
* Gibs/Dead bodies no longer produce miasma (#57957)
* Gibs/Dead bodies no longer produce miasma
Miasma production as it is now is too little over too long a time span, and it just ends up spreading across the
station and having little effect. My goal here is to remove a source of uninteresting gas from the station's
air, and make corpses and gib piles more infectious.
I've placed the cap on disease payout at a strength of 7, so there's a slight chance of a positive disease, but
I think it's counteracted by the danger presented by just infecting yourself till you get what you want.
I've rewriten the rot component to just run a percent chance to infect someone with a disease based on the type
of rot, and moved almost all of its behavior to signals. There's one portion I can't rewrite without making
significant changes to how I handle atmos sensitivity, so that'll come later.
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Gibs/Dead bodies no longer produce miasma
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Crops the cached ID card icon so it is less obnoxious in tgui chat. (#57935)
* Crops the cached ID card icon so it is less obnoxious in tgui chat.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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>