Commit Graph

5730 Commits

Author SHA1 Message Date
SkyratBot
6f655cb5b6 [MIRROR] Makes the stomach important part of eating (#633)
* Makes the stomach important part of eating (#53228)

This puts food you eat in to the stomach.
If you do not have a stomach you can not eat, if you try to swallow anything you will spew it out.

Changes to surgeries:

    Stomach pump can now be done on the living, and pushes out the reagents in the stomach.
    Blood filter is a new tool and cleans the reagents out of the body.

This also makes it so that reagents that do not metabolize can accumulate in the stomach reducing how much food you can eat.

* Makes the stomach important part of eating

Co-authored-by: NightRed <nightred@gmail.com>
2020-09-04 00:12:43 +01:00
SkyratBot
549fa16cbc [MIRROR] Skeletons can treat their bone wounds again, improves door crush dislocation fix (#626)
* Skeletons can treat their bone wounds again, improves door crush dislocation fix (#53307)

* Skeletons can treat their bone wounds again, improves door crush dislocation fix

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-09-04 00:10:55 +01:00
SkyratBot
540b6dcdc3 [MIRROR] Crystal Event: flavor texts, signaler, balancing and mob differentiation (#623)
* Crystal Event: flavor texts, signaler, balancing and mob differentiation

* Update crystal_event.dm

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 03:50:57 +02:00
SkyratBot
3d5138261f [MIRROR] The great Spectral Blade permanent ghost trap unGBJing - 10/10 ghosts currently hate this blade (#622)
* The great Spectral Blade permanent ghost trap unGBJing - 10/10 ghosts currently hate this blade (#53324)

Fixes a bug caused by transferring an orbiter component to a parent where one already exists. Causing the old original orbiter to update the added ghosts positions when the parent moves, but not allowing them to ever break orbit and also setting the ref to null for the component on the whole due to old signals it would seem.

Also tweaks the blades use in hand ghost notification message to remove the redundant (Orbit) link.

* The great Spectral Blade permanent ghost trap unGBJing - 10/10 ghosts currently hate this blade

Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
2020-09-02 03:16:39 +02:00
SkyratBot
f412521569 [MIRROR] Dying people (and stunned borgies) can gasp and deathgasp again (#606)
* Dying people (and stunned borgies) can gasp and deathgasp again (#53320)

* Dying people (and stunned borgies) can gasp and deathgasp again

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-09-02 03:02:50 +02:00
SkyratBot
6fd8d7b21e [MIRROR] Allow heretic flesh ghouls to use ashen eyes and sickly blades (#603)
* Allow heretic flesh ghouls to use ashen eyes and sickly blades #53308

* Allow heretic flesh ghouls to use ashen eyes and sickly blades

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-09-02 03:01:59 +02:00
SkyratBot
f844c39ab1 [MIRROR] Add a new achievement (#600)
* Add a new achievement (#53282)

This achievement can be gained by slapping bubblegum with a tongue.

For science!

Sprite by Arcane

* Add a new achievement

Co-authored-by: oranges <email@oranges.net.nz>
2020-09-02 03:01:02 +02:00
SkyratBot
53788ced26 [MIRROR] Adds TCG Decks in order to play with them like a TCG. (#594)
* Adds TCG Decks in order to play with them like a TCG. (#53200)

* Card Decks n shuffling.

* the "crackling with sexual energy" update
}
Kept you waiting, hunh?
This adds a new multi-faceted object to the game, the TCG Card Pile. Using any 2 cards together on each other will create a pile, and the first card in the pile will determine if the card pile is face-up, or face-down. Depending on the orientation of the card pile, you'll draw cards out of it in the orientation. So, a "deck" card pile would be flipped face down, and would allow you to draw cards out of it also face down, and vis versa.
Decks can be renamed with a pen, and use a radial menu in order to enable quick action on the Trading Card game battlefield.
image

    Draw allows you to draw a single card from the deck, again based on the orientation of the cards used to build the deck.
    Shuffle calls the shuffle() proc on the deck, and (should) randomize the order of the cards in the deck for use.
    Pick up puts the deck into your hands instead of the nonsense dragging required with regular playing cards.
    Flip flips the orientation of the cards in the deck, turning a face up pile into a facedown pile, and a facedown, faceup. Also, calls reverseRange() on the contents of the deck, which should put the bottom of the deck on top, and vis verse, ALSO enabling you to put cards on the bottom or the top of your deck easily.

Card piles also operate with a custom storage component, so you can search for cards in your deck if need be, but also handle edge cases like when you only have 1 card in a pile left, or when you dump out a deck of cards like you would a bag.

This basically adds in more sane hands, more sane decks and discard piles, and a massive QOL update to the trading card game to make it actually playable (once potato actually puts the card stats and effects on the cards themselves.)

* Adds TCG Decks in order to play with them like a TCG.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-09-02 02:50:47 +02:00
SkyratBot
c91ad63b75 [MIRROR] Cyborg Module Reset wire always revealed on hacking interface. (#587)
* Cyborg Module Reset wire always revealed on hacking interface (#53277)

* Cyborg Module Reset wire always revealed on hacking interface.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-02 02:46:53 +02:00
SkyratBot
24f7e8fff6 [MIRROR] Converted check_obscured_slots() output to bitfield instead of list (#586)
* Converted check_obscured_slots() output to bitfield instead of list (#53241)

* Converted check_obscured_slots() output to bitfield instead of list

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-02 02:45:57 +02:00
SkyratBot
27a8dbb042 [MIRROR] ZK-Lambda-Class Remade (#581)
* ZK-Lambda-Class Remade (#52941)

This PR adds the crystal invasion event, a new event involving the Supermatter and the monsters from within.
When the event starts there will be a message from centcomm announcing it, then the supermatter explode leaving a destabilized crystal that emits radiations and harmful gases; after a bit portals will spawn around the station, that will produce a number of monsters each. there are 4 types of waves and 4 types of portals
The waves are: Small, Medium, Big, Huge (each have different kind of portals that can spawn and different amounts too)
The portals are the same types of the waves, they differ from each other for the number of monsters that can spawn and the kind of monsters that can spawn (bigger portals spawn stronger monsters)
To end the event the players should stabilize the crystal by destroying the portals (for now are indestructible and they are disabled by using an anomaly neutralizer, might change that) and collecting otherworld crystals; then those crystals are to be put in the crystal stabilizer, an item unlockable in the tech tree. After this just inject the destabilized crystal with it and the remaining portals will close on their own (the spawned monsters will still remain tho so you have to slay them)

All the numbers are mostly eyeballed and could change if requested/with feedbacks

* ZK-Lambda-Class Remade

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2020-09-02 02:42:56 +02:00
SkyratBot
c4c9dfabf6 [MIRROR] Fix various issues with browser statpanel (#580)
* Fix various issues with browser statpanel

* a

Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 02:42:40 +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
0c6796d235 [MIRROR] Implements jungle generation and area map generator datums (#571)
* Implements jungle generation and area map generator datums (#51082)

* Implements jungle generation and area map generator datums

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-30 05:25:48 +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
d247931b07 [MIRROR] Adds a food trash element (#574)
* Adds a food trash element (#53225)

adds a food trash element, for dumping trash when u eat food

unused now, needed for food refactor. spawns trash in your hands (or on the floor) when the food this is attached to is eaten.

* Adds a food trash element

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-30 05:18:37 +02:00
SkyratBot
656ee54f39 [MIRROR] Refactors burgers to use components & auto-eating (#569)
* Refactors burgers to use components & auto-eating (#53224)

* Refactors burgers to use components & auto-eating

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-30 05:13:44 +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
f3a0fd3231 [MIRROR] Componentizes Food Storage (#561)
* Componentizes Food Storage (#53116)

Moves the food storage behavior on (formerly) bread, cheese wheels, and cakes from /food/snacks/store/ to a component.
This lets just about any food/edible thing be used for storing fun things like glass shards, which is pretty neat. Also helps work towards the food refactor.

* Componentizes Food Storage

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2020-08-29 20:32:58 +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
1c1ce7b055 [MIRROR] Browser Status Panel (#548)
* Browser Status Panel (#53112)

* Browser Status Panel

Co-authored-by: Couls <coul422@gmail.com>
2020-08-29 20:26:27 +01:00
SkyratBot
76efc3d305 [MIRROR] Grabbing Yourself + Wound Fixes: Take 2 (+Minor Scar Changes) (#544)
* Grabbing Yourself + Wound Fixes: Take 2 (+Minor Scar Changes) (#52951)

By clicking yourself with grab intent while targeting a limb of yours that's bleeding, you'll "grab" onto it with your free hand to apply pressure. This takes 1.5 seconds to do, takes up a hand while you do so, and applies a slowdown while you're holding it. In return, that limb will bleed 30% less while you're holding it (though it won't clot any faster). This stacks with the 25% reduction in bleeding you get from being horizontal, so laying down clutching your gushing gut while waiting for help is now both thematic and viable!
Other fixes and changes

I also made some other changes to wounds of various importance. Here's a quick list

-Most wound treatments now respect thick clothing/materials, so you can no longer suture slashes through spacesuits.
-Using sutures on slashes and pierces now actually use up sutures, and regen mesh must be opened to treat wounds with
-Infectious zombies (romerol) can now be wounded as intended
-Coagulant has been nerfed again to reduce bleeding less for every wound it's reducing bleeding on. This'll still need more love and attention later, but I need to find a good middle point where medipens are good for bleeding in an emergency without being a way to sidestep any and all bleeding wounds in one go.
-I added a recipe for improvised coagulant in the Wounds 2 PR using baked pulped banana peels and salglu, but then realized that recipe sucked and was overly complicated. You can now drink straight up ground/juiced banana peels to help close up slashes and piercings. Yuckm!
-You can no longer repeatedly disembowel people who have already lost their internal organs
-Whetstones now make things edged sharp rather than pointy sharp, fixing a carryover from when sharpness = 2 used to be accurate sharpness. This'll have the effect of making sharpened weapons less sucky at chopping people apart since slashing is usually more devastating than piercing

I've also made a few tweaks to scars, mostly making them a bit smaller. It now takes twice as much scar severity to reach "absolutely fucked up" when examined, and the other steps have been raised a few points as well. Minor scar examine text is a tad smaller text-wise, and the precise locations for the scars are a bit more procedural as well (more location modifiers like upper/lower/inner/outer wrist/whatever). These changes will hopefully add a bit more variety to the scarring you see on random crew members, since it's pretty easy to hit max examine severity as is.

* Grabbing Yourself + Wound Fixes: Take 2 (+Minor Scar Changes)

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-08-27 21:52:59 +02: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
1331a5531d Fixes master, again (#539)
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-08-27 03:13:13 +02:00
SkyratBot
e6f770410a [MIRROR] Bloody feet update (#538)
* Bloody feet update (#53109)

Componentized the bloody feet feature.

* Hardsuits and other feet-covering clothing can now get bloody feet as well and spread gunk around.
* Bare feet can now get bloody as well and spread gunk around.
* Shoes/feet won't get bloody if something is covering them.
* Improved blood spreading behaviour. Previously, magic numbers were used in the blood pick up and drop off process. Now, when you step in blood, you and the floor share the blood volume. When you step on a non-bloody tile, you give away half of your shoe blood to the tile, and so on. This means the total blood volume always stays constant when moving around. * Blood doesn't appear out of thin air, nor get flushed to bluespace.
* Lowered footprint minimum opacity. Because it looks better, imo.
* Improved footprint exit/enter dirs.
* Improved footprint examine.
* Removed code for cult magic where a spell can suck up blood on your shoes. I'm pretty sure this code didn't work anyway. Implementing that for this new system would require a new signal and I just don't think it's worth it.

How can this game make you spend 20 hours on fucking spaceman footprints

Hardsuits will become "fully bloody" by just stepping in blood. This is a limitation of the current forensics system, as that is what is used to determine if an item is bloody or not. I'm aware of this but I don't think it fits to fix that in this PR.

cl
add: Footprints and bloody shoes major update. Hardsuits and bare feet can now get bloody as well. Improved blood spreading behaviour.
fix: Shoes will no longer get bloody while wearing something that covers them.
/cl

* Bloody feet update

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-08-27 03:12:11 +02:00
SkyratBot
fb3d8baf27 [MIRROR] [Ready] Wedding Content! Crate with tuxedo, wedding dress, cummerbund, veil, and craftable bouquets (#534)
* [Ready] Wedding Content! Crate with tuxedo, wedding dress, cummerbund, veil, and craftable bouquets (#52733)

Adds wedding content.

* [Ready] Wedding Content! Crate with tuxedo, wedding dress, cummerbund, veil, and craftable bouquets

Co-authored-by: OnlineGirlfriend <50865623+OnlineGirlfriend@users.noreply.github.com>
2020-08-27 03:08:55 +02:00
SkyratBot
a5306924c3 [MIRROR] Makes reagent exposure methods bitflags (#527)
* Makes reagent exposure methods bitflags (#53164)

* Makes reagent exposure methods bitflags

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-08-26 02:37:07 +02:00
SkyratBot
dc3663a8d1 [MIRROR] Adds an action speed modifier system (#522)
* Adds an action speed modifier system (#53023)

* Adds an action speed modifier system

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-26 01:40:42 +02:00
SkyratBot
63a0ca874c [MIRROR] Refactors machine_stat and is_processing() to process on demand (#515)
* Refactors machine_stat and is_processing() to process on demand (#53150)

* Refactors machine_stat and is_processing() to process on demand

* Fixes master (#53193)

* fixes master, damn it me/mothblocks

* fuck again

* ANOTHER ONE

* Fixes master

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-08-26 01:21:26 +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
12cd35c594 Crit status refactor (#53117) (#500)
Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-25 00:11:20 +02:00
SkyratBot
f88809d883 [MIRROR] Tackling now disables throwmode when you hit something + a few small buffs/changes (#504)
* Tackling now disables throwmode when you hit something + a few small buffs/changes (#53050)

* hugboxes tackling

* gorilla gloves a bit better

* update comments

* health update

* update

* less annoying doc

* Tackling now disables throwmode when you hit something + a few small buffs/changes

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-08-25 00:03:00 +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
7f3a2027cc [MIRROR] Polling ghost candidates now uses real names (#480)
* Polling ghost candidates now uses real names (#53122)

* Polling ghost candidates now uses real names

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-23 20:43:25 +02:00
SkyratBot
0b65cc596b [MIRROR] Overlay lighting component (#469)
* Overlay lighting component (#52413)

Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑

* Overlay lighting component

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-23 20:17:12 +02:00
SkyratBot
8717ba3868 [MIRROR] fixes foreigner quirk giving galactic uncommon to felinids (#468)
* fixes foreigner quirk giving galactic uncommon to felinids (#53087)

* fixes foreigner quirk giving galactic uncommon to felinids

Co-authored-by: Fikou <piotrbryla@onet.pl>
2020-08-22 09:30:58 +01:00
SkyratBot
0bafb62a25 [MIRROR] Various virus fixes (#462)
* Various virus fixes (#52899)

* virus fixes

* weird parent call

* Various virus fixes

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-21 21:31:01 +01:00
SkyratBot
6c71d07649 [MIRROR] Adds Time-Based Layering to Runechat Messages + Refactoring (#457)
* Merge pull request #52959 from bobbahbrown/runechat-changes

Adds Time-Based Layering to Runechat Messages + Refactoring

* Adds Time-Based Layering to Runechat Messages + Refactoring

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
2020-08-21 14:24:04 +01:00
SkyratBot
6da6b33009 [MIRROR] Food refactor part 1: Bread destruction and processable element (#447)
* Food refactor part 1: Bread destruction and processable element (#53047)

* Food refactor part 1: Bread destruction and processable element

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-21 14:15:57 +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
8c8df2d6e1 [MIRROR] Monkeys are now disarmed like humans (#439)
* Monkeys are now disarmed like humans (#53036)

Previously, monkey disarming was the old system of RNG stun/lose item. This PR makes disarming monkeys the same as disarming humans.

* Monkeys are now disarmed like humans

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-20 17:08:55 +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
d2778728a5 [MIRROR] Removes "availible" mispellings in codebase (#427)
* Removes "availible" mispellings in codebase (#53046)

* AVAILABLE

* Rebuild tgui

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Removes "availible" mispellings in codebase

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-19 20:14:11 -04:00
SkyratBot
d49c662df2 [MIRROR] Shatter glass by slapping the floor (#408)
* Shatter glass by slapping the floor (#52916)

* Shatter glass by slapping the floor

Co-authored-by: NightRed <nightred@gmail.com>
2020-08-19 04:54:02 +02:00
SkyratBot
42da7ac369 [MIRROR] Reworks the Hierophant Club as a general utility item and removes attacks. (#409)
* Reworks the Hierophant Club as a general utility item and removes attacks. (#52880)

This PR reworks the Hierophant Club into a utility item. Mining? Gone. Attacks? Gone.

In their place? 5-tile range point-and-click instant teleport similar to the ninja. Max charge is 1. Recharge time is 15 seconds.

With the removal of this bloat, the item is now small enough to fit in the average backpack.

The hiero club establishes itself as the entry-level megafauna drop from the entry-level megafauna.

* Reworks the Hierophant Club as a general utility item and removes attacks.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-08-19 04:53:26 +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
d8f5dc18d4 [MIRROR] Cleaning machines and the cleanbot now scrubs instead of washes, wiping forensics (#402)
* Cleaning machines and the cleanbot now scrubs instead of washes, wiping forensics (#52983)

* Cleaning machines and the cleanbot now scrubs instead of washes, wiping forensics

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-08-19 04:42:48 +02:00