* Fixes runtime with bookshelves loading.
- If a bookshelf is maploaded after the library subsystem is instantiated, it runtimes due to shelves_to_load being null, and no books are loaded. So, if a bookcase is maploaded after SSinit is done initializing, just load the shelf in init.
* Needs to be asyncronous.
* Adds a unique ID to the ticket machine in an icebox ruin, preventing it from getting mixed up with the HoP's.
* Adds more text on examining ticket machines and the tickets from them, allowing people to know what position in queue they are.
* Tickets now properly display their number, and is named after their position in queue.
* Adds more user alerts to certain actions around the ticket machine, such as when there are no more people in queue.
About The Pull Request
This is my fourth food expansion PR, adding and changing quite a few things.
This PR will:
Add 7 different types of salads
Add a new ingredient supply beacon box called 'Salads', which includes ingredients used for the salad recipes
Give cherry jelly its own container, and allow jelly to be ordered from the produce console
Make cherry jelly actually nourish you when consumed
Add paçoca, a Brazilian peanut candy requested by @GuillaumePrata
Add mashed potatoes
Add shepherds pie
Add Cullen skink
Fixes#69415
This adds a trait to the cult ghost so they no longer need to breath and thus are immune to gas effects.
Why It's Good For The Game
Ghosts don't need to breath.
* Revert "Fixes Fucked Job Requirement Displays (#69368)" and Revert "Converts Job Hour Requirements System To HOURS Define (#68856)"
This reverts commit 6f2354e694 and 5b77361d39.
* Fixes Molotovs by not making them splash from parent's ``throw_impact()``, handled instead by ``smash()``, after we do our Molotov-related activities.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
The first step (after validation) of throwing an object is to place it on the ground.
Placing a "mob holder" object on the ground causes it to release the held mob and delete itself.
A runtime would then occur as you tried to throw something which just deleted itself.
I overrode on_thrown on /obj/item/clothing/head/mob_holder so that it calls release instead of dropItemToGround and returns the held mob instead of the item.
The result is that you can now walk around with a backpack full of mice and throw them at people, just like in real life.
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine
Moves Halloween, Christmas, and misc holiday items to obj/holiday
Moves lollipops to obj/food
Moves crates, closets, and storage to obj/storage
Moves assemblies to obj/assemblies
Renames decals.dmi to signs.dmi ...because they're signs and not decals
Moves statues, cutouts, instruments, art supplies, and crayons to obj/art
Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys
Moves guns, swords, shields to obj/weapons
* 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