* Gives the Lavaland Syndie base its own ruin typepath (#62075)
#62003 made it so that /unpowered areas actually do what they say they do. Unfortunately, previous mappers used /unpowered on areas that required powered. /unpowered currently makes it impossible to power a ruin.
Fixes: #62074
There's a lot of these that are probably broken, so I'm gonna go through and check these fixing them as I go.
* Gives the Lavaland Syndie base its own ruin typepath
Co-authored-by: Zytolg <33048583+Zytolg@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fix CentCom areas/APCs (#61964)
This adds dedicated areas for places that have APCs. It also adds an APC
to the ferry Administrative Office, as it seems unusual to only have one
in Administrative Storage, which has distinct (ACCESS_CENT_CAPTAIN!)
access requirements.
APCs are still responsible for multiple centcom areas elsewhere, as it
seems a bit wasteful to have them everywhere. But this should keep things
coherent if anything happens on CentCom where access distinctions
(or at least, captain tier access!) matters.
Names of the new `/area`s are taken from the names on the airlocks that
lead to them.
* Mirror!
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* secret gateway update (#62003)
admins are now notified about a secret gateway load failing, also logs this
secret z levels are protected from incorporeal movement
fixes unpowered ruin areas being powered
adds a bunch of new areas for secret gateways, since var edited areas probably arent a good idea its good to have a few presets
adds cordon turfs and areas, ingame they just look like the z level border, they are completely indestructible, you cant pass them, and if you somehow do, the cordon area kills you (idea from goon but the code and sprites are mine)
adds a z level injector mapping trait, injects a z level trait into the z level its placed on, if you want to add something like ash storms or whatever to your map
adds an anti xray z level trait, you can optionally add this with the z level injector to protect your map against any xray or whatever
* secret gateway update
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Add local APC cache to /area (#61655)
About The Pull Request
for(var/obj/machinery/power/apc/APC in GLOB.apcs_list) in get_apc makes chuck norris shed a tear
Why It's Good For The Game
tears are bad
Changelog
cl
code: /area now retains a local reference to the APC in the area, if any
/cl
* Add local APC cache to /area
Co-authored-by: esainane <esainane+github@gmail.com>
* Changes a bunch of New()s to Initialize()s (#61626)
* Changes a bunch of New()s to Initialize()s
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
* restore dynamic lighting to some areas that lost them
* Update centcom.dm
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Revert "Revert "[MIRROR] Refactor area and turf lighting (#7775)" (#7902)"
This reverts commit 64c4c52d12.
* This should probably fix it
* I love linters
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* 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>
* large refactor of machine/power code to cut down on processing time and wasted lists
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
Repaths everything referring to "toxins" while actually meaning either the room in science or plasma gas. While this PR might be disrespectful to our forefathers, given this is (I believe) a holdover from as far back as the Exadv1 days, this has constantly irked me since I started working with the code. None of the player-facing stuff has referred to plasma as toxin since before 4407 hit, besides the Toxins Lab, and yet all of the type-paths are still pointing at toxins, making it a nightmare to search for in a map editor, and making the code needlessly easy to confuse with that of toxin damage. So this just fires it into the sun.
Anything relating to Toxins, the science subdepartment, now makes reference to Ordnance instead. This felt fitting enough given the focus of the subdepartment is around the creation of and testing of explosives.
Anything relating to plasma gas has, fittingly, been made to refer to plasma gas.
Edit: Ah yes, I feel I should probably apologise off the bat for the size of this PR- the code touched is mostly atmos machinery and simplemobs, a few sprites here and there, and of course the station maps + a few offstation maps.
Makes the code more legible and makes mapping less painful.
(The payment has been made)
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.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>
* cultists can now once again draw runes in lavaland mining station (#60625)
* cultists can now once again draw runes in lavaland mining station
Co-authored-by: InsaneRed <47158596+InsaneRed@users.noreply.github.com>
* Only blend areas when it's actually needed (#60237)
* Only blend areas when it's actually needed
* Respect varedits
* Only blend areas when it's actually needed
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Fix cursed spring ruin acting as a polymorph teleport forwarder (#59994)
* Fix cursed spring ruin acting as a polymorph teleport forwarder
Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.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>
* Removes the space jam ambience from the AI sat core area (#59509)
Removes the 'sound/ambience/ambimalf.ogg' file from playing inside the AI's core. The rest of the AI areas (including the rest of the satellite) can still play the sound.
* Removes the space jam ambience from the AI sat core area
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Fixes footprint stacking (#58918)
* Fixes footprint stacking, replace_decal needed to return parent, and just, didn't. I'm not sure where the fuck
this came from, or even how to test for it, but here you are
* Adds a unit test to prevent regressions on this error in future
* Uses TEST_ASSERT_EQUAL instead of TEST_ASSERT
Thank you moth man
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Updates a comment to more accurately describe my pain
* maybe fixes it?
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes footprint stacking
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Sentience Fun Balloon TGUI (#58724)
Gives the sentience fun balloon a TGUI interface before popping! Set the group name and balloon range without needing to VV!
* Sentience Fun Balloon TGUI
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
* Renews Maintenance Drones
* And these have conflicts too, but you can't see them
* Skyrat Map Updates (Adding Supermatter Room Area)
Co-authored-by: Jonathan Rubenstein <jrubcop@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>