* Refactors connect_loc_behalf into a component (#60678)
See title. Also refactors caltrops into a component because they use connect_loc_behalf which requires them to hold the state.
This also fixes COMPONENT_DUPE_SELECTIVE from just outright not working.
connect_loc_behalf doesn't make sense as an element because it tries to hold states. There is also no way to maintain current behaviour and not have the states that it needs.
Due to the fact that it tries to hold states, it means the code itself is a lot more buggy because it's a lot harder to successfully manage these states without runtimes or bugs.
On metastation, there is only 2519 connect_loc_behalf components at roundstart. MrStonedOne has told me that datums take up this much space:
image
If we do the (oversimplified) math, there are only ever 5 variables that'll likely be changed on most connect_loc_behalf components at runtime:
connections,
tracked,
signal_atom,
parent,
signal_procs
This means that on metastation at roundstart, we take up this amount: (24 + 16 * 5) * 2519 = 261.97600 kilobytes
This is not really significant and the benefits of moving this to a component greatly outweighs the memory cost.
(Basically the memory cost is outweighed by the maint cost of tracking down issues with the thing. It's too buggy to be viable longterm basically)
* Update glass.dm
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* 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>
* Drugs of the 26th century. Three new hella rad drugs, one less lame drug and more!
* Update traits.dm
* Update maint_loot_trash.dm
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Mindshielding now sends a signal, and is dealt by the antagonist (#60850)
Mindshielding people isn't hardcoded to the mindshield's implanting anymore, instead sending a signal, which I find better in the long run (especially for downstreams).
* Mindshielding now sends a signal, and is dealt by the antagonist
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* AAAAAAAAAAA
* pollution scrubbbies
* fires cause smoke, right? Also NSS journey has scrubbies
* washing things removes the smell!
* what the fuck were you doing last night
* Update temporary_pollution_emission_component.dm
* space turfs shouldn't have pollution
* Fix air now fixes smoke
* Update pollution.dm
* Update pollution.dm
* Update bonfire.dm
* Adds new config flag to mirror logging of suspicious failed logins to its own file.
* Update IsBanned.dm
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* freezers will now actually protect their contents from explosions once. (#60875)
It's supposed to shield contents from explosions, not only itself.
* freezers will now actually protect their contents from explosions once.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* fix flashing white spheres when attacking items with light sources and light spheres on inventory/action buttons (#60756)
* fix white sphere bug
* fix overlay lighting creating lights in inventory and action button
* fix flashing white spheres when attacking items with light sources and light spheres on inventory/action buttons
Co-authored-by: Couls <coul422@gmail.com>
* Cyborg emergency reboot module now is no longer dropped if revive is succesful (#60848)
Co-authored-by: Colovorat <lolqwert569@ gmail.com>
* Cyborg emergency reboot module now is no longer dropped if revive is succesful
Co-authored-by: Colovorat <35225170+Colovorat@users.noreply.github.com>
Co-authored-by: Colovorat <lolqwert569@ gmail.com>
* Healium crystal changes (#60477)
Healium crystals now straight up fix the air in a room instead of giving an undetermined amount of gas
Area fixed is now a 7x7
Changed the recipe to no longer require freon but O2 instead
* Healium crystal changes
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Crystal foam - crystallizer new recipe (#60535)
Adds crystal foam, a crystal grenade made in the crystallizer from CO2, N2O and H2O. When used it will release a big foamed area that will close any breaches, similar to the smart foam grenade.
* Crystal foam - crystallizer new recipe
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Fixes 2 DNA activator descriptions (#60553)
There was an empty space between name and suffix when there wasn't one, and expended DNA activators wouldnt get the name 'expended' if it didn't work, despite being so.
* Fixes 2 DNA activator descriptions
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* initial
* whoops
* more fixes
* forgot
* frick
* oop
* minor visual fixes
* cleared out-of-date stuff that was asimilated by erp update. ye, sry for that but useroth said i can if i need to
* interface fixes + cleaned trash.
* fixesss
* more fixes
* other interface fix and im dumb
* text and fonts fixes
* mapfixes
* small item fix
* floppa my beloved
* fixme
* yepp
* little addition to vibrator
* more user friendly toys
* hotfix because im dumb
* informing user about stuff happening in their genitals
* Fixed strip menu for new slots
* Vibrating toys now makes constant vibration sounds.
* fucking ton of fixes, i debugged so much stuff i want to die when did i slept last time
* signal vibrator fixes
* i guess its all bugs for now, need testing
* hotfix
* chemicals fixed. other dumb bug fixed too
* feex
* undo
* aight, some text stuff
* repsrited signal vibrator, fixed some dumb bugs. Almost ready for tommorrow pr.
* tried to fix things, need to test
* fixed?
* maybe now its fixed
* we finished here.
* yeah, credits. I forgot them.
* Oh well, resolved the conflict wrong.
* map fixed
* formatting test
* more linter stuff
* did changed that skyrat asked me to
* kinda fixed more stuff
* remove mapchanges
* no magic like kat magic
* please
* further mapchanges removal
* fix
* little fix, because one map supposed to be changed.
* quick structure fixes + balance stuff
* some fixes. remind - fix worn tomorrow.
* ah fuck it, i fixed it now. Who need sleep anyway?
* furnitures are no longer invuln
* fixes poles
* milking machine uses cuffs instead
* makes stuff uses cuffs
* frick
* fix lints
* stuffe
* line
* Forgot to add this little feature
* OKAY FINE I GUESS 10 MINUTES IS TOO MUCH.
* squashed bugs
* minor fix to prevent visual bugs with pillow piles.
* frick
* removed logging
* pref for toys
* tabs
* suggested idea added
* hot fix
* Revert "suggested idea added"
This reverts commit 33796f0abb896b83d02dbefee4e3b62df5f6a5db.
* Revert "hot fix"
This reverts commit bf0bc6330f5897ce2d67bb9571eb818d3a64325b.
* fuck the suggestions, i just want it to work fine
* fuck the suggestions, i just want it to work fine
* truly fixes lints
* balance tweaks + fleshlight fixed
* more balance tweaks
* gasmask fixes. Now it doesn't kill people but still makes them suffer
* fix ball mittens
* dead people tell no tales
* some minor fixes
* grammars
* add messages
* use a new pref
* simple check
* knock-knock. Who? A fix.
* fuck
* fixes vibrators
* hexacrocin now can be cured properly
* fix x_stand
* frick
* FUCK
* fixes everyonr being horny
* fixes pain
* fixes strapon
* stop process
* nymphomania fixed
* fix spam
* fixed heels and quirks
* Dead people shouldn't cum
* Knock-knock. A penis enlarger fix
* use the traits goddamn it
* Nymphomania fix
* Fucking moths can't now chomp vibrators
* Added yes/no check to climax button, also some improvements and multiple messages bugfix
* milking machine balance tweaks, bimbo trauma fix
* milking machine construction messages added
* some fixes
* Revert "Fucking moths can't now chomp vibrators"
This reverts commit 2bf37ca3b0b98c3bbd7bf35626faa7a0be54fcfb.
* little clean up of code, but it still doesn't works properly
* fuck the moths. You can't eat vibrators once more.
* catsuit bug fix
* balance tweaks
* Pillows now made of cloth, not metal.
* pillow fixes
* masochism quick fix
* dumb quickfix, it will break anything, don't panic
* yay now it works again
* nymphomania fix
* clean up
* half of ball mittens fix. For another half buy our DLC just for 2,99$!
* IM COOL I FIXED THE BALL MITTENS! FINALLY!
* prefs now works properly
* pain stuff fixed, i guess. no more arousal by decompression damage.
* lol how did i missed those
* can't buckle fucking cows to milker anymore
* oops
* me cool
* fixed small bug with pillows
* gasmask quick fix
* fix spam
* fixes strapon
* balance stuff.
* fix because im dumb
* fix
* the last fix for this codebomination. I hope this is it.
Co-authored-by: Katherine Kiefer <sterlite2902@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
* 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>
* Fixes chapel area not having a default name (#60706)
this subtype did nothing but cause bugs
* fixes a snowflake area subtype that caused bugs
* a
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* start of reagent forging
* reagent forging
* add the three items to ashwalker den
* try again
* ore smelting, and more
* sorry trace, buffs primitive
* more changes
* gosh, camelCase will always be the best
* Fixes the accounting machine by granting unassigned accounts to new savings accounts. (#60690)
* Fixes the accounting machine by granting unassigned accounts to new savings accounts.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* 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>
* railings can now be vaulted/climbed over from both sides. (#60110)
Quality of life; it spares us from having to walk all the way around or destroy them with either a wirecutter (faster) or any impromptu weapon (slower, as they currently have 300 maximum integrity, despite taking only three iron rods - one more than grilles - to make) in certain occasions, and it's already a thing on other codebases that have railing objects.
* railings can now be vaulted/climbed over from both sides.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* makes the occupational corruption device less cryptic (#60685)
Co-authored-by: Thunder12345 <stewart@ critar.demon.co.uk>
* Makes the occupational corruption device less cryptic
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Thunder12345 <stewart@ critar.demon.co.uk>