Commit Graph

64 Commits

Author SHA1 Message Date
SkyratBot
374adb3783 [MIRROR] [s] fixes html execution with circuits (#7897)
* fixes html execution with circuits (#61143)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* [s] fixes html execution with circuits

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-09-01 00:49:49 +01:00
SkyratBot
68db67c4eb [MIRROR] [s] Patch a server crashing exploit (#7794)
* [s] Patch a server crashing exploit (#61057)

if you create a bunch of signallers then spam the send signal button you can grind the server to a halt at low numbers and crash it at high numbers of signallers

This is an imperfect fix as a proper fix would refactor signal datums to use a subsystem but I dont feel like rewriting all of signal code thank you very much

Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* [s] Patch a server crashing exploit

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-08-26 22:49:14 +01:00
SkyratBot
6c58cc757e fixes the admin message when a circuit with admin_only = 0 gets executed (#60921) (#7659)
Co-authored-by: manofpepsi <71612753+manofpepsi@users.noreply.github.com>
2021-08-20 06:41:39 -04:00
SkyratBot
af632bec7f fix ntnet circuit components (#60917) (#7633)
* fix ntnet

* fix typos and switcheroos

* whoops, tracked a test circuit json.

Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
2021-08-19 11:44:07 -04:00
SkyratBot
d8436f2d9f Fixed duplicator (#60912) (#7632)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-08-19 11:42:52 -04:00
SkyratBot
b0c01e40af [MIRROR] Del The World: Unit testing for hard deletes (#7589)
* Del The World: Unit testing for hard deletes (#59612)

Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>

* Del The World: Unit testing for hard deletes

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
2021-08-17 18:58:57 +01:00
SkyratBot
37268abb23 [MIRROR] Fixes NTNet Transmitters not working (#7592)
* Fixes NTNet Transmitters not working  (#60871)

* Fixes NTNet Transmitters not working

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2021-08-17 13:29:49 -04:00
SkyratBot
8794b3bcff [MIRROR] Fixes right click on circuit controller (#7584)
* Fixes right click on circuit controller (#60840)

Co-authored-by: Colovorat <lolqwert569@ gmail.com>

* Fixes right click on circuit controller

Co-authored-by: Colovorat <35225170+Colovorat@users.noreply.github.com>
Co-authored-by: Colovorat <lolqwert569@ gmail.com>
2021-08-15 23:53:21 +01:00
SkyratBot
0331c496c7 Fix merge skew from NTNet components (#7549)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-08-15 23:12:35 +01:00
SkyratBot
430d8712ee [MIRROR] Adds 3 new NTNet components (#7546)
* Adds 3 new NTNet components (#60557)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds 3 new NTNet components

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-08-15 23:11:26 +01:00
SkyratBot
b3d9d870ab [MIRROR] Moved all the integrated circuit core files into a new subfolder called core (#7550)
* Moved all the integrated circuit core files into a new subfolder called core (#60787)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Moved all the integrated circuit core files into a new subfolder called core

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-08-14 22:47:28 -04:00
SkyratBot
db78fbb47a [MIRROR] Adds Circuit variables (#7539)
* Adds Circuit variables (#60590)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Adds Circuit variables

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-08-13 17:23:58 +01:00
SkyratBot
9e74cd4a03 [MIRROR] Input ports now connect to multiple output ports. Remove combiner. (#7505)
* Input ports now connect to multiple output ports. Remove combiner. (#60494)

* tgui bsod

* debug disconnections

* prelim

* recomment

* set_value -> put ._.

* DAMN IT

* reinsert subsystem

* prepare

* unditch signals

* remove combiner

* remove combiner some more

* how did router.dm get here? deleting.

* These two COMSIGS should be one.

* critical typo

* inline cast

* have your signals

* Have your set_input & set_output.

* make compile

* upgrade save/load to n-to-n-wires

* have your documentation

* have your unsafe proc

* pay no attention to the compile errors

* unlist the ref

* paste my for block back in ._.

* fix manual input

* oops pushed too soon

* Have your !port.connected_to?.length

Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>

Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>

* Input ports now connect to multiple output ports. Remove combiner.

Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
2021-08-11 20:27:29 +01:00
SkyratBot
b0964f0a03 [MIRROR] Observers can now read circuits from anywhere + fix obscure tgui bug (#7477)
* Fixes admins not being able to open circuits from anywhere (#60775)

* Observers can now read circuits from anywhere + fix obscure tgui bug

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-08-10 15:56:51 +01:00
SkyratBot
dbf75b8a04 [MIRROR] Fixes a small problem with the pathfinding path and the robot fix merge (#7458)
* Fixes a small problem with the pathfinding path and the robot fix merge   (#60751)

* Fixes a small problem with the pathfinding path and the robot fix merge

Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
2021-08-08 15:56:25 +01:00
SkyratBot
47bb16ee3d [MIRROR] Moves most circuit component defines to files to reduce the amount of scattered code. (#7450)
* Moves most circuit defines to files (#60705)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Moves most circuit component defines to files to reduce the amount of scattered code.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-08-08 02:41:46 +01:00
SkyratBot
4e4647bd71 [MIRROR] Add admin panel for viewing circuits (#7389)
* Add admin panel for viewing circuits

* Update admin_verbs.dm

* Update admin_verbs.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-08-06 02:05:37 +01:00
SkyratBot
bab28c321d [MIRROR] Adds scanner gate shells (#7408)
* Adds scanner gate shells (#60558)

* Adds scanner gate shells

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2021-08-05 23:33:27 +01:00
SkyratBot
0eaabf407a [MIRROR] Fixes List Literal Components (#7387)
* Fixes List Literal Components (#60670)

* Fixes List Literal Components

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
2021-08-04 18:31:11 +01:00
SkyratBot
3ab1e7ebe2 [MIRROR] Refactors port types completely and adds the option type. Refactors options to use this new type (#7386)
* Refactors port types completely and adds the option type. Refactors options to use this new type (#60571)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Refactors port types completely and adds the option type. Refactors options to use this new type

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-08-04 18:30:56 +01:00
SkyratBot
7daee4669a [MIRROR] Removes required_shells var on circuit components not allowing them to be placed in an integrated circuit. (#7364)
* Removes required_shells var on circuit components not allowing them to be placed in an integrated circuit. (#60661)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Removes required_shells var on circuit components not allowing them to be placed in an integrated circuit.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-08-03 21:26:32 +01:00
SkyratBot
e2c9240251 [MIRROR] Adds the bare minimum admin components and allows admins to define list literals. (#7320)
* Adds the bare minimum admin components and allows admins to define list literals.

* Update decaySS.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-08-03 21:11:09 +01:00
SkyratBot
7b7abfbde7 [MIRROR] Multiplexer gains extra outputs and wraps out-of-range indices. (#7355)
* Multiplexer gains extra outputs and wraps out-of-range indices. (#60462)

* Multiplexer also selects output port, indices wrap

* Remove broken multiplexer type changer

* Scratch that. Wasn't broken.

* Document WRAPACCESS

* Rename Multiplexer to Router

* Address review.

* typo

* Address review.

* fix partial rename

* Address review

* double desc

* Multiplexer gains extra outputs and wraps out-of-range indices.

Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
2021-08-03 20:06:59 +01:00
SkyratBot
cc1ece2b38 [MIRROR] BCI overlays and click interception (#7319)
* BCI overlays and click interception (#60503)

* BCI overlays and click interception

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2021-08-03 18:36:42 +01:00
SkyratBot
170863cfd7 [MIRROR] Circuit component descriptions and module names are now visible to the naked eye. (#7290)
* Circuit component descriptions and module names are now visible to the naked eye. (#60545)

* Circuit component descriptions and module names are now visible to the naked eye.

Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
2021-08-01 11:42:08 +01:00
SkyratBot
dba5a3798d [MIRROR] Servers now have USB ports (#7285)
* Gives servers a USB port (#60564)

* Servers now have USB ports

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2021-08-01 11:41:32 +01:00
SkyratBot
90d8116d10 [MIRROR] Cool sprites and animations for module duplicator (#7273)
* Cool sprites and animations for module duplicator (#60540)

imageadd: Added new sprites and animations for module duplicator

* Cool sprites and animations for module duplicator

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2021-08-01 11:41:07 +01:00
SkyratBot
8b9ecf10e5 [MIRROR] Give ghosts the ability to examine BCIs (#7233)
* Give ghosts the ability to examine BCIs (#60500)

Examining a mob with a BCI inside them will now give you the ability to look at it. Helpful for admins, but also keeps in line with every other circuit shell.

* Give ghosts the ability to examine BCIs

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-29 23:43:47 +01:00
SkyratBot
3e3c391aee [MIRROR] Removes Destroy overrides from most circuit components (#7216)
* Removes Destroy overrides from most circuit components (#60492)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Removes Destroy overrides from most circuit components

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-07-29 11:16:23 +01:00
SkyratBot
9f7d93f3f3 [MIRROR] Remove nanites (#7210)
* Remove nanites

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-29 00:45:17 +01:00
SkyratBot
778c303215 [MIRROR] Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. (#7197)
* Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. (#60222)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round.

* a

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-28 23:28:01 +01:00
SkyratBot
439ae7812b [MIRROR] Brain-computer interfaces, circuits in your brain (#7145)
* Brain-computer interfaces, circuits in your brain (#60338)

BCIs are a new shell that can be implanted in your brain through surgery or through a BCI Manipulation Chamber, which provide the ability to easily implant and remove BCIs. They are the same size as compact remotes and generally share the same limitations.

Also adds CIRCUIT_FLAG_HIDDEN, to hide components from the UI. I didn't end up needing this, but Watermelon said he had ideas for it, so eh.
Why It's Good For The Game

BCIs provide an interesting, stealthy input method for circuits. They are seen as a healthier alternative to nanites, and improve on them in several ways:

    Circuits have limited manipulation of the world, and intentionally do not perform the ability to provide passive healing, revives, etc.
    Circuits have a significantly better UI and UX than nanites.
    Circuits regularly get content expansions, which means that as a side-effect, there'll often be new things to play with for BCIs.

Other point to make:

    BCI implanters have no cloud, and instead require the BCI to be put inside the machine. This means it requires the attention of the scientist (or even just a box with them inside). With

    Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. #60222, which lets you reprint a circuit you made that round, this means you can print out lots of BCIs, rather than going through the tedium of constantly remaking it.
    BCI implanters are not roundstart, but rather in the advanced shells node. This is essentially the same as nanites, except for the difference of nanites starting with all the machinery, but none of the powers.

Changelog

cl
add: Added brain-computer interface circuit shells.
/cl

* Brain-computer interfaces, circuits in your brain

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-26 15:49:46 +01:00
SkyratBot
b815e34ffd [MIRROR] Adds a Pathfinding circuit component (#7144)
* Adds a Pathfinding circuit component (#60095)

* Adds a Pathfinding circuit component

Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
2021-07-26 15:49:38 +01:00
SkyratBot
c9f09abc4e [MIRROR] Fixes index table circuit component outputting a table rather than a list (#7062)
* Fixes index table circuit component outputting a table rather than a list (#60348)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Fixes index table circuit component outputting a table rather than a list

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-07-26 15:42:38 +01:00
SkyratBot
3d8adaaf17 [MIRROR] Adds the scanner shell. (#7048)
* Adds the scanner shell. (#60325)

Adds the scanner shell that lets you scan objects. Not much else than that.

* Adds the scanner shell.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-26 15:40:49 +01:00
SkyratBot
353ee480da [MIRROR] Adds the "To Number" circuit component (#7027)
* Adds the "To Number" circuit component (#60202)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds the "To Number" circuit component

Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-07-20 14:42:29 +02:00
SkyratBot
f593849ce5 [MIRROR] makes get_hearers_in_view() faster AGAIN, fixes issue with previous optimization (#6979)
* makes get_hearers_in_view() faster AGAIN, fixes issue with previous optimization

* Mirror!

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2021-07-19 20:15:59 +12:00
SkyratBot
b37a8b5ef0 [MIRROR] Circuit submodules (#6980)
* Circuit submodules (#60109)

Adds the module component that is basically a subroutine. Allows you to compact your logic into a bunch of functions.

* Circuit submodules

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-19 20:12:15 +12:00
SkyratBot
8330f5dabe [MIRROR] Adds temperature and pressure sensors to circuits (#6726)
* Adds temperature and pressure sensors to circuits (#59993)

Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>

* Adds temperature and pressure sensors to circuits

Co-authored-by: obsol <33932119+read-0nly@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
2021-07-05 15:56:17 +01:00
SkyratBot
493e6223c1 [MIRROR] Adds the "Split" circuit component (#6721)
* Adds the "Split" circuit component (#59950)

* Adds the "Split" circuit component

Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
2021-07-05 00:44:19 +01:00
SkyratBot
926f3a0360 [MIRROR] Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell. (#6686)
* Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell. (#59962)

* Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-03 22:25:18 +01:00
SkyratBot
d4df0f5ee2 [MIRROR] RAM now has an option to select between types. Refactored the any type to be more friendly with circuit code. (#6681)
* RAM now has an option to select between types. Refactored the any type to be more friendly with circuit code. (#59953)

RAM now has an option to select between types and an output signal. Refactored the any type to be more friendly with user displays.
Code that includes changing type is no longer hard to read because of snowflake code for the "any" type.
RAM can now more easily act as a constant value component.
RAM also has an output signal because it should and the fact that it doesn't was an oversight when converting everything to use input and output signals.

* RAM now has an option to select between types. Refactored the any type to be more friendly with circuit code.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-03 22:24:30 +01:00
SkyratBot
f1bd99a620 [MIRROR] Adds crew monitor usb connections and fixes the soundemitter's frequency port (#6678)
* Adds crew monitor usb connections and fixes the soundemitter's frequency port (#59942)

Adds crew monitor usb connections and fixes the soundemitter's frequency port
Allows you to view health and stuff.

* Adds crew monitor usb connections and fixes the soundemitter's frequency port

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-03 22:23:49 +01:00
SkyratBot
a24c6f260f [MIRROR] Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components. (#6676)
* Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components. (#59958)

Fixes to the cooldowns. Also circuits now use an input trigger/output trigger system which the speech component hadn't yet adopted because it was made before that system was introduced and left out when changing most components to use this system.

Also temporarily disables input/output signal ports for the prebuilt speech relay circuit until I can properly code in a way to load circuits.

* Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-03 22:23:36 +01:00
SkyratBot
0de56dcfb5 [MIRROR] Limits the maximum string length of a circuit component port to 5K characters (#6675)
* Limits the maximum string length of a circuit component port to 5K characters (#59959)

People could duplicate string lengths to the point where UIs break (and maybe OOMs though it'd take a while).

* Limits the maximum string length of a circuit component port to 5K characters

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-03 22:23:29 +01:00
SkyratBot
a049df07d3 Adds the sound emitter circuit component (#6613)
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-30 20:20:36 +01:00
SkyratBot
7269bd83ab [MIRROR] Adds USB to arrest consoles. Adds list circuit components. (#6593)
* Adds USB to arrest consoles. Adds list circuit components. (#59850)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds USB to arrest consoles. Adds list circuit components.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-06-30 20:01:36 +01:00
SkyratBot
79c3c379b9 [MIRROR] Fix missing SIGNAL_HANDLER (#6552)
* Fix missing SIGNAL_HANDLER (#59826)

Adds SIGNAL_HANDLER to everywhere that didn't have it that was picked up by dm-lua, which is now ready enough to catch these.

* Fix missing SIGNAL_HANDLER

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-06-27 16:16:04 +01:00
SkyratBot
665fe76566 [MIRROR] Modifies right click logic so that it is not the same priority as modifier keys. (#6498)
* Modifies right click logic so that it is not the same priority as modifier keys. (#59656)

Strips out the existing right click code - Due to the myriad of ways right clicking has been implemented, dedicated signals and procs for right clicking without modifiers are fundamentally incompatible with our system of primary and secondary attacks.

Adds additional signals to attacking code. These signals allow atoms to cancel the attack chain early on secondary attacks, or override the standard procs and not send signals to prevent any undesired behaviour from signal handlers.

Items that used RightClick procs have been converted to attack_hand_secondary.

The slaughter demon, having its own set of snowflake code as poor OOP principles have been applied in UnarmedAttack() procs with lacking calls to parent procs and arbitrary redefinition of behaviour, checks for a right click in its own UnarmedAttack() and performs a bodyslam off that.

Storage components now hijack the secondary attackby stage via signals to handle their opening and closing shortcuts on right click. When you right click a storage component equipped item with an object in your active hand, the object has an opportunity to perform its logic in pre secondary attack code and cancel the attack chain. If it does not cancel the attack chain in pre-attack, then the storage component takes over for attackby and, if possible, opens the relevant inventory and ends the attack chain.

The forensic scanner is a proof-of-concept of this working in action. With its scan logic moved from afterattack code to pre attack code for right clicking, right clicking with the scanner will now perform a scan where previously one was impossible. Left clicking still does what it always does - Scans at the very end of the attack chain.

The logic still isn't perfect - For example, you still can't attack containers in melee even in combat mode (you'll either open them or put your weapon into them regardless of which option you choose) - But this is a better setup overall which allows for items to at least override this behaviour in pre-attack if needed.

* Modifies right click logic so that it is not the same priority as modifier keys.

* a

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-27 16:10:15 +01:00
SkyratBot
10c5d9cf60 [MIRROR] Fixes oversights and disables AI interaction with door shell (#6529)
* Fixes oversights and disables AI interaction with door shell (#59809)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Fixes oversights and disables AI interaction with door shell

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-06-25 22:34:07 +01:00