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.
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.
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.
* 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.)
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.)
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)
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.
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