Commit Graph

3761 Commits

Author SHA1 Message Date
SkyratBot
303f712ae1 [MIRROR] Silicon deletion cleanup (#846)
* Silicon deletion cleanup (#53680)

Law datums were referencing owner
Law datums were not being delled
Some MMI code was organized strangely

* Silicon deletion cleanup

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-09-17 06:11:37 +02:00
SkyratBot
4b6cc9d088 [MIRROR] Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#830)
* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#53305)

* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-09-17 02:05:30 +01:00
SkyratBot
c41f529326 [MIRROR] sinks now refill properly (#760)
* sinks now refill properly (#53579)

Fixes #53343
Also fixes an issue where sinks wouldn't refill after a mop was used on them.

* sinks now refill properly

Co-authored-by: William Wallace <me@wiox.me>
2020-09-11 23:23:04 +02:00
SkyratBot
5504cc9b36 [MIRROR] Add 5 new gases, related interactions/items/content, changes parts of fusion (#736)
* Merge pull request #53013 from Ghilker/reactions-go-BRRRR

The scope of this PR is to add new and interesting stuff to the atmos crew and to bring more people to it both old and new.
This PR adds 5 new gases, a bunch of reactions (i'm still working on this but suggestions are useful), new recipes and items to the atmosians arsenal. These gases have high utility for everyone, atmosians will find them useful to do their job both as firefighters and air maintenance.
FINAL GAS NAMES (will change only if a maintainer ask about it)

Healium
Proto Nitrate
Cyrion B
Halon
Hexane

reactions avaiable in this PR: https://drive.google.com/file/d/1e6DZlBaKSCNdCADKnrH3F3aDWvl0iZr4/view

What the PR add:
-Healium: a red gas, stronger than n2o if breathed, with healing properties
-Proto Nitrate: a green inert gas if breathed but with different reactions with various gases at high temperatures
-Cyrion B: a black deadly gas if breathed that decompones very fast if exposed to N2 even at minimal amounts
-Halon: a light blue gas that when used in a fire it will suck up the O2 and will help cool the room, helping fighting the fire
-Hexane: a purple gas that has the ability to filter from the air plasma and n2o, useful to clean distro from the harmful gases quickly
-Healium Crystal: a reddish crystal that when broken will explode cooling the room and removing the plasma from the air (act like a grenade)
-Proto Nitrate Crystal: a greenish crystal that when broken will explode refilling a space with O2 and N2
-Cyrion B Crystal: a blackish crystal that when broken will explode dealing damage around it
-Metallic hydrogen recipe addition (atmosian armor and fireaxe)
-Statue of an elder atmosian (for bragging rights)
-Supermatter Interactions
-More gas interactions (Roinnel have multiple and different interactions)
-New RPD device: the pressure valve, a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure it's getting atomized
-Fusion is a bit "easier" to start (minor changes to the math so that the instability is more reasonable)
-pluox can be also made without using rads
-cyrion-b bounty
-all 5 gases can be sold to cargo

More stuff needs to be added (like the SM interactions(added) and probably more reactions and breathe reactions)
Please leave suggestions and feedbacks as it helps improve the PR

Atmos desperately need more content and need to be proactive in the making of its tools, with this PR is a start to more atmos content

🆑
add: hydrogen + rads = trit
add: 5 new gases
add: Healium : made from Bz + Freon + cold, it knocks people down but have healing properties
add: Proto Nitrate : made from pluox and H2 + heat, it has different reaction with a bunch of other gases
add: Cyrion B : made from hypernoblium + stimulum around 0°C, it has heavy damage if breathed but is decomposed rapidly by N2
add: Halon : made from bz + trit + cold, it reacts with O2 at high temperature removing it and cooling the air, helping putting out fires
add: Hexane : made from bz + H2 + cold, it reacts with plasma and n2o and removes them from the air mix, filtering them.
tweak: stimulum no longer require plasma
add: canister sprites, gas sprites
add: crystal from gases formation and reaction
add: new metallic hydrogen recipes
add: elder atmosian statue
add: supermatter interactions
tweak: minor changes to fusion math to make it "easier" to start
add : pluoxium can be also made without using rads (not removing the rad production one) (this also produces a minimal amount of h2)
tweak: lowered hypernoblium min temperature of reaction
tweak: metallic hydrogen production more common
add: cyrion-b bounty
add: all 5 gases are up to selling
/🆑

* Add 5 new gases, related interactions/items/content, changes parts of fusion

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-09-11 23:02:34 +02:00
SkyratBot
88859bbeaf [MIRROR] Pods eject things without a client on arrival (#720)
* Pods eject things without a client on arrival (#53386)

* pod

* unconscious check

* Pods eject things without a client on arrival

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-09-09 08:31:19 +02:00
SkyratBot
1e705faa19 [MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)

* Process procs now properly use deltatime when implementing rates, timers and probabilities

* Review fixes

* Geiger counters cleanup

Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now

* Moved SS*_DT defines to subsystems.dm

* Rebase fix

* Redefined the SS*_DT defines to use the subsystem wait vars

* Implemented suggested changes by @AnturK

* Commented /datum/proc/process about the deltatime stuff

* Send delta_time as a process parameter instead of the defines

Also DTfied acid_processing

* Dtfied new acid component

* Process procs now properly utilize deltatime when implementing rates, timers and probabilities

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-09 08:19:23 +02:00
SkyratBot
cf87e6b394 [MIRROR] Several associated shower bug/QOL fixes. (#706)
* Merge pull request #53377 from ArcaneMusic/plumbingfixesrev2

So, I may have made at least one... maybe 1.5 math errors. Namely, the reaction volume on every reagent was the full 200u. This is bad for bitcoin, as it means that you can instantly bottom out most reactions and drown someone in 1000 units of water in a single second! That's bad.

Also! On that note, vapor reaction was also transferring reagents that otherwise helped contribute to the above problem. I've yeeted this in kind, but I'm willing to do some more testing and planning to see if they were specific to the reaction volume fix first, but to be safe vapor is vape-aint.

Lastly: Gas chems were producing way, way, WAY too much gas even once the above two points were occuring. So much gas, that it was capable of filling a 8x10 tile airless room in a timed 1 minute 40 seconds. So, we've slowed the roll of the free reagents being produced by synthesizers, and brought it down to 1/5th of the reaction volume to 1/20th. That sounds like a massive leap, but trust me, you could produce millions of KPA very, VERY quickly without it, but at 1/20 it was actually sort of reasonable.

Edit: Apparently this also fixes #46413 as a result of removing the obj_react from the above gasses!

Fixes #53357. Also, prevents reagent synthesizers and showers to behave EXACTLY like gas miners, but free. Also, prevents 1000s of reagents from being multiplied through the use of showers.
Changelog

fix: Showers no longer have the vapor reaction, as before the changes.
fix: Showers no longer produce ludicrously over-scaled chemical reactions.
balance: Gas chems now produce 1/4th less gas when released into the air as before.

* Several associated shower bug/QOL fixes.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-09-09 08:17:13 +02:00
SkyratBot
3a0bbe9498 Acid Component (#53273) (#661)
Makes acid levels a component.
    Merges the acid effect object into the component.
    Reworks acids decay rates slightly.
    Rebalances xenos acid spit so that they can still melt through walls.

Misc. associated changes:

    Adds defines for a lot of the acid associated constants.
    Documents clean types and adds CLEAN_TYPE_ACID
    Adds and implements a return bitflag for COMSIG_COMPONENT_CLEAN_ACT
    Adds a looping sound for acid.
    Makes /atom/proc/acid_act return a boolean.
    Fixes waterclosets creating a new reagent holder datum every time they are used.
    Removes waterclosets regenerating reagents on-use and restricts their reaction volume to 5 units.
    Adds and implements a couple reagent signals.
    Renames a few vars so Rohesie can stop telling me to rename more vars.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-09-07 03:52:59 +02:00
SkyratBot
75894a2d0d [MIRROR] Fix some miscellaneous grammar mistakes (#656)
* Fix some miscellaneous grammar mistakes (#53414)

* Fix some miscellaneous grammar mistakes

Co-authored-by: Tad Hardesty <tad@platymuus.com>
2020-09-06 05:53:09 +02:00
SkyratBot
0c56182bcb [MIRROR] Fixes #53290, puddles are now infinite again. (#619)
* Fixes #53290, puddles are now infinite again. (#53311)

Fixes #53290
A code oversight of #52865 that also applied plumbing changes to puddles.
Avoided snow flaking by creating a new object type called water_source. Can be used in the future instead of the sink type.

* Fixes #53290, puddles are now infinite again.

Co-authored-by: Jack7D1 <59462654+Jack7D1@users.noreply.github.com>
2020-09-02 03:15:20 +02:00
SkyratBot
b9729ca0e1 [MIRROR] You can buckle yourself or somebody else into a chair, if you're next to the chair. (#593)
* You can buckle yourself or somebody else into a chair, if you're next to the chair. (#53255)

You can now buckle yourself, as well as others, into a chair as long as you (and the other person, if you're not buckling yourself) are Adjacent to said chair, and being on the same tile as the chair is no longer required.

No more god-awful pixelhunt to accomplish a very simple task.

(You can buckle yourself and others into chairs that you're right next to, instead of needing to be on top of the chair to do it.)

* You can buckle yourself or somebody else into a chair, if you're next to the chair.

Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
2020-09-02 02:50:24 +02:00
SkyratBot
a5c71cd510 [MIRROR] Adds swab for netherworld critters (#591)
* Adds swab for netherworld critters (#53201)

Adds netherworld critters as a swab. They take primarily maintenance, lavaland, and bartending reagents, they're supplemented by all geyser chems and minorly chemistry, and they are suppressed by any kind of generic growing meat (liquid gibs, nutriment, protein and peptides)

The abberant cells randomly pick a netherworld mob every time they are created. the big jackpot here is migo for the reasonable health and high damage, and the whiff are blank bodies for having good health but awful damage.
Why It's Good For The Game

Players love migos and other netherworld critters are aight. They're fairly strong, and so have a medium amount of reagents. Tried to get funky with it since they're supposed to be odd creatures.

(New swab for netherworld critters! Make sure you put them into a different vat system than your other ones, as they do not react well with normal reagents!)

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>

* Adds swab for netherworld critters

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-09-02 02:49:05 +02:00
SkyratBot
f7818932d8 [MIRROR] Ladder radial menu reopening on use. (#582)
* Ladder radial menu reopening on use. (#53083)

When you use ladder you automatically search for new ladder and open its radial menu.

* Ladder radial menu reopening on use.

Co-authored-by: Dennok <Deneles@yandex.ru>
2020-09-02 02:43:14 +02:00
SkyratBot
cd0d700a85 [MIRROR] Mecha refactor 2020 (#579)
* Mecha refactor 2020

* Update effects.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 02:16:51 +02:00
SkyratBot
a9d83ceedd [MIRROR] Makes water recyclers fabricate-able, and makes showers preform a touch reaction only. (#573)
* Makes water recyclers fabricate-able, and makes showers preform a touch reaction only.  (#53279)

* Makes water recyclers fabricate-able, and makes showers preform a touch reaction only.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-08-30 05:28:01 +02:00
SkyratBot
c3fc25d082 [MIRROR] In memoriam of OrdoM (#572)
* In Memoriam 26th August, 2020 (#53234)

Our friend, tg admin, and champion of the "short" reply, OrdoDictionary
passed away recently.

While this news was not unexpected - Ordo had been fighting bravely
against prion disease for some time - it remains as heartbreaking as it
is unfair.

Ordo was sharp as a razor, with wit to match. During the time we knew
him he was pursuing a PhD, yet he still found time to volunteer on the
tgstation servers and help his fellow spessman.

In admin channels you were as likely to find Ordo pontificating on
history or food or ham radio as you were anything related to the game.
But you knew - no matter the topic - that his opinion was informed and
valuable, and that he would deliver it with nuance, class and charm.

This community - and the world - is worse off without him in it.
He will be missed.

So should you read this and should you get the chance, raise a glass in
his memory.
…but be sure to break out the good stuff.

That’s how he would have wanted it.

Adds a medal in memoriam of Ordo and adds it to the Head of Personnel
locker in a lockbox, along with three Medals of Bureaucratic Excellence,
for those who excel in managing the station.

Thanks to kryson for the sprite of the medal and thanks to OrdoM for all
the work he did on tg.

* In memoriam of OrdoM

Co-authored-by: oranges <email@oranges.net.nz>
2020-08-30 05:26:52 +02:00
SkyratBot
8177144397 [MIRROR] Bring back painting arbitrary objects with spray cans (#570)
* Bring back painting arbitrary objects with spray cans (#52936)

Brings back the behavior removed from #52186 with cleaner code.

Differences in the code:

    No more explicit type checks in the spray paint code, other than a broad isobj.
    Checking for dark colors is now based on luminosity, rather than unscientifically summing all the RGB components and checking an arbitrary number.
    Removes the paintable component. This was used on one item, and its behavior is replicated in the spray can.
    Instead of checking for windows specifically and changing opacity through there, atoms can now specify through init flags whether or not they allow dark colors. Windows set this flag.
    Adds a COMSIG_OBJ_PAINTED signal. Windows use this signal to dynamically update opacity, just like how they did before.

This was a fun cosmetic feature that I'm not sure anyone had a problem with. The original reason for removal seemed to be because of code quality, and not because of negatives about the feature.

Makes canvasses unpaintable

* Bring back painting arbitrary objects with spray cans

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-30 05:25:02 +02:00
SkyratBot
ec09510459 Bools and returns super-pr (#53221) (#565)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-30 05:12:59 +02:00
SkyratBot
a35183463d [MIRROR] Waterworks: Plumbing enabled sinks, tanks, plant trays, and showers. (#562)
* Waterworks: Plumbing enabled sinks, tanks, plant trays, and showers. (#52865)

https://cdn.discordapp.com/attachments/326831214667235328/740812723956482118/2020-08-06_02-04-14.mp4
For everything in this PR working at the same time, watch this video!

Alright, from the top:
Sinks now need plumbing to pump out liquids.

All sinks now has a demand-only plumbing pipe face the opposite direction of the sink itself. A standard iron sink will hold 100 units of water, and must be constructed from a sink frame. To complete the frame, a new stock part, the water recycler must be applied to the frame. Once the sink is constructed, it will only hold those 100 units of water until new water is piped in.
This however doesn't extend just to water, as a result. Any reagent can be piped into the sink, and will be used 5 units at a time per use. This means water isn't just an infinite resource, and will need to be resupplied to the station if, somehow, you're using a metric ton of water somehow.
image
A basic sink setup with water being plumbed in.
Showers now need plumbing to wash you off.

Want to dispense reagents faster on your Patients Victims Friends Coworkers? Well, you may also construct a shower frame, in a similar fashion to a sink frame, and pipe in your own reagents into the loop. The shower drains reagents much faster than the shower, and also preforms vapor and touch reagent reactions, resulting in a constant stream of chemicals being processed. This can lead to horrible situations, like a chemical heater hooked up to a vat of cooking oil being pumped into a shower.
Additionally, showers will display the reagents they're pumping out visually based on the color of their chemical contents. As a result, dangerous or unique showers are going to look noticeably different if their contents are dangerous looking.
image
A safe shower.
image
A very unsafe shower.
Wait what was that bit about cooking oil?

So, reagent dispensers, like water/fuel tanks, Virus Food, Cooking Oil Vats, Pepperspray, and the like, can now be converted into a stationary tank of reagents by using a sheet of metal on it, allowing it to behave as a simple supply of their respective contents, and can be pumped into a plumbing network. This means rolling water tanks can be used to resupply sinks and showers, as well as allow for inventive uses of otherwise unused chemicals located all around the station. Pump welding fuel into a resupply line to fight a blob! Pump pepper spray into the dorms showers! Create a deep fryer shower! The possibilities are LIMITED (Because we have very few reagent dispensers)! Still, this will prevent sinks and showers from being completely unfix-able should all the water run out, as cargo can purchase many of these chemical tanks at will.
Hydroponics is now also plumbing enabled.

So there I was, thinking, have I gone mad? Is the barking I hear in my noggin my own dogs rattling and raging against the eternal ocean tide, or are these the hounds of tindalos come to finally rip me to shreds within the sea of causality?
The answer to this is quite simple: I added plumbing simple-demand components to hydroponics.
Now, the trays will accept a pumping input, which can provide the plants themselves a reagent input for their nutrients, and SHOULD (current not fixed yet) also contribute to refilling the trays water. As a check to this horrible decision, there are very few plumbing chems that don't suffer from some kind of downside if exclusively pumped into the trays, so this should be done delicately and with forethought applied, or you'll have a row of plants with dead stats because they OD'd on ammonia.
image
Holy damn why are you doing this

I'm thinking this pr is probably in need of some serious trimming and will probably be closed as a result of the need to atomize this down, but this way I can start to get some feedback and ideas on which aspects would be better suited towards the current design direction of plumbing/bio-chem/reagent heavy jobs. As far as I'm aware, this is all in accordance with the relevant design docs, but this way I'll know for sure 🤷‍♂️
To-do before being 100% sparkly and clean

Fix hydroponics trays adding water to the nutrient reagents slot (NOT A TRUE FIX, SEE COMMENTS BELOW PLEASE)
Make disconnected sinks/showers slowly regenerate water so that a stationwide plumbing net isn't required so Anturk doesn't snap my kneecaps off
Make water/fuel tanks use their snowflaked stationary tank sprites instead of the custom overlay version

    Yeet out the existing psudo-plumbing from hydroponics

Why It's Good For The Game

We've discussed adding plumbing into the game for forever now, and with all the new and tangentally related plumbing content we have, almost everything we have now perfectly enables servers to properly create a station-wide plumbing network.

Sinks and showers provide an infinite supply of water all shift long, and since they can be produced with any material, anywhere, practically for free, that was the first and foremost reason why I made this PR, to make water slightly more precious on station, to justify the 20+ water tanks mapped across every station. Plus, no more meatsink spam in the middle of the hallways.

Hydroponics has a built in feature that was intended to work similar to plumbing, before we had plumbing, for sharing resources/water, but it was pretty rough and is still exceptionally difficult to make look very pretty on live servers. By integrating them with actual plumbing pipes, this enables one step closer to integrating chemistry and botany to merge going forward, and give them an incentive to include each other in their supply chains each shift.

On the reagent tank conversion, That's just an interesting feature I felt the need for while testing everything else, and found pretty great success in. Being able to pipe in large supplies of a single reagent that ordinarily would just sit on a wall or in mait somewhere proved extra useful, and would be beneficial for refilling plumbing heavy areas like bathrooms/medbay, etc.

* Waterworks: Plumbing enabled sinks, tanks, plant trays, and showers.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-08-29 20:34:23 +01:00
SkyratBot
0a2d016002 [MIRROR] Smooth Movement: Resurrection: Resurgence: Revengeance 4: The Return of Smooth Movement: Smooth Edition Director's Cut (#550)
* Smooth Movement: Resurrection: Resurgence: Revengeance 4: The Return of Smooth Movement: Smooth Edition Director's Cut (#52515)

Automatic glide size adjustment based on move delay.
Essentially a port of https://github.com/yogstation13/Yogstation/pull/8132 but that was mostly my code with some fixes.

Why again? well it turns out the recent byond fixes to glide size actually worked and solved the issues that were unsolvable.
https://file.house/0B3u.mp4
Glide size no longer incorrectly scales at fps, so it works as intended at any framerate with the only stuttering being normal byond suck stuttering.

* Smooth Movement: Resurrection: Resurgence: Revengeance 4: The Return of Smooth Movement: Smooth Edition Director's Cut

Co-authored-by: Rob Bailey <actioninja@gmail.com>
2020-08-29 20:27:18 +01:00
SkyratBot
d355e433d7 [MIRROR] Execution/gunpoint shots work properly with pellet clouds, buffs piercing wounds a bit (#541)
* Execution/gunpoint shots work properly with pellet clouds, buffs piercing wounds a bit (#52995)

Made a few changes to gunpoints and some related mechanics while tidying up and adding docs. Here's a quick list

-Execution (point blank help intent shot aimed at the mouth) and gunpoint shots now apply their bonuses to every pellet fired rather than only the first, generally making them gushier. They also buff wound power as well as damage
-You can no longer punch yourself while holding someone up to trigger the charged shot
-You can no longer purposely fail executions and gunpoints with pax or whatever to endlessly spike the damage in a loaded round
-Attacks with extremely high wounding power can now outright dismember limbs regardless of mangled status. The threshold is high enough that it mostly applies for admin edited weapons or execution shots with shotguns (or people with the frail quirk!)
-Piercing wounds make further wounds a bit easier to apply to give them a bit more power
-Hellguns now cost 2250 credits instead of 2000 to make them a bit harder for random crew to get
-Adds special bouncy L6 rounds for admins to use to bounce off anything and everything en-masse

Also as a minor note

Projectiles with no trajectory (meaning they were likely spawned in manually) now qdel themselves on bumping something, rather than runtiming helplessly

* Execution/gunpoint shots work properly with pellet clouds, buffs piercing wounds a bit

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-08-27 03:14:47 +02:00
SkyratBot
035079a8af [MIRROR] Fixes a paper spam exploit involving the Voting Box (#532)
* Fixes a paper spam exploit involving the Voting Box (#53199)

* Prevents spamming tallied votes using the votebox.

* Code improvements

* yeet

* Fixes a paper spam exploit involving the Voting Box

Co-authored-by: TheVekter <TheVekter@users.noreply.github.com>
2020-08-27 03:08:06 +02:00
SkyratBot
7bbe8ec530 [MIRROR] [READY] Vatgrowing: Third time's the charm (#508)
* Merge pull request #53020 from Qustinnus/fatgrowing

[READY] Vatgrowing: Third time's the charm

* [READY] Vatgrowing: Third time's the charm

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2020-08-25 01:36:10 +02:00
SkyratBot
f733bc21a8 [MIRROR] Mobility refactor and code cleanup - lacking appendages edition (#509)
* mobility refactor (#52929)

* Mobility refactor and code cleanup - lacking appendages edition

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-25 01:34:46 +02:00
SkyratBot
40eb0992a8 [MIRROR] Adds the anti-teleportation implant to the game/the space hotel (#511)
* Adds the anti-teleportation implant to the game/the space hotel (#52660)

* stay in the goddamn hotel

* Adds the anti-teleportation implant to the game/the space hotel

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2020-08-25 01:33:03 +02:00
SkyratBot
3bd294f26f [MIRROR] Defines damage flags. (Hopefully without 50+ commits) (#491)
* Defines damage flags. (#53158)

* Defines damage flags. (Hopefully without 50+ commits)

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-08-24 22:52:31 +02:00
SkyratBot
d3f6e8d49f [MIRROR] Explosions SS runtime fix + code cleanup (#461)
* Explosions SS runtime fix + code cleanup (#52894)

* runtime fix

* turf references are immortal

* Explosions SS runtime fix + code cleanup

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-21 21:30:43 +01:00
SkyratBot
4561501cd5 [MIRROR] Fix broken span class tag in mutations and other locations. (#444)
* Fix broken span class tag in mutations and other locations. (#53064)

* Fix broken span class tag in mutations and other locations.

Co-authored-by: msgerbs <msgerbs@users.noreply.github.com>
2020-08-20 19:04:53 -04:00
SkyratBot
55647da512 [MIRROR] [READY] for Z debug. Industrial lift (not shuttle edition) (#436)
* [READY] for Z debug. Industrial lift (not shuttle edition) (#52397)

* [READY] for Z debug. Industrial lift (not shuttle edition)

Co-authored-by: Dennok <Deneles@yandex.ru>
2020-08-20 17:07:08 +01:00
SkyratBot
d03c1f28be [MIRROR] fixes to shuttle smoothing (#434)
* fixes to shuttle smoothing (#53060)


    plastitanium walls now smooth with windows
    fixes airlocks not having a smoothing group, now plastitanium/titanium walls will smooth with the
    fixes plastitanium walls not smoothing with syndie walls

* fixes to shuttle smoothing

Co-authored-by: Fikou <piotrbryla@onet.pl>
2020-08-20 17:06:43 +01:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)

Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
949676c540 [MIRROR] Allows xenos to use ladders properly (#424)
* Allows xenos to use ladders properly (#53044)

* Allows xenos to use ladders properly

Co-authored-by: Ziiro <0@ziiro.net>
2020-08-19 20:11:58 -04:00
SkyratBot
035aebc2a2 [MIRROR] Diagonal macro thingu (#407)
* Diagonal macro thingu (#52927)

* Diagonal macro thingu

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-08-19 04:53:44 +02:00
SkyratBot
72c69368b6 [MIRROR] Opacity refactor (#405)
* Opacity refactor (#52881)

    Moves all opacity var manipulation to a proc which sends a signal.
    light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
    has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
    Some opacity-related sight procs optimized as a result of this.
    Some variables moved to the object's definition.
    A define or two added into the mix for clarity.
    Some code cleaning, like turning booleans into their defines.
    One file renamed for clarity.

Changelog

cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl

* Opacity refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-19 04:48:14 +02:00
SkyratBot
f424b7853e [MIRROR] cleanup the corpse file, cleanup stationstuck component, adds stationstuck to the reanimated skeleton (and zombie, why not) (#403)
* cleanup the corpse file, cleanup stationstuck component, adds stationstuck to the reanimated skeleton (and zombie, why not) (#52940)

all living spawners in corpse.dm are now in ghost_role_spawners. I hate having to search two different files to HOPEFULLY find which ghost role I need to edit.

Added a disclaimer about giving guidance or at least stationstuck component to stuff so this doesn't happen again

Cleaned up stationstuck. Man, I know I made this, but damn I did kind of a shit job

* cleanup the corpse file, cleanup stationstuck component, adds stationstuck to the reanimated skeleton (and zombie, why not)

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-08-19 04:46:47 +02:00
SkyratBot
2f7e5b762a [MIRROR] refactors resist act to be on atom level (#384)
* refactors resist act to be on atom level (#53016)

* refactors resist act to be on atom level

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-19 02:09:09 +02:00
SkyratBot
6cbaecfaf7 [MIRROR] Minor Away Mission Fixes (#367)
* Minor Away Mission Fixes (#52672)

Fixes a few minor issues in the pre-existing away missions as well as removing some bloat from one of them. I also asked for permission to do this.

* Minor Away Mission Fixes

Co-authored-by: ishitbyabullet <deathzombine@outlook.com>
2020-08-17 14:49:42 +02:00
SkyratBot
8c41a7cce6 [MIRROR] Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR (#350)
* Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR (#51459)

Instruments and sound channels refactor.

* Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR

* Fixes dme dupe

* Fixes dme dupe (#52954)

Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2020-08-15 23:04:03 +02:00
SkyratBot
2b820a06d0 [MIRROR] Fixes lattice and operating table smoothing. (#340)
* Merge pull request #52920 from CRITAWAKETS/test-ur-peearrs

Fixes lattice and operating table smoothing.

* Fixes lattice and operating table smoothing.

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2020-08-14 01:21:12 +01:00
SkyratBot
289930f2a1 [MIRROR] Icon smooth refactor (#327)
* Icon smooth refactor (#52864)



    bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.

    canSmoothWith list turned into a bitflag list.

    smoothing_groups list added to substitute the type path list.

    smoothing procs turned into atom procs, refactored and optimized a bit.

    smooth directions redefined in order to fit in 8 bits for a future smoothing system

    some variable names changed, foreseeing a second smoothing system

    SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.

    SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.

    Does very minor code cleanup.

    Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.

    Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.

Could be tested a bit to see if I missed any icons not properly smoothing.

* Icon smooth refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-13 05:23:53 +02:00
SkyratBot
e8bfe6eb68 [MIRROR] [Ready] CDN browser assets! (#312)
* [Ready] CDN browser assets! (#52681)

Rewrites the asset_cache system to handle sending assets to a CDN via a webroot.

see https://github.com/MrStonedOne/tgstation/blob/asset-cdn/code/modules/asset_cache/readme.md

Fixed a lot of bugs with assets, removed some dead code.

Changes:
    Moved asset cache code to transport datums, the currently loaded one is located at SSassets.transport, asset cache calls made before the config is loaded use the simple browse_rsc transport.
    Added subsystem call for when the config loads or reloads.
    Added a webroot CDN asset transport. assets are saved to a file in a format based on the file's hash (currently md5).
    Assets that don't use get_asset_url or get_url_mappings (such as browser assets referred to by static html files like changelog.html or static css files) can be saved to browse_rsc even when in cdn asset mode by setting legacy to TRUE on the datum returned by register_assets
    Added a system for saving assets on a cdn in a hash based namespace (folder), assets within the same namespace will always be able to refer to each other by relative names. (used to allow cdn'ing font awesome without having to make something that regenerates it's css files.).
    The simple/namespaced asset cache datum helper will handle generating a namespace composed of the combined md5 of everything in the same datum, as well as registering them properly.
    Moved external resource from a snowflake loaded file to a config entry, added it to resources.txt
    To ensure the system breaks in local testing in any situation that wouldn't work in cdn mode, the simple transport will mutate the filenames of non-legacy and non-namespaced assets and return this with get_asset_url.
    Simple transport's passive send of all roundstart assets to all clients is now a config that defaults to off. this is to break race conditions during local testings from devs accidentally relying on this instead of using send() properly.

cl
refactor: Interface assets (js/css/images) can now be managed using an external webserver instead of byond's one at a time file transfer queue.
admin: Adds admin verb toggle-cdn that allows admins to disable the external webserver asset transport and revert to the old system. Useful if the webserver backing this goes down (thanks cloudflare).
config: New config file, resources.txt, (must be loaded by an $include statement from the main config)
server: The external_rsc_urls.txt config has been moved to the main config system.
/cl
Porting notes:

Interface webpages must refer to their assets (css/js/image/etc) by a generated url, or the asset must register itself as a legacy asset. The system is designed to break in localtest (on simple/legacy mode) in most situations that would break in cdn mode.

Requires latest tgui.

The webserver must set the proper CORS headers for font files or font awesome (and other fonts) won't load.

/tg/'s webserver config: https://gist.github.com/MrStonedOne/523388b2f161af832292d98a8aad0eae

* [Ready] CDN browser assets!

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2020-08-12 11:32:37 +01:00
SkyratBot
e551ebd990 [MIRROR] Immobilized trait (#280)
* immobilized (#52578)


    Adds an immobilized trait.
    Adds procs for several variable changes so we can respond to their events.
    Adds some signals for said variables changing.

Need to turn the variation in number of usable legs and arms (get_num_legs() and get_num_arms()) into events we can respond to, but they are pretty annoying to do so. Probably for a different PR.

* Immobilized trait

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-11 04:08:31 +01:00
SkyratBot
a237df25c4 [MIRROR] Consistency for station pets. (#277)
* Consistency for station pets. (#52717)

* Station pets!

* Makes Lia and Sgt Araneus actual subtypes.

* Fixes some vars.

* Turns on AI for Cayenne and Lia, makes Lia neutral faction.

* Gives Lamarr a description.

* Pettable status and emotes for HoS and syndicate pet..

* Tom the mouse consistency.

* Comment correction.

* Consistency for station pets.

Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
2020-08-10 23:23:42 +01:00
SkyratBot
8ca4a452f8 [MIRROR] Refactors area stuff (#265)
* Refactors area stuff (#52751)

-bitfielded a bunch of bools on /area, I left some untouched cus they get called a lot
-Unused vars
-Fixed a var pretending to be a fake bool
-Probably more

* Refactors area stuff

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-08-10 23:20:00 +01:00
SkyratBot
f875f7c6ce [MIRROR] Lawyer and Courtroom department signs. (#263)
* Lawyer and Courtroom department signs. (#52753)

* Lawyer sign.

* Courtroom sign.

* Lawyer and Courtroom department signs.

Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
2020-08-10 23:16:07 +01:00
SkyratBot
c05522f274 [MIRROR] Fixes latejoin AIs not having a circuit board (#233)
* Merge pull request #52726 from ShizCalev/latejoin-ai-circuit-fix

Fixes latejoin AIs not having a circuit board

* Fixes latejoin AIs not having a circuit board

Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
2020-08-07 11:11:35 +02:00
SkyratBot
b5ce584906 [MIRROR] Allows blind people to touch things to examine them (#231)
* Merge pull request #52727 from MrMelbert/touchyfeely

Allows blind people to touch things to examine them

* Allows blind people to touch things to examine them

Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
2020-08-07 11:08:02 +02:00
SkyratBot
2558111cba [MIRROR] RCD Additions + Cyborg RCD Upgrades (#225)
* RCD Additions + Cyborg RCD Upgrades (#52018)

* adds directional window setting for normal grille window mode

adds furnishing upgrading to the rcd for chairs, stools, tables, and glass tables

both of these new introductions have their direction based on where you are facing when the timer for the build finishes

* adds the luxary rcd cargo pack with a loaded rcd, all 4 upgrade disks, and 3 extra compressed matter cartridges

* adds the furnishing upgrade to the techwebs

allows cyborgs to install rcd upgrades except silos

allows loading of metal and matter into the rcd by simply clicking on the thing you want to insert

lowers price of the cargo pack and removes the silo upgrade

adds banned upgrades var to the rcd

* you can now create windoors and deconstruct them as well

you can now deconstruct tables

doubles the price of the cargo pack for rcds

* removed cargo pack

* changes define to bitshift flags

moves matter addition to rcds to a proc on sheets

* matter amount is now a stack variable

* RCD Additions + Cyborg RCD Upgrades

Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
2020-08-07 01:39:32 +01:00
SkyratBot
1f4ee89509 [MIRROR] Contributes more missing belt, back, and otherwise ERRORing sprites. (#220)
* Contributes more missing belt, back, and otherwise ERRORing sprites. (#52670)

* I'm crying over all these beeeeeeelts

* Removes ?

* Provides some close enough substitutes for inhands

* Contributes more missing belt, back, and otherwise ERRORing sprites.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-08-07 01:38:23 +01:00
SkyratBot
f9790d97a9 [MIRROR] Implements job skillchip framework as per hackmd.io design document (#212)
* Implements job skillchip framework as per hackmd.io design document (#52630)

* Shift wire revealing logic to dedicated proc

* Bit of code modification. Framework for roundstart job skillchips.

* Implement roboticist skillchip trait functionality.

* Feex moth feet messup

* Add skill chips to robodrobe inventory

* Code refactor. Add missing skill_stations to Pubby and Delta.

* Implement special flags, changelings inherit skillchip skills

* Additional code refactor. Traitor chameleon skillchip framework.

* Implement traitor skillchip, fix up more code, move job chips to outfit datums

* Modify autosurgeon, create skillchip variant, add to uplink

* Implement chip cooldowns. Add new skillchip for station engineers. Cleanup some code. Add job chips to lockers.

* Feex

* Feex

* Code review implementation

* More feexes, improved chameleon chip code and more.

* Code review and minor refactor

* Additional review fixes, rebuild tgui

* Minor logic fixes

* Final Rohesie review

* Robust code changes, improved slot/complexity system.

* Rebuild tgui

* Code review

* Brain regeneration failsafe

* Lazylist cut fix

* Implements job skillchip framework as per hackmd.io design document

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-08-06 01:03:04 +01:00