* Fixes weather being opaque and deletes unused acid rain (#60303)
Per title, also makes voidstorm use weather_color because it was just black snow, and deletes acid rain with potatos permission since the sprite was garbage and the rain unused.
* Fixes weather being opaque and deletes unused acid rain
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* EVEN MORE HARDDEL FIXES (#60228)
Fixes a ton of harddels, sourced from #59996
I think this brings us down to like, ~100 per round from ~200, with only like 20 of those being proper hell failures. I've seen harddel profiles below 1 second of total cost. Feeling good.
See you on the other side
Makes the cryopod control computer into a weakref, never trust bee code
Converts brig door timer internal lists to weakrefs
Fixes a harddel caused by qdeling a motion sensitive camera after it had left its source area, jesus christ why didn't we do this already holy shit
Converts the radio implant ref held by the antenna mutation to weakrefs because it isn't reliably cleaned up, makes the radio implant actually qdel its fucking radio
Removes the target var from the throwing datum, it does literally nothing and just exists to cause harddels, mostly for the singularity
Fixes a cable harddel sourced from things that try to enter blueprints after smoothing, but before roundstart. IE, shuttles. Removes shuttles from the blueprints
Fixes emmisive blockers being added post qdel
Removes some manual ghosting from cryopods, I initially did this for harddel reasons, but I figured out a better fix for that. I'm now doing it because it's got this really strange logic for like "re-entering the game" that doesn't actually link to what the ghostize proc does. We should remove this at some point
Fixes robot hud objects harddeling due to hanging refs
Fixes buildmode related hanging refs, I'm coming for you admin team
Fixes a few instances of trying to add the forensics component post qdel, hhhhhhhhhhh
Fixes some split personality harddels/weirdness
Replaces a use of disconnect_duct with an init qdel hint, I suspect there's more issues with duct harddels, I've seen some odd logs about ahhh the area_contents list, but we can worry about that later
Makes teleporter targets into weakrefs, properly types them as /atom
Makes frequency devices into weakrefs
Makes cameras remove themselves from camera nets on Destroy
Makes tgui ui datums implement destroy, this means if I ever see one hang a ref to user or whatever, I know there's an error with calling close() properly. I've seen this harddel once, but not after this change so I assume there was some error with close(). IDK maybe this is a papering over? Would have to ask @ stylemistake
I've seen logs of beartraps being in world post del, putting a return there just in case. The same is true of nerf darts, but I haven't really looked into that yet
Makes a shoe's ref to untying alerts a weakref, yes this is needed.
Moves clearing client_in_contents to the Login of the new mob. This prevents doing things like ghosting someone before a mob qdel causing harddels
Fixes a harddel set sourced from adding a status effect to a qdeleted thing. Is this an error? I'm honestly not sure.
Converts bsa code to weakrefs
Converts the partner var of heat exchangers to weakrefs
Converts camera assemblies to weakrefs
Fixes some dumb behavior with ammo casings and assuming you'll be on a turf post Destroy parent call
Fixes? merger related harddels, you were never cleared from your own members list, so origin objects would end up making a new list, creating harddels. Potential input from @ ninjanomnom about the logic
Chasms store a static list of "falling atoms", which only exists for chasms that go somewhere else. This list wasn't being cleared of qdeleted objects, which is what happens when you fall in most chasms. Fixes this, and converts the list to weakrefs.
Fixes some runtimes in both sheet code, and the weather listener element. This is here because runtime spam made testing more of a pain, didn't think it needed its own pr
Fixes colorful reagent harddels sourced from reagents that were qdel'd before roundstart. I'm only like 50% sure this actually got it, but the issue may have been solved by #60174, so eh
Turns the nuke op antag datum's ref to the war button into a weakref
Fixes some holopad code that was not nulling refs all the time
Converts camera bugs to weakrefs, this was the result of the bug being "reworked" like 6 years back without taking the existing ref clearing into account. Whole item needs a redo, but this'll do for now.
Ensures that the both pulling and pullee refs are cleared on Destroy
The crew monitor held all users in a non clearing list, makes that list a weakref because I hate everything
Oh and I removed all sources of gas_mixture qdeletion, I'm kinda unsure on this since it's not technically supported, but any harddels from it might? indicate something going wrong with like, gas passing logic. I'd like @ MrStonedOne's thoughts, since I trust him to call me an idiot if I'm wrong.
<!-- Please add a short description of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding. -->
## Why it's not good for the game
I crashed sybil like 10 times to get this data, I'm gonna put it to good use. Don't think you're safe sybilites, I'm coming for you.
* EVEN MORE HARDDEL FIXES
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes duffelbag curse and curse of hunger code in general (#60290)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes duffelbag curse and curse of hunger code in general.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Makes carps not lose track of who they're following if vision gets obstructed (#60274)
* Makes carps not lose track of who they're following if vision gets obstructed
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Changes overlay lighting vis contents objs -> underlays (#60239)
Previously what it would do is create up to three objects; a cone, a lighting image and a holder
Then whenever the lighting image was placed into the holders vis contents and the holder would be teleported several times when the parent would to turn or move, and the cone would be spun when the parent spun
Instead of doing that it now just translates a single overlay every time that something is updated
* Mirror!
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Allows charging batteries of integrated circuits with inducers and allows scanning ids on unregistered circuits through shells. (#60227)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Allows charging batteries of integrated circuits with inducers and allows scanning ids on unregistered circuits through shells.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* 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>
* Replace a number of New() overrides with Initialize() (#60223)
* Replace a number of New() overrides with Initialize()
Co-authored-by: coiax <yellowbounder@gmail.com>
* Fixes a roundstart uplink implanting runtime (#60242)
There's no guarantee there will be a user making the implanting, such as it's the case of roundstart equipping.
* Fixes a roundstart uplink implanting runtime
Co-authored-by: Rohesie <rohesie@gmail.com>
* fixes hyperspace connect_loc_behalf bug (#60231)
turns out my move_stacks var doesnt work asynchronously since this bug made things with connect_loc_behalf runtime on every movement unless you somehow moved it back to the transit turf and off without it doing the runtime special.
(The sleep and hell the whole bit of code in space/Entered was unneeded, since it just happens normally as a part of move. Life is pain) -Lemon
also does misc code improvements i found while investigating ANOTHER c_l_b bug with stacks i found while testing this one, which i did NOT manage to fix unfortunately
* fixes hyperspace connect_loc_behalf bug
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* makes a bunch of lists that use typecacheof() static. doesnt find out why its overtiming at all but what the hell it helps (#60147)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* makes a bunch of lists that use typecacheof() static. doesnt find out why its overtiming at all but what the hell it helps
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes stationary tanks starting out with 5000L instead of 2500L (#60001)
Prior to this, the first stationary tank in a group you placed down would have 5000L, while the second, third, etc. would add 2500L each to make it 7500L and 10000L for two and three tanks respectively.
* Fixes stationary tanks starting out with 5000L instead of 2500L
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
* Monkeys and dogs no longer yoink items they can't reach. (#60150)
* Monkeys and dogs no longer yoink items they can't reach.
Title. More ai behavior botherations.
* Monkeys and dogs no longer yoink items they can't reach.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes the blackout station trait affecting unrelated areas. (#60125)
Title. Centcom, space ruins, (unused) away missions and the such are not part of the station.
* Fixes the blackout station trait affecting unrelated areas.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2 (#59778)
Fixes a runtime issue cause by the possibility of loaded_projectile being null by changing how projectile stats are obtained on energy weapons, and adds a separate line for energy ammo types that deal stamina damage and regular damage to incorporate both damage types
* Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2
Co-authored-by: Beatrice <83368538+SpaceDragon00@users.noreply.github.com>
* Fixes a turf signal unregistration I missed, makes the transparent turf element detach (#60064)
* Forgot to patch this up, the transparency element both does not detach on parent destroy, and with the new signal changes leads to signals persisting, which is bad and ick. This fixes that
* Fixes a turf signal unregistration I missed, makes the transparent turf element detach
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code)
* Mirror
* genetically-editable mutant bodyparts and colors - skyrat edition
Co-authored-by: Funce <funce.973@gmail.com>
* Drastic Lag Mitigation Subsystem: SSlag_switch (#59717)
Requested by oranges and inspired by the upcoming event. A new subsyetem, non-processing (for now), aimed at providing some toggle switches that can be flipped as a last ditch effort to save some CPU cycles by sacrificing some non-critical mechanics. Below you can see each individual toggle.
Screenshot of the admin panel:
image
Surely there are more opportunities for toggles I missed, but adding new ones is not very difficult at all.
Why It's Good For The Game
Better performance during extreme pop, I hope.
Changelog
cl
code: Introduces the Lag Switch subsystem for when a smoother experience is worth trading a few bells and whistles for. Performance enhancement measures can be togged by admins with the Show Lag Switches admin verb or enabled automatically at a pop amount set via config.
config: Added a new config var: number/auto_lag_switch_pop
* Drastic Lag Mitigation Subsystem: SSlag_switch
* mirrored the changes to the modular file
Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Weather runtime & EPB fix (#60043)
Fixes the major runtime issue encountered in #60034
Fixes Environmental Protection Bags not protecting from ash storms as they should
* Weather runtime & EPB fix
Co-authored-by: Greniza <61635418+Greniza@users.noreply.github.com>
* Replaces Hardstuns with knockdown, removes Vomit stunning from Voice of God. (#60002)
* Removes stuns from Voice of God.
* Update voice_of_god_command.dm
* Replaces Hardstuns with knockdown, removes Vomit stunning from Voice of God.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* fix buckling to a vehicle not setting your initial sprite position correctly (#59999)
* fix buckling to a vehicle not setting your initial sprite position correctly
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
* wisps no longer fall in chasms (#60004)
Co-authored-by: coiax <yellowbounder@ gmail.com>
* wisps no longer fall in chasms
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: coiax <yellowbounder@ gmail.com>
* fixed the define for the shock wire (#59995)
no wonder autolathes never shocked the cargo techs whenever they hacked it
* Fixes autolathes shock wire
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* introduce advanced sucking functionality to custodians (+ bonus GAGging) (#59925)
* base sucking functionality
* functional upgrade and upgrade refactor
* minor tweak here
* finish overhaul of upgrades, add gags-ified upgrades
* add documentation (you love to see it)
* update sucking sound
* do some of the requested cleanup, fix key going into trash bag, add right click func
* introduce advanced sucking functionality to custodians (+ bonus GAGging)
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
* Fix ion carbine parts kit's name and other similar grammar issues (#59947)
* Fix ion carbine parts kit's name and other similar grammar issues
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
* Makes GAGS layer limit per icon state, not per config file (#59923)
* Makes GAGS layer limit per icon state, not per config file
Co-authored-by: Emmett Gaines <ninjanomnom@protonmail.com>
* 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>
* Fixed carps being untameable and fixes tameable code not properly removing itself from something (#59955)
Fixes#59897
* Fixed carps being untameable and fixes tameable code not properly removing itself from something
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Removes reference to intents from Martial Arts instructions (#59921)
In CQC, Plasma Fist, Sleeping Carp and Wrestling instructions verb:
Harm -> Punch
Disarm -> Shove
Also removed reference to intents from the changeling's tentacle grab, changing it to neutral/combat stance.
* Removes reference to intents from Martial Arts instructions
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Reverts Entered() passing dir instead of old loc (#59910)
* Reverts Entered() passing dir instead of old loc
Co-authored-by: Rohesie <rohesie@gmail.com>