Box tags
Fixes bug where box tags weren't updating correctly on creation
Adds box tag flavours for the pizzas without them (i.e. Donk Pocket -> Bangin' Donk, Dank -> Fresh Herb, Sassysage -> Sausage Lovers, Arnold -> 9mm Pepperoni)
Randomised pizza crates
Pizza crates can now come with any five pizzas, weighted by disruptiveness
Small chance of getting one pizza bomb in a pizza crate (either armed or not) per shift
Armed pizza bomb
Adds an armed variant of the bomb pizza box, which has the boxtag "Meat Explosion", contains a meat pizza and explodes 5 seconds after opening
Makes the pizza party spawner use the armed bomb pizza box, instead of giving whoever a free syndicate pizza bomb they probably aren't allowed to use anyway
Secure kitchen crate
Adds the secure kitchen crate from my previous PR
Adds a secure pizza crate variant to KiloStation's cargo warehouse where the freezer crate was, which contains the pizza party and is locked with kitchen access
Ghost examines
Adds ghost examine messages for pizza boxes with bombs or the nanomachine pizza in them
Refactors plant traits to use signals instead of looped proc-calls copy-pasted on both types of plant.
Comments / autodocs a lot of the plant genes and their procs.
Renamed a bunch of vars to be more descriptive.
Pyrosium previously would fail to react because the on_reaction() proc would set it's temperature below it's minimum, so it wouldn't get started. This widens the reaction range to work at pretty much all temperatures.
The same was done for Cryo (which I think works anyways?) but makes the reaction less fussy.
Also makes their oxygen reactions instant so I don't break grenades too.
Counter to the original intent of the change seen here #50126, n2o will currently deal damage when used with both internal tanks and floods, as the threshold picked for it was about 0.15 moles at room temperature. Even outside this oversight, the original goal can't easily be achieved. Because breathing works off partial pressures, anything you can do with an anesthetic can you can do with an n2o flood.
Therefore I don't think it's behavior worth keeping, as even as a way to disincentivize non-antag n2o floods it would do little.
Makes hyper low amounts of bz not cause hallucinations
Makes the brain damage portion of bz breathing only take effect at higher pressures, roughly 10 mols at room temp on a turf
Brings a heavily improved, rewritten, and optimised fermichem to tg. I saw that tg seemed receptive to it, so I thought I’d do it myself. If you know of fermichem – there’s a lot changed and improved, so looking at other documents regarding it will not be accurate.
Revamps the main chemistry reaction handler to allow for over time reactions instead of instant reactions. This revamp allows for simultaneous reactions, exo/endothermic reactions and pH consuming/producing behaviours. Most of the reactions in game will now inherit an easy one size fits all reaction.
Temperature mechanics
Temperature affects reaction rate
The higher it is, the faster it is, but be careful, as chem reactions will perform special functions when overheated (presently it DOESN’T explode)
Temperature will increase or decrease depending on the exo/endothermic nature of the reaction
pH mechanics
Each reaction requires the pH of a beaker to be within a certain range.
If you are outside of the optimal, you'll incur impurity, which has a negative effect on the resultant chem
pH of a beaker will change during a reaction
Reacting Impure chem effects can vary from chem to chem, but for default will reduce the purity of other reagents in the beaker
Consuming an impure chem will either cause liver or tox damage dependant on how impure it is as well as reducing consumed volume
Purity can (presently) only be seen with a chemical analyser
Impure chems can purposely be made by making the reagent with a low, but not explosive, purity.
A chem made under the PurityMin will convert into the reagent’s failed chem in the beaker.
Optional catalysts
Reactions can use an optional catalyst to influence the reaction - at the more framework exists from tmeprature, reaction rate and pH changes as a result of a catalyst. Catalysts can be set to only work on a specific reagent subtype. It is preferable to those building upon this code that optional catalysts only affect a subsection of reagents.
Presently the only catalyst that uses this is Palladium synthate catalyst - a catalyst that increases the reaction speed of medicines.
Reaction agents
These are reagents that will consume themselves when added to a beaker - even a full one, and apply effects to the total solution. One example being Tempomyocin which will speed up a reaction, or the buffer reagents which change the pH.
Competitive reactions
These reactions will go towards a certain product depending on the conditions of the holder. The example one given is a little tricky and requires a lot of temperature to push it towards one end.
New and charged reactions
(see the wiki for details)
Acidic /basic buffer - These reagents will adjust the pH of a beaker/solution when added to one. If the beaker is empty it will fill it instead.
Tempomyocin - This will instantly speed up any reaction added it is added to, giving it a short burst of speed. Adding this reagent to a reaction will give it a suddent speed boost up to 3x times - with the output purity of the boost modified by the Tempomyocin's purity.5u per 100u will give you 2x, 10 u per 100u will give you 3x. IIt caps at 3x for a single addition, but there is nothing preventing you from adding multiple doses for multiple boosts.
Purit tester - this will fizzle if the solution it is added to has an inverse purity reagent present.
A few other reactions have been tweaked to make sure they work too. An example being meth - see the wikipage linked above.
A note on all reactions
The one size fits all reaction for all chems generally won’t create impure chems – it is very forgiving. The only thing to remember is to avoid heating reactions over 900 or you’ll reduce your yield, and try to keep your pH between 5 -9.
This PR doesn’t have specific example chems included (except for the buffers) – they will be atomised out and they use the mechanics in more depth
A note on plumbing
I reached out to Time Green and we worked together to make sure plumbing was fine. Time Green did some of his own tests too, and surprisingly it doesn't look like much needs to be changed.
You used to only be able to splash glass reagent containers and glass...glasses. This code was previously duplicated, but is now a general property of reagent containers with spillable = TRUE (which includes both of these).
Splashing beakers is now also on right click
Splits can_inject into can_inject and try_inject. The latter can perform side effects, while the former cannot. Moved the show_error bool parameter to a flag that try_inject checks.
Changes the signature to can_inject(mob/user, target_zone, injection_flags). This was previously redefined in several places, making it impossible to use named parameters. This refactor now allows named parameters to be used, and thus avoiding the ugliness of TRUE, FALSE, FALSE in parameters.
Goldschlager contains real gold flakes in the real world, and in-game
it's made from 10u vodka and 1u gold, so it should have some effects of
gold.
The existing descriptions describe it being enjoyed by teenage girls, so
that is now mechanically enforced.
The Jolly and Depression quirks are much more active. You can expect the positive/negative moodlets to affect you around 50% of the time.
Previously, the probability of the Jolly/Depression moodlet firing was so low, you only have a less than 1/3 chance of seeing the 2 minute moodlet in an hour of play. Now they will be far more active.
Depression's hardcore point value has increased, since it is far more negative now.
The quirks now just add the TRAIT_JOLLY and TRAIT_DEPRESSION, which is then used by the mood component to have a chance of triggering the corresponding mood episode.
Gonbolas now have an always on positive mood message, rather than applying a do nothing TRAIT_JOLLY trait.
To demonstrate how the mood traits are independent of the quirks, There is now a "jolly grey cap", which gives you TRAIT_JOLLY while it is being worn.
Fixes two runtimes, one caused by status effects always expecting a return from throw_alert, and another caused by holding yourself up (which you shouldn't even be able to do). Also fixes an issue caused by multiple people holding up the same person, when one of the perpetrators stopped holding up the victim, all of the victim's related alerts disappeared.
The wiki states that both soy and regular milk can be used to make chocolate bars, currently only soy milk works.
In PR #21206 the recipe for chocolate milk was made to be 1 unit coco powder and 1 unit milk keeping this recipe functional but adding an additional step. However as of PR #55606 the recipe for chocolate milk was changed to use hot cocoa. This PR restores to original method of making chocolate bars.
Chocolate bars are made from milk, coco powder and sugar, you shouldn't need to mix in hot cocoa to make a chocolate bar.
I had accidentally tested this with a medkit in my hand (I'm a CMO on my test server).
Now correctly uses an attack_hand adjacent proc, rather than attackby.
Bounty cube announces its creation over Supply with its creator and
area, starting the speedy delivery bonus countdown
20% bonus for cargo if you send the cube within 5 minutes of its
creation.
Using an export scanner on it in the supply shuttle awards a 10%
personal handling tip when it reaches Centcom.
Cube nags at five minutes over Supply if it's not sent and cargo bonus
is lost.
All nags tell you the cube's area
Co-authored-by: coiax <yellowbounder@gmail.com>
fix: Fixes some missing sprites for the Possessed Sword, Moonlight Greatsword and Chain Whip nullrods.
imageadd: Adds new sprites to the wizard ritual knife and veilrenders.
Revamp of the software downloader program for modular computers.
Changes:
- Programs are now sorted alphabetically with incompatible ones in the end of the list.
- Installed programs are now displayed in the list.
- Added program icons.
- Moved the error messages in place of the download button.
- Only the most important error message is displayed now. Priority: compatibility, access, free space.
- Syndicate programs are now displayed in the same list, but have a warning message from NT (There are no warning messages on syndicate OS).
- Added program categories to improve navigation. The default option "All" contains items from all categories.
- Download progress bar moved in place of the Disk usage bar. Disk usage is updated only after the download is complete, so the information was inaccurate during download. And the download bar now always visible regardless of selected category.
- The old download progress bar (next to the corresponding program) is replaced with "Downloading" indicator with a spinner.
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* Add blended dust warning to grinder beakers
🆑 coiax
tweak: All beakers, bottles and containers that have been used in the
All-in-One Grinder will have a warning not to inhale the dust on
examine.
/🆑
The initial spawned beakers in the grinder already had this description,
and now it is applied to any beakers that have been used for grinding
purposes (and only grinding purposes).
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
Cryogenics has a reagent_transfer variable that is set to throttle the
reagent injection. Upgrading bins increase efficiency and transfer
amount, thus making the reagent_transfer threshold larger, making it
take longer between each injections.
However, this variable is stored
in the object itself and not on the process proc, presumably to prevent
exploits such as rapidly turning the machine on and off. This has a
really bad consequence that makes cryo really clunky to use, since you
may need to wait for the reagent_transfer variable to hit threshold and
then reset again for a new patient before any cryoxadone can be
injected. Not to mention how upgrading the bins somehow timegaps it
even further.
This PR seeks to change the whole system to transfer reagents in a
smaller and more continuous manner.
I think it would be fun if you could throw hatchets and get them
embedded in your victims, I was surprised that it wasn't a thing in the
first place.
Co-authored-by: Sparkezel <1haslo4@gmail.com>
The m90 is now 14tc instead of 18. Its grenades can be bought from the uplink in boxes for 6tc, instead of individual grenades for 2tc each. You can also fire the m90's grenade launcher with right click.
* Spellchecks the in-spect scanner description
- Renames it the N-spect scanner
- Changes the sound effect from the quaint voiced placeholder to something I found on Freesound
- Changes the report to be a piece of paper
- Adds encrypted WGW protocol report to paper
* Uses 514's map_cpu var when it's available
* Uses auxtools for the debugger, to supply cross verison compatibility
* Nukes extools reference tracking, reinstates the old ref tracking system
Venus flytraps were formerly immune to fire and cold damage. Now plasma fires and the coldness of space can hurt them. Fire does double the damage compared to cold.
At full health a Venus Flytrap will die in:
~5 seconds inside of a fire
~10 seconds inside of space