About The Pull Request
See title.
Fixes#62672
Why It's Good For The Game
Allows us to keep the excellent ban video while nullifying the issue raised in #62672
Changelog
cl
admin: The banning video is now shown before the ban appeals link, instead of after, to improve visibility of the ban appeals link.
/cl
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
* Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists but are still synthetizable from randomized recipes.
* Update toxin_reagents.dm
About The Pull Request
This is a fix for map not load anymore because of security changes
Why It's Good For The Game
Maps are good as they encourage gameplay and differentiate ss13 from a classic MUD game
Changelog
cl
add: unit test for map load
add: directory param to map load + whitelist for data and _maps
add: advertising for mojave sun in tg commit logs
/cl
For some reason, the new icon I made for the CC suit just disappeared off the face of the earth, why? I do not know. How? I also do not know, but I have fixed it.
Also, the helmet and gas mask's icons didn't work. Why? Again, do not know. But I've fixed it by brute-forcing their icon paths and states, prob not the most efficient way, but it works. :V
This PR fixes a bunch of the code for load_map_config(), documenting it better and removing a deprecated (I hope) parameter that was also a security concern along the way, while also making another proc for just loading the default map config, which is supposed to always be functional.
The format is:
"[radio keys/language keys/etc][the say emote]*[what should be said]"
These are all valid uses:
";screams!*"
";,o taps his mic before saying*testing, testing, one two, one two."
";taps his mic before saying*testing, testing, one two, one two."
(with forked tongue) ";taps his mic before saying*testing, testing, one two, one two."
it also works when not on the radio as well of course, don't worry.
Custom say emotes, or in other words, radio emotes. The format is for example "screams and shoutsdamnit!" with any relevant radio keys, language keys and all that used as normal, for example, ";,o screams and shoutsdamnit!" or you can use just the emote, ie, ";screams!*"
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
About The Pull Request
As the title says. Players were able to disable the safety of the holodeck without the console being emagged, and without being a robot.
Why It's Good For The Game
I think it would be interesting to add some sort of replacement to this, like players with high gamer skill could disable the safety.
Changelog
cl
fix: Fixes an exploit that allowed players to disable holodeck safety without following the proper conditions
/cl
* 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.
* 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*
Adds the assembly shell, which can be attached to wires and other assemblies like proximity sensors, timers, etc. Because assemblies already have screwdriver interaction that gets overriden by the shell component, the regular assembly screwdriver interaction can also be performed with right-click. This can be seen on examine.
While currently, circuits can interact with wires and such using remote signalers and the radio component, this has its limits, such as the possibility that someone else uses the same frequency/code combo. With the assembly shell, you can put all your circuit logic into the attached assembly.
This PR change the syringe gun sprite, the syringe gun is now bulky and can only be placed on back slot or suit storage with labcoat, medical windercoat and biosuit.
Plasmamen belt tank volume is 24, the extended engineering one is 6 and the emergency internals are 3.
The issue balance wise is that all of those have the same pocket size and can be printed at the same Research tier, this results on smart atmos/engineers printing a plasmamen belt tank and filling it with O2 so their internals can last for almost 2 hours instead of the 24 minutes of the extended O2.
Now they have the same volume but plasmamen lungs were rebalanced to consume plasma at a lower rate. To be clear, it will have no effect on how long the internal last for a plasmamen.
Removes a no skill trick that gives you internals that will last for all shift, you can still make those but it will take a tiny bit of effort now.
Also a small step to make internals balanced.
About The Pull Request
brain washing cures up to lobotomy tier traumas, instead of surgery
Why It's Good For The Game
if you wash a brain you already surgeried it so its kinda pointless, now the funny very rare item can also be useful and it encourages doing brain washing, leading to more rp opportunities
Changelog
cl
balance: brain washing now cures up to lobotomy tier traumas
/cl
About The Pull Request
This started out as a joke on discord about buffing the throw damage of soda cans (have you ever had one thrown at you? they hurt!!), that ended up also growing into a feature I've wanted to add for a while- shaking soda cans for pranks!
https://streamable.com/ra7ctd
Note: This PR shows the user getting a positive moodie from a can going off on a wall, that was fixed after the video was recorded
Right clicking on an unopened soda can will shake it and raise its fizziness level, as will throwing soda cans at things. When you go to open a soda can, an RNG check is made based on how fizzy the soda is from being mishandled, with a failed check making the soda spray all over you and give you a negative moodlet (and everyone who sees it happen a milder positive moodlet!)
The throwforce for an unopened can of soda has been set to 12, slightly higher than a standard floortile (10) and equal with toolboxes. As mentioned before, though, every time you throw a soda, its fizziness rises, meaning each throw is more likely to burst it and kill the damage value. This puts it in a perfect spot where it's not worth stocking up on sodas just in case you get into a fight (cause you could just use floortiles, which stack up to 50), but seeing a nearby unopened can of soda and throwing it at your enemy could be an interesting addition to environmental combat.
You can try to detect if a can of soda is fizzed up by examining it twice rapidly. Depending on how fizzed up the soda is, you may be able to detect said levels of fizz, allowing you to ask for another untouched soda.
Why It's Good For The Game
Shake up a soda a whole bunch, give to someone in a crowded room of people, give everyone a positive moodie when the rube opens the can!
Changelog
cl Ryll/Shaps
add: Added shaking soda cans! Take an unopened soda can and right click it in hand to shake it all around, increasing its fizziness.
balance: Having an unopened soda can hucked at you will actually hurt quite a bit, around the level of a toolbox. This also has a chance of bursting the soda can on impact, leaving it useless as a weapon after.
/cl
## About The Pull Request
Allows PAI to access a newly inbuilt bluespace printer at the cost of some processing power being diverted to mine for cryptocurrency.
## Why It's Good For The Game
Pai's are perfect travel buddies, but its a shame they cant print out their memories to share with their master. Well now they can! Simply take a picture, select the "Printer" button, and (optionally select an image if multiple are available) Presto! Instant picture. No toner required, its ported directly from an automatic nanotransen printer! Of course, some ram is actually being used for crypto mining for pure NT profit, but who cares? Pictures!