Commit Graph

280 Commits

Author SHA1 Message Date
SkyratBot
29e29b6375 [MIRROR] Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time [MDB IGNORE] (#15967)
* 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>
2022-09-15 19:57:33 -04:00
SkyratBot
9cc7e72158 [MIRROR] Atmos init speedup, saves 4 seconds [MDB IGNORE] (#16090)
* Atmos init speedup, saves 4 seconds (#69697)

* Micro optimizes ssair's turf init, saving 2 seconds

Most of this is making existing operations do more legwork, or cheaper.
I did add cycle checking to ONLY init turf linking, which required
creating a new proc.
Did some horrible horrible things in said proc to save like 0.8 seconds.
I think it was worth it.

* Atmos init speedup, saves 4 seconds

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-09-06 16:24:54 +01:00
SkyratBot
a4bfe65cb1 [MIRROR] Dimensional Anomaly [MDB IGNORE] (#15974)
* 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>
2022-09-05 17:59:34 -04:00
SkyratBot
3b088ec9e9 [MIRROR] Chasm Fishing [MDB IGNORE] (#15855)
* Chasm Fishing

* Update code/datums/components/chasm.dm

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-09-04 03:31:49 +01:00
SkyratBot
a8c10d1659 [MIRROR] Converts a shitload of istypes to their more concise macros [MDB IGNORE] (#15702)
Converts a shitload of istypes to their more concise macros

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-08-27 16:23:44 -04:00
SkyratBot
f94d34fea2 [MIRROR] Massively optimize space turf initializations (~20 seconds on Meta to ~3 seconds) [MDB IGNORE] (#15858) 2022-08-26 14:40:13 -07:00
SkyratBot
3f10792a7a [MIRROR] Tilening V2 Part 2: KrysonWood Edition [MDB IGNORE] (#15499)
* Tilening V2 Part 2: KrysonWood Edition (#69088)

About The Pull Request

Hey there! Didn't expect me to be back so soon? Well, that's because I had yet another project on the backburner: A Sequel to Tilening V2!

Where we last left off, we redid a huge majority of the sprites related to iron floors, but another big culprit was left untouched: Wood Floors!

So, what did I do? I asked @ Krysonism for the wood tiles they've used for a majority of their Wallening mockups, and finalized their work! Behold:
image
image
image
image

As a result, I felt that as I was touching up those wood sprites, I should've addressed a few more tiles while on the way, which is when I decided upon retouching the titanium and plastitanium tiles as well!
image
image
image
image
image

Decals related to these two tile types were also changed!
Here's some highlights of it during a few test screenshots on localhost!

This PR also changes the appearance of plating, making it smoother as some people complained about the waffle pattern and I agree, it was excessive!
image

Finally, this PR very minorly adjusts a few tiles, such as the black and white tiles, diagonal, black and grey tiles, etc, as well as removing unused damaged icons, and replacing them with the better ones we have. Said unused/old icons will be dumped onto the spriting depot.
Why It's Good For The Game

A continuation of my work, as well as being the intended vision Kryson desired for the upcoming wallening project! There's still a lot to go, but its a good step in the right direction of visual progress!
Changelog

cl PositiveEntropy, Kryson
del: Removes old and unused titanium, plastitanium and plating damaged states.
imageadd: Resprites the wooden, titanium and plastitanium-related floors!
imageadd: Decals related to the resprited tiles have been adjusted accordingly.
imageadd: Updates the appearance of plating to be smoother!
/cl

* Tilening V2 Part 2: KrysonWood Edition

* Tilening V2 Part 2: KrysonWood Edition

Co-authored-by: Imaginos16 <77556824+Imaginos16@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-08-17 15:19:10 +00:00
SkyratBot
a638b7d631 [MIRROR] Fix RCD deconstruction message for turfs being incorrect [MDB IGNORE] (#15646)
* Fix RCD deconstruction message for turfs being incorrect (#69090)

* Fix RCD deconstruction message for turfs being incorrect

* Update code/game/turfs/open/floor.dm

Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>

* Fix RCD deconstruction message for turfs being incorrect

Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
2022-08-15 19:43:02 -07:00
SkyratBot
ae708cd7b5 [MIRROR] Removes ComponentInitialize() [MDB IGNORE] (#15552)
* 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>
2022-08-12 19:05:09 -04:00
SkyratBot
48685b4356 [MIRROR] Replaces the mood component with a mood datum [MDB IGNORE] (#15549)
* 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>
2022-08-12 14:58:14 -04:00
SkyratBot
bea43365e7 [MIRROR] New Lavaland Monster: Bileworms [MDB IGNORE] (#15423)
* New Lavaland Monster: Bileworms

* Update living.dm

* Update space_dragon.dm

* Update mining_mobs.dm

* Update kinetic_crusher.dm

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-08 01:50:57 +01:00
SkyratBot
0896689396 [MIRROR] The appearance of damaged plating now updates properly after repairing it [MDB IGNORE] (#15114)
* The appearance of damaged plating now updates properly after repairing it (#68617)

probably works

* The appearance of damaged plating now updates properly after repairing it

Co-authored-by: FernandoJ8 <80640114+FernandoJ8@users.noreply.github.com>
2022-07-22 15:55:06 +01:00
Tom
120e2404f0 [MODULARISATION AUDIT] Modularise some liquids code (#15068)
* modularise reagent fire power code

* some turf edits

* updates code standards while I'm here
2022-07-21 16:29:18 +01:00
SkyratBot
5e2d5210ae [MIRROR] Abusing Generosity - Unrestricted Airlock Access Flip [MDB IGNORE] (#15021)
* Abusing Generosity - Unrestricted Airlock Access Flip (#68096)

* Abusing Generosity - Unrestricted Airlock Access Flip

Hey there,

We now have a lot of unrestricted access helpers on airlocks, which are neato. However, while spitballing ideas in regards to this a few months ago, someone suggested to make it such that you can use the airlock wires to "flip" the directional way. I decided to sit down and code it in today.

The high details are this: You can only do it if the airlock has a directional Request-to-Exit sensor (which is just a thing I made up, you can't get this in-game outside of mapping it in via a directional helper). You can tell if a door has it the same way you can tell if any door is a directional door, or you can simply just check to see if the Unrestricted Access Display is "on" in any capcity (the airlock will not have the sensor if the display is off).

It's effectively a dud without the "sensor". However, if it does have it, you can either pulse it (to switch the direction by 180 degrees) or cut the wire (to disable the direction entirely). When you mend the wire though, it'll activate to a random direction (could even be inside a wall). You can keep cutting and mending until you get what you want, though. If it gets stuck in a wall though... shouldn't have cut it.

While in the area, I alphabetized a bunch of lists, added a new color of airlock wire, and probably some other stuff.

* Adds this behavior to building new airlocks

I also renamed it to "sensor" so it's a bit clearer across all the potential contexts.

It does seem to handle setting multiple directions on creating a new mapload, cutting/pulsing will condense the nice multi-directional stuff into one direction (i am okay with this).

Co-authored-by: spookydonut <github@ spooksoftware.com>

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Abusing Generosity - Unrestricted Airlock Access Flip

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
2022-07-18 08:35:05 -07:00
SkyratBot
40d8cefa37 [MIRROR] Mining Outpost Overhaul: Island Living Edition [MDB IGNORE] (#14880) 2022-07-12 19:18:42 -04:00
SkyratBot
684b50d4f1 [MIRROR] Balloonify and removes some to_chat spam for miners [MDB IGNORE] (#14727)
* Balloonify and removes some `to_chat` spam for miners (#67816)

About The Pull Request

Playing as miner and paying attention to the radio is pure pain, so many of your job related actions create useless spam messages inside your chat/radio tab (unless you split them, which creates other issues) so this PR changes a few of them:

1 - PKAs won't send a useless * click * message to your chat window when it's not ready to fire. It already has a different and clear sound that does it's job.
2 - Guns won't send a message to your chat with "you shoot the gun". You clicked your mouse, you hear the sound, you see the projectile leave and you already get a message logged there with what you hit.
3 - Digging with a pickaxe/shovel/hand is a balloon alert and the message for when you finish digging a wall is removed as you just seen the wall of basalt disappear so you know what happened...
Why It's Good For The Game

As a miner most of your interaction with the station is over the radio, less useless spam on the chat tab will hopefully help make mining feel less like a single player game.
Changelog

cl Guillaume Prata
qol: Miners rejoice! A few of the mostly useless and spammy messages that get send to your chat were changed to balloon alerts or straight up removed. Hopefully, you will have an easier time listening to the radio chatter now.
/cl

* Balloonify and removes some `to_chat` spam for miners

* Balloonify and removes some `to_chat` spam for miners

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-07-04 23:21:23 +00:00
SkyratBot
f8e2d75225 [MIRROR] Ice Box Station Kitchen Rework - Worthy Of The Name [MDB IGNORE] (#14589)
* Ice Box Station Kitchen Rework - Worthy Of The Name (#67854)

* Ice Box Station Kitchen Rework - Worthy Of The Name

Co-authored-by: san7890 <the@san7890.com>
2022-06-28 17:22:59 +01:00
SkyratBot
9167c0a11a [MIRROR] Glass floor cracking now uses overlays, plasma glass floors display properly [MDB IGNORE] (#14551)
* Glass floor cracking now uses overlays, plasma glass floors display properly (#67957)

* Renames plasma floor damage states

* Fixes bug, updates to overlays

* Glass floor cracking now uses overlays, plasma glass floors display properly

Co-authored-by: Coffee <CoffeeDragon16@gmail.com>
2022-06-27 02:14:44 +01:00
SkyratBot
18a56ffeeb [MIRROR] (code bounty) The tram is now unstoppably powerful. it cannot be stopped, it cannot be slowed, it cannot be reasoned with. YOU HAVE NO IDEA HOW READY YOU ARE [MDB IGNORE] (#14477)
* (code bounty) The tram is now unstoppably powerful. it cannot be stopped, it cannot be slowed, it cannot be reasoned with. YOU HAVE NO IDEA HOW READY YOU ARE

* fex

* fex

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-25 01:24:00 +01:00
SkyratBot
6665fd8c1f [MIRROR] Adds craftable glass floors for both plasma glass and reinforced plasma glass [MDB IGNORE] (#14444)
* Adds craftable glass floors for both plasma glass and reinforced plasma glass (#67449)

* Adds craftable glass floors for both plasma glass and reinforced plasma glass

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
2022-06-21 23:18:32 +01:00
SkyratBot
a62beacf7b [MIRROR] [MDB IGNORE] The Tilening V2 - Damaged Tile Overlays Edition [MDB IGNORE] (#14322)
* [MDB IGNORE] The Tilening V2 - Damaged Tile Overlays Edition

* yes

Co-authored-by: Imaginos16 <77556824+Imaginos16@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-19 22:36:25 +01:00
SkyratBot
889b36d5ea [MIRROR] Converts diggable from component to bespoke element [MDB IGNORE] (#14407)
* Converts diggable from component to bespoke element (#67695)

* Changes diggable to an element and fixes it, saving on some memory.

* Converts diggable from component to bespoke element

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-19 10:09:15 -07:00
SkyratBot
3f95ebbd5e [MIRROR] Fishing, Version 1 [MDB IGNORE] (#14370)
* Fishing, Version 1 (#67691)

Adds fishing and fishing minigame.
You use fishing rod to fish.
Equipping specific bait/hook/reels will affect your success chances.
You can fish out fish,items and other things.

Fishing Equipment
Fishing rods have three slots: Bait, Reel and Hook.
Any food can be used as bait but dedicated bait makes fishing easier.
You can buy hook and line sets
New bait types:

Worms : Buy can of them at cargo (alternative acquirement method pending)
Doughballs : Use knife on flat piece of dough to get five of them.
Fishing rod types:

Basic : Print these at the lathe, nothing fancy here.
Tech: Experimental tech. Provides infinite bait
Fishing rods can also hook and reel normal items.

Equipment screen and reeling video
Fishing spots
Keep in mind this PR is meant to add the basic systems and i intend to fill these with more fish in future PR's so wait with suggestions until then.

Lavaland lava (no fish here right now, just other stuff), requires reinforced line to fish in.
Maintenance moisture traps.
Beach away mission water.
Fishing portal available for purchase from cargo - This is stopgap until we fill more spots.
Difficulty depends on fishing spot, fish type, and the fish traits and rod setup combinations.
All fish types can have specific traits, most common ones being favourite and disliked bait types/categories.

Other
Fishing catalog now lists fishing related info
New admin debug verb, fishing calculator that show probabilities with different setups so it's easier to balance this.
Fish now have average weight and size. Make sure to boast if you catch a big one.
Adds tgui mouse passthrough
Screens
Sprites:

Fishing portal sprite by @ ArcaneMusic
Other sprites by @ Mey-Ha-Zah
Bad ones by me. (Could still use better fishing minigame backgrounds)
Sounds:

https://freesound.org/people/soundscalpel.com/sounds/110393/
https://freesound.org/people/soundslikewillem/sounds/343748/

* Fishing, Version 1

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-06-17 00:30:40 +01:00
SkyratBot
71b58f3f7c [MIRROR] Fixes slips being broken and adds a unit test to catch it happening again. [MDB IGNORE] (#14299)
* Fixes slips being broken and adds a unit test to catch it happening again. (#67741)

* Fixes slips being broken and adds a unit test to catch it happening again.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2022-06-13 23:18:57 -07:00
SkyratBot
7db844c30d [MIRROR] floating movement type now stops slips [MDB IGNORE] (#14277)
* floating movement type now stops slips (#67694)

* float movement type now stops slips

* weh

* floating movement type now stops slips

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-06-12 20:59:18 +01:00
SkyratBot
47c43bb970 [MIRROR] Lets people light cigarettes in lava. [MDB IGNORE] (#14176)
* Lets people light cigarettes in lava. (#67587)

* god what a badass

* what a clumsy guy

* melbert changes

* Lets people light cigarettes in lava.

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2022-06-08 02:08:45 +01:00
SkyratBot
14a38b7097 [MIRROR] Assorted Ordnance Code+Map Quality Pass and QoL [MDB IGNORE] (#14065)
* Assorted Ordnance Code+Map Quality Pass and QoL (#67097)

Three main things I do:

Reinforce the remap that i have made with code changes, making the atmos control devices sane and easy to put if someone else stumbles upon this part of the code again. (a4aea1e - f16e620)

Splits the ordnance areas and renames them, kills ordnance misc and things that have nothing to do with ordnance (anymore?) moves them to exp_lab (useful stuff here) and aux_lab (fluff stuff here like laser range in delta or second circuit lab in tram). (0c99f9f- 3c82a88)

Adds a roundstart program disk containing nt frontier to the ordnance office table. Added a hint to file manager there too to help give players a nudge on how to publish papers. (fd747dc)

First one: Makes mapping these things not require varedit, nicer for other people that dont know how the atmos control stuffs works.

Second one: Misc lab has nothing to do with ordnance jesus christ. Also ord hallway is now irrelevant, our ordnance labs are very far from box now. Will probably make downstreams a bit angry for a while though since they might not be fully up to date on the ordnance maps.

Third one: Pretty much justified it in the about section.

Why is this not atomic: This touches all five maps and needs code backing, so I might as well combine them into one maintenance PR instead of giving my peers merge conflict three times.

* Assorted Ordnance Code+Map Quality Pass and QoL

* set 1

* revert

* Update CentCom_skyrat.dmm

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-06 15:30:10 +01:00
SkyratBot
26271d8f69 [MIRROR] Fixes foam spreading through public airlocks and windoors [MDB IGNORE] (#13935)
* Fixes foam spreading through public airlocks and windoors (#67101)

* Fixes foam spreading through public airlocks and windoors

* nova

* Fixes foam spreading through public airlocks and windoors

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2022-05-27 12:45:26 +01:00
SkyratBot
a61b1ea07f [MIRROR] [MDB IGNORE] More /area/ typepath organization and cleanup [MDB IGNORE] (#13832)
* [MDB IGNORE] More /area/ typepath organization and cleanup (#67107)

This further continues what I did in b4fb8f3ed1 (but instead of just stations, its now every (most) applicable area in the game

* [MDB IGNORE] More /area/ typepath organization and cleanup

* wew

* e

* Update CentCom_skyrat.dmm

* wew

* ews

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-24 16:47:55 +01:00
SkyratBot
01429f0679 [MIRROR] RCD can't deconstruct reinforced tiles. [MDB IGNORE] (#13705)
* RCD can't deconstruct reinforced tiles. (#67059)

* RCD can't deconstruct reinforced tiles.

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
2022-05-18 20:03:56 +01:00
Useroth
cca7f8ee4c Some missed mirrors (#13415)
* Refactors firestacks into status effects (#66573)

This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.

Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.

Also changed some related proc names to be snake_case like everything should be.

This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing

* Hud Image Culling By Z Level: Theft edition (#65189)

* makes hud images only apply by z level

* makes some of the atom_hud procs have better names

* fixes warning with the hud_user list and adds better documentation

* better docs for hud_images

* removes TODOs

* docs for hud_list

* adds support for linked z levels so mobs can see lower ones

* fixes merge conflict and shittily makes only shocked airlocks get added

* adds support for setting images in the hud as active and inactive

* gets rid of unatomic spatial grid change

* maybe i should actually try COMPILING my changes

* fixes merge skew and makes it compile again

* fixes huds refusing to remove from users who changed z level

* improves z level and registration logic

* fixes antag huds not appearing

* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me

* Ensures that hiding a basic appearance also hides the atom's active list too

* Fixes antag huds going poof

Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it

This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.

Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.

* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list

* fixes mistake with hud_users list being set non associatively (bad)

* as anything in bot path loops

* Fixes merge skew problems

* Makes bot paths non global

This way they can show themselves to only the bot that "owns" them, ya
feel me?

* Fixes huds not showing up sometimes, cleans up some code

Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:

call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen

*cries*

* Renames add_hud_to_atom to show_to

My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars

* remove_hud_from_mob -> hide_from

* Nitpicks a few comments

* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh

* Moves check down, improves stack trace a bit

Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>

* small touch-up

* this should do it

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
2022-05-08 03:59:40 +01:00
Zonespace
2a3d60a2a6 Mirror of tgstation/tgstation#66726 (#13383)
* [MDB IGNORE] You can have your cake and eat it too. Remake of #66406 (Splitting up areas.dmi + code related stuff) (#66726)

Areas.dmi right now houses all of our mapped turfs icons (which is roughly 400 icons). Not an issue, but it's incredibly large and clunky to navigate right now. This isn't an issue for the average coder and/or player code diving, but it is for mappers wanting to add new turfs. Currently, the file has some organization, but its still an overall mess. This PR aims to slice the behemoth with multiple .dmi files corresponding to specific areas.

I also plan to repath /area/* -> /area/station/* for station turf only. This is to clean it up, as most other turfs follow this format (that being /area/turf_zone/*).

I'm also writing an update paths file as I go along.

* fixbatch 1

* fug

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-07 22:41:23 +01:00
SkyratBot
bca6a53e8e adds new z-level trait to disable parallax (#66637) (#13353)
* first push woohoo

* more stuff

* Update code/datums/components/z_parallax.dm

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

* mothblockification

* fuck

* fuck 2

* uh

* uh yeah style stuff ig

* more changes

* last changes

* fuck

* fuck 2

* i hate potatopotato

* i hate potato * 2

* a

* god

* woops

* Update code/modules/mapping/space_management/traits.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Update code/modules/mapping/space_management/traits.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Update code/modules/mapping/space_management/traits.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

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

Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-07 22:14:14 +01:00
SkyratBot
1c77ca691f Floor Variety Pack (#66670) (#13344)
Adds small, herringbone and diagonal tiles in black, white and grey! It also includes fancy new Terracotta tiles!

Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
2022-05-06 12:46:13 +01:00
SkyratBot
f6ce903dea [MIRROR] Makes glass floors override platings. Fixes glass floor openspace bug. [MDB IGNORE] (#13226)
* Makes glass floors override platings. Fixes glass floor openspace bug. (#66301)

About The Pull Request

Fixes #63868. Actual one liner fix for this one here. If this pr dies feel free to atomize this one.
AND it turns out to not be tim's fault.

Fixes #63548. But i really shouldnt say fixed. The original implementation was causing the invincible plating bug. When tim's refactor got in it instead relies on the element state, which was broken from the get go, removing the invincible plating bug which was in a sense "intended" its all messy man I hate this code. Thats why im removing the plating thing. Let the turf handle the turf change themselves this complicates things.

Mapped in glass floors have openspace (now baseturf bottom) as their baseturfs, while built ones have plating under them. Which doesnt make sense to be honest. Why would things be visible if a plating is under the glass. They are also crowbarrable on top of this, which to be fair is my main reasoning behind the PR.

To solve this, I am instead making glass floors replace the plating instead of building over it. This is made to be generalizable for every tile in game, as long as their initial baseturf is the same and the tile wants it to happen.

do after of three seconds is completely arbitrary. If any maint want it changed let me know.
Why It's Good For The Game

First one solves a bug
Second one makes more sense
And er, icebox is currently using the glass floors in sec, they can be crowbarred very easily. This might be a good idea from a gameplay perspective.
Changelog

cl
del: Removed adding glass floors to plating
balance: Allows you to replace plating with glass floors instead. 3 second timer.
del: Removed deconstructing the glass floors. No replacement for this one, use a rcd.
fix: Fixed metastation glassfloor spawning a weird turf when crowbarred.
/cl

* Makes glass floors override platings. Fixes glass floor openspace bug.

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
2022-04-29 23:07:30 -07:00
Gandalf
906348bb9a Finally fixes SS decay (#12978)
* wew

* wwwooops

* Update floor.dm

* wew
2022-04-22 00:03:03 +01:00
SkyratBot
43098b488b [MIRROR] Fixes a weird line in misc turf code which added two turf types [MDB IGNORE] (#12740)
* Fixes a weird line in misc turf code which added two turf types (#66119)

* Fixes a weird line in misc turf code which added two turf types

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2022-04-14 01:00:49 +01:00
SkyratBot
c48a4caaac [MIRROR] Fixes game breaking duplication exploit [MDB IGNORE] (#12647)
* makes snow tiles not give infinite snow (#66067)

* Fixes game breaking duplication exploit

Co-authored-by: Bond <58570888+TheBonded@users.noreply.github.com>
2022-04-09 23:54:50 +01:00
SkyratBot
15a07908d1 [MIRROR] JPS improvements and fixes [MDB IGNORE] (#12587)
* JPS Improvements and fixes (#66015)

Extends CanAStarPass to atom level and allows turfs to specify their pass check method to speed this up a bit.
Allows pathing over openspace with lattices/by flying things, otherwise disallowed.

Solves issue with diagonal movement where diagonal movement first step would use turf that was marked as impassable in pathfinder by splitting invalid diagonal move into valid orthogonal ones. In most cases this is pretty inconsequential but for openspace/other dangerous non-dense tiles it's pretty important.

* JPS improvements and fixes

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-04-08 03:30:06 +01:00
SkyratBot
f3bc070303 [MIRROR] COMSIG_ATOM_CREATED -> COMSIG_ATOM_INITIALIZED_ON [MDB IGNORE] (#12444)
* COMSIG_ATOM_CREATED -> COMSIG_ATOM_INITIALIZED_ON (#65809)

Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>

* COMSIG_ATOM_CREATED -> COMSIG_ATOM_INITIALIZED_ON

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
2022-04-01 01:55:31 +01:00
Gandalf
05b2cbbc33 Upstream merge 65782 (#12458)
* Adds missing descriptions to some open/misc turfs (#65782)

* Adds missing descriptions to some open/misc turfs

Co-authored-by: ErdinyoBarboza <erdinyobarboza@gmail.com>
Co-authored-by: SkyratBot <skyratcommunity@gmail.com>
2022-04-01 01:18:41 +01:00
Gandalf
e5f51a0de4 [READY] Overhauls Security on IceBox (#12454)
Co-authored-by: Son-of-Space <63861499+Son-of-Space@users.noreply.github.com>
2022-04-01 01:17:50 +01:00
SkyratBot
51b9194105 [MIRROR] [MDB IGNORE] Cleans up the Active Turfs in SnowCabin.dm [MDB IGNORE] (#12282)
* [MDB IGNORE] Cleans up the Active Turfs in SnowCabin.dm (#65594)

* [MDB IGNORE] Cleans up the Active Turfs in SnowCabin.dm

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
2022-03-26 23:25:34 +00:00
SkyratBot
199f105848 [MIRROR] Centcomm Admin Prison's Indestructible Floors [MDB IGNORE] (#12110)
* Centcomm Admin Prison's Indestructible Floors (#65457)

* Centcomm Admin Prison's Indestructible Floors

Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-03-23 21:08:49 +00:00
SkyratBot
185adc4aec [MIRROR] Fixes Active Turfs in Beach Biodome [MDB IGNORE] (#12209)
* Fixes Active Turfs in Beach Biodome (#65590)

* Fixes Active Turfs in Beach Biodome

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
2022-03-21 22:16:54 -07:00
Gandalf
25b10cb66d TG MAP RESET 18/03/2022 (#12158)
* gdgs nsm rfdhtjgiy6uj fgj srtjxnfgc v

* e

* s
2022-03-18 04:16:12 +00:00
SkyratBot
38ad81aac6 [MIRROR] [MDB IGNORE] Moves non floor turfs off /floor. You can put lattices on lavaland edition [MDB IGNORE] (#12119)
* [MDB IGNORE] Moves non floor turfs off /floor. You can put lattices on lavaland edition

* 123

* fixes more typepaths

* typepaths

* Update planet_turfs.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kat <53862927+KathrinBailey@users.noreply.github.com>
2022-03-18 03:07:00 +00:00
SkyratBot
c0a41c253f [MIRROR] Fixes non rustable turfs from being rusted [MDB IGNORE] (#12017)
* Fixes non rustable turfs from being rusted (#65343)

* changes it to a turf flag

* Wood Is Not Metal

* Fixes non rustable turfs from being rusted

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
2022-03-11 16:53:33 -07:00
SkyratBot
17e4f6ad76 [MIRROR] Converts SFX keys into DEFINES [MDB IGNORE] (#11990)
* Converts SFX keys into DEFINES

* fixes and updates

Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-03-11 16:43:39 -07:00
SkyratBot
0d87e88b92 [MIRROR] Fixes Broken Texture Edge Case Oddity (Rock Meet Skull Edition) [MDB IGNORE] (#11991)
* Fixes Broken Texture Edge Case Oddity (Rock Meet Skull Edition) (#65324)

Makes dug sand turf a proper typepath

* Fixes Broken Texture Edge Case Oddity (Rock Meet Skull Edition)

Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com>
2022-03-11 12:27:11 -05:00