* [s] Fixes an exploit in chef order console that potentially let players lag the server (#62724)
* Update chef_order.dm
* Update chef_order.dm
* Update chef_order.dm
* [s] Fixes an exploit in chef order console that potentially let players lag the server
Co-authored-by: CocaColaTastesGood <47264839+CocaColaTastesGood@users.noreply.github.com>
* Fancy pipe suicide_act for all pipes (#62720)
Do you know, off hand, which of the Digital Valve and the Pressure Valve
let you do the funny?
Just use this for all pipe components.
* Fancy pipe suicide_act for all pipes
Co-authored-by: esainane <esainane+github@gmail.com>
* spraycanning stuff now updates its sprites on the mob (#62726)
* spraycanning stuff now updates its sprites on the mob
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)
About The Pull Request
Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.
This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.
Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.
Some implications of this setup were:
You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.
Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:
endless-stack-of-intercoms
Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!
Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used
Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.
Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.
tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game
fml
Changelog
cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl
* [MDB IGNORE] dir sanity, primarily on WALLITEMs
* apc directionals
* bluespace vendor fix
* defib fix
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
* Overhauls job eligibility checking and improves job debug logging.
* Fixing conflicts
* Makes Veteran the first check since it's the most likely.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Allow manual crafting of many atmos devices with the crafting menu (#62676)
* Allow manual crafting of many atmos devices with the crafting menu
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* the gluttony ruin is no longer radioactive (#62692)
* fun for the whole family
* renamed a variable
* the gluttony ruin is no longer radioactive
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Cyborg non direct "combat" rebalance. Airlock seal buffed, borg RCD nerfed. (#62621)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Cyborg non direct "combat" rebalance. Airlock seal buffed, borg RCD nerfed.
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes non human or silicon mobs being unable to mine rock walls by bumping into them (#62689)
Fixed non-human and non-silicon mobs being unable to mine rock walls when bumping into them.
This will fix#37105.
* Fixes non-human and non-silicon mobs being unable to mine rock walls when bumping into them
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Transit tubes can't be placed on turfs with dense objects. (#62387)
Right now you can directly place and wrench a transit tube under a few objects that are dense, this opens up a few issues, like you being able to bypass dense objects and get into places that you shouldn't with basically no effort as long as you have a RPD in your bag.
The main example of this is the brig cells, the bridge, the AI upload, the luxury area on the luxury shuttle, etc.
So a simple check was added to see if the turf has a dense object before placing a tube.
This PR #45609 (a5de1c1b5e) was IMO one of the best balance changes in the game, before it access was a meme and you could get anywhere in a few seconds by just unwrenching windows.
With a RPD you can do the same, but the worse issue is that while it takes 1 second for you to place a tube under a reinforced window, you need to fully deconstruct the window to remove it.
While you fix 1 area that the clown turned into free access, they have build 5 more.
* RPDs can't place transit tubes directly under dense objects.
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* Cyborgs can now shake up compromised carbons (#62468)
The Hug Module from Medical and Peacekeeper Cyborgs now removes negative stats (the same as a human) from carbons when used on Mode 1. Put in a simple way, this allows the three referred Cyborg types to wake up and remove stuns from carbons with the use of their Hug Module.
* Cyborgs can now shake up compromised carbons
Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com>
* quantum pads can teleport items and unbuckled people again (#62682)
* quantum pads can teleport items and unbuckled people again
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Locker Shoving Re-Reloaded (#62618)
* Locker Shoving Re-Reloaded
The signals here were weird, converted them to connect loc. I did my best to make sure behavior matched what
existed pre arcane pr
Unshat shove code considerably, believe it or not it used to be worse.
* Locker Shoving Re-Reloaded
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* yeet
* goddamn fucking trailing newline
* edit: I reread the bounty
* leftover from: I reread the bounty
* *more* leftover from: I reread the bounty
* speedup
* here too
* empty commit for linter reruns
* there
* remembered the newline this time
* okay I forgot that
* Adds logging for all Silicon rather than just Laws (#62500)
I find stuffing everything in game.log is a real problem when you need to actually find useful information about what happened to a specific Silicon. It's hard to tell what happened to Silicon throughout a round, even when crossreferencing attack/game logs, so having a Silicon log for all the information related to them would be really useful.
For example, a Cyborg can spawn unlinked on Robocop, go Janitor and crowbar someone to death with a Robodoctor AI. When looking through logs, an Admin can easily assume it was a rogue Engineering cyborg who disobeyed their laws to kill someone.
This also isn't adding a whole new log file, more than it is just renaming the law log file to silicon and adding more useful things into it, so it isn't logging bloat (if that's even a concern)
* Adds logging for all Silicon rather than just Laws
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Headset mousedrop like PDA (#62656)
* Headset mousedrop like PDA
* Change var names
* Forgot one var name
* Headset mousedrop like PDA
Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
* fixes sleepers not removing important_recursive_contents on exiting (#62632)
* fixes sleepers not removing important_recursive_contents on exiting
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Ants can't traumatize ghosts, ants show up on top of pipes + Ant QOL (#62496)
* Protects ghosts, bypasses vents & pipes
* hard crit oops
* stops screaming unconcious people
* fixes a copy-paste error
* fixes planes
* *unconcious* people won't get messages.
* I am begging for this to be right
* I hate that it took me 30 seconds to realize
* Ants can't traumatize ghosts, ants show up on top of pipes + Ant QOL
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Fix Atmos/Mining hardsuits (#62663)
* Removes the rad shielding from the Atmos hardsuit and fixes the allowed list on the Mining one.
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* Add wallframe icon for turret controller (#62640)
It literally used the APC wallframe.
* Add wallframe icon for turret controller
Co-authored-by: esainane <esainane+github@gmail.com>
* Prevents chaplains from choosing 30 force null rods (oh god) (#62631)
Chaplains can no longer choose 30 force admin only null rods
* Prevents chaplains from choosing 30 force null rods (oh god)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes the Radioactive Microlaser irradiating humans wearing clothing that protects against radiation (#62588)
* Fixes the Radioactive Microlaser irradiating humans wearing clothing that protects against radiation
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Suicicide -> Suicide (#62614)
This PR just fixes a small spelling error in the suicide message for the singulo toy, probably a waste of a pr but hey, I'm trying to remember how to do these and figured I'd do a quick and easy one.
* Suicicide -> Suicide
Co-authored-by: Toastgoats <63932673+Toastgoats@users.noreply.github.com>
* aliens can no longer clear eggs before the hugger bursts out (#62597)
* aliens can no longer clear eggs before the hugger bursts out
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fixes a few issues with double bedsheets. (#62590)
Fixes the random and dorms spawners for double bed sheets. Fixes the dying_key for double bed sheets.
* Fixes a few issues with double bedsheets.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* [s] Security vulnerability patch (#62568)
About The Pull Request
In my personal, subjective opinion; trialmins should not, in fact, be able to read and delete server/box configuration files on a whim.
cl
server: Patches multiple(?) arbitrary file related vulnerabilities
/cl
* [s] Security vulnerability patch
Co-authored-by: TheFakeElon <59686430+TheFakeElon@users.noreply.github.com>
* tgui: Color matrix editor (#62413)
* adds the color matrix editor
* weakrefs and add_atom_color
* a little ui polish
* Adds the color matrix editor
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Deletes unused spookoween file and the related sound folder. Saves what can be saved. (#62518)
* Deletes a unused spookoween file and the related sound folder. Saves a few features off of it.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* You can unpack bibles into new altars of the gods (#62234)
* You can unpack bibles into new altars of the gods
* fix to a thing i caused before i screw things up
* balloon alert
* Update book.dm
* Revert "Update book.dm"
This reverts commit 4c6483a7a4efc1eb940cbd120838eade7d7ec784.
* You can unpack bibles into new altars of the gods
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* liches can no longer embed phylactery grenades inside of indestructible structures (#62505)
* buzzkills
* no effects either
* early return
* liches can no longer embed phylactery grenades inside of indestructible structures
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Locker based combat, evolved. (#60000)
* Locker bullying, reloaded.
* Start work on refactoring the whole gosh damn thing
* I'm stuck.
* Checkpoint
* Restart work: Lets get this scrap to compile
* Workin on it, having to swtich back to walls project
* Revert "Restart work: Lets get this scrap to compile"
This reverts commit baa1814fd1ed2c86f2009a54a90d9306264762fc.
* Compiles (Check), Signals are backwards (Fix)
* 90% complete yet again I have grown powerful
* I HAVE GOT IT WORKING PERFECTLY
* Removes a small part of commented code
* Perfection*
* Locker based combat, evolved.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>