Commit Graph

3775 Commits

Author SHA1 Message Date
SkyratBot
ada67ac929 [MIRROR] Ports soup, snacks, icecream, salads and meat to newfood (#1074)
* Ports soup, snacks, icecream, salads and meat to newfood (#54028)

Ports soup, snacks, icecream, salads and meat to newfood

* Ports soup, snacks, icecream, salads and meat to newfood

* Update true_changeling.dm

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-30 14:37:15 +02:00
SkyratBot
7f16f8abf8 [MIRROR] You can now throw things over raillings. (#1075)
* You can now throw things over raillings. (#54062)

Any movable atom with an attached thrownthing datum can now pass harmlessly over railings, and potentially fall safe down to the z-level below.

* You can now throw things over raillings.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-30 14:16:36 +02:00
SkyratBot
b96909fb02 [MIRROR] [READY] Refactor icon smoothing to use 8-bit bitmasking (#1053)
* Merge pull request #53906 from Rohesie/smoothing

[READY] Refactor icon smoothing to use 8-bit bitmasking

* [READY] Refactor icon smoothing to use 8-bit bitmasking

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
2020-09-29 22:55:58 +01:00
SkyratBot
9be3a7b8f6 [MIRROR] Moblity refactor: hands blocked and restrained edition. (#1051)
* Moblity refactor: hands blocked and restrained edition.

* Update carbon_defense.dm

* Update emotes.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-29 13:57:02 +02:00
SkyratBot
8e22b30dd6 [MIRROR] Duplicating statues sanity (#1028)
* Duplicating statues sanity (#54018)

* Duplicating statues sanity

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2020-09-29 00:18:11 +02:00
SkyratBot
e738ffa370 [MIRROR] Fixes for Syndicate Forgotten Ship (#1025)
* Fixes for Syndicate Forgotten Ship (#53832)

* Fixes missing implant on Syndicate Ship Captain:
  Syndicate Ship Crew Members have their implants. There are 2 boxes of syndicate firing pins in captains locker, but captain can't use them. This change fixes that. Captain had implant initially, but it was removed accidentally in #50597

Fixes spare magazines spawned in lockers:
  Captain has 2 mags for APS instead of 9mm mags in their locker.
  Crewmembers have 9mm mags instead of 10mm mags.
  10mm ammoboxes replaced with 9mm.
  Why do we even have 10mm mags, if crew spawns with makarov and captain spawns with APS.

* Fixes for Syndicate Forgotten Ship

Co-authored-by: antropod <antropod@gmail.com>
2020-09-28 18:11:08 +02:00
SkyratBot
98568e191a [MIRROR] Enforce preserving parent proc return values across ui_act call stacks (#999)
* Enforce preserving parent proc return values across ui_act call stacks (#53964)

All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.

* Enforce preserving parent proc return values across ui_act call stacks

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-26 17:17:59 +02:00
SkyratBot
16835e1e9e [MIRROR] Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat] (#986)
* Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat] (#53728)

add: Icebox now has an elevator! I just took the trousers of every shaft miner to batter town, word.

* Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat]

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-09-26 01:25:46 +01:00
SkyratBot
b13c375e0b [MIRROR] Balances plastanium window integrity (#980)
* Balances plastanium window integrity (#53918)

Changes plastanium windows integrity to 1200 instead of 200, which leaves it with 200 more integrity than reinforced plasma windows. Also increases damage_deflection to 21 to match reinforced plasma windows

* Balances plastanium window integrity

Co-authored-by: TheBonded <58570888+TheBonded@users.noreply.github.com>
2020-09-25 14:29:08 +02:00
SkyratBot
11a93fbbcd [MIRROR] Paper walls have no duplicate knock sounds anymore, paper doors don't appear rotated, adds glass bashing (#971)
* Merge pull request #53847 from Iatots/paperdoor-fixes-redux

Paper walls have no duplicate knock sounds anymore, paper doors don't appear rotated, adds glass bashing

* Paper walls have no duplicate knock sounds anymore, paper doors don't appear rotated, adds glass bashing

Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
2020-09-25 13:37:05 +02:00
SkyratBot
043fd0affb [MIRROR] Chess, Sofas & Shutters - Furniture Update (#956)
* Chess, Sofas & Shutters - Furniture Update (#53861)

About The Pull Request
A series of changes bulked together to give players and mappers a little more freedom in their builds to make things look nicer.

Chess:
• Introduces a bunch of jumbo chess pieces that are craftable in-game. Sprites are my own.

Shutters
• Defines 100 integrity for the shutters and gives them an armor block so they don't inherit their stats from blast doors. This means shutters will no longer be just a reskinned blast door.
• Redid the sprites for the shutters. They now animate much smoother and look like normal slanted shutters. Their blinking light once animating is also easier to see.
• Added the window shutter; this is a normal shutter with a window so you can always see past it. I've used it in prisons and on armouries in the codebase I'm from to allow officers to see into the areas shutters are protecting, giving the area additional protection of having someone being able to look into it.
• Added radiation shutters. Maintainers feel free to question this. Through extensive experimentation, any rad insulation value between 0 and 1 does pretty much nothing to radiation. Numbers higher than 1 start multiplying it, negative numbers start reducing it. This will stop the radiation from a supermatter irradiating you only if you stand behind it. If you're not covered by the shutters or the shutters are open, they won't protect you at all. They also have their own sprite with a radioactive hazard symbol.
• Added the rad shutters to in-rotation maps on their supermatter engines and the windowed shutters to Metastation armoury.

Sofas
• Introduces the corporate sofa. A sleek grey sofa. The original sprite I ported from Hyperstation's files. I'm not sure where they got the sofa but I was told it was Eris. I didn't see it there but I didn't look super hard. I've updated the sprites on it to work with armrest sprite overlays.
• Ports the sofa sprites from Cit and the armrest sprite overlays. They look nicer than awkwardly floating over the sofa. The sofas are the same, they're just moved a little for the armrest to work.
• Makes the new corporate sofa craftable.

* Chess, Sofas & Shutters - Furniture Update

Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
2020-09-24 20:27:56 +02:00
SkyratBot
b5b151adcd [MIRROR] Fixes projectile impacts + messages, embedding, adds deployable landmines (#930)
* Fixes projectile impacts + messages, embedding, adds deployable landmines (#53436)

* icon and alert anim

* hmm

* projectile and embed fixes

* cap mine

* clean up, fix some issues with projectile embeds

* light

* doc

* icon

* awkward

* icon again

* Fixes projectile impacts + messages, embedding, adds deployable landmines

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-09-23 14:45:02 +02:00
SkyratBot
243e224167 [MIRROR] Custom statues and sculpting changes. (#927)
* Custom statues and sculpting changes. (#53154)

### Gameplay changes:
- Spacemen lose their ability to sculpt all minerals into statues barehanded, you need a chisel now.
- You can now create carving blocks out of 5 sheets of most materials.
- Using a chisel on the blocks you can designate what to carve in it (including the preset statues from before).
- Chisels can be printed at autolathe, there's also one in art storage.
### Code changes:
- Squeak component now squeaks on attack_hand for structures.
- Radials now accept atom paths automatically extracting the name with initial.
- Base and rigid stack recipes renamed appropriately.
- Statues now use custom materials.

* Custom statues and sculpting changes.

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2020-09-23 14:42:47 +02:00
SkyratBot
7979f4d1b0 [MIRROR] Fully removes devil and affiliated shitcode (#922)
* Fully removes devil and affiliated shitcode (#53612)

Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.

* Fully removes devil and affiliated shitcode

* weh

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-23 10:00:29 +01:00
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