* TGUI for Techfabs II: The Great Recategorizing (AND ICONS) (AND MECHFABS) (AND AUTOLATHES)
* Still doesn't compile but there's no more conflicts
* [PR PR] Makes #16616 Compile And Work (#16656)
Oh hey, it compiles!
Co-authored-by: scriptis <scriptif@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: RimiNosha <106692773+RimiNosha@users.noreply.github.com>
* Illiterate human-like mobs can send shuttles to a random destination + refactors snowflake checks on the shuttle consoles
* update modular
* and undo unnecessary arrival shuttle edit
* Fixes the stuff that didn't compile :)
Co-authored-by: VexingRaven <msgerbs@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Completely refactors hallucinations, and also adds a few
* delete 5 old hallucination types that should have been removed
* Fixed old leftover tips conflicts
* Fixes all the leftover conflicts and otherwise broken code
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Allows the icebox aux base to land on ice moon (#69501)
* Allows the icebox aux base to land on ice moon, with the exception of the top floor, because it would be rather lame to random drop right next to engineering.
* Allows the icebox aux base to land on ice moon
Co-authored-by: Profakos <profakos@gmail.com>
* Adds more gulag logging (#69934)
Hey there,
One thing that's been frustrating me over the last few months is that we have absolutely no data on how long it might take the average person to complete any given gulag sentence. This tends to matter a bit for administrative matters, and especially when there's a disconnect between policy and players in regards to how long any given point-sentence might take a player to complete. This should hopefully allow us to collect more good data in these affairs.
admin: Prisoners returning from the gulag as well as reclaiming their items from the gulag item reclaimer are now both logged.
* Adds more gulag logging
Co-authored-by: san7890 <the@san7890.com>
* Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time (#69564)
Pre-sort smoothing_groups and canSmoothWith
Without any ruins, these sorts were taking more than 0.6s, and the bulk of the runtime cost of sortTim during init time.
This only happens on init and they are never changed apart from that, so pre-sorts everything and adds a unit test (in the form of #ifdef UNIT_TESTS, because you can't initial a list) to ensure that they are proper.
Keep visibilityChanged() to mapload only for turf/Initialize
Saves about 0.4s worst case scenario (e.g. with no ruins). Very expensive code (175k loop iterations) for 0 side effects.
Space areas now have the fullbright overlay, not the space turfs
Saves about 0.8s worst case scenario. Seems to work fine with starlight.
Remove is_station_level check for window spawners assigning RCD memory.
Saves about 0.3s worst case scenario. The logic for this isn't consistent since neither walls nor floors check this (for performance), plus some minor micro-opts to spawners.
Optimize is_station_level
Doubles in speed, used heavily in /turf/open/floor and in other initialization procs. Bit hard to tell exactly how much is saved, though.
* Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time
* Hopefully fixes the broken CI
* Okay now it shouldn't be failing CI anymore (hopefully)
* Fixes even more issues with smoothing_groups, this time hopefully for good
* Okay NOW it's going to pass CI, surely...
* Okay haha what if it passes this time? :)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fix book of babel not removing blocked languages properly (#69801)
Fixes#51114
The book of babel was not properly removing blocked languages, despite it granting the user omnitongue and the ability to understand and speak any language.
* Fix book of babel not removing blocked languages properly
Co-authored-by: Tim <timothymtorres@gmail.com>
* Gives the ORM a visual indicator showing which side is the input and which is the output (#69551)
About The Pull Request
Gives the ORM a light on either side showing which is the input and which is the output, blue for input, red for output.
ORM
121212
233123123
Why It's Good For The Game
Useful for if anyone decides to move the ORM.
Changelog
cl Wallem
qol: The ORM now has color-coded lights showing which side is the input and output. Blue for input, red for output.
/cl
* Gives the ORM a visual indicator showing which side is the input and which is the output
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* fix xenbio bag (#69518)
A little earlier, it was gone to use bags of xenobiology on reproductive extracts, but now, after this change, the possibility is completely returned.
* fix xenbio bag
Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com>
* Adds an examine hint to explorer gas masks (#69646)
* Gives examine text to unfolded gas masks that folded ones fit in bags.
* Adds an examine hint to explorer gas masks
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Dimensional Anomaly (#69512)
About The Pull Request
Everyone has been asking: "When will there be an anomaly like the bioscrambler, but for the space station? Please, we need more things which replace objects with different objects from the same typepath."
Well I made it and it looked like ass because non-tiling floor and walls look terrible, so then I made this instead.
Dimensional.mp4
The "dimensional anomaly" shifts matter into a parallel dimension where objects are made out of something else.
Like the Bioscrambler anomaly, it does not expire on its own and only leaves when someone signals it or uses an anomaly remover.
When it spawns it picks a "theme" and converts terrain around it until it covers a 7x7 square, then it teleports somewhere else and picks a new theme.
A lot of these themes are relatively benign like "meat", "fancy carpet", or "gold". Some of them are kind of annoying like "icebox" because it creates floor which slows you down, or "clown" because bananium is intentionally annoying. Some of them are actively dangerous, mostly "uranium" and "plasma".
The main problem this will usually cause for crewmembers is decreasing area security. When it replaces doors it replaces them with ones which don't have any access control, and it will also replace RWalls with normal and much more vulnerable walls which will make breaking and entering significantly easier until someone has taken the time to fix the damage. But also sometimes it will irradiate them, you never know.
The fact that sometimes the changes are benign (or provide uncommon materials) and might be happening in places you don't care about access to might encourage people to push their luck and leave it alone until it starts turning the captain's office into a bamboo room or repainting medbay a fetching shade of flammable purple, which I would consider a success.
Armour.mp4
If you successfully harvest the anomaly core you can place it into the reactive armour to get Reactive Barricade Armour, which shifts your dimension when you take damage and attempts to place some randomised (not terribly durable) objects between you and hopefully your attacker (it really just picks up to four random unoccupied tiles next to you). If you're EMPed then the changes it make to the environment will often be as unpleasant for you as they are for a pursuer, and significantly more likely to harm both of you rather than just provide obstacles.
Other changes:
I split anomalies out into their own dmi file, seems to be all the rage lately.
I moved the anomaly placing code into a datum instead of the event because I wanted to reuse it but if you have a better idea about where I could have put it let me know.
This also fixes a bug where the material spreader component wasn't working when I applied plasma materials to something, the extra whitespace was parsing as another argument for some reason and meant it would runtime.
Supermatter delamination was still pointing to Delimber anomalies instead of Bioscrambler.
* Dimensional Anomaly
* Fixes the upstream merge skew
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles (#69084)
* - Fixes storage mass transfer
- Brings some sanity to storage procs
- Implements a griddle feature that never was
* Uncomment this
* Right-click attack fix
* Scoop fix
* Smartfridges use silent
* Restores some lost checks
* Fixes storage implants
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles
* update modular
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Removes ComponentInitialize()
* Fixes a leftover merge conflict marker
* Fixes the oversight that came from the upstream merge skew
* Fixes all of the instances where we used ComponentInitialize() when we shouldn't've been
* Fixes CI being broken because of the HEV suits
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Replaces the mood component with a mood datum
* Fixes merge conflicts and updates all of our mood events to use the new mood datums
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes 118(give or take) cases of mapload not being passed to initilaize (#69107)
fixes 114 cases of mapload not being passed to initilaize
* Fixes 118(give or take) cases of mapload not being passed to initilaize
* Fixes a lot (give or take) cases of mapload not being passed to initilaize
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fixes eye of god not sending a message when its scan recharges (#69042)
* Fixes eye of god not sending a message when its scan recharges
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Fixes eye of god not sending a message when its scan recharges
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Labor camp machines - Fixes & Code improvement (#68584)
About The Pull Request
Visible changes (all the fixes):
Labor point checkers now says the prisoner ID's stats rather than being a to_chat, it also displays their info much better.
Labor stacker no longer duplicates your points at no cost by attacking the machine with materials, instead it processes it just like it would when sucking materials up.
Labor stackers additionally now update their input/outputs when they are rotated through shuttles, as it doesn't work on the current version of Lavaland (there's no issue report up on this yet though, oddly).
Adds a check if you actually have a goal before checking if you can send the shuttle up, preventing prisoners who were sent without a point goal (permanently) from being able to go up whenever they wanted by simply clicking on the button before it greyed out.
The rest (code improvement):
Added more early returns
Removed single letter vars
Renamed terribly named vars and added comments to some of them.
Removed machinedir in favor of checking their view() when syncing machines, as I didn't find checking an entire side of the map next to an object to be very intuitive.
Lets Lavaland use labor camp machines again
Closes#67764
Just cool general fixes +1
Changelog
cl
fix: Labor camp Prisoners without a sentence can no longer send themselves back up whenever they wanted by clicking the button fast enough.
fix: Prisoners can no longer get infinite labor camp points by clicking the stacking machine with ores.
fix: All ore machines now properly change their direction when they dock a shuttle in a separate direction, fixing Lavaland's labor camp stacking machine.
qol: Labor camp's point checker now states all the information you need, rather than being a paragraph of text that just appears in chat.
/cl
* Labor camp machines - Fixes & Code improvement
* MAP RESET
* Update labour_skyrat.dmm
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* mining modsuit changes (#69011)
the mining modsuit now costs 3000 from 2500
the mining modsuit now still slows you down over lava, though you still resist it
the plasma core now accepts plasma both in sheet form and ore form
the plasma core should no longer buggily not refill you
the mining modsuit bombs should now have enemies target you
* mining modsuit changes
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Adds safety to necropolis chests if they fail to spawn loot (#68719)
Necropolis chest will no longer consume your key if it fails to generate a reward. Also, if it fails to generate, it'll allow you to attempt it again.
* Adds safety to necropolis chests if they fail to spawn loot
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Replaces GetComponent in Mining items with Signalers (#68575)
* Replaces many instances of GetComponents in mining items with signals and better uses overall of Components, in drills and the GPS handcuffs.
* To do this, also added 3 new signals to mechs when you are adding/removing mech equipment onto one.
* Replaces GetComponent in Mining items with Signalers
Co-authored-by: Salex08 <33989683+Salex08@users.noreply.github.com>
* entrenching tool now tells you on examine how to switch config (#68551)
* entrenching tool now tells you on examine how to switch config
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033)
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs
* wew
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Tsu's Brand Spanking New Storage: or, How I Learned To Pass Github Copilot As My Own Code
* Delete storage.dm
* yippee
* shit
* holy shit i am stupid
* more fixes
* fuck
* woops
* The mining wardrobe has now an "explorer" duffelbag instead of a normal one. (#68425)
* The mining wardrobe has now an "explorer" duffelbag instead of a normal one.
Co-authored-by: Tristrian <Tiago.A.C.9@hotmail.com>
* Revisiting The Goliath: Or, that time I dripped out the SBC Starfury just because (#68126)
Drips the SHIT out of the SBC Starfury while not completely overhauling it. Touches everything NOT in engineering or southward (because I love how scuffed that part is and refuse to touch it on principle) - Also converts one map varedit into a real boy subtype, and moves tiny fans to their own file.
Mandatory disclosure on the gameplay changes:
Fighters 1 and 3 are now NOT in the hangar, and are now attached to the formerly unused gunnery rooms.
Cryo now works. Yeah. I know.
You can actually open the anesthetic closet now.
Everyone now shares three spawners. This doesn't reduce the amount of people who can play when this rolls, as I've adjusted var/uses in accordance: it just reduces clutter.
A few of the horizontal double airlocks have been compacted into glass_large airlocks.
The bar windows now actually have grilles like they were meant to.
Four turbines have shown up. They aren't functional*, they just look like gunnery and conveniently fit in the spots. I'm sure this is space OSHA compliant.
The map is ever so slightly smaller, vertically. This should distance us from an edge case where somehow all space levels are too cluttered for this to spawn properly, for the time being.
*Technically there's nothing stopping you from using them besides the amount of time it'd take for the operatives to kick your ass
This map was originally designed wayyy back before we even had the computer sprites we have now, (#27760 if you want to see SOUL) and it shows. While it will never have it's SM again, we can at least make the thing much nicer to look at.
* Revisiting The Goliath: Or, that time I dripped out the SBC Starfury just because
Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com>