* Allows Brig Subtypes To Be Usable for Departmental Orders
Hey there,
I saw an odd thing on IceBox the other day, where they couldn't deliver the departmental order crate because they were trying to open it in `/area/station/security/brig/upper` and not `/area/station/security/brig`. When they went down a z-level and opened it in the correct area, it worked perfectly fine. However, I think it's a bit obtuse, and this sort of thing might only get worse as multi-z maps become more dominant. So, let's apply a code solution by making the areas list read off typesof for the department_delivery_areas for security crates.
* typesof didn't actually work, we go explicit now
Hey there,
I was code-diving looking, and apparently we have these nifty pencil analogues. However, they used a decisecond time define instead of the nice SECONDS macro, which is not nifty. Let's fix that real fast.
* preparations for self-referential list conversion
* additional changes for the auxlua 1.1.1 update
* fixed a type in `SS13.await`
* bumps auxlua to 1.2.0
* bumps auxlua to 1.2.1
Currently, if you invoke tesla blast, it gets stuck on channeling forever. This is due to an oversight in the new spell/action system; returning TRUE (1) is the same as returning SPELL_CANCEL_CAST (1), resulting in the spell being erroneously cancelled without any cleanup.
* Fixes Fucked Job Requirement Displays
Hey there,
I fucked up in #68856 (5b77361d39). We weren't supposed to add another MINUTES multiplication here. I don't even remember why I did this if we are being perfectly honest with each other. Whoops.
fix: You should now no longer need thousands of hours to unlock your favorite head of staff role.
* Obstructed Vents and Scrubbers? - Debug Them Out!
Hello there,
In _May of 2014_, Ikarrus wrote the following (here)[https://tgstation13.org/phpBB/viewtopic.php?f=11&t=327]:
"Avoid placing scrubbers and air vents under objects. It's better to leave them in the open and visible so people can use them."
How far we have fallen. However, during a review I did in the last week, I accidentally let one of these (in multiple occurrences!) slip past me:
I don't want that to happen again. It's especially hard when they're under tables, or big bulky lockers, and under computers sometimes! They're not obvious to the human eye, so we must rely on technology. This creates a new Debug Mapping Verb that will flag out any vent, scrubber, or canister port that is being obstructed by an invalid object (directionals and undertiles are excluded). It will be a gargantuan effort unlike anything you've seen to get rid of all of them, but at least this is the first stone in a grand arch.
* Updates some variable names, adds some more logging
* Update code/modules/admin/verbs/mapping.dm
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Update code/modules/admin/verbs/mapping.dm
* no more single letter var
* early continue
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Reduces CO2 heat penalty to 2, from 6, and removes the power transmission bonus. A heat penalty of 2 seems low, but the heat produced is also scales power, which CO2 increases, and is still 4 times higher than old CO2 (0.1, but gets clamped to the minimum value of 0.5).
Most engineers have a skill issue with CO2 before they can let its powerloss inhibitors to have a significant effect. Unless someone tries to intentionally sabotage with CO2, the skill issues will just make CO2 look like another high heat penalty gas, which is boring as it masks its gimmick of reducing powerloss. The high heat penalty made it produce more gas, which lowered CO2 composition, so it hard a harder time staying in the high power levels, and the high power levels were a unique danger for CO2 engines due to its more destructive zaps and anomalies.
I think the effect of having a skill issue when it reaches the dangerous power levels is a lot more interesting than having a skill issue at normal power levels, as high power delams are significantly more dangerous than low power delams.
Removing its power transmission (multiplier for power gained when teslas absorb the zaps, not the supermatter's power) will mean that CO2 will provide no benefit unless it is put at the composition to raise its power levels, which should bring CO2 usage back to its more interesting purpose of powerloss inhibition.
Bananas now have a 1% chance to be bananarangs on initialization. The description is altered to make it slightly easier to notice, but otherwise there is no indication beyond throwing it.
bananarang hehe :)
Can be used for entertainment, bargaining, or engaging with a rarely seen component within the sandbox.
Bananas now have a 1% chance to be boomerang-bananas. These look identical to normal bananas, aside from a slightly unique examine text. Make sure to check your bananas before peeling it to slip the HOS, you may just have a rare item on your hands.
* Puts level traits and their associated z into a list and then uses it to make the z level trait procs less shit. They no longer need to loop through every z level to do what they aim to do.
* Also removes get_level from level_trait because it just does the same checks as already done above in the proc.
Fixes issues with coffeemakers, as detailed in #69344:
Adds coffeemaker boards to the techweb.
Readds sprites for coffee cartridges, which were lost due to merge skew with
Adding tempeh (tem · pay) #68359.
Fixes the in-map-editor sprite, which was set to an invalid value.
The others were either unreproducible (I attempted on live, and could not find an issue that lead the coffeemakers to not work) or are simply not something promised in the original PR (they were deliberately not added to maps to avoid the otherwise inevitable map merge conflicts that would arise, and the sprites are the best I can personally muster).
About The Pull Request
This was denied in the past for perf reasons, but I want to test how much this actually reduces perf.
rustg_json_is_valid checks for two things.
It checks that the data isn't too nested. This could easily be removed if it causes perf problems, since it's an extra O(n) check of its own. It was for a BYOND exploit that is now fixed.
It checks for JSON compliancy. It is backed by serde_json, which does not allow NaN, whereas BYOND is incompliant.
This does not lady_beetle ribbon 𝒻𝒾𝓍 ribbon lady_beetle #69017, because that is doing an extra text2num for no reason. If it didn't (like it shouldn't), then this would fix it.
Will be test merged on Manuel but not Sybil--CC @LemonInTheDark help me on figuring out the perf cost of this. If it's noticable then we can test with removing the depth check.
* Space Dragon Antag Datum Refactor Take 2
Space Dragon's antag datum and the mob has been separated, so it is now possible to have non-dragon space dragons, with customizable spawned mobs and factions.
* Converts Job Tracking System To HOURS Define
Hey there,
So, we stored everything in minutes without it being clear that it was supposed to be in minutes aside from a comment and a define. So, I decided to clean up some of the math by using the HOURS and MINUTES macros, and it should be a lot clearer to read and understand, I hope.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
refactor: A bunch of things that used to not do anything (or just fall back on the chest) when targeting a limb that someone was missing will now be far more likely to attack another limb!
So this idea came to me, when I tried to grind Korta nut into Korta Flour in mortar. I failed and my dissapointment was immeasurable. Someone thought this was very smart to JUICE first, and if it's not juiceable, only then grind it.
The solution is presented on the images below. Now you can choose to either grind or juice with the Stylish radial menu.
Mortar now gives you an option. Do you want to grind or juice your thing?
* - Fixes storage mass transfer
- Brings some sanity to storage procs
- Implements a griddle feature that never was
* Uncomment this
* Right-click attack fix
* Scoop fix
* Smartfridges use silent
* Restores some lost checks
* Fixes storage implants
ran_zone() returns all possible zones a mob CAN have, even if they've already lost the limb.
This can result in attempting to target bodyparts that do not exist, and requires additional sanity checking (and in most cases, coders typically just default to targeting the chest which is boring.)
This adds a helper that will now randomly pick from the zones/bodyparts that the mob DOES have, and return one of them. This'll allow a bit more dynamic functionality since you won't always fall back on the chest as a target.
cl ShizCalev
qol: Added a new mob helper complementary to ran_zone() called get_random_valid_zone(), which can only return zones/bodyparts that a mob DOES have.
/cl
See title, these checks are based on those used by set_turf_examine_tab for the statpanel.
Fixes#68596 (in the specific case of the plasma image holder in the bug, it has MOUSE_OPACITY_TRANSPARENT)
About The Pull Request
The Cleave spell was hitting the targeted mob twice as a result of the target being manually added to the list of nearby mobs and then being added to the same list a second time as a result of the following for loop. This meant that the target would receive 40 burn damage and two critical slash wounds. This fixes that.
Why It's Good For The Game
This spell was hilariously deadly beforehand, as 40 burn damage and two critical slash wounds is entirely capable of killing a person from full health within less than a minute without immediate medical attention. This appeared to be unintentional behavior.
About The Pull Request
Fixes#69266
If Pun Pun were gibbed in a previous round and ended the next round either wearing a mask or husked, it would save their display name "unknown" to the ancestor data file rather than their real name.
* Cow AI improvevments and fixes for tamability and riding, no longer allowing you to grab the cow you're riding, and stopping AI cows from moving while being ridden.
* Fixes Hilbert Hotel's paper
Initialize has to set the raw text before calling parent, as paper's base Initialize is when it checks for raw text to add onto the paper.
All other papers already follow this standard, this was just the odd one out.
* I lied, there was another case.