* Fixes a few bugs with greyscale stacks. (#54858)
Fixes greyscale floor tiles merging regardless of their materials.
Fixes greyscale floor tiles voiding materials when splitting the stack.
Fixes greyscale floor tile stacks being created with no mats_per_unit and only enough custom materials for a single unit.
Fixes greyscale tile flooring being created with the wrong amount of materials.
Fixes greyscale tile flooring not producing floor tiles/producing floor tiles with 0 units.
* Fixes a few bugs with greyscale stacks.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Fixes infective nanite programs not syncing cloud id (#54793)
## About The Pull Request
I have always meant to have infective programs copy over every property of the infector nanites, and i've only recently noticed from some log diving that this wasn't the case, and cloud IDs were defaulting to 0 (unsynced).
I probably never updated it since i made cloud nanites the default, assuming that the AddComponent handled it on its own.
Since an unsynced cloud ID causes constant software errors, this makes the infective programs much less useful than they're meant to be.
**Note: I'd also love to make the infectee's cloud ID a customizable parameter to allow for a wider range of possible uses, but avoided doing so to not violate the feature freeze. I'd gladly add that part if a maintainer gives the ok.**
## Why It's Good For The Game
Makes Viral Replica not obligatory for anyone who wants to use a spreading nanite program. Without it, the cloud IDs of infectees are defaulted to 0, causing degenerative software errors due to lack of cloud sync, which are likely to ruin any gimmick that involves infecting unsuspecting victims.
* Fixes infective nanite programs not syncing cloud id
Co-authored-by: XDTM <heliumt@yahoo.it>
* Service Protolathe Changes (#54697)
About The Pull Request
Moves Light Replacer to Equipment Tab
Adds Trash Bag as a printable item (Plastic, Service Lathe)
Adds Paint Remover as printable item (Needs Advanced Sanitation)
Fix: Allows you to print broom in Service Lathe
Why It's Good For The Game
Tiny Fix and QoL improvement for janitors. You can now get all of the items you (generally) need from advanced sanitation in a single tab. In addition to that, it gives a janitor who's lost his paint cleaner a way to get more. You can now get it by asking a chemist for help, -or- from the cargo order.
* Service Protolathe Tweaks, Paint Cleaner and Trashbags in Protolathe
Co-authored-by: Winter Flare <7543955+Owai-Seek@users.noreply.github.com>
* Cleans up suit/nanite sensor code a bit (#54670)
* Cleans up suit/nanite sensor code
* linted
* Cleans up suit/nanite sensor code a bit
Co-authored-by: XDTM <heliumt@yahoo.it>
* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Converts some unique and typelists into stringlists (#54237)
* Converts some unique and typelists into stringlists
Co-authored-by: Rohesie <rohesie@gmail.com>
* Adds Alloy Materials (#53623)
Adds and implements alloy materials
Takes several materials that were mostly fluff and converts them into actual usable materials.
Messes with material code a bit to make alloys recycle back into their component materials.
Adds the alloy materials to their in-game stacks.
Materials added:
Plasteel
Plastitanium
Plasmaglass
Titaniumglass
Plastitanium Glass
Alien Alloy
Makes plasteel/plastitanium/plasmaglass and the rest able to have separate properties from their component materials. It doesn't make much sense that the materials used to seal off the supermatter chamber from the rest of the station would be prone to exploding when heated.
Allows for further expansion of materials, possibly including actual functional metallurgy and smelting at some point in the very distant future.
(Lemons note: Adds a regeneration component, used for alien alloy)
* Adds Alloy Materials
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Yellow slime core nerfs and adjustments. (#54198)
Yellow slime extract can no longer turn into a self-charging yellow slime core. This functionality has been completely removed.
Hypercharged yellow slime cores no longer self-charge.
They now have a capacity of 50,000 (up from their previous 20,000). This is 10,000 more than a bluespace power cell.
Their recharge rate is 2500. This is relatively slow for the power capacity, as hyper and bluespace cells charge at 10% of their capacity respectively and this is 5%.
Motorised wheelchairs have had their power usage reduced to 5% of their previous value since they were basically only usable with rechargable cells before
* Yellow slime core nerfs and adjustments.
* Update special.dm
* Update special.dm
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Azarak <azarak10@gmail.com>
* RPD unwrench upgrade (#53615)
* Most OP atmos tool. RPD that can unwrench pipes.
Adds reverse wrench mode upgrade to the RPD.
Attention, due to budget cuts, the mode is hard linked to the destroy mode control button.
Now /obj/machinery/atmospherics/deconstruct(disassembled = TRUE) return created obj/item/pipe
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* RPD unwrench upgrade
Co-authored-by: Dennok <Deneles@yandex.ru>
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* Adds basic game logging to Protolathe-variant construction and deconstruction (#54160)
* Adds basic game logging to Protolathe-variant construction and deconstruction
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune (#53975)
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune
* Add stasis beds
* Fix forcefields going away, leading to hull breaches
* Use set instead of list
* Use subtype for forcefield walls
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* 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>
* Rebalances space loot and space exploration (#53916)
* Rebalances space loot and space exploration
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Machines now store their components in their contents. (#52970)
Machine parts are now located in the machine instead of nullspace.
* Machines now store their components in their contents.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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>
* Add rolling paper pack to bio generator for 50 biomass, make biogenerator interface slightly taller to prevent scrollbar (#53806)
This adds rolling paper pack (like you can get in the cigarette vending machines) to Hydroponic's bio generator for 50 biomass. It also makes the bio generator interface a bit taller because the new entry caused a scrollbar to appear.
Frankly I added this because of a shift where some heinous anti-smoking campaign left all of the vending machines dismantled and I found out rolling paper is not craftable anywhere else. That shift I got really lucky with weed mutations, so this made me sad.
* Add rolling paper pack to bio generator for 50 biomass, make biogener…
Co-authored-by: hannahscript <45515088+hannahscript@users.noreply.github.com>
* Fix burning black crossbreed runtime on humanizing (#53740)
When transforming back to a human, /obj/effect/proc_holder/spell/targeted/shapeshift/slimeform/Restore called the parent but didn't return it, instead returning nothing (always null).
It's used in /obj/effect/proc_holder/spell/targeted/shapeshift/cast when transforming back to human via the Burning Black crossbreed which expect Restore() to return a mob. The code would then go on to immediately runtime.
With the appropriate return, this runtime no longer happens as the value is no longer null.
* Fix burning black crossbreed runtime on humanizing
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Airlock Seals 2: I'm dumb and a fool edition (#53114)
Adds door seals to the game, inspired by the ones used in Alien Isolation and SOMA. Trivially easy for a human to remove, but makes it a nightmare to try and smash through if you're an alien, an evil robot, or don't have hands. I also slightly changed how airlock reinforcement works, as now there are two ways to increase the integrity, the previous way of just resetting the max_integrity after the removal of the plating wouldn't work.
* Airlock Seals 2: I'm dumb and a fool edition
Co-authored-by: Jimmius <huw4@btinternet.com>
* fixes xenobio camera runtimes (#53618)
code was trying to bitwise & with an area instance instead of the flags of said instance
* fixes xenobio camera runtimes
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
* 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>
* Moves over cakes to newfood and transfers reagents when crafting (#53316)
* Moves over cakes to newfood and transfers reagents when crafting
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Nanite Increased Diagnostics Program (#53157)
Makes nanite reduced diagnostic function baseline and adds new increased diagnostics program
* A better way
* Increased Harmonic Nanite research costs by +1000/+1000
* Harmonic nanite passive boost.
* Makes nanite reduced diagnostic function baseline and adds new increased diagnostics program
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
This changes the has_reagent check to work with stomachs.
Several supporting procs have been added to fully support this behavior.
end_metabolization will work as expected again
expose is working with INGEST items again
on_mob_add working as intended
on_mob_life has been reviewed and worked over.
Health Analyzers now show stomach contents, same with the medical kiosk.
Included the unit test to validate reagent checks.
Unit tests for the new procs on mob
Co-authored-by: NightRed <nightred@gmail.com>
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>
* Janiborgs can now repair damaged hull platings (#53183)
The "plating repair tool" has been added to the game in the form of a
printable upgrade for janiborgs. It's a subtype of the cautery that can
repair burnt or damaged hull platings, allowing floor tiles to be
placed over them once again.
The upgrade that adds it to a janiborg's list of tools can be printed
once the Cyborg Upgrades: Utility tech node is researched.
Janiborgs get floor tiles (and a crowbar), but have no way of dealing
with burnt platings. Thus, what ends up happening is that, after fixing
some flooring after a minor explosion, you'll often be left with one or
two ugly, OCD-triggering untiled spots on the floor that you can't put
a floor tile over because you don't have a welder. What makes these
spots even more infuriating is that it would actually be BETTER if they
had been broken down to just being space-exposed rods, because then you
COULD place a floor tile on their tile.
* Janiborgs can now repair damaged hull platings
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* 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>
* [R&D Machine Overhaul, Part 1] - Various machines no longer require R&D machines to function. (#53339)
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.
* [R&D Machine Overhaul, Part 1] - Various machines no longer require R&D machines to function.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Azarak <azarak10@gmail.com>
* The searing tool now starts as a cautery (#53303)
The experimental searing tool (both a cautery and a drill) now starts as a cautery, rather than the drill.
* The searing tool now starts as a cautery
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* 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>