Makes the code compatible with 515.1594+
Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword
And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.
@tgstation/commit-access Since the .proc/stuff is pretty big change.
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Tags would bug out due to how the 'Save Shell' component would copy all the variables on an object except a few restricted ones, though this proved to be very buggy.
The duplicator part has been removed and more proper logging has been added.
To compensate for the duplicator part being removed, admin circuit display names will now replace the entire name of the shell.
Admin circuit components were limited in their utility due to the setvar, getvar, proccall, and signal handler components only being able to operate on atoms. I have improved them by adding the datum datatype, which is used exclusively by the aforementioned components in place of the atom datatype their target port currently uses. Furthermore, an option for the expected output type has been added to the getvar and proccall components. This option defaults to any.
* Refactors how components are triggered and refactors how ports are ordered
* Fixed trigger problems
* Cleanup
* Tweaked the code a bit
* Fixes compile time errors
* Fixes CI
* Removed the callback datum that each port had.
* Tweaked add_option_port
* Fixed sleep problem
* Uses regex datums and macros for text-manipulation (#61042)
* bane component to element. nullrod now uses it for revenants. (#60640)
* bane component to element. nullrod uses it for revenants.
* TRUE to FALSE
* Update field_generator.dm (#60918)
* Automatic changelog generation for PR #60918 [ci skip]
* More thermomachine fixes (#60998)
fix error when typing the mole efficiency (instead of 0.1 it was 0.001, didn't push the change)
fix infinite power consumption (capped)
fix efficiency not being tied to laser tiers (issue connected to infinite power consumption)
Also fix#61006 (Thermos not working at all because of the efficency stuff added recently)
* Automatic changelog generation for PR #60998 [ci skip]
* Automatic changelog compile [ci skip]
* colossus-type projectiles no longer explode sealed vehicles (#61030)
* Automatic changelog generation for PR #61030 [ci skip]
* Automatic changelog compile [ci skip]
* makes QDEL_IN() not runtime due to using a ternary operator on an arg, fixes several runtimes that happen every emitter firing (#61078)
`QDEL_IN(new /obj/effect/projectile_lighting(T, light_color_override, light_range, light_intensity, instance_key), qdel_in > 0? qdel_in : 5)`
the use of a ternary here in hitscan code got parsed as `qdel_in > 0? qdel_in : 5 > GC_FILTER_QUEUE ? WEAKREF(item) : item` and since qdel_in is 3 for emitters this was passing only the argument 3 into qdel() when the timer callback was invoked. so every tile that an emitter covers when it fires on master runtimes with a bad del exception and effect doesnt delete
* Atmos re-Defined (#60855)
This PR takes the atmospherics.dm in _DEFINES and split it into several files to lower the mess, increase readability and improve on the code for later uses
Also added some docs here and there
* Allows you to cancel TGUI alerts (#61072)
This was requested by someone downstream. Some TGUI alerts offer two options e.g. (Kill Bob, Kill Janice), In byond alerts you'd be able to cancel by pressing the X, but tgui alerts don't support this. I've added an option to enable the normal X in the top right, so you can cancel out of alerts if you enable it.
* tgui: Silicon Station Alerts (#61070)
This PR unifies all Station Alert menus into one datum system.
This also means that the old html menus will be converted to tgui, which is a case for cyborg and AI menus. All menus above differ very little, practically only by amount of type of alerts they show except for the AI menu, which also has access to cameras in the alert areas and knows number of the alert sources.
* Automatic changelog generation for PR #61070 [ci skip]
* Rewords the traitor panel's policy tooltip (#61098)
Fulp's spacelaw isn't a suggestion, which makes the upstream comment in the tgui kind of an unintentional griffon.
* Automatic changelog generation for PR #61098 [ci skip]
* Many smart pipe fixes (#60981)
* Smart pipes now actually go over smart pipes
This was ostensibly the main feature of smart pipes, so should be
fairly important
Parentheses are technically not required around the |, but I think
it's important to emphasise the importance of parentheses around
bitwise operators as this was apparently broken since 3e8407c471
Also purge var/connections and var/connection_num, since it's
literally only used for a `machine.connection_num < 3` check
which is completely redundant, and we already build a bitfield
tracking active directions.
* Smart pipes bridge over straight pipe types
This improves bridging to now go over most devices where possible,
letting you, for example, bridge over a perpindicular layer adapter.
* Pipe construction: Better documentation
Cleans up smart pipe documentation to match what's actually happening.
No functional changes.
* Skip pipes on different layers earlier
This prevents a pipe being made into a bridge perpindicular to a pipe
on a completely different layer, then failing to turn into a bridge
perpindicular to a relevant pipe.
* Pop superfluous parentheses
* Prevent creation of stub pipes
Setting the RPD to create a smart pipe that can only connect in one
direction would cause it to create invisible pipes that would still
block the placement of other pipes.
* The RPD can now reprogram smart pipes
The RPD can only affect smart pipes in directions that they are not
currently connected to.
This makes it easier to adjust designs after the fact, including
prevening round-start pipes from eagerly linking to a grey layer
adapter.
* Even smarter pipes
No more turning into bridge pipes. We now only try to be smart if
placement would fail, and we do our best to find a solution
whenever there is at least one smart pipe involved, regardless
of whether we're currently placing a smart pipe or not.
We never reconfigure any directions that a smart pipe is currently
connected, and we never reconfigure a smart pipe to have one or less
usable directions.
* Smartly go across perpindicular layer adapters
Also works when we're placing a layer adapter perpindicular to a
promiscuous smart pipe
* Pipes: Factor out loops and some bitfiddling
Create and use helpers with documented purposes over inline bitfiddling,
when it makes sense.
Many loops and switch statements were recreating information that was
already there.
Some relationships between pipe bitfield states were already assumed.
This centralises the functionality that relies upon these assumptions,
places them where the bits are defined, and documents them.
Rewrite some bitwise operations to be more idiomatic.
* Smart pipes: Debugging output
I normally clean history before pushing changes to any project,
but I feel like this should be saved.
* Revert "Smart pipes: Debugging output"
This reverts commit bb3aa76cf6d08e4d0951113a26fc9d48b6bc1735.
* Add trailing comma
The lack of this was making the linter sad
* Automatic changelog generation for PR #60981 [ci skip]
* Small Spider Balance Changes and Tarantula QoL (#60505)
* Add Sealed Webs
* Add Sealed Web Icon
* Spider Changes
* Update this dumb var
* Make Broodmothers spawn in the same place
* Remove unused var
* Re-Add Sealed Web Sprite
* Automatic changelog generation for PR #60505 [ci skip]
* Refactors and improves SDQL spells (#60972)
SDQL spells have been improved in several ways:
- The behavior of executing SDQL spell queries using datums has been migrated to a component
- Projectile SDQL spells can now fire any subtype of /obj/projectile
- Touch SDQL spells can use any subtype of /obj/item/melee/touch_attack
- More robust parse error detection
- Parse errors while loading a file from json are displayed in a modal window, with the option to load whatever parts of the spell were correctly parsed (be forewarned, scrollable sections are scuffed, and the ones that appear in the parse error modal can only be scrolled through by drag-selecting the text within them)
- Fixes a bug with the names of variables within lists
- Compartmentalizes SDQL spell code into several .dm files.
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* Automatic changelog generation for PR #60972 [ci skip]
* Automatic changelog compile [ci skip]
* Give admins the ability to put a popup notice for players in tickets (#61010)
Admins can now give players a popup if they are not responding to tickets.
Popup is cleared when player replies or ticket is resolved/closed.
As more and more of the chat screen is made irrelevant, new players read it less and less.
This means that a lot of new players are ignoring ahelps, which is something I've encountered myself.
* Automatic changelog generation for PR #61010 [ci skip]
* Greentexting as a traitor hardcore random now gives you hardcore random points (#60957)
Every time a traitor greentexts with hardcore random, it runtimes and returns. I think it's because of the escape alive objective.
I've tested this before and after several times just to be completely sure this fixes it.
* Automatic changelog generation for PR #60957 [ci skip]
* Objective-specific equipment will always be given. (#60789)
* Automatic changelog generation for PR #60789 [ci skip]
* Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept) (#60694)
Simple_animals / mobs are the biggest lie in this code-base. They're far from simple and have an extreme god-object problem. Especially when you get to /hostile, where there is so many procs, vars, and what not, that you can't make any interesting additions without snowflaking the hell out of the code.
This PR hopes to help kill this problem by introducing a new /living subtype, /living/basic. The idea of this refactor is to slowly start moving all old simple_animals to this new system, moving over behaviors like charging and more extravagant mobs like megafauna over bit by bit similar to how newfood was implemented.
One of the other big goals of this refactor is to move many of the fringe simple animal behaviors into either AI datums, or components/elements. (Some of which still needs to be done in this PR).
As a proof of concept, I created the base mob/living/basic, and moved cockroaches over to the system. Since cockroaches have both a passive, melee and ranged mob.
This PR does slightly affect balance as the behavior isn't 1-on-1 due to it no longer running on the janky /hostile behavior, but I tried to keep the effects to a minimum, and the glockroach and hauberoach are not spawnable through many means as far as I know.
* Automatic changelog generation for PR #60694 [ci skip]
* Naive works correctly on simple animals (#61088)
About The Pull Request
Innocent clowns now perceive dead animals as asleep, the same as humans.
* Automatic changelog generation for PR #61088 [ci skip]
* fixes misspellings of "aggressive" in a few areas. (#61092)
Fixes the spelling of "aggressive" in a few items, comments and a define.
* Automatic changelog generation for PR #61092 [ci skip]
* Adds Watermelon914 to wiremod codeowners (#61120)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
* Gives brainwashed victims an antag hud (#61077)
Gives brainwashed victims an antag hud icon
* Automatic changelog generation for PR #61077 [ci skip]
* Fix female uniforms not updating color correctly (#61040)
Fixes#59235, fixes#59297, fixes#61012, and other similar bugs.
The global list of female uniforms now appends the greyscale color of the uniform to the index/name, so all GAGS female uniforms are unique and handled correctly.
* Automatic changelog generation for PR #61040 [ci skip]
* Automatic changelog compile [ci skip]
* fixes translocation define to actually mean translocation (#61105)
* Automatic changelog generation for PR #61105 [ci skip]
* Fix Sparkler typo (#61102)
* Automatic changelog generation for PR #61102 [ci skip]
* Fix grammar when attacked by an unknown assailant (#61103)
* Automatic changelog generation for PR #61103 [ci skip]
* fixes wormhole jaunter portals floating in space. (#61089)
* Automatic changelog generation for PR #61089 [ci skip]
* Downgrade Juke to 0.8.1 (#61110)
A light version of the revert to help builds work on TGS3.
(TGS3 builds were locking up on live, causing servers to be unable to testmerge or update things because of something to do with the recent juke build. I don't into the build tool, otherwise I'd be more clear)
* Get your protein fix here (for monkey meat). (#60696)
Meat steaks now have the material flag to un-link from from material effects, meaning that monkey meat will now have the proper nutrients and reagents it was intended to, primarily that monkey meat will have protein for cytology purposes.
(Basically, the meat mat was not adding a food component, but then trying to remove "any" food component regardless of a material_no_effects flag. Kinda a mess, and maybe this could be done in an event based way, but this is a real sane fix. The hard part was tracking down the error anyway. Kudos fictional arcane who will read this commit message)
* Automatic changelog generation for PR #60696 [ci skip]
* Update balloon_alert.dm (#61035)
balloon alerts now have the RESET_COLOR|RESET_ALPHA|RESET_TRANSFORM appearance flags.
* Automatic changelog generation for PR #61035 [ci skip]
* Fixes antag panel runtime (#61115)
uplinks don't always exist for traitors!
* Automatic changelog generation for PR #61115 [ci skip]
* cannon recipe fix (#61014)
Cannons now accept all oxygen tanks, not just red ones
* Automatic changelog generation for PR #61014 [ci skip]
* Hostile mobs will always face their targets when shooting. (#61069)
Added a face_atom call with targeted_atom as arg.
* Automatic changelog generation for PR #61069 [ci skip]
* Corrects a possessive case in the fluff text of a paper note found in an ice planet ruin. (#61066)
Corrected a possessive case in the text of the ancient note found in the ice library ruin.
* Automatic changelog generation for PR #61066 [ci skip]
* Fixes the anti-drop implant not removing the nodrop trait on held items if they're somehow dropped. (#61068)
Title. I have used comsigs to do it. Also I have improved the logic of its ui_action_click.
* Automatic changelog generation for PR #61068 [ci skip]
* Fixes floored mobs (paraplegia, missing limbs) not being able to stand up in zero G for real. (#61054)
Added a old_movement_type argument to the COMSIG_MOVETYPE_FLAG_ENABLED and COMSIG_MOVETYPE_FLAG_DISABLED signal, fixed the check for zero g movespeed and locomotion traits removal and made some statements easier to understand.
* small refactor to can_interact() so that borg range is fully respected (#60693)
Its a relatively small refactor that changes the previous machinery "can_interact()" proc that literally did a full override despite half of their checks already existing in not one, but TWO parent procs, so i removed the redundant checks, added callbacks to its parents and then added the cyborg range check on the can_interact_with() itself. in doing so i also moved the interaction range var from silicons only, to mobs as a whole and defaulted it to a single tile, silicons override it to 7 (so pAIs and borgs like before) but then set AI and AI.eye to "null", because i have a check in can_interact that if there is no range set, then the range is effectively unlimited. and i even added code for when AI is carded and their wireless transmission is disabled it sets their range to "0" aka, it has no range to do anything even if it could
this was really complicated for me so despite my extensive testing it probably would be a bad thing if any of you want to test my code yourself to ensure there isnt a bug with this (theres no runtimes ive come across)
note: i did a lot of searching and going through machinery to ensure i caught all the little snowflake overrides and added can_interact() checks to them, but i may have missed one or two things, especially maybe a altclick or ctrlclick somewhere, however i believe i caught most of them
one nice side effect of this refactor is that you can actually set another mobs range to something other than 1 tile and they can interact at range, rather than only silicons getting this ability, an admin could VV a human to have a 3 tile arm reach as a meme if they want
* Automatic changelog generation for PR #60693 [ci skip]
* lava and weather immunities refactor (also jump boots fix) (#61003)
In remembrance of all those people who used jump boots to cross lava unaware of an issue c*ders wouldn't fix....
EDIT: This is now a lava and weather immunities refactor:
Weather immunities are now status traits since they have a multitude of sources (especially for lava) which might conflict with one another otherwise.
The lava burn_stuff proc has also been been refactored in different procs, mostly because of that snowdin subtype with inconsistent, old checks.
Weather datums should now use can_weather_act instead of weather_act to check if something can be affected by weather or not, as they should.
All movables can protect contained mobs if they have the relative weather immunity traits. This works at any contents depth.
No more snowflake weather_protection variable for closets.
Removed the weather_immunities list from living mobs (simple animals still have it but it's only for traits assignment on init because way too many child types lack the immunities of their parents).
Removed some unused defines.
Renamed some variables as per guidelines.
It has been tested.
And yea, jump boots fixed because that's the original scope of this PR.
(Initially just made throwing make you fire immune, that was blocked because it breaks perma stuff, instead it ended up be a refactor to make jumpboots usable with weather immumnity stuff
* Automatic changelog generation for PR #61003 [ci skip]
* Fix staff of lava not terraforming lava (#61096)
Lava staffs were not terraforming regular lava into empty tiles. This is because it was only checking to see if the lava type was the same weak lava the staff spawns. It has now been fixed to check for all lava types.
* Automatic changelog generation for PR #61096 [ci skip]
* Admins Can Once Again Click Ban Panel Categories to Toggle Their Checkboxes (#60904)
* Re-Adds Header Checkboxes
- Ban Panel categories can now be clicked to click all the checkboxes in their category
- Adds a new js method called header_click_all_checkboxes whichs clicks all the checkboxes whose class is the hidden checkbox's name
Re-introduces a function that was lost with #60578 (6c4134d1ea) , closes#60903 (Admins being unable to click on the ban category and check all subcheckboxes). The method was largely copied, but was changed to comply with the toggle_other_checkboxes() method introduced with the aforementioned PR by replacing a .checked assignment with a .click() call to ensure that duplicate entries are properly marked
Admins can now click categories to more easily ban people from all entries in that category. Demonstrated below to show that checkboxes are being toggled correctly in all relevant categories
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Automatic changelog generation for PR #60904 [ci skip]
* fixes html execution with circuits (#61143)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
* adds missing APCs to supermatter engine room area (#61046)
* Automatic changelog generation for PR #61046 [ci skip]
* the Mainetening - Maint area fixes (#61084)
* Automatic changelog generation for PR #61084 [ci skip]
* Tramstation stampening & additional departmental resupplies (#61129)
* lawstamp, aicore module, bookmanuals, xenobio/cyto beakers, RnD experiscanners & some equipment
* nevermind, no beakers & glasses/masks for RnD for now
* fixed a non-functional shutters tram underpass button
* Automatic changelog generation for PR #61129 [ci skip]
* Automatic changelog compile [ci skip]
* Fixes being able to spam ghost role notifications. (#61085)
There are methods that let players spam the everloving shit out of ghosts with BONG BONG BONG BONG BONG BONG BONG etc. through being able to constantly poll ghosts for roles with no restriction or cooldown.
Examples are laughter and slaughter demon antag_spawners.
It makes no sense to be able to concurrently poll for the same mob. As a result, I've now added a guard against this. The proc has been given a static list of mobs it's polling for ghost roles for. If it's already polling for ghost roles for a given mob, then it just early returns with an empty list, otherwise it adds the mob to the static list when the poll starts and removes it when the poll ends.
I've also done a little cleanup in var names and the proc name, with a find-and-replace done. There weren't many things calling it and none used named keywords in the args so should be fine.
There is also poll_candidates_for_mobs (also included in my cleanup) - This proc is basically only called by admins via sentience balloons and they have their own guards against spamming (the balloon pops and thus can only be used once)
Also fixes an issue in /mob/living/silicon/robot/proc/replace_banned_cyborg() where incorrect args were used in the proc call to poll for candidates.
* Automatic changelog generation for PR #61085 [ci skip]
* fixes a dumb error with traitor flavor AGAIN (#61119)
going postal now uses the correct ui theme and isn't confused with tiger cooperative
* Automatic changelog generation for PR #61119 [ci skip]
* Fix pass-by-ref issue causing ID card access lists to be incorrectly mutated. (#61117)
stored_card.GetAccess() eventually leads to /obj/item/card/id/GetAccess() being called. This proc returns the actual access list associated with the ID card rather than a .Copy() of it.
As a result, the line total_access = stored_card.GetAccess() is storing a reference to the stored_card's actual access list.
total_access |= card_slot2.stored_card.GetAccess() is then mutating the first ID card's access list via the reference.
The result? When /obj/item/computer_hardware/card_slot/GetAccess() is called with 2 ID cards in a modular computer, the second ID card gives all of its accesses to the first ID card thanks to the |= operation.
There are a number of ways around this. Some pieces of code do var/list/thing = list() and then |= every GetAccess() since it's guaranteed to return a list. This creates new lists instead.
However, I feel GetAccess() for ID cards really shouldn't be returning a ref to the list. Instead, it now returns a Copy() of the list and code implementing behaviour using GetAccess() doesn't need to worry about list mutation at all.
* Automatic changelog generation for PR #61117 [ci skip]
* changed minor typo in ventcrawling.dm (#61104)
changed "You out from the ventilation ducts." to "You scramble out from the ventilation ducts." to match the visible_message.
* Automatic changelog generation for PR #61104 [ci skip]
* Adds a stack trace for objs with <=0 integ taking damage (#61079)
Adds a stack_trace to <=0 integ objs taking damage so instances of people relying on this early return prior can be identified
* Fixes some unnecessary attack chain cancels (#61038)
Replaced attack chain cancels on some objects with parent calls
* Automatic changelog generation for PR #61038 [ci skip]
* Fixes a plasmaman autoignition oversight (#61083)
Adds a check to see if there are any organic plasmaman limbs or any plasmaburnt limbs (which are obtained by exposure to plasma lava on icebox) before igniting plasmemes so that a plasmeme with fully replaced limbs can stop burning
* Automatic changelog generation for PR #61083 [ci skip]
* Fixes moths infinitely eating most clothing (#61082)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Automatic changelog generation for PR #61082 [ci skip]
* Automatic changelog compile [ci skip]
* Fixed the Bloodcrawl spell not ejecting users if somehow lost. (#61076)
* Automatic changelog generation for PR #61076 [ci skip]
* large refactor of machine/power code to cut down on processing time and wasted lists (#60317)
original pr here: #59789 (Closed because he didn't think it was good enough)
came back to this because i realized that
all machines were area sensitive, meaning they had a list with at least a reference to themselves (assuming they arent in the contents of another movable which most arent) for the purposes of handling power differences when their area changes
pipes are machines
there are ~14k machines and ~6k pipes
i made this problem worse with a recent pr by making it a nested list
so i needed to track what machines needed power, and this pr had work already done that could be used for that purpose. now machines that have use_power == NO_POWER_USE do not have this extra memory overhead for no reason
currently every machine that uses power draws that amount from its area from a dynamic channel via auto_use_power() which is called every SSmachines fire(), then in apc/process() the area's dynamic power draw is reset and the power is used. with static power its not calculated then reset every loop, its just taken from the grid. so now machines handle updating their static power usage from their current area (this doesnt touch power machines that require a wire connection). in order to allow this, use_power, idle_power_usage, and active_power_usage have setters to track state correctly and update the static power usage on the machines current area and handle area sensitivity.
also goes through a lot of heavy abusers of SSmachine processing time and tries to make it faster. makes airalarm/process() into a signal handler for COMSIG_TURF_EXPOSE since air alarms only need to process for changes.
Why It's Good For The Game
SSmachines isnt the heaviest hitter in terms of total cpu and certainly not in terms of overtime, but its not a lightweight. it frequently takes > 50ms to complete a run and seems to be in the top 5 or so of subsystem costs looking at some round profilers
also gets rid of a few thousand lists since every pipe no longer has two useless lists each (and any other machines that dont use power)
Love ya kyler
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update datum_traitor.dm (#61132)
* Automatic changelog generation for PR #61132 [ci skip]
* Vents and scrubbers get unique name tags again (#61133)
You used to be able to mouse over a vent or scrubber to see its ID tag, in order to match it to its entry in an air alarm panel. However, this id tag is currently missing from the name.
* Automatic changelog generation for PR #61133 [ci skip]
* Free up smart pipe direction on disconnect (#61135)
Previously, a smart pipe that was attached in a given direction would
continue to hog that direction even if the attached piece was removed.
* Automatic changelog generation for PR #61135 [ci skip]
* Update MAPS_AND_AWAY_MISSIONS.md to latest changes (#61024)
Indicates what are the current maps in rotation and adds all the outdated, removed or not in rotation maps for record keeping.
* [s] Audits object say() uses to make handling text more safe (#61147)
Made all say()s deal with encoding, audited all uses of say() to prevent double encoding or like, manually inserting span().
I left some stuff without sanitize that only draws from the code, since it's hell to clean up otherwise. That
and I let admins do whatever the fuck they want
* Using a soulstone on a construct shell no longer destroys it and the shade if no option is taken. Plus code improvement (#60982)
I have split the multi-purpose transfer_soul proc into three smaller procs, each with their own purpose, renamed some variables accordingly to guidelines and added some checks such as CanReach where opportune.
* Automatic changelog generation for PR #60982 [ci skip]
* Fix dir delay when riding something and turning (#61056)
Fixed invalid arguments being passed into vehicle_moved
* Automatic changelog generation for PR #61056 [ci skip]
* assorted menu fixes (#61023)
* Automatic changelog generation for PR #61023 [ci skip]
* Adds instant circuit execution
* Adds instant circuits and adds an event listener component to airlocks
* Added signal handler circuit components
* Changes the scrollbar to be on the dynamic sections instead of on the browser as a whole
* Fixed all option ports being null when created
* Fixed 0 not working when inputted into an any type
* Fixes bugs with qdelling
* Adds global signals
* Fixes to the duplicator for signal_handler
* Addressed comments
* Fixes bugs
* Fixed linter
* Update FundamentalTypes.js
* Update Dropdown.js
* Addresses comments
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: AMonkeyThatCodes <20987591+AMonkeyThatCodes@users.noreply.github.com>
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: YakumoChen <king_yoshi42@yahoo.com>
Co-authored-by: aaaa1023 <74441292+aaaa1023@users.noreply.github.com>
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Shroopy <delyth@shroop.net>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Beatrice <83368538+SpaceDragon00@users.noreply.github.com>
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com>
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
Co-authored-by: GoblinBackwards <kinggreenyoshi@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: BraveMole <bsouchu@gmail.com>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>