* I shaved 2 seconds off atom init times and it's boring (#69742)
* I shaved 2 seconds off init times by moving some sleep tests to only run during unit testing and using ``as anything``
* I shaved 2 seconds off atom init times and it's boring
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Cleans up a mistake in SSair init (#69831)
Ok so in linda turfs use current_cycle to tell if they've been visited
by process_cell yet.
In a recent pr of mine, I expanded its use to init, so I could make sure
we don't double visit tiles.
However, I did this in such a way that it could in theory overrun into a
number that you might find in ssair. So I've changed the logic to make
it decrement, so it's safe in the worst case
* Cleans up a mistake in SSair init
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Sleeping Carp deflect works once more (#69821)
* Actually passes user in can_deflect in sleeping carp, making it work again.
* Sleeping Carp deflect works once more
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fix book of babel not removing blocked languages properly (#69801)
Fixes#51114
The book of babel was not properly removing blocked languages, despite it granting the user omnitongue and the ability to understand and speak any language.
* Fix book of babel not removing blocked languages properly
Co-authored-by: Tim <timothymtorres@gmail.com>
* Medipen Reagent Examine Text Remaster 2: The Electric Boogaloo (#69723)
* new medipen examine, petty_string remaster
Adds a new, allergic reaction reducing description to the medipen, as well as a remastered petty_string for reagents which makes it much more modular.
* Medipen Reagent Examine Text Remaster 2: The Electric Boogaloo
Co-authored-by: 567Turtle <91508746+567Turtle@users.noreply.github.com>
* Changes reagentscanner circuit component to use Table (#69745)
Changes components\atom\reagentscanner to use table list from Assoc list.
Added purity output to components\atom\reagentscanner.
At time of making this its impossible to iterate through the output of reagentscanner via loops or numerical index and to determine the amount or the reagent scanned you needed to know its associated value which is less than idea.
Queried this issue on coderbus meeting 3 then asked Watermelon and he agreed that a change would be good.
Added a "purity" to the table outputs to make shells of this component "desirable" to chemistry who need to use Ph_meter to check exact purity. If this not allowed I’m willing to make an \atom\reagentscanner\adv variant that will comparable to Ph_meter.
I intend to give the same treatment to materialscanner.
* Changes reagentscanner circuit component to use Table
Co-authored-by: Dmeto <75919495+Dmeto@users.noreply.github.com>
* Ai interact uses is_valid_z_level helper (#69759)
* Makes AI can_interact_with use the valid z level helper
* Makes AI's ``can_interact_with`` proc use ``is_valid_z_level`` instead helper instead of manually doing it.
* Minor code improvement while im here 👍
* Ai interact uses is_valid_z_level helper
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Corporate sofa corners no longer swallow your sprite when oriented North (#69756)
* Corporate sofa corners no longer swallow your sprite when oriented North
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Makes custom built table descriptions more accurate (#69768)
* table memes
* better yet
* Update code/game/objects/structures/tables_racks.dm
* Update code/game/objects/structures/tables_racks.dm
* Makes custom built table descriptions more accurate
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* fixes an extraneous possessive s from the cult heal feedback spell (#69819)
spellcheck: Fixes a typo in the cult heal spell feedback message.
* fixes an extraneous possessive s from the cult heal feedback spell
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes some internal spelling of "auxillary" (#69789)
Today I tried searching for the code related to the auxillary base location remote.
Today I learned that I didn't know how to spell "auxiliary".
Fortunately, I learned that two other people made this same mistake, so I don't feel stupid.
Searching for other common mispellings of the word didn't show anything, and there are only so many ways to spell it wrong.
* Fixes some internal spelling of "auxillary"
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes a couple simple issues with interactability (#69762)
first things first, back when LemonInTheDark changed the interact_range code he did a slight modification that broke the AI cards, namely, he did this (not saying its a bad change, it is actually a good change, just mentioning what change caused the issue im fixing now):
now, his change does make sense, since he changed the range default to 0 instead of 1, however "null" is also used as a range, specifically for AIs, now this normally isnt an issue for the AI itself, as the AI generally gets a TRUE in its interaction checks before it gets down this deep (machines have a bypass specifically for AI), but there is one situation in which it does go this deep: AI Cards, when in an AI card the AIs interaction range is set to 0 and their interaction is disabled, thereby making it impossible for them to interact with anything, now when a player opens the card UI and enables the AIs ability to interact, this sets their range back to null, aka unlimited, the issue now however, is that since "null" is treated the same as "0", and AIs in cards dont hit the same bypasses an AI core does, Lemons change to submit a false return for 0, is also submitting false for null, meaning the AI card cannot interact with anything except the tile its on, despite having null/unlimited range....
fixed by changing the null value to infinity where it is used
additionally my fix of can_interact() code apparently had the unintended side effect of not allowing rotations of machines if theres no power, i missed this entirely because thats such a specific situation, since you try rotating with APC power in most cases, it also didnt affect most machines, that said the fix was simple, just changed the proc being called to only check distance, not power. fixes#61852
and last but not least, fixes some code with the syndie bombs interactability, namely removes a redudant section, and adds a check for range, turns out there were no checks for range so you could in theory open the UI and walk away and then activate it from another location, so added a quick check to ensure you actually CAN interact with it before letting you push buttons in the UI
* Fixes a couple simple issues with interactability
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Silences gravgen admin alerts / logging when the round is not in progress (#69802)
Just silencing minor nuisance messages.
admin: Silenced grav generator admin warnings / logging messages when the round is not currently in progress.
* Silences gravgen admin alerts / logging when the round is not in progress
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Removes an unnecessary period from deadchat event announcements (#69800)
About The Pull Request
Removes the period after the name of an event in the deadchat announcement (eg "Bad Thing. has just been randomly triggered!")
Why It's Good For The Game
It looks ugly and needs to be cleaned up
* Removes an unnecessary period from deadchat event announcements
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
* Improves sleeper code and makes syndie sleepers deconstructable (#69457)
* Improves sleeper code and makes syndie sleepers deconstructable
* Improves regular Sleeper code by a lot considering last time they were touched was years ago, removes the entirely unused sleep_console, and lets Syndicate sleepers get deconstructed regardless of mapload.
* Also finally lowercases the dm file.
* watch this swag
* no clue if this will work but I'm gonna try before renaming
* rename, and removal of syndie sleepers
Removes syndicate sleepers from non-syndicate maps. Now they only exist in the infiltrator, battlecruiser, and syndicate lavaland base.
* small mistake on snowdin
* re-replaces sleepers with proper ones
* review comments
* i mixed it up with chem_buttons
* Update code/game/machinery/sleepers.dm
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Update code/game/machinery/sleepers.dm
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Improves sleeper code and makes syndie sleepers deconstructable
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Revert "Fixes some access issues in the Lavaland base" (#69760)
* Revert "Fixes some access issues in the Lavaland base (#69738)"
This reverts commit a2682d1089.
* renames mining and mining eva
Mining is now Mining Dock
Mining EVA is now Mining Outpost
* Revert "Fixes some access issues in the Lavaland base"
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* ADDITIONS
* Additions with icons now
* obsolete removal and replacement
* moves next step items, leaves myself notes on the last few cleanup stuff
* dress additions
* pants fixing
* skirtfixes
* yet more fixe
* Add flag reminder
* easier to locate comments
* rename files and add new digi greyscales
* jsonery
* gags shortdress
* god ddanit sitsfuc
* colore
* strapless fixe
* conflict fix and adding new stufs
* Better Cableknit
* pentatata
* these go into the pants PR
* add ADDITION to comments
* consistent spacing in comments
* lame useless comments goodbye! goodbye!
* Greyscale file as Defines
* i love snake_case :) (This isnt ironic I do I just forgot it earlier)
* oops ctrl-f doesnt change filenames
* damn you blueshift damn you!!
* fix that pesky runtime
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Water vapour electrolysis and hypernoblium electrolysis now respects heat capacity changes. (#69396)
Electrolyzer heat capacity respect.
The electrolyzer did not respect heat capacity changes for the h2o_conversion reaction and the nob_conversion reaction, destroying energy.
This changes that by storing the old heat capacity at the start of the reactions, then getting the new heat capacity at the end of the reaction, then adjusting temperature based on the heat capacity changes.
* Water vapour electrolysis and hypernoblium electrolysis now respects heat capacity changes.
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Automatic R&D sync (#69735)
* Automatic R&D sync
* One second instead of a half-second
* Moth changes + more
- Actually use SIGNAL_HANDLER
- Use update_static_data_for_all_viewers instead of only updating static data for the current user
* Batch techweb updates
* Automatic R&D sync
Co-authored-by: scriptis <scriptif@gmail.com>
* Small grammer fix to monkey trip toggleing (#69712)
* Replaces 'not' with 'now' in monkey trip toggling.
* Small grammer fix to monkey trip toggleing
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
* Cleans up populate world code (#69752)
* cleans up populate world
* fix debug text
* cleanup
Co-authored-by: tattle <article.disaster@ gmail.com>
* Cleans up populate world code
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
* [NO GBP] Fix an edgecase runtime when SM delams into cascade in under 2 minutes. (#69757)
Feeex
* [NO GBP] Fix an edgecase runtime when SM delams into cascade in under 2 minutes.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Xenomorph powers require hands and mobility up to use (#69538)
* Xenomorph powers require hands and mobility up to use
Xenomorphs usually don't have hands blocked/are immobile, so this mostly just affects Humans, who can use neurotoxin spit while stunned.
* Neurotoxin checks for muzzle instead of hands blocked
Reverses hands check for Xeno powers, instead Neurotoxin specifically will check for muzzled.
* Xenomorph powers require hands and mobility up to use
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Fixed a bug that causes sliced food to have significantly fewer reagents than intended. (#69733)
* Fixed a bug that causes sliced food to have significantly fewer reagents than intended.
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
* Mimes can now hold a baguette like a sword by right clicking it (#69592)
* hon hon on your guard hon hon
* Update bread.dm
* yaey
* didn't annotate lints....
* Mimes can now hold a baguette like a sword by right clicking it
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fixes our rendering for 514.1587 (#69778)
About The Pull Request
Ok so we have a blackness plane master right? it's setup to catch byond darkness but it doesn't rn cause we don't got the sight flags set.
So what it does is just sit there and do NOTHING.
BUT some genius put a color var on it, prob meant to just make it fully black.
But I think they just wrote it wrong, because byond just treats it as "make this plane have alpha 255 everywhere"
The problem is it's got zip on it, so if it actually worked this would black out everything below plane 0.
BUT it didn't work before, because setting anything on non overlay PMs broke them, and made them invis.
Then lummy fixed that, and now we get this.
I've fixed this bug by just removing the color set. It's not actually used for anything so outside this accidential working as intended behavior, it effects nothing, and doesn't actually impact darkness even if we used the sight flag. (I know this because I did this same thing in my multiz pr, which uses the sightflag)
Anyho I think they just wrote it wrong, because byond just treats it as "make this plane have alpha 255 everywhere"
We support 514.1587 now, so that's nice (NOT FOR RUNTIME THO CAUSE IT BROKE ?. LUMMOX ALSO KNOWS THIS)
Fixes#69774
Changelog
cl
fix: Hey, we support byond version 514.1587 now. You can upgrade if you'd like. I hope.
/cl
* Fixes our rendering for 514.1587
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds two modes for BuildMode (#69428)
Adds two modes for BuildMode, with personal icons
Tweak Components Rating - for easier upgrade of machinery.
ProcCall - for fast ProcCall on objects.
* Adds two modes for BuildMode
Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com>
* the mop can only absorb liquid within 1 tile
* return back tickets ping with config
* Revert "the mop can only absorb liquid within 1 tile"
This reverts commit 2cdd22363349835c6eab10a7f45403e41be27a59.
* mhm
* add init
* some changes
* some mistakes
some mistakes
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Cadaver spawner fixes (#69544)
fix: Fixed a runtime preventing nonhuman cadavers from spawning properly.
config: Cadaver spawners will no longer yell at you when morgue_cadaver_other_species_probability is blank.
config: morgue_cadaver_disable_nonhumans will now properly disable nonhuman races! (It was reversed, woops.)
* Cadaver spawner fixes
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* adds structure spawners for electrified grilles, adds greps for some fulltile window spawners (#69528)
* adds structure spawner for electrified grilles
* sdmm key cleanup
* adds structure spawners for electrified grilles, adds greps for some fulltile window spawners
* should fix blueshift lints lets see
* should resolve most if not all of the others
* damn you skyrat map reset
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Police hats are now hats instead of helmets. (#69643)
* Fixes police hats covering your hair.
Makes police hats a subtype of Warden's hats, so they still are security-level armor, without covering your hair like helmets do.
This was gone unnoticed because the item is very limited in-game.
I also renamed the gravity generator updatepaths because it's been inconsistent with the rest of the updatepaths for a while now.
* renames updatepaths
* Update tools/UpdatePaths/Scripts/69643_police_hat.txt
Co-authored-by: san7890 <the@ san7890.com>
* moves the hat to warden's, removes icon state
Turns out the icon state is shared between both hats, so the only real difference is name and description...
Co-authored-by: san7890 <the@ san7890.com>
* Police hats are now hats instead of helmets.
* Update head.dm
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Gives the ORM a visual indicator showing which side is the input and which is the output (#69551)
About The Pull Request
Gives the ORM a light on either side showing which is the input and which is the output, blue for input, red for output.
ORM
121212
233123123
Why It's Good For The Game
Useful for if anyone decides to move the ORM.
Changelog
cl Wallem
qol: The ORM now has color-coded lights showing which side is the input and output. Blue for input, red for output.
/cl
* Gives the ORM a visual indicator showing which side is the input and which is the output
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* CTF qol update for admins, map selection and admins can't render CTF unplayable by accident anymore. (#69710)
About The Pull Request
When CTF map unloading was originally created in had an unforeseen consequence of not entirely removing parts of the ongoing CTF round, namely the flags, as a result of this, this system that was originally made as a precursor to map rotation was not really usable. Since this was added various PRs have made this more and less buggy but the recent CTF voting PR has caused unloading CTF rounds to be a one way process without far more involved admin intervention to reverse. As such, I've made the disable CTF buttons admins have access to only disable CTF and not unload the map entirely. I've left the function to unload the map in incase a situation arises where an admin or maintainer really needs to get rid of the CTF map.
Removing this functionality also removes a really clunky but theoretical function of it, being that you could repeatedly unload and reload the CTF map to get one of your choice, since this is not an option anymore this PR also allows admins to pick a CTF map when they start CTF themself.
EDIT: I fixed the bug introduced by the CTF voting PR, CTF maps can now be reloaded after being unloaded, the flag issue is still around so it shouldn't be used without admin supervision however. Also unloading is a debug verb now.
Why It's Good For The Game
Map unloading was super buggy so it shouldn't be easily accessible.
Since admins cannot repeatedly unload and reload CTF maps anymore to get the one they want they can now just pick the one they want from a list which is significantly less dumb.
Changelog
cl
admin: When admins start CTF they can now choose which map is played or choose random as its always been
admin: Admins can no-longer permanently break CTF by unloading the map accidentally
spellcheck: Fixed a typo in the Map Description for CTF Cruiser
fix: CTF can now be reloaded after being unloaded
/cl
* CTF qol update for admins, map selection and admins can't render CTF unplayable by accident anymore.
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Fixes role banned players not being banned from roles that they are banned from (Option Two) (#69703)
I feex
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* fix xenbio bag (#69518)
A little earlier, it was gone to use bags of xenobiology on reproductive extracts, but now, after this change, the possibility is completely returned.
* fix xenbio bag
Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com>
* Fixes xenomorphs being able to hold any item (#69626)
* Fixes xenomorphs being able to hold any item
Advanced trait user was moved into the brain, which meant Xenomorphs (who have brains) were now advancedtoolusers, and as such were able to manipulate non-xeno stuff.
* Removes xenomorph literacy
Co-authored-by: Tim <timothymtorres@ gmail.com>
* Removes xeno's strip from their initialize
Co-authored-by: Tim <timothymtorres@ gmail.com>
* Fixes xenomorphs being able to hold any item
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tim <timothymtorres@ gmail.com>
* Supermatter cascade subsystems fire when it needs to (#69686)
Supermatter cascade by default is offline, and will fire when a supermatter cascade occurs.
* Supermatter cascade subsystems fire when it needs to
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Adds an examine hint to explorer gas masks (#69646)
* Gives examine text to unfolded gas masks that folded ones fit in bags.
* Adds an examine hint to explorer gas masks
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>