This PR adds a bunch of flavor texts to the different devices and structures that are used during the event, all to make clearer to the players what to do without too much troubles.
Also i added the ability to use the normal Analyzer+signaler to close the portals and achieve the same result of dropping the crystals.
This PR have more stuff inside: I tweaked the health of the mobs to be balanced around the "toolbox damage" (around 15), so that in 2 or 3 hits they'll fall. I tweaked the damage so that those mobs are all around pretty dangerous, plus each one gets a personal effect: the minion gets a smoke effect on death, the thug gets a random teleport when hit and a dodge ability, the recruit can smash delete walls on touch, the killer is fast and shoot a freezing ray to slow down victims, the boss has an AoE tesla-like attack can dust mobs if they are in crit conditions (thus consuming them)
spawned anomalies don't explode anymore.
You can sacrifice someone to the crystal to increase the spawn delay by 5 seconds permanently
tick for the event is once every 2 seconds, have to use raw numbers to define the duration (15 minutes)
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.
Removes various R&D machine requirements including circuit imprinters, protolathes, destructive analyzer and the mechfabs. All machines that previously required an R&D console to function are standalone, including omni protolathes and omni imprinters.
Replaces "production"-class R&D consoles with civilian modular computers on all maps. There are no longer "production"-class consoles.
Removes the concept of "core" R&D consoles. R&D consoles only research and handle tech disks and stuff. All existing core consoles have been switched to their basic archetype.
Because it's a pain in the ass to manage, material reclaimation has been removed from the destructive analyzer. The destructive analyzer is now ONLY for destroying items and unlocking research nodes such as illegal and alien tech.
Expand number of pipe layers from 3 to 5
More layers for autism projects all around the station
Notice! not all devices are allowed to use the new layers, only those you see in the picture can be layered to layer 0 and 4.
More freedom to do weird setups (and supercomputers)
Caps admin view at 68x68, or 37, in order to prevent it creating more then 100 overlays, causing the parallax system to crash due to exceeding our overlay hardcap of 100
BINARY_INSERT used to only take typepaths like/this. Now, it expects them to be /like/this, to be more consistent with ther est of the code.
Adds documentation to COMPTYPE.
Adds a test for BINARY_INSERT.
This PR improves options for admin controlled shuttles - all shuttle controls can be admin-locked, and players must request authorization so the shuttle can move or for controls to unlock. Before this PR, authorization request always redirected admin staff to control the CentCom ferry, even if request came from a shuttle elsewhere, which was a little odd.
Authorization request will now properly prompt the staff to control that specific shuttle, and now they also have quick option to unlock/lock the shuttle. Could come handy in events to restrict player movement.
Last change, escape pods no longer start as admin controlled, as they cannot be launched without atleast code red anyway. They instead properly state they are just locked.
Allows blind people to examine things they're directly holding in their hands, so they don't need to swap hands back and forth between empty hands to check their ID or whatever
Slightly lowered the recent examine delay to make it easier to trigger examine_more
attack_hands that waited for input or slept (such as apiaries or airlocks) delayed the examination until after the attack_hand input or sleep was finished, so it is now called async to prevent the weird pause.
Blind people could previously examine things with disabled/detached limbs, that's fixed as well, and replaced a range check with adjacent, cause shoving your arm through windoors is bad.
Fixes all these issues
Some admins and I did some testing with it in the thunderdome (round ID 144991), and we confirmed some !!FUN!! things about penthrite:
Penthrite makes you completely immune to staminacrit while it's in your system. This is because it lowers your crit_threshold to -60, but your stamina damage is capped at -20. This means that your stamina can never dip below your crit_threshold, and thus, you can never be staminacritted (no, not even if someone alternates stun baton strikes on your head and chest). The only thing that keeps this from being completely busted is that shovestunning still works on you (but perhaps some bioware and/or implants could get around that...).
Penthrite works on mobs that don't have a metabolism, but won't metabolize itself away in them over time. This is because penthrite uses on_mob_add() instead of on_mob_metabolize(). Yes, this means that if you inject yourself with a luxury medipen as an android, a skeleton, or the like, you'll be able to be immune to staminacrit indefinitely (or until someone jabs you once with a normal medipen). In fact, if you're a high-functioning zombie, then you'll be able to abuse your nodeath trait with the nohardcrit and nosoftcrit traits that penthrite gives you, as penthrite's self-purge-if-you're-below-160-HP effect is in on_mob_life(), which doesn't get called by races with the nometabolism trait.
I forgot to test this one, but I think that by strapping someone who has penthrite in their system onto and off of a stasis bed repeatedly, you can cause their crit_threshold to rise with each buckling, eventually causing it to go above their maxHealth. This is because the crit_threshold raising effect is in on_mob_end_metabolize() (like it should be), but the crit_threshold lowering effect is in on_mob_add() (instead of on_mob_metabolize()).
Also, this changes the description of penthrite to be a bit more clear about which "emergency medications" it reacts violently with. Nobody reads chem descriptions anyway, but maybe they will in the future if doing so gets made easier.
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>
Turns old mining "signs" into turf decals instead
It looks nothing like a sign, so, this just made sense.
Moved the icon from the mining survival pod walls file, to the turf decal icons file.
Replaced every instance in the maps with the new type path.
This completely replaces the previous verification system, for one that
will interoperate with a discord redbot instance that uses the cogs
located at you github.com/optimumtact/orangescogs
This cuts out several steps in the system, but it also leaves alone the
existing notify system (which just uses a file list of discord ids) as a
record of who to notify
SQL changes required for the new database system
Version 5.10, 7 August 2020, by oranges
Changes how the discord verification process works.
Adds the discord_links table, and migrates discord id entries from
player table to the discord links table in a once off operation and then
removes the discord id on the player table
The user connects to any tg server, and uses the "Verify Discord
Account" verb, this generates a six word one time use token, with a 4
hour time validity period (defined as 4 hours from the timestamp value)
in the discord links table.
This one time token, and the ckey of the user are stored in
discord_links
At this point the entire DM side is done, this is all it does
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
* Keep tab buttons in view when scrolled down
* Unfocus tab buttons after click so scrollbar keeps working
* Fix some subsystem stat entries
* Improve key passthrough
* Fix runtimes from nulls in AI connected_robot list
* Add missing info in MC tab for global/config/etc.
* Fix#53298 by including turf in alt-click menu
-Mechs are a vehicle subtype
-Mech equipment half-rewritten
-Mech actions completely redone
-Cooldown macros
-New movement macros & replacing all var in GLOB.diagonals with ISDIAGONALDIR(var)
-New lazylist macro
-Support for lavaland only mechs
-Removed the tank because fuck off with that hacky shit
-Documentation
-Fuckton of fixes
With the current rework to the air distro and scrubbers system, I completely forgot about gas meters and left a bunch of them around to no longer work. Whoops. This adds two subtypes for gas meters that work on layers 1 and 3. I found and replaced every broken gas meter, as well as moved a couple others. I originally added a subtype to atmos/distro_loop but that just seems unnecessary, so it was removed.
Mappers can now place layer 1/3 gas meters, which will hopefully encourage more use of the layers other than 2.
New item the pressure valve
its a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure
adds: Pressure Valve (a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure)
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.
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
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>
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.
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.
Duplicates the "turret_protected/ai" area type check found on the alien abductors camera console Send To command so it also applies to the Send Self command.
Getting snatched by abductors as AI Post #52718 is bad.
This is not an IDED because it was caused by a glitch. I was playing as AI and found myself carded by some ayylines. It turns out while they can not send their agent to do the deed they were more than capable of sending self as I suspected and confirmed with some local testing.
This PR removes default blob spores from the gold slime core spawning pool, but adds independent blob spores to the gold slime core spawning pool in their place.
Independent blob spores and blobbernauts can now speak over blob chat like overmind-dependent blob mobs do. This also means that, like overmind-dependent blob mobs, they can't speak out loud (trying to speak will just send your message out over blob chat). They should still be able to emote, though.
Blob spores can no longer harm objects/structures before they become blob zombies (once they possess a corpse, though, they'll start damaging stuff again).
Default blob spores can't drag stuff, but independent ones can (independent ones can't walk through blob tiles freely, however). Also, independent blobbernauts are in the gold slime core pool, but normal blobbernauts are not, so it seems pretty clear that the independent blob creatures are the ones that're supposed to be in the gold slime core pool, not the overmind-dependent ones.
Independent blob spores and blobbernauts could hear blob chat before this PR, but couldn't speak over it. Now, if a xenobiologist amasses an army of blob mobs, they can all metacomm with each other, making blobbernauts slightly more unique in comparison to the other available "unga dunga me smash" mobs.
Finally, the blobs spore structure damage thing is in here because #52998 mentioned it in its "About The Pull Request" section and its changelog, but then forgot to actually, well, implement it. Since that PR's merged and I'm editing the blob spore file anwyay, I figured that I might as well fix that so that Indieana doesn't have to make another PR and so that my vat-grown blob spores won't destroy my vats and delicate plumbing machinery.
Sentience potion now calls tame on the mob.
Since some mobs add their ridable component when tamed, this lets you ride sentience potion mobs without first feeding them.
It makes sense a sentient loyal creature should be able to be ridden without first being bribed with food.