* Adds a set of nanite storage protocols as a Bepis research, plus small nanite adjustments (#54710)
Adds a new set of nanite protocol programs as a researchable Bepis tech.
Protocol programs are programs that are mutually exclusive within their time, so remember that only one of the following can be active at once in the same host.
Hive Protocol: Makes nanites use space more efficiently, increasing maximum volume by 250 (500 -> 750)
Zip Protocol: Makes nanites use a compression routine when not in use, increasing maximum volume by 500 (500 -> 1000) but consuming 0.2 nanites per tick to perform the zipping/unzipping
Free-Range Protocol: Makes nanite use looser storage routines, reducing the maximum volume by 250 (500 -> 250) but gaining 0.5 nanite replication rate
S.L.O.P. (Safety Level Override Protocol): Removes nanite storage safety measures, allowing them to reach up to 2000 volume. However, when the volume surpasses the maximum recommended volume (500) the host will start to suffer from side effects, manifesting in slow organ damage. The more the nanite volume approaches the physical limit, the more harmful it becomes.
Replaced the Tinker Nanite Replication Protocol with the Pyramid Protocol, which gives an extra 1.2 regeneration rate, but only while the nanites are at 80% volume or above.
Renamed the Offline Production Protocol to Eclipse Protocol.
Chain detonation now uses dyn_explosion(), at a rate of 1 power per 50 nanite volume. The power level should be similar to how it was for normal nanite volumes, but it should scale more linearly when going above the limit with the new programs.
If nanite volume is suddenly significantly higher than the maximum allowed (likely caused by deleting an active storage protocol) the extra nanites will be forcefully expelled from the host's body, which can range from minor oozing, to vomiting puddles of nanites, to nanites rapidly bursting from eyes, ears, and skin pores.
Despite how it looks, this process causes no lasting damage, since it's a security feature made to prevent acute nanite poisoning.
Added some comments on a few nanite functions.
Refactored vomit code to make it a bit more customizable. The toxic arg (supposedly used to choose an alternate vomit icon, but in fact not functional) is now vomit_type, and purge (which determined vomit would remove 10% of reagents or 67% of reagents) is now purge_ratio, which accepts custom values. Made the refactor mostly to allow a 0% ratio, but it can be handy in other future uses.
Adds extra content to Bepis research, giving a little more reason to invest money into it.
Creates more options to customize a previously rigid parameter in nanites, maximum nanite volume. This opens up strategies that involve storing up large amounts of nanites for special occasions, or viceversa reducing the maximum rate to get more constant replication rate to sustain continued programs.
* Adds a set of nanite storage protocols as a Bepis research, plus small nanite adjustments
Co-authored-by: XDTM <heliumt@yahoo.it>
* damn man i just want grill and they took it away, damn them all!!! (#55024)
Whoever the damn bastard is who tried to take our grills. know this: we will not bend over while you take the only thing that still makes us happy. We just want to drink energy drinks and grill some hamburgers in peace. This is your final warning, try doing this again and we will assemble a lawn mower squad outside of your house at the early hours of 6AM to make sure you cannot enjoy your sunday morning in peace.
Newfood compatibility is now included by checking IS_EDIBLE() and removing the shitty foodtype that was there before
* Fixes grills. they went too far this time.
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* moves misc food to newfood code (#54788)
misc food is now using newfood code
* moves misc food to newfood code
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Fixes disabled limbs from compound fractures, only robotic limbs can be disabled by pure damage now (#54922)
* Fixes disabled limbs from compound fractures, only robotic limbs can be disabled by pure damage now
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Admins can now see chronological order of events in logging tabs. (#54939)
* Admins can now see chronological order of events in logging tabs.
Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
* Reverts metabolism on stomachs, keep them as important to eating (#54632)
* [ready] Reverts metabolism on stomachs, keep them as important to eating
* Merge branch 'master' into upstream-merge-54632
* Update food_reagents.dm
* Update alcohol_reagents.dm
Co-authored-by: NightRed <nightred@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* [TM Candidate] Fix a number of atmos-related runtimes through pipeline and SSair tweaks. (#54804)
* Feex
* Moar feex
* [TM Candidate] Fix a number of atmos-related runtimes through pipeline and SSair tweaks.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixing cult turf overlays not showing under transparent tiles. (#54782)
vis_contents always render the turf above other atoms of the same layer
* Fixing cult turf overlays not showing under transparent tiles.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)
The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).
* Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Performance Logging no longer produces broken csv files (#54894)
Also better file names so it's easier to mass scrape them.
* Performance Logging no longer produces broken csv files
Co-authored-by: Rob Bailey <actioninja@gmail.com>
* Fix royal alien pixel offset, change getter to variable (#54706)
Fixed a bug where royal aliens would have their base pixel offset applied twice, making them off-center (https://i.imgur.com/BtspaM0.png)
Changed the mob/living procs get_standard_pixel_x_offset() and get_standard_pixel_y_offset() to variables (body_position_pixel_x_offset and body_position_pixel_y_offset), to match the contribution guidelines.
Also corrected a few random things that weren't using base pixels but should have been.
* Fix royal alien pixel offset, change getter to variable
* Update pixel_shift.dm
Co-authored-by: Yenwodyah <yenwodyah@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* The clown PDA now has in-built comedy detection for when something happens to the clown and plays a fitting sound. (#54695)
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* The clown PDA now has in-built comedy detection for when something happens to the clown and plays a fitting sound.
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* Mob stays vertical while in cryo (#54800)
Currently, mobs in cryo will turn horizontal in the cryotube when they fall unconscious. This should stop that.
* Mob stays vertical while in cryo
Co-authored-by: prodirus <44090982+prodirus@users.noreply.github.com>
* Fixing GBJ cases where the disposal holder is forcemoved outside a pipe. (#54643)
Title. Also turned movable/pipe_eject() into a comsig, since it was used only for gibs.
* Fixing GBJ cases where the disposal holder is forcemoved outside a pipe.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes foods crafted from glowing ingredients having incorrect light_overlay (#54768)
Fixes#54699
Grown foods used in crafting recipes are moved into the contents of the item they are used to craft.
Any grown food with a lighting component was never properly attached to their parent as part of crafting and thus the grown food itself would glow from the containing item instead of the containing item's loc or turf, including when in the user's hand or backpack as per the above issue report.
This PR creates a new signal sent to atoms that are used as part of crafting recipes.
It then makes lightning components register this signal with their parents. If their parents are "consumed" (ie moved into the newly crafted item's contents) during crafting, the signal handler proc re-registers the signal with the newly crafted item and sets the newly crafted item as the attached parent for that lighting overlay component. This now means that crafting using objects with lighting components is now fully supported including when you craft with objects that were crafted with objects with lightning components
* Fixes foods crafted from glowing ingredients having incorrect light_overlay
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Merge pull request #53835 from Ghilker/hypernob
This PR changes the Hypernoblium gas around a bit.
First the stop-all-reaction property has been limited to a minimum temperature of 20 K, under that it will no longer stop the reactions in the container (canister, pipenet or open air), over that it will behave normally
Second the production of the Hypernoblium has been shifted to very low temperature, under 15 K so you need at least t3 freezers to achieve and at least 1000 moles of BZ as catalyst to lower the vey high energy released by the reaction
Lowered amount of credit received by cargo to 5.
The production of Hypernoblium was always a pain to make it happen, so it was a super rare gas that almost nobody made, now that the endgame for atmos shifted to more advanced gases and tools, Hypernoblium needed a little rework to fit right into those changes.
* Better Hypernoblium
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Test basic attacks along with the attack chain (#54769)
Tests shoving (as well as the knock down and dropping your item), harming (both with and without an item), and the attack chain.
I can think of a few cases in very recent memory that these have been broken (devil removal breaking melee damage, attack chain breaking due to something else).
Also adds `TRAIT_PERFECT_ATTACKER` which makes your punches always hit. This is currently only used for tests, as they are meant to be reliable.
* Test basic attacks along with the attack chain
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Converting art component into element. (#54616)
* Only art is now an element. There have been some issues with beauty.
* Typo.
* Update art.dm
* Update art.dm
* Maintainer suggestions. Reversing order of switch(impress) for correct moodlets.
* Fixing some pre-existing oddities with art element.
* stating the right var.
* simplifying the component.
* Update art.dm
* lowercasing pronoun.
* Converting art component into element.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Turns transparency for turfs into an element, and gives it to datum materials. (#54250)
* Turns transparency for turfs into an element, and gives it to datum materials.
Co-authored-by: Qustinnus <Floydje123@hotmail.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>
* Fixes table stacking exploit (#54650)
Tables could be placed on top of each other, leading to stacking of glass tables, and infinite sin. This doesn't cover anything close to all of it, but it's a good patch for now.
* Fixes table stacking exploit
Co-authored-by: Rohesie <rohesie@gmail.com>
* Removes changeling teams and hivemind channel (#54054)
* Removes changeling teams and hivemind channel.
* More cleanup
* some more stuff
* Removes changeling teams and hivemind channel
* Update horror_form.dm
* Update horror_form.dm
* Update horror_form.dm
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off (#54376)
Ridden vehicles now pass any objects that normally pass tables. This includes bullets, thrown objects, and probably dwarves?
Ridden vehicles check for the various incapacitation traits instead of just usable hands for whether you fall off. Doesn't fix corpses buckled to these objects but that'll require more work to fix because it's all tied into relay_move.
This doesn't affect any ridden object that doesn't checks for hand availability. Like skateboards and wheelchairs (although how exactly your wheelchair is moving without hands or mechanical parts is beyond me).
* Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Fixes two incorrectly named COMSIG defines (#54660)
* Fixes two incorrectly named COMSIG defines.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Adds layer switching with mouse wheel to the RPD. (#54458)
Adds a signal that gets sent to items in currently active hand on mouse scroll
and makes RPD listen to this and change the piping layer accordingly.
* Adds layer switching with mouse wheel to the RPD.
Co-authored-by: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com>
* Replaces var edited mass driver machinery with subtypes (#54557)
This PR replaces var edited mass driver machinery with proper subtypes.
It also fixes the Pubby toxins pod door toggle. Turns out the mass driver control range was a few tiles too short.
* Replaces var edited mass driver machinery with subtypes
Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
* Directional lighting component + light system (#54520)
Adds in a new type for the lighting system, the directional one. It piggybacks on the overlay lighting to create a directional effect + adds a nice visual cone mask to make the effect feel really directional.
Also: made the static light system respect the light_on variable.
It feels really nice to shine AT things you're looking at with flashlights and the such, it makes maintenance scouring much more immersive too.
Adds more paranoia as you dont see light behind yourself when you've got a flashlight. Plus makes ambushes more fun
* [READY]Directional lighting component + light system
Co-authored-by: Azarak <azarak10@gmail.com>
* [READY]Removes Nitryl burn damage and adds Nitryl decomposition reaction (#53821)
This PR removes the burn damage you accumulate when breathing nitryl and adds a reaction to breakdown nitryl into its components(excluding bz) when in contact with oxygen under 600k. This produces small amounts of heat.
Nitryl, as it stands, is barely made or used due to the constant damage you take from breathing it, which causes damage slowdown after less than a minute of use. By making nitryl unsafe or unable to breathe with oxygen present, users must turn to pluoxium while using it in tanks, or hyper-nobilium when filling a room with it. BZ is not refunded if you waste your nitryl.
You now burp while breathing nitryl instead of gasping because it no longer directly harms you.
Breathing nitryl will cause lung damage proportional to the amount you are breathing at a rate proportional to the amount you are breathing when it makes up more than 10% of your breath.
* [READY]Removes Nitryl burn damage and adds Nitryl decomposition reaction
Co-authored-by: Capsandi <38051413+Capsandi@users.noreply.github.com>
* Adds 👏 High 👏 Fives 👏 (#54516)
This PR lets you post up for high-fives with your buds so you can slap some skin and show off how well you vibe together. To initiate a high-five, simply stand next to another person with a slapper (the *slap emote one) in hand, and hit the offer item button (default G) to let the people adjacent to you know you're available. They'll get an alert that you're offering a high-five, and clicking it will follow through and award you both a small positive moodlet, or they can just walk away and leave you hanging, earning you a negative moodlet.
Is a high-five not enough to show the world how tight your crew is? Double the fun! If whoever initiates the high-five has a slapper in both hands, and the taker has two hands free, you'll go for the mythical high-ten for a louder slap and extra emphasis! Woo!
* Adds 👏 High 👏 Fives 👏
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Out of repo maps part 1: JSON Improvements (#53663)
Replaces the map job changes code system with a JSON based one.
Added map versioning to the config JSON.
Formats map config JSONs.
* Out of repo maps part 1: JSON Improvements
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
* Adds a runechat plane to fix the issues related to the chat messages (#54522)
Previously your chat messages would be obstructed by the blackness of blocked turfs, aswell as dark lighting and some other effects. This fixes that
It still has backdrop ambient occlusion like it used to.
* Adds a runechat plane to fix the issues related to the chat messages
Co-authored-by: Azarak <azarak10@gmail.com>
* Standardizes attack chain signal returns and fixes a tk bug (#54475)
The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.
In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.
Additionally, fixed a tk bug reported by @ Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack
Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.
Also cleaned some code here and there.
* Standardizes attack chain signal returns and fixes a tk bug
Co-authored-by: Rohesie <rohesie@gmail.com>