mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-14 09:35:30 +01:00
mayfools
299 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
baf3837ae8 |
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx |
||
|
|
7a3ad79506 |
All camelCase (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case. UNDERSCORES RULE! (#94111)
## About The Pull Request It's just a partial cleanup of anti-[STYLE](https://github.com/tgstation/tgstation/blob/master/.github/guides/STYLE.md) code from /tg/'s ancient history. I compiled & tested with my helpful assistant and damage is still working. <img width="1920" height="1040" alt="image" src="https://github.com/user-attachments/assets/26dabc17-088f-4008-b299-3ff4c27142c3" /> I'll upload the .cs script I used to do it shortly. ## Why It's Good For The Game Just minor code cleanup. Script used is located at https://metek.tech/camelTo-Snake.7z EDIT 11/23/25: Updated the script to use multithreading and sequential scan so it works a hell of a lot faster ``` /* // Copyright 2025 Joshua 'Joan Metekillot' Kidder This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. // */ using System.Text.RegularExpressions; class Program { static async Task Main(string[] args) { var readFile = new FileStreamOptions { Access = FileAccess.Read, Share = FileShare.ReadWrite, Options = FileOptions.Asynchronous | FileOptions.SequentialScan }; FileStreamOptions writeFile = new FileStreamOptions { Share = FileShare.ReadWrite, Access = FileAccess.ReadWrite, Mode = FileMode.Truncate, Options = FileOptions.Asynchronous }; RegexOptions regexOptions = RegexOptions.Multiline | RegexOptions.Compiled; Dictionary<string, int> changedProcs = new(); string regexPattern = @"(?<=\P{L})([a-z]+)([A-Z]{1,2}[a-z]+)*(Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss)([A-Z]{1,2}[a-z]+)*"; Regex camelCaseProcRegex = new(regexPattern, regexOptions); string snakeify(Match matchingRegex) { var vals = matchingRegex.Groups.Cast<Group>().SelectMany(_ => _.Captures).Select(_ => _.Value).ToArray(); var newVal = string.Join("_", vals.Skip(1).ToArray()).ToLower(); string logString = $"{vals[0]} => {newVal}"; if (changedProcs.TryGetValue(logString, out int value)) { changedProcs[logString] = value + 1; } else { changedProcs.Add(logString, 1); } return newVal; } var dmFiles = Directory.EnumerateFiles(".", "*.dm", SearchOption.AllDirectories).ToAsyncEnumerable<string>(); // uses default ParallelOptions // https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.paralleloptions?view=net-10.0#main await Parallel.ForEachAsync(dmFiles, async (filePath, UnusedCancellationToken) => { var reader = new StreamReader(filePath, readFile); string oldContent = await reader.ReadToEndAsync(); string newContent = camelCaseProcRegex.Replace(oldContent, new MatchEvaluator((Func<Match, string>)snakeify)); if (oldContent != newContent) { var writer = new StreamWriter(filePath, writeFile); await writer.WriteAsync(newContent); await writer.DisposeAsync(); } reader.Dispose(); }); var logToList = changedProcs.Cast<KeyValuePair<string, int>>().ToList(); foreach (var pair in logToList) { Console.WriteLine($"{pair.Key}: {pair.Value} locations"); } } } ``` ## Changelog 🆑 Bisar code: All (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case, in-line with the STYLE guide. Underscores rule! /🆑 |
||
|
|
1728bcaee6 |
Husk reports prioritize incurable forms of husking (#93998)
## About The Pull Request Husk report priority is now ling -> unknown -> burns rather than burns -> ling -> unknown. ## Why It's Good For The Game Stops doctors from wasting time by hiding sources ## Changelog 🆑 Melbert qol: Other forms of being husked are now reported before burns /🆑 |
||
|
|
c7cb0674cc |
Preliminary blood refactor (#93854)
## About The Pull Request Moves all blood handling into procs and adds ways to easily hook into basically every basic blood behavior. This PR is not meant to fix every single case of janky blood logic in the game. The main point and motivation of this PR is to add hooks for blood behaviors. This allows for way more flexibility with blood code. I am not going to fix our 3000 instances of single-letter vars, wacky blood transfers, etc. This is just the groundwork for future PRs to build off of, and by itself, should do very little to change blood behavior. I also added a rigorous set of unit tests for verifying that all of the basic blood volume procs work correctly. ## Why It's Good For The Game Previously, blood was handled via directly reading/writing [var/blood_volume]. This was INCREDIBLY inconsistent and there was no way to hook into it. This PR makes blood handling way more consistent, which is great for all sorts of features. |
||
|
|
ce509e0ad5 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 | ||
|
|
54198986b7 | generic device handling sounds (#93536) | ||
|
|
d14e538393 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 | ||
|
|
bbe729aef7 |
Converts more attackby's to interactions (#93106)
## About The Pull Request Converts the following: - Medical Kiosk - Implant case - Flamethrower - Chemical implant case - Pappercutter Also I've looked at some alt click procs and adjusted some of their returns |
||
|
|
8aa39b75f0 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
def17fd90a |
Rare Earths! Advanced soils for botany. (#92513)
## About The Pull Request This PR adds 4 new types of soil and a holder item; the soil sack, to contain and transport said soils. <img width="496" height="378" alt="bild" src="https://github.com/user-attachments/assets/57f42a9c-c731-4195-91df-b4456ec45e7b" /> Two of the new soils + the regular old soil are available in the premium section of the nutrimax. All 5 soil types are available from cargo. It also adds two new plant traits; soil lover and semiaquatic, that allows coders to confer maluses to plants growing in trays or soil respectively. Potatoes, sweet potatoes, carrots, parsnips, cahn'roots, white and red beets currently have soil lover, reducing their produced yield by 30% and their potency randomly between 20-80% if grown hydroponically. Rice has semiaquatic which increases the amount of weeds gained by 50% if grown in soil rather than hydroponically. ## Advanced soil types ### Vermaculite #### Stats Max Nutrients: 20u Max Water: 150u #### Special Effects Multigraft: Up to 3 grafts can be cut from a plant planted in vermaculite. Graft Medium: Graft cuttiongs can be directly placed into vermaculite to create a new plant vegetatively. ### Hydrogel Beads #### Stats Max Nutrients: 15u Max Water: 300u #### Special Effects Hydroponic + Soil: Both water loving and soil loving plants can grow without maluses. Super Water: Water consumption rate is decreased by 50% ### Korta Coir #### Stats Max Nutrients: 20u Max Water: 100u #### Special Effects Fast Mushrooms: Mushrooms mature(and age) 40% faster if planted in this soil. ### Worm Castings #### Stats Max Nutrients = 35u Max Water = 200u #### Special Effects Slow Release: If the nutrients run out, 1u nitrogen will be automatically added to the nutient pool. Worm Habitat: Composting veggies in this soil has a chance to produce an extra slimy worm. ### Soil Sacks Use them on the floor to place a soil at that location. You can reverse this process by right clicking a soil with a shovel. The sacks are huge items that deals stamina damage, but have slowdown when carried. They can be wielded to remove slowdown, double the damage output and gain 25% block chance. They have unique normal and wielded inhands for each sack type. #### Price List **Soil** Nutrimax: 50 cr Cargo: 400 cr / 5 sacks **Vermaculite** Nutrimax: 100 cr Cargo: 400 cr / 3 sacks **Hydrogel** Nutrimax: 100 cr Cargo: 400 cr / 3 sacks **Coir** Nutrimax: N/A Cargo: 600 cr / 3 sacks **Worm Castings** Nutrimax: N/A Cargo: 800 cr / 3 sacks #### Misc Soil Changes Soil now have a new armour type and are generally much harder to destroy by shooting or bashing them. Fixed a bug where weeds would instantly reduce yield to 3 instead of lowering it by 1-2 per cycle. ## Why It's Good For The Game I have long been a fan of using soils in botany, they are the cheapest and easiest way to make new trays and enable many interesting strategies. The default soil is fine for what is but it kinda sucks, not only having low stats but also missing autogrow, a feature botanist have grown completely addicted and dependent on. When self sustaining trays were removed and autogrow added, it was intended as a way to keep a couple of plants alive while you ran out to do errands or grab a drink. However, the feature has devolved into basically a shift start self sustaining for all your trays and standard practice is using it on every single tray that currently is not trying to mutate. This has resulted in certain core botany mechanics like water and pests being made totally irrelevant, shrinking design space a lot. Rather than just reaching for the stick, I thought it would be fun to instead offer them a carrot in the form of an expanded toolset of soils with unique effects that cannot be replicated by trays. These new soils offer niche benefits that enable advanced botany gameplay and provides a framwork for deepening plant / tray interactions in the furture. ## Changelog 🆑 add: Added 4 new types of soil add: Added soils sacks to the nutrimax add: Added soil sack crates to cargo. balance: Soil now has higher armor values. balance: Rice now gets more weeds if grown in soil. balance: Carrots, potatoes, beets and their mutations now get reduced yield and potency if grown hydroponically. fix: Weed overgrowth no longer instantly sets yield to 3. /🆑 |
||
|
|
b308ee9d78 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
8f7f8a26d2 |
Allows health analysers to scan Cyborg MMIs and show a brain (or not) (#93035)
## About The Pull Request Fixes #92892 may not need fixing as looking at the code the feature was only left in for soul But I expanded it a little to work on Cyborgs/MMIs ## Why It's Good For The Game - Preserves soul ## Changelog 🆑 fix: Allows health analysers to scan Cyborg MMIs and show a brain (or not) /🆑 --------- Co-authored-by: loganuk <falseemail@aol.com> |
||
|
|
9b282a850e | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
a8d1925a8b |
Updates formatting of the paper printed by Autopsies, adds some missing info (#92689)
## About The Pull Request <details><summary>Updates the paper printed by an Autopsy</summary> <h5>(It's actually not much longer than the old autopsies could get. It has only a few new lines, most notably the missing organs it already should have been listing and Temperature) (Also it actually has fewer characters than the healthscan still because of having no color.)</h5> <h6>I genuinely don't know how to get the Overall to stop stacking like that. It was suggested it looks better at the bottom as a summary-type thing, and I think that's true and it does work, but it's hard to format right with paper width like it is.</h6> <img width="261" height="680" alt="image" src="https://github.com/user-attachments/assets/76190f1b-073a-4a61-a2fe-8002aaeb9187" /> </details> <details><summary> COMPARISONS </summary> <details><summary> New vs Old </summary> <h6>Obviously not the same info. I'm not gonna recreate two identical deaths in seperate code. I'm not crazy!!! Also I know I missed the virus scan, fwiw the formatting is about the same as the chemical. About. Ish.</h6> <img width="523" height="679" alt="image" src="https://github.com/user-attachments/assets/59057056-5964-4902-bb32-b678333152ab" /> </details> <details><summary> New vs healthscan </summary> <h6>Similar, yes, not identical though. See the PR body.</h6> <img width="528" height="677" alt="image" src="https://github.com/user-attachments/assets/e409deee-f327-4bab-a8b3-335999677e08" /> </details> </details> Now, it's largely comparable to a printed Health Scan. It has all its unique features unchanged: - Colorless advanced health scan (exact numbers of damages) - Lists all organs/limbs present (even undamaged organs, and with exact names) - Shows wound sources - Lists Chemicals/Diseases in detail Adds some missing info/QoL to the autopsies: - Lists Missing Organs (why weren't these listed???) - Sorts organ/limb lists the same as healthscan - Shows temperature, genetic stability, and blood alcohol (can inform how someone died) - Shows how long they've been dead in realtime (ingame time is neat, but not at all helpful) - Ends with a 'Coroner's Notes' section (so the coroner can write info such as how they think they died) Still has notable differences, of course: - No color (so sad) - Doesn't list quirks (they are dead their Heirloom is irrelevant) - No tooltips (it's paper) - Only possible while dead - Requires a surgery to get the printout Hopefully this will give it more usecase outside only boosting surgery speed. Detectives will appreciate a good coroner's autopsy now. <h5>(It feels really copy-pastey, but with it mostly just being paper formatting, I don't know how much CAN be made into unique procs. Suggestions on how to improve that are welcome.)</h5> --- Additionally: **Creates `/mob/living/carbon/human/proc/get_missing_organs()`.** Just takes some code from healthscan() and makes it useable elsewhere. Does what you'd guess. Returns a list of empty organ slots that should have organs, where key is the ORGAN_SLOT and value is the "name". **Adds a 'colored' variable to /obj/item/organ/proc/get_status_text()** Decides if it returns it with color. Autopsies call this with colored false. <h6>(See above note about copy-paste. These were two things I could see that I could minimize copy-paste with)</h6> ## Why It's Good For The Game These are so fun to do, but are missing **just** enough information to be kind of irritating without also doing a healthscan. You shouldn't need to print a healthscan alongside the autopsy, the autopsy is already the healthscan. _An unhealth-scan, perhaps?_ Hopefully this will make them nicer to use. _(An autopsy? Not showing missing organs? Crazy.)_ ## Changelog 🆑 qol: made Autopsy Reports follow similar formatting to Health Scans, and adds some information previously missing such as Missing Organs. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
ee99d0e5b0 |
Asthma quirk, inhalers - Electric Boogaloo (#92747)
## About The Pull Request Revival of https://github.com/tgstation/tgstation/pull/79691 A while back, I made this PR, but lost motivation after diving too deep into the code soup of can_breathe and related procs. Now, I have removed those parts, and have simplified that part of the code to the point I think it's ready for review. Many reviews from the previous PR have been addressed in this PR. <hr> <details> <summary>Details</summary> Asthma is a 4 point negative quirk that emulates real life asthma. It works by slowly decreasing the amount of pressure each breath you take receives, until your lungs completely seal, ensuring death if you dont get oxyloss meds/windpipe surgery. Inflammation (the tracker for intensity) increases whenever you breathe smoke, use a cigarette, metabolize histimine, or suffer an asthma attack. Asthma attacks have a low chance of happening every second, starting 10 minutes after you spawn and with a 20-30 grace period between attacks. They are "diseases" that cant be outright cured by albuterol, only put into remission. They increase inflammation at varying rates depending on their severity, with extreme asthma attacks being a immediate threat to your life while mild ones might not even cause inflammation. The response to these is always the same - use your inhaler before you start choking. Asthmatics start with a rescue inhaler, a low-capacity inhaler loaded with albuterol, which I will get to later. Albuterol is a new medicine thats a little tricky to make but still doable. It can be efficiently created with inverse convermol, or transmutated from salbutamol and convermol. The opposite is true, with albuterol able to be turned into salbutamol. Two canisters are available in chemvends. Upon use, it increases the virtual pressure of all breaths taken by 40%. This allows for you to breathe in lower pressure environments, as well as enhancing the effects of things like healium. It's OD causes your diaphram to spasm, causing sporadic losebreath and forced breathing. Inhalers are a fancy new reagent application apparatus that uses the INHALE reagent bitflag. Inhalers themselves are rather unremarkable, they are merely the method of using inhaler canisters (they also have a rotary display approximating the uses left in a canister - just like real life inhalers). Inhaler canisters are the reagent containers, and are generally low capacity. They can only be used in a inhaler, and contain aerosolized chemicals. Inhaler canisters and inhalers are unlocked from chemical synthesis, and are printable for cheap from a medlathe. In order to use a inhaler, one must uncover the mouth of a carbon and wait a few seconds (its faster if its a self-application) before a small amount of the reagents are delivered via the INHALE bitflag. This only works on things currently breathing - if theyre dead, have no lungs, or just, arent breathing - it will fail. This includes asthmatics with 100% inflammation. </details> <img width="181" height="74" alt="282863233-77a7cd6b-44d2-458e-9966-06d485df1521" src="https://github.com/user-attachments/assets/293b6659-0834-4e9a-b033-cc3b0cfde18e" /> <img width="1465" height="202" alt="282863346-2a247736-0c3a-43b0-a60b-7cff10ce4963" src="https://github.com/user-attachments/assets/5d9a13dc-b7b2-4de2-adda-8fbc8276e667" /> Sprites are not mine; they are from swanni and I can NOT sprite for the life of me ## Why It's Good For The Game 1. Asthma is just cool. One of my favorite features on bay was the fact lung damage required you to turn up the pressure on your O2 tank to survive, and this does precisely that. 2. Its always fun to add new ways to interact with atmos as a player that arent grossly broken, and I fail to see how a 40% increase of gas intake will really affect balance too badly. 3. Inhalers are badass. ## Changelog 🆑 add: Asthma quirk, based on IRL asthma add: Inhalers, a new reagent administering method that uses INHALE add: Albuterol, a new reagent that increases the amount of gas you inhale by 40% balance: Inverse convermol now forms once the reaction is done, not on metabolize /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> # Conflicts: # code/datums/quirks/negative_quirks/allergic.dm # code/game/objects/items/devices/scanners/health_analyzer.dm |
||
|
|
fadbf16e1b |
Asthma quirk, inhalers - Electric Boogaloo (#92747)
## About The Pull Request Revival of https://github.com/tgstation/tgstation/pull/79691 A while back, I made this PR, but lost motivation after diving too deep into the code soup of can_breathe and related procs. Now, I have removed those parts, and have simplified that part of the code to the point I think it's ready for review. Many reviews from the previous PR have been addressed in this PR. <hr> <details> <summary>Details</summary> Asthma is a 4 point negative quirk that emulates real life asthma. It works by slowly decreasing the amount of pressure each breath you take receives, until your lungs completely seal, ensuring death if you dont get oxyloss meds/windpipe surgery. Inflammation (the tracker for intensity) increases whenever you breathe smoke, use a cigarette, metabolize histimine, or suffer an asthma attack. Asthma attacks have a low chance of happening every second, starting 10 minutes after you spawn and with a 20-30 grace period between attacks. They are "diseases" that cant be outright cured by albuterol, only put into remission. They increase inflammation at varying rates depending on their severity, with extreme asthma attacks being a immediate threat to your life while mild ones might not even cause inflammation. The response to these is always the same - use your inhaler before you start choking. Asthmatics start with a rescue inhaler, a low-capacity inhaler loaded with albuterol, which I will get to later. Albuterol is a new medicine thats a little tricky to make but still doable. It can be efficiently created with inverse convermol, or transmutated from salbutamol and convermol. The opposite is true, with albuterol able to be turned into salbutamol. Two canisters are available in chemvends. Upon use, it increases the virtual pressure of all breaths taken by 40%. This allows for you to breathe in lower pressure environments, as well as enhancing the effects of things like healium. It's OD causes your diaphram to spasm, causing sporadic losebreath and forced breathing. Inhalers are a fancy new reagent application apparatus that uses the INHALE reagent bitflag. Inhalers themselves are rather unremarkable, they are merely the method of using inhaler canisters (they also have a rotary display approximating the uses left in a canister - just like real life inhalers). Inhaler canisters are the reagent containers, and are generally low capacity. They can only be used in a inhaler, and contain aerosolized chemicals. Inhaler canisters and inhalers are unlocked from chemical synthesis, and are printable for cheap from a medlathe. In order to use a inhaler, one must uncover the mouth of a carbon and wait a few seconds (its faster if its a self-application) before a small amount of the reagents are delivered via the INHALE bitflag. This only works on things currently breathing - if theyre dead, have no lungs, or just, arent breathing - it will fail. This includes asthmatics with 100% inflammation. </details> <img width="181" height="74" alt="282863233-77a7cd6b-44d2-458e-9966-06d485df1521" src="https://github.com/user-attachments/assets/293b6659-0834-4e9a-b033-cc3b0cfde18e" /> <img width="1465" height="202" alt="282863346-2a247736-0c3a-43b0-a60b-7cff10ce4963" src="https://github.com/user-attachments/assets/5d9a13dc-b7b2-4de2-adda-8fbc8276e667" /> Sprites are not mine; they are from swanni and I can NOT sprite for the life of me ## Why It's Good For The Game 1. Asthma is just cool. One of my favorite features on bay was the fact lung damage required you to turn up the pressure on your O2 tank to survive, and this does precisely that. 2. Its always fun to add new ways to interact with atmos as a player that arent grossly broken, and I fail to see how a 40% increase of gas intake will really affect balance too badly. 3. Inhalers are badass. ## Changelog 🆑 add: Asthma quirk, based on IRL asthma add: Inhalers, a new reagent administering method that uses INHALE add: Albuterol, a new reagent that increases the amount of gas you inhale by 40% balance: Inverse convermol now forms once the reaction is done, not on metabolize /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
b348b617a3 |
Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts: # README.md # code/__DEFINES/admin.dm # code/__DEFINES/melee.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/economy.dm # code/datums/components/crafting/crafting.dm # code/datums/elements/crusher_loot.dm # code/modules/antagonists/pirate/pirate_shuttle_equipment.dm # code/modules/clothing/suits/_suits.dm # code/modules/escape_menu/leave_body.dm # code/modules/jobs/job_types/_job.dm # code/modules/mining/equipment/mineral_scanner.dm # code/modules/mob/living/living.dm # code/modules/plumbing/plumbers/pill_press.dm # tgui/packages/tgui/interfaces/Vending.tsx |
||
|
|
d2b92afe55 |
Plant Analyzer UX Revamp (#92667)
## About The Pull Request <img width="1300" height="706" alt="image" src="https://github.com/user-attachments/assets/c7971eab-6af3-4fea-94f5-b76104696b73" /> 1. Chems are no longer hidden in an icon's tooltip. There is a separate tab for chems. Right clicking to do a chem scan will pull up the chem tab, but you can also just use the two buttons at the top - Closes #91172 2. You no longer need to repeatedly scan a tray to update the UI. Standing adjacent to a scanned tray will update it regularly. 3. Units have been redefined from pure seconds to minutes/seconds where applicable. 4. The report has been swapped around, with tray on top and plant on bottom. 5. The nutrient bar is now colored based on contents of the tray. It no longer has a tooltip listing the tray's contents, that's now in the chemicals tab. 6. Auto-grow, pollinating, and yield modifier icons have been brought center below the tray, instead of in the top right section. They now change color to make it more apparent at a glance. 7. Traits have been moved from icons to a collapsible list at the bottom of the UI, and are now printed entirely. They still have tooltips explaining what they do. 8. Grafted gene was moved center below the plant, and is now printed entirely. 9. Mutations have been moved to a collapsible list center below the plant. 10. Plants now indicate if they are dead in the UI. 11. Scanning produce now lists all the chemicals inside it on top of all the chemicals it produces. - Closes #89443, Closes #90793 12. Restores lost behavior of seed unique data - Closes #90706 Also 13. Added Hydroponics to Runtime station 14. Added screentip for dumping reagents from hydro-trays ## Why It's Good For The Game While I was initially supportive of the move to a plant analyzer UI it was undeniable it was a huge UX stepdown from printing results to chat. This PR aims to bring back some of those lost UX features by making more information visible at a glance (instead of requiring memorization of mystery meat icons or hovering over many elements to find information hidden in tooltips) I know it's a little bit of a mess with the colors and layout, I planned on doing a whole custom css and layout and such but I kinda just wanted to get it out. ## Changelog 🆑 Melbert qol: Plant analyzer: Scanning a tray will regularly update the UI with the tray's information while you stand adjacent to it, no longer requiring you re-scan the tray to update it. qol: Plant analyzer: UI is now split between chems and stats - RMB will open directly to the chem tab. qol: Plant analyzer: UI received several UX changes - listing out more information at a glance, rather than behind tooltips or icons fix: Plant analyzer: Chem scanning plants now shows the plant's current chemical contents once again (on top of their genes) fix: Plant analyzer: Unique seed data (kudzu mutation, replica pod dna) is shown again qol: Added hydroponics to runtime station qol: Added screentip to hydroponic trays for clearing reagents /🆑 |
||
|
|
9e7037c973 |
Fixes plant analyzer blocking all interactions in the darkness (#92642)
## About The Pull Request Closes #92637 ## Changelog 🆑 fix: Fixed plant analyzer blocking all interactions in the darkness /🆑 |
||
|
|
2a778cd510 |
Changes flux anomalies and gravity anomalies to be a little less horrible to deal with. (#92216)
## About The Pull Request
Flux anomalies, when they detonate, do a minor explosion and emit a wide
EMP pulse. This can cause a lot of damage in its own right, but it won't
syndicate bomb a random section of the station anymore.
Gravity anomalies
A) No longer have the click catching giant image floating above it
anymore.
B) No longer chain hardstuns you if you get too close every time it
ticks. Instead, it knocks you down. You can also avoid this effect by
wearing magboots.
C) Also doesn't throw literally every object in an area around it
straight into you every time it ticks. Instead, it does so only 20% of
the time.
Long range gas analyzers can now scan anomalies.
## Why It's Good For The Game
> Flux
A really annoying anomaly and one that I think has caused several
shuttle calls in its time. If you don't catch it, it blows up a segment
of the station entirely at random. This thing can almost be as bad as a
vortex in some contexts. A giant EMP can still be pretty destructive,
but it isn't quite at the same level as a giant explosion and I suspect
not shuttle call worthy. The minor explosion will at most trash a room.
> Gravity
I literally do not understand how anyone was supposed to disable these.
I literally gave up years ago even trying to catch them. They're
practically designed to kill you for trying. The click catching warp
effect not only looked kind of lame, but it just straight up stopped you
being able to disable them (mouse opacity doesn't work here and I tried,
it redirects clicks to other tiles for some godawful reason, probably
byond weirdness). You had to spam click a LOT to even try.
On top of that, it just stuns you? It literally just stuns you if you
approach it? And magboots can't help you to avoid that? What the fuck
are you _supposed_ to do to avoid that?
Also it can just instantly kill you if you approach it and it gathered
enough stuff because it will just keep slapping you with every loose
object within a radius around itself? At speed 5 so things that don't
normally embed will embed?
So it mulches you for approaching it, chain hardstuns you for
approaching it, and it deliberately intercepts clicks in a completely
unintuitive fashion even if you do manage to click it. You need to
approach it to stop it. A recipe for disaster. Fuck that.
> Analyzer
It was annoying this wasn't able to do this already!
## Changelog
🆑
balance: Gravity anomalies can be properly clicked. Rather than chain
stunning you, the anomaly will knock you down. You can avoid the
negatives of gravity anomalies by wearing magboots. (Yes, it did not
really protect you until now)
balance: Flux anomalies detonate in a much smaller explosion, but
release a wide EMP as well.
balance: Long range gas analyzers can now scan anomalies.
/🆑
(cherry picked from commit
|
||
|
|
2b0a824132 |
Changes flux anomalies and gravity anomalies to be a little less horrible to deal with. (#92216)
## About The Pull Request Flux anomalies, when they detonate, do a minor explosion and emit a wide EMP pulse. This can cause a lot of damage in its own right, but it won't syndicate bomb a random section of the station anymore. Gravity anomalies A) No longer have the click catching giant image floating above it anymore. B) No longer chain hardstuns you if you get too close every time it ticks. Instead, it knocks you down. You can also avoid this effect by wearing magboots. C) Also doesn't throw literally every object in an area around it straight into you every time it ticks. Instead, it does so only 20% of the time. Long range gas analyzers can now scan anomalies. ## Why It's Good For The Game > Flux A really annoying anomaly and one that I think has caused several shuttle calls in its time. If you don't catch it, it blows up a segment of the station entirely at random. This thing can almost be as bad as a vortex in some contexts. A giant EMP can still be pretty destructive, but it isn't quite at the same level as a giant explosion and I suspect not shuttle call worthy. The minor explosion will at most trash a room. > Gravity I literally do not understand how anyone was supposed to disable these. I literally gave up years ago even trying to catch them. They're practically designed to kill you for trying. The click catching warp effect not only looked kind of lame, but it just straight up stopped you being able to disable them (mouse opacity doesn't work here and I tried, it redirects clicks to other tiles for some godawful reason, probably byond weirdness). You had to spam click a LOT to even try. On top of that, it just stuns you? It literally just stuns you if you approach it? And magboots can't help you to avoid that? What the fuck are you _supposed_ to do to avoid that? Also it can just instantly kill you if you approach it and it gathered enough stuff because it will just keep slapping you with every loose object within a radius around itself? At speed 5 so things that don't normally embed will embed? So it mulches you for approaching it, chain hardstuns you for approaching it, and it deliberately intercepts clicks in a completely unintuitive fashion even if you do manage to click it. You need to approach it to stop it. A recipe for disaster. Fuck that. > Analyzer It was annoying this wasn't able to do this already! ## Changelog 🆑 balance: Gravity anomalies can be properly clicked. Rather than chain stunning you, the anomaly will knock you down. You can avoid the negatives of gravity anomalies by wearing magboots. (Yes, it did not really protect you until now) balance: Flux anomalies detonate in a much smaller explosion, but release a wide EMP as well. balance: Long range gas analyzers can now scan anomalies. /🆑 |
||
|
|
78cffc2101 |
Adds a new halloween species: Spirits (#90711)
Adds 2 new species: Spirits and Ghosts
Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors
They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.
They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.
Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.
Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.
Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).
Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.
This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.
https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e
We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)
🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
(cherry picked from commit
|
||
|
|
096c032402 |
Adds a new halloween species: Spirits (#90711)
## About The Pull Request Adds 2 new species: Spirits and Ghosts Spirits are available roundstart during Halloween, Wabbajack and Xenobio's black slime extract Ghosts are available through Magic mirrors They fly around, and don't have legs and instead float around. They also can't get legs implanted onto themselves. They also do have organs, so they are affected by flashbangs, they do get hungry, they do need oxygen to survive (they don't take damage in space but they do suffocate & get slowdown), and can process chems. Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers. Chaplains also got a buff here, null rod-type weapons' bane is now against Spirit mobs, rather than hardcoded revenants. This means it now includes Spirits/Ghosts, but also Soulscythes & Cult shades. Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was reverted in https://github.com/tgstation/tgstation/pull/86506 which I assume was accidental. ### The difference between Spirits and Ghosts Ghosts have an innate ability to become incorporeal, which allows them to phase through walls and stuff. Using this will immediately make them drop any non-ghost limb/organ (not implants cause I thought it would be funny). This ability is not available if they have holy water in their system, and like revenants they also can't walk over blessed tiles with it. They are also invisible to cameras while using this (not the obscura though). Sprites taken from observers directly, if anyone wants to make custom sprites for them feel free. If anyone wants to make this obtainable somehow in-game as well I wouldn't be opposed, halloween is just where I thought it would fit most. This also adds a lot of fixes that I encountered trying to add this, from systems that have been neglected throughout the years. https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e ## Why It's Good For The Game We haven't gotten a new halloween species in a long time and thought it would be fun if you can play as an actual ghost, the soul that remains after a person passes, so Halloween feels more haunted. It's overall made in just good fun, with a bonus that Ghosts are a cool species to play with as well for Wizards & maybe Chaplains in the future (Dead sect when?) ## Changelog 🆑 add: Added a new halloween species: Spirits, a species without legs and instead floats. add: Added a new magic mirror species: Ghosts, like spirits but with the ability to become incorporeal, traversing through solid wall. fix: Mobs unable to use storage items now can't use storage items. fix: Mobs unable to use items can now not open airlocks & closets fix: Mobs unable to pick items up can no longer pick items up and immediately drop, moving one tile at a time. fix: Mobs with intentional missing limbs (Alien larva) no longer show their limbs as missing on examine (again) fix: Golems' pref page had a missing icon, it now has one. /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
df3df27e1d |
Diagnosis: The Diagnosing (#91361)
Adds more analog diagnostic stuff, and expands on what's already there. Current content added: - Custom text for when you examine different kinds of organs with stethoscopes and penlights. - Examining eldritchly corrupted organs too closely (stethoscope and penlight) is a bad idea. - If you place a metal disk against a guy sparking like a tesla coil, you get shocked. Go figure. - If someone has an actively damaging zombie infection (ie. got clawed by a zombie, not romerol), you can see it on penlight. - New Hemoanalytic Scanner, for use in places where real health scanners with actual useful features are too high class. It's able to scan for medicines in the blood, check blood and oxygen levels, determine if the scannee has tox damage, and even check their blood type. It's printable roundstart for iron and glass, so that medbay isn't completely fucked if science doesn't do their job and they lose their health analyzers somehow. - Nifty status effect messages for those tools! Fun, rarely used systems are being improved, and seeing as how the easily available, faster health analyzer is basically the end-all be-all of diagnostic tools anyways, it's not going to unbalance anything unless i literally make them just a health analyzer but better. 🆑 add: Vaguely estimate what kinds of hearts and lungs people have from a variety of weird stethoscope noises! (Or just look it up on the pr, I won't judge.) add: Using analog diagnostic tools on eldritch organs from beyond the waking world or people whose hearts cause their skin to arc like a tesla coil is a bad idea. Examine people, ya goof. add: You can see if someone has an actively damaging (read: contracted straight from the groaning hungry source) zombie infection by using a penlight. Act out highly emotional headshot hesitation scenes today! add: New Hemoanalytic Scanner (read: really shitty but roundstart printable chem scanner), which tells you all about someone's blood, and can also detect medicines in their bloodstream! Not toxins or miscellaneous reagents though. refactor: Refactored and added some penlight, stethoscope, and organ code. If shit is fucked, please report it on the github issue tracker ASAP. fix: X-Ray vision generically causes eyes to glow under penlight, not just specifically the mutation X-Ray vision. fix: Reflex Hammers now fit in medical storage items, IE. medbelts and medkits. balance: People with welding-eyes or similar will not have their pupils react to penlight examination. /🆑 --------- Co-authored-by: ThrowawayUseless <notarealemail@emailservice.fake> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
f02819360b |
Diagnosis: The Diagnosing (#91361)
## About The Pull Request Adds more analog diagnostic stuff, and expands on what's already there. Current content added: - Custom text for when you examine different kinds of organs with stethoscopes and penlights. - Examining eldritchly corrupted organs too closely (stethoscope and penlight) is a bad idea. - If you place a metal disk against a guy sparking like a tesla coil, you get shocked. Go figure. - If someone has an actively damaging zombie infection (ie. got clawed by a zombie, not romerol), you can see it on penlight. - New Hemoanalytic Scanner, for use in places where real health scanners with actual useful features are too high class. It's able to scan for medicines in the blood, check blood and oxygen levels, determine if the scannee has tox damage, and even check their blood type. It's printable roundstart for iron and glass, so that medbay isn't completely fucked if science doesn't do their job and they lose their health analyzers somehow. - Nifty status effect messages for those tools! ## Why It's Good For The Game Fun, rarely used systems are being improved, and seeing as how the easily available, faster health analyzer is basically the end-all be-all of diagnostic tools anyways, it's not going to unbalance anything unless i literally make them just a health analyzer but better. ## Changelog 🆑 add: Vaguely estimate what kinds of hearts and lungs people have from a variety of weird stethoscope noises! (Or just look it up on the pr, I won't judge.) add: Using analog diagnostic tools on eldritch organs from beyond the waking world or people whose hearts cause their skin to arc like a tesla coil is a bad idea. Examine people, ya goof. add: You can see if someone has an actively damaging (read: contracted straight from the groaning hungry source) zombie infection by using a penlight. Act out highly emotional headshot hesitation scenes today! add: New Hemoanalytic Scanner (read: really shitty but roundstart printable chem scanner), which tells you all about someone's blood, and can also detect medicines in their bloodstream! Not toxins or miscellaneous reagents though. refactor: Refactored and added some penlight, stethoscope, and organ code. If shit is fucked, please report it on the github issue tracker ASAP. fix: X-Ray vision generically causes eyes to glow under penlight, not just specifically the mutation X-Ray vision. fix: Reflex Hammers now fit in medical storage items, IE. medbelts and medkits. balance: People with welding-eyes or similar will not have their pupils react to penlight examination. /🆑 --------- Co-authored-by: ThrowawayUseless <notarealemail@emailservice.fake> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
58df88c915 |
New morbid tools (#91614)
New morbid themed tools to fill out the full suite. Includes: tearing drill: morbid variant of the surgical drill. Sprite is recolored from a standard surgical drill. jagged bonesaw: morbid variant of the surgical saw. Sprite is a recolored and slightly edited bonesaw from skyrat. The overlay sprite for this was made from the ground up by myself harsh bonesetter: morbid variant of the bonesetter. Sprite is a recolored bonesetter. malignant blood filter: morbid variant of the blood filter. Sprite is a recolored blood filter. All tools function basically identically to normal tools with 1 exception: They all have the cruel tag, so are best used on the dead rather then the living. The malevolent autopsy scanner is slightly faster at performing autopsies...but only if you have the morbid trait. All sprites and overlays were created by myself. All item descriptions were created by myself, feedback is welcomed and encouraged! If you feel that there is a better description for them please do share. Also includes: All tools added to the coroner's wardrobe All tools replaced in the coroner's surgical tray with the new appropriately themed variants. Adds the CRUEL_IMPLEMENT tag to the autopsy scanner, letting coroners do the autopsy surgery faster I always felt it strange that the coroner didn't have a full suite of themed tools, so I set out to fix that. This both helps encourage the coroner to use their special tools and work with cadavers more efficiently. It also further solidifies coroner's role in working with the dead, and lets them show that they are the best at autopsies. 🆑 add: Adds new morbid themed tools for the coroners enjoyment. Coroners now perform autopsies slightly faster. /🆑   |
||
|
|
75e7ef6def |
Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑 |
||
|
|
1dc351eb86 |
New morbid tools (#91614)
## About The Pull Request New morbid themed tools to fill out the full suite. Includes: tearing drill: morbid variant of the surgical drill. Sprite is recolored from a standard surgical drill. jagged bonesaw: morbid variant of the surgical saw. Sprite is a recolored and slightly edited bonesaw from skyrat. The overlay sprite for this was made from the ground up by myself harsh bonesetter: morbid variant of the bonesetter. Sprite is a recolored bonesetter. malignant blood filter: morbid variant of the blood filter. Sprite is a recolored blood filter. All tools function basically identically to normal tools with 1 exception: They all have the cruel tag, so are best used on the dead rather then the living. The malevolent autopsy scanner is slightly faster at performing autopsies...but only if you have the morbid trait. All sprites and overlays were created by myself. All item descriptions were created by myself, feedback is welcomed and encouraged! If you feel that there is a better description for them please do share. Also includes: All tools added to the coroner's wardrobe All tools replaced in the coroner's surgical tray with the new appropriately themed variants. Adds the CRUEL_IMPLEMENT tag to the autopsy scanner, letting coroners do the autopsy surgery faster ## Why It's Good For The Game I always felt it strange that the coroner didn't have a full suite of themed tools, so I set out to fix that. This both helps encourage the coroner to use their special tools and work with cadavers more efficiently. It also further solidifies coroner's role in working with the dead, and lets them show that they are the best at autopsies. ## Changelog 🆑 add: Adds new morbid themed tools for the coroners enjoyment. Coroners now perform autopsies slightly faster. /🆑   |
||
|
|
14fb86e3e8 |
Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
## About The Pull Request This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. ## Why It's Good For The Game Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. ## Changelog 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑 |
||
|
|
5667499904 | Fixes for #91054 Part 1 | ||
|
|
3c1505ac06 |
Cyborgs now use storage datum (#90927)
This moves Cyborgs onto using storage datums, removing the remenants of the shitcode that was Cyborg inventory. It's now done mostly by equipping/unequipping/storage items, much like how other mobs do. This allows borgs to take advantage of more hand support stuff and things like ``dropped()``, so borgs no longer have to copy paste drop code to ``cyborg_unequip`` It also: - Removes ``CYBORG_ITEM_TRAIT`` - Removes all borg items being ``NODROP`` https://github.com/user-attachments/assets/11442a10-3443-41f2-8c72-b38fb0126cdb Currently borgs are able to have their entire inventory open and a bag below it, which I thought was a little weird. I always assumed they WERE storage items, so I guess I'm doing it myself. Cyborgs using storage code makes it easier for contributors to actually do stuff with, without risking breaking everything. It also hopefully will make borg items more resilient against breaking in the future, now that we're not relying on nodrop. Also just brings them more in line with other mobs, all of which make use of storages. 🆑 refactor: Cyborg's modules now use storage (so opening a bag will close modules instead of overlap one over the other). qol: Observers can now see Cyborg's inventories (like they can for humans). /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
d841c9df40 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
c51ee7efa5 |
Cyborgs now use storage datum (#90927)
## About The Pull Request This moves Cyborgs onto using storage datums, removing the remenants of the shitcode that was Cyborg inventory. It's now done mostly by equipping/unequipping/storage items, much like how other mobs do. This allows borgs to take advantage of more hand support stuff and things like ``dropped()``, so borgs no longer have to copy paste drop code to ``cyborg_unequip`` It also: - Removes ``CYBORG_ITEM_TRAIT`` - Removes all borg items being ``NODROP`` https://github.com/user-attachments/assets/11442a10-3443-41f2-8c72-b38fb0126cdb ## Why It's Good For The Game Currently borgs are able to have their entire inventory open and a bag below it, which I thought was a little weird. I always assumed they WERE storage items, so I guess I'm doing it myself. Cyborgs using storage code makes it easier for contributors to actually do stuff with, without risking breaking everything. It also hopefully will make borg items more resilient against breaking in the future, now that we're not relying on nodrop. Also just brings them more in line with other mobs, all of which make use of storages. ## Changelog 🆑 refactor: Cyborg's modules now use storage (so opening a bag will close modules instead of overlap one over the other). qol: Observers can now see Cyborg's inventories (like they can for humans). /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
b4061f1800 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
## About The Pull Request Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 #### Examples A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
ceef8e9181 |
Analyzer blood printout uses conditional tooltips as god intended (also fixes some) (#90970)
Health Analyzer tells you what type of blood your target can accept. |
||
|
|
d1fffd9b47 |
Analyzer blood printout uses conditional tooltips as god intended (also fixes some) (#90970)
Health Analyzer tells you what type of blood your target can accept. |
||
|
|
aaabcd93f1 |
Fix health analyzer runtime on cybernetic organs (#90900)
we probably shouldn't add a string to people's organs. that's what lists are for. |
||
|
|
a18dbc2971 |
Fix health analyzer runtime on cybernetic organs (#90900)
we probably shouldn't add a string to people's organs. that's what lists are for. |
||
|
|
4ba1520df8 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
ca343e124e |
Infusing organs now makes you non-human (#90661)
## About The Pull Request Currently by TG rules, despite how you may visually look, anything that the health analyzer declares as "Human" is human, this PR aims to fix a problem that is visually humans appearing very non-human, now when you infuse yourself with the Genetics infuser, you become a "-derived mutant", much like hulks get. Video Demonstration https://github.com/user-attachments/assets/0749ea8c-642e-4d44-bf5e-22f6b6eb5759 ## Why It's Good For The Game DNA infused species will currently show up as their own species, like nothing has happened. This makes you show up as a mutant as you infuse other species DNA into yourself which IC makes more sense, since you can infuse yourself with cats and become a felinid, but not be ruled as a non human since you show up as a human on health analyzer. This will give more clear indictators for Silicon players what is human and what isn't, and also preparing it for https://forums.tgstation13.org/viewtopic.php?t=38555 which is a discussion about making DNA infused humans who show visual features as non humans. ##### - Ezel/Improvedname ## Changelog 🆑 Ezel/Improvedname, JohnFulpWillard balance: Players who use the DNA Infuser are now "derived mutants" of their original species, meaning humans are no longer human after infusing themselves. /🆑 |
||
|
|
0bbfa20fe6 |
Wearing a human skin suit "fools" analyzers (#90681)
If you have a human skin suit equipped, with its hood up, the health analyzer will report you are a `"Human"`  It's the perfect disguise for alien species 🆑 Melbert add: Human skin suit may trick the health analyzer... sort of fix: Human skin suit no longer gives a useless action /🆑 |
||
|
|
1f855eb9ff |
Weather DLC - Make it Rain Anything! (#89550)
Introducing more weather types! And yes, you can now have rain be reagent based! <details> <summary>Regular Rain</summary>  </details> <details> <summary>Blood Rain</summary>  </details> <details> <summary>Acid Rain</summary>  </details> You can even make it rain ants, plasma, or drugs. All of their effects get applied to turfs, objects, and mobs depending on the weather options you select. Did I mention... there is thunder? <details> <summary>Thunder Strikes</summary>  </details> <details> <summary>Sand Storms</summary>  </details> Despite all this new stuff, none of it has been directly added to the game but the code can be used in the future for: - Wizard event - Similar to lava on floor, but this time make the reagent random or picked from a list and give wizard immunity - Chaplain ability - Maybe make this a benefit or ability once enough favor has been obtained - Admin events - I have added a BUNCH of admin tooling to run customized weather events that let you control a lot of options - New station maps/biomes for downstreams (Jungle Station, etc.) - Change Ion storms to use the new weather system that triggers EMP/thunder effects across the station - IceBox could get plasma rain - Lavaland could get thunder effects applied to ash storms Relevant PRs that removed/added some of the weather stuff I used: - #60303 - #25222 --- - Rain sprites were added via [novaepee](https://github.com/novaepee) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/9675 - Sand sprites were added via [TiviPlus](https://github.com/TiviPlus) (who commissioned them from bimmer) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/4645 - Rain sounds [already existed on tg](https://github.com/tgstation/tgstation/pull/25222#discussion_r106794579) and were provided by provided by Cuboos, using Royalty Free sounds, presumed under default tg sound license - Creative Commons 3.0 BY-SA - Siren sound is from siren.wav by IFartInUrGeneralDirection -- [Freesound](https://freesound.org/s/46092/) -- License: Attribution 4.0 The original `siren.ogg` sound used on a lot of SS13 servers doesn't seem to have any attribution that I could locate. The sound was added about 15 years ago. So I just looked for a somewhat similar sounding siren noise on Freesound. More weather customization! 🆑 add: Added new weather types for rain and sandstorms. Rain now uses a reagent that gets exposed to the turfs, mobs, and objects. There is also a thunder strike setting you can apply to any weather. add: Hydro trays and soil will now add reagents to their trays when exposed to a chemical reaction. (weather, shower, chem spills, foam grenades, etc.) add: Weather temperature now affects weather reagents and mobs body temperature. bal: Snowstorm temperature calculations were tweaked to allow universal weather temperature effects. sound: Added weather sounds from TGMC for rain and sirens (attributed to Cuboos and IFartInUrGeneralDirection ) image: Added weather images from TGMC for rain and sand storms (attributed to Novaepee and Bimmer) refactor: Refactored a lot of the weather code to be more robust admin: Admins can now control more weather related options when running weather events. The weather admin verbs have been moved to their own "Weather" category under the Admin tab. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
8dcbed6ac2 |
Revises and adds several new bounties for assistants, roboticists, and medical doctors. (#89772)
## About The Pull Request This pull request makes several balance adjustments to older bounties, primarily for the roboticist and assistant. Additionally, this adds a new type of medical doctor bounty as well. ### Bounty Modifications: **Assistant**: Toolbox bounty The toolbox bounty now requests 1 toolbox instead of 6. However, the toolbox bounty now requires a fully packed mechanical toolbox worth of contents. That means any toolbox, containing a screwdriver, wrench, welding tool, crowbar, analyzer, and wire cutters. When shipped, non-toolbox contents are dropped. Why It's Good For The Game (**WIGFTG**): This bounty follows bad design principles, being a bounty that can be solved entirely from a lathe. For any of these cases, we want to either replace them or recontexualize them into an activity that forces players to either learn more about the mechanics in and around that area as a form of played tutorial, give them a toe-dip into the mechanics required to complete the activity, or perform an activity that makes the station better for having completed it. For the toolbox bounty, this goes all in on teaching players about the full set of toolbox equipment, instead of just needing one printable item, it takes them through the full autolathe menu and gives them plausible deniability for getting a full set of tools. **Assistant:** Potted Plants. The potted plant bounty now requires 3 potted plants as opposed to 8. Most stations are going to be completely devoid of potted plants after collecting 8 of these, where lowering the quantity to 3 allows for a larger amount of competition for this type of bounty. This also disallows using plastic potted plants from being used in the bounty as a trade off, as real potted plants are available through other means. **WIGFTG**: Removes a lathe-solved bounty, and adjusts the quantity to compensate for the fact that previously you would loot the entire station of all of it's potted plants in order to complete this bounty one time. **Assistant:** Action Figures -> Toys Action figures and their general availability widely varies by maps. At best, you can snag one per office on (I think) delta, and at worse you'll need to fish them out of arcade machines across the station. Considering how often new toys are added to the vending machine, this can be a very raw deal where you might be spending 10s of minutes just for maybe one or two action figures. Instead, it feels like a wider and better solution is to just make this touch the whole toys category. WIGFTG: For the toys bounty, it's far too scarce to complete regularly, but instead now it gives makes players interact with the arcade machine wholistically, which in turn requires players to have to play an arcade machine just enough that they're likely to gains a level in the gamer skill, and serve as a primer to interact with how skills interact with the round at large. Granted, it's the gamer skill, so it's not the end of the world if players are getting skill increases here as opposed to other skills that may have more of an effect on the round at large. **Assistant:** Pens. Fuck this bounty. I have removed it. **WIGFTG**: Allow me to elaborate. So the pens bounty requires 10 pens. However, it requires specifically `/obj/item/pen`, no subtypes. `/obj/item/pen` is not printable. It is not found at quantities that make it easy to specifically complete. You cannot use red pens. Or fountain pens. Or blue pens. Or Crayons. Just standard black pens that spawn in your PDA and on paper bins. And you need 10. There is **A** printable pen, however, `/obj/item/pen/red/security`, which is however printable from autolathes, leading many players and myself to think that this is another easy printable bounty. But EVEN THEN, even if those pens WERE ACCEPTABLE, having to manually carry 10 tiny objects to complete a bounty worth not even 200 credits to the bounty holder? This just sucks. It's Bleem. Get it outta here. **Robotics**: All current mech bounties (MK 2 Ripley, Clarke, Odysseus, Gygax, and Durand) Robotics bounties have been reworked. Now, mecha bounties require that a new mecha of that type be built, and that a holodiagnostic scan be completed of the mech. This can be done once-per mech, which will print out a holodiagnostic sheet onto the floor. This sheet is what is turned in for the bounty. As a result, the value of these bounties have been roughly halved. For those looking to collect the rest of the previous value, all 5 of these mechs can now be sold on the cargo shuttle for the remaining value of the old bounties. **WIGFTG**: The biggest hurdle for roboticists when it comes to economy is twofold: Roboticist need resources far more than most other jobs in the game. No metal means no cyborgs, or mechs, or cool equipment for robotics. But, if a roboticist needs credits, they have to trade away a new mech in exchange for some of the largest credit pool bounties in the game. If they can't spend those credits, or can't receive anything using those credits, that's effort wasted. There's a tremendous amount of uncertainty when it comes to robotics being able to meaningfully interact with the credit economy as it currently stands, or being able to leverage the credit economy to solve any of their issues. If the player really does just want to sell their mech for credits, this also provides them with a method of doing so that will still reward them even further if they feel they truly do not need it. Side note, the cargo loader mech "old bess" has the trait provided by generating a diagnostic already, preventing them from just scanning that for an easy minute 1 bounty. Ultimately, having to sell a mech for credits as opposed to getting to use it is not *fun*. Getting to get paid for doing your job, and getting the benefits of something you'll have spend a reasonable amount of time and the station's resources on is *fun*. It's a better pay off. It's why we're here.  **Medical:** Crew Scan Bounties. Medical staff are now given the chance to perform routine medical scan bounties. These require a medical doctor to scan another crew member who is above 90% health, and then print the reports to submit. Some stipulations: * The report cannot be of the bounty holder. * A scanned crewmate must be scanned above 90% heath. * When the report is printed, the target is given a trait for 5 minutes, `TRAIT_RECENTLY_TREATED`, which disqualifies them being the target of a submitted medical report. This is to encourage the doctor to check up on several members of the crew when submitting this bounty. **WIGFTG**: Medical bounties are in an awkward place, honestly. They are possible to become purely printable bounties using either advanced organs, or through the organ grower. However, both of these outcomes are research locked, and will require a more through look down the line, don't get me wrong. In the meantime, this falls squarely under that area of "getting medical doctor bounties to be more closely aligned with doing what they're already supposed to be doing". I also floated the idea of making medical bounties pick a random crewmate for a check-up as opposed to a few different members of the crew from anyone. I might follow up on that at a later date, but this PR was already getting a bit overloaded.  ### Some other things tacked on here: I swear I'll be fast. The `/obj/item/paper/medical_report` created is a new subtype of paper as opposed to the old type that was used by health analyzers, which holds the last scanned mob as a weakref as opposed to just creating a snowflaked paper as we were doing before. The bounty pad, when it generates it's list of bounties, now works slightly differently so that there's no chance of getting a list of three "random" bounties that are all exactly the same thing, called in a new proc, `generate_bounty_list()`. I've added a new debug item, called the `/obj/item/bounty_voucher`. This item allows you to use it in-hand and it gives the activating player a new bounty from a list of all possible bounties. This makes my life, just specifically just me and nobody else, easier when testing bounties. As mentioned above, the mecha UI required adding a new button to it in order to create holoscans. It's fairly innocuous if I do say so myself, but I can make further tweaks if it's an issue. ## Why It's Good For The Game I've sprinkled a good bit of this in above, but in general, bounties needed some more TLC to make sure they align with their place as a tertiary source of making money in the game. I've talked about this before in some now-ancient design documents, but in summary, there's three forms of credit sources in the game: * Primary sources: This is regular payroll, earned by playing the game when the economy SS fires. In theory, this is how much money you can spend without needing to think about making a purchase most of the time. * Secondary sources: This is from sources like tourist bots. Ignore the design decisions they inhabit, they're gameplay loops that allow you to make additional credits while still performing the functions of your job for the station, which in tourist bot's case, is making food and drinks and serving people, making up for any costs incurred by their presence. * Tertiary sources: This is bounties. These are activities that exist as a fallback from the secondary sources, where you may not be performing the duties of your job in order to get credits, should they be more critical as a resource than the service you provide to the station as a result. ...Everyone has been fairly clear that doing bounties is not very good. If you're playing medical doctor and want a shiny medical doctor thing, you would hope that the majority of your time is spent still playing medical doctor, or scientist, or whatever. However, of all the jobs that have fairly sub-par bounties, the one job that I've heard time and again that I actually got *right* was surprisingly, security officer. Their sets of bounties, (Which aren't just looting the locker room mind you...) between the contraband bounty and the n-spect scanner bounties, actually encourages players to basically do tasks that are already part of their job obligations, without needing to run to the nearest lathe or to _steal 8 boar tusks that drop from the barrens_. The bounties are basically, "Go on patrol to this area", "look for suspicious items on the station", etc. In effect, those are *secondary credit sources*. Which is fantastic! It gave me the idea to revisit a few of these job bounties to try and make them a bit less exhausting to have to deal with, and as usual I got a bit distracted and the scope got a bit too big and now it's march. God damnit. But yeah if this goes well, I'd love to see about adjust a few of the bounty methodologies to be in-line with the changes I've implemented here. More bounties that encourage players to be doing what they're already doing, bounties that encourage players to learn more about the game when it comes to assistant bounties or that encourage them to get a toe-dip report on mechanics that they may not be introduced to yet, and get rid of some of the CBT bounties that nobody in their god damn mind wants to do. ## Changelog 🆑 add: New Medical bounty! Scan crewmates who have been healed or currently have a clean bill of health, and ship the medical report to prove that you're not accidently letting them die on your watch. Most of the time. balance: Assistant bounties for toolboxes now only require 1, but the toolbox must be fully stocked like standard mechanical toolboxes. balance: Potted plant bounties no longer accept plastic plants. They only require 3 plants now, however. balance: The action figure bounty now only requires toys instead. del: Removed the pens bounty. balance: The robotics mech bounty now requires a diagnostic scan of a newly completed mech as opposed to sending the whole mech itself. Diagnostic scans can now be generated by riding in a mech and completing the action from the UI menu. Mech bounties are worth about half as much. add: Mechs can be sold on the cargo shuttle for the remaining half of the value from previous mech bounties. fix: You can now no longer roll duplicates of the same bounties when generating a new bounty from the civilian bounty console. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
3d01e86e29 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
2657cfd28c |
Infusing organs now makes you non-human (#90661)
## About The Pull Request Currently by TG rules, despite how you may visually look, anything that the health analyzer declares as "Human" is human, this PR aims to fix a problem that is visually humans appearing very non-human, now when you infuse yourself with the Genetics infuser, you become a "-derived mutant", much like hulks get. Video Demonstration https://github.com/user-attachments/assets/0749ea8c-642e-4d44-bf5e-22f6b6eb5759 ## Why It's Good For The Game DNA infused species will currently show up as their own species, like nothing has happened. This makes you show up as a mutant as you infuse other species DNA into yourself which IC makes more sense, since you can infuse yourself with cats and become a felinid, but not be ruled as a non human since you show up as a human on health analyzer. This will give more clear indictators for Silicon players what is human and what isn't, and also preparing it for https://forums.tgstation13.org/viewtopic.php?t=38555 which is a discussion about making DNA infused humans who show visual features as non humans. ##### - Ezel/Improvedname ## Changelog 🆑 Ezel/Improvedname, JohnFulpWillard balance: Players who use the DNA Infuser are now "derived mutants" of their original species, meaning humans are no longer human after infusing themselves. /🆑 |
||
|
|
2ac6275ea3 | Fix synthflesh patch unhusking, improved feedback #90514 | ||
|
|
69ae433d4e |
Wearing a human skin suit "fools" analyzers (#90681)
## About The Pull Request If you have a human skin suit equipped, with its hood up, the health analyzer will report you are a `"Human"`  ## Why It's Good For The Game It's the perfect disguise for alien species ## Changelog 🆑 Melbert add: Human skin suit may trick the health analyzer... sort of fix: Human skin suit no longer gives a useless action /🆑 |
||
|
|
36788ee05f |
Weather DLC - Make it Rain Anything! (#89550)
## About The Pull Request ##### Disclaimer - Some of the code/icons/sounds were ported from TMGC. Introducing more weather types! And yes, you can now have rain be reagent based! <details> <summary>Regular Rain</summary>  </details> <details> <summary>Blood Rain</summary>  </details> <details> <summary>Acid Rain</summary>  </details> You can even make it rain ants, plasma, or drugs. All of their effects get applied to turfs, objects, and mobs depending on the weather options you select. Did I mention... there is thunder? <details> <summary>Thunder Strikes</summary>  </details> <details> <summary>Sand Storms</summary>  </details> Despite all this new stuff, none of it has been directly added to the game but the code can be used in the future for: - Wizard event - Similar to lava on floor, but this time make the reagent random or picked from a list and give wizard immunity - Chaplain ability - Maybe make this a benefit or ability once enough favor has been obtained - Admin events - I have added a BUNCH of admin tooling to run customized weather events that let you control a lot of options - New station maps/biomes for downstreams (Jungle Station, etc.) - Change Ion storms to use the new weather system that triggers EMP/thunder effects across the station - IceBox could get plasma rain - Lavaland could get thunder effects applied to ash storms Relevant PRs that removed/added some of the weather stuff I used: - #60303 - #25222 --- #### Attribution - Rain sprites were added via [novaepee](https://github.com/novaepee) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/9675 - Sand sprites were added via [TiviPlus](https://github.com/TiviPlus) (who commissioned them from bimmer) in https://github.com/tgstation/TerraGov-Marine-Corps/pull/4645 - Rain sounds [already existed on tg](https://github.com/tgstation/tgstation/pull/25222#discussion_r106794579) and were provided by provided by Cuboos, using Royalty Free sounds, presumed under default tg sound license - Creative Commons 3.0 BY-SA - Siren sound is from siren.wav by IFartInUrGeneralDirection -- [Freesound](https://freesound.org/s/46092/) -- License: Attribution 4.0 The original `siren.ogg` sound used on a lot of SS13 servers doesn't seem to have any attribution that I could locate. The sound was added about 15 years ago. So I just looked for a somewhat similar sounding siren noise on Freesound. ## Why It's Good For The Game More weather customization! ## Changelog 🆑 add: Added new weather types for rain and sandstorms. Rain now uses a reagent that gets exposed to the turfs, mobs, and objects. There is also a thunder strike setting you can apply to any weather. add: Hydro trays and soil will now add reagents to their trays when exposed to a chemical reaction. (weather, shower, chem spills, foam grenades, etc.) add: Weather temperature now affects weather reagents and mobs body temperature. bal: Snowstorm temperature calculations were tweaked to allow universal weather temperature effects. sound: Added weather sounds from TGMC for rain and sirens (attributed to Cuboos and IFartInUrGeneralDirection ) image: Added weather images from TGMC for rain and sand storms (attributed to Novaepee and Bimmer) refactor: Refactored a lot of the weather code to be more robust admin: Admins can now control more weather related options when running weather events. The weather admin verbs have been moved to their own "Weather" category under the Admin tab. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
fbbddbb012 |
Revises and adds several new bounties for assistants, roboticists, and medical doctors. (#89772)
## About The Pull Request This pull request makes several balance adjustments to older bounties, primarily for the roboticist and assistant. Additionally, this adds a new type of medical doctor bounty as well. ### Bounty Modifications: **Assistant**: Toolbox bounty The toolbox bounty now requests 1 toolbox instead of 6. However, the toolbox bounty now requires a fully packed mechanical toolbox worth of contents. That means any toolbox, containing a screwdriver, wrench, welding tool, crowbar, analyzer, and wire cutters. When shipped, non-toolbox contents are dropped. Why It's Good For The Game (**WIGFTG**): This bounty follows bad design principles, being a bounty that can be solved entirely from a lathe. For any of these cases, we want to either replace them or recontexualize them into an activity that forces players to either learn more about the mechanics in and around that area as a form of played tutorial, give them a toe-dip into the mechanics required to complete the activity, or perform an activity that makes the station better for having completed it. For the toolbox bounty, this goes all in on teaching players about the full set of toolbox equipment, instead of just needing one printable item, it takes them through the full autolathe menu and gives them plausible deniability for getting a full set of tools. **Assistant:** Potted Plants. The potted plant bounty now requires 3 potted plants as opposed to 8. Most stations are going to be completely devoid of potted plants after collecting 8 of these, where lowering the quantity to 3 allows for a larger amount of competition for this type of bounty. This also disallows using plastic potted plants from being used in the bounty as a trade off, as real potted plants are available through other means. **WIGFTG**: Removes a lathe-solved bounty, and adjusts the quantity to compensate for the fact that previously you would loot the entire station of all of it's potted plants in order to complete this bounty one time. **Assistant:** Action Figures -> Toys Action figures and their general availability widely varies by maps. At best, you can snag one per office on (I think) delta, and at worse you'll need to fish them out of arcade machines across the station. Considering how often new toys are added to the vending machine, this can be a very raw deal where you might be spending 10s of minutes just for maybe one or two action figures. Instead, it feels like a wider and better solution is to just make this touch the whole toys category. WIGFTG: For the toys bounty, it's far too scarce to complete regularly, but instead now it gives makes players interact with the arcade machine wholistically, which in turn requires players to have to play an arcade machine just enough that they're likely to gains a level in the gamer skill, and serve as a primer to interact with how skills interact with the round at large. Granted, it's the gamer skill, so it's not the end of the world if players are getting skill increases here as opposed to other skills that may have more of an effect on the round at large. **Assistant:** Pens. Fuck this bounty. I have removed it. **WIGFTG**: Allow me to elaborate. So the pens bounty requires 10 pens. However, it requires specifically `/obj/item/pen`, no subtypes. `/obj/item/pen` is not printable. It is not found at quantities that make it easy to specifically complete. You cannot use red pens. Or fountain pens. Or blue pens. Or Crayons. Just standard black pens that spawn in your PDA and on paper bins. And you need 10. There is **A** printable pen, however, `/obj/item/pen/red/security`, which is however printable from autolathes, leading many players and myself to think that this is another easy printable bounty. But EVEN THEN, even if those pens WERE ACCEPTABLE, having to manually carry 10 tiny objects to complete a bounty worth not even 200 credits to the bounty holder? This just sucks. It's Bleem. Get it outta here. **Robotics**: All current mech bounties (MK 2 Ripley, Clarke, Odysseus, Gygax, and Durand) Robotics bounties have been reworked. Now, mecha bounties require that a new mecha of that type be built, and that a holodiagnostic scan be completed of the mech. This can be done once-per mech, which will print out a holodiagnostic sheet onto the floor. This sheet is what is turned in for the bounty. As a result, the value of these bounties have been roughly halved. For those looking to collect the rest of the previous value, all 5 of these mechs can now be sold on the cargo shuttle for the remaining value of the old bounties. **WIGFTG**: The biggest hurdle for roboticists when it comes to economy is twofold: Roboticist need resources far more than most other jobs in the game. No metal means no cyborgs, or mechs, or cool equipment for robotics. But, if a roboticist needs credits, they have to trade away a new mech in exchange for some of the largest credit pool bounties in the game. If they can't spend those credits, or can't receive anything using those credits, that's effort wasted. There's a tremendous amount of uncertainty when it comes to robotics being able to meaningfully interact with the credit economy as it currently stands, or being able to leverage the credit economy to solve any of their issues. If the player really does just want to sell their mech for credits, this also provides them with a method of doing so that will still reward them even further if they feel they truly do not need it. Side note, the cargo loader mech "old bess" has the trait provided by generating a diagnostic already, preventing them from just scanning that for an easy minute 1 bounty. Ultimately, having to sell a mech for credits as opposed to getting to use it is not *fun*. Getting to get paid for doing your job, and getting the benefits of something you'll have spend a reasonable amount of time and the station's resources on is *fun*. It's a better pay off. It's why we're here.  **Medical:** Crew Scan Bounties. Medical staff are now given the chance to perform routine medical scan bounties. These require a medical doctor to scan another crew member who is above 90% health, and then print the reports to submit. Some stipulations: * The report cannot be of the bounty holder. * A scanned crewmate must be scanned above 90% heath. * When the report is printed, the target is given a trait for 5 minutes, `TRAIT_RECENTLY_TREATED`, which disqualifies them being the target of a submitted medical report. This is to encourage the doctor to check up on several members of the crew when submitting this bounty. **WIGFTG**: Medical bounties are in an awkward place, honestly. They are possible to become purely printable bounties using either advanced organs, or through the organ grower. However, both of these outcomes are research locked, and will require a more through look down the line, don't get me wrong. In the meantime, this falls squarely under that area of "getting medical doctor bounties to be more closely aligned with doing what they're already supposed to be doing". I also floated the idea of making medical bounties pick a random crewmate for a check-up as opposed to a few different members of the crew from anyone. I might follow up on that at a later date, but this PR was already getting a bit overloaded.  ### Some other things tacked on here: I swear I'll be fast. The `/obj/item/paper/medical_report` created is a new subtype of paper as opposed to the old type that was used by health analyzers, which holds the last scanned mob as a weakref as opposed to just creating a snowflaked paper as we were doing before. The bounty pad, when it generates it's list of bounties, now works slightly differently so that there's no chance of getting a list of three "random" bounties that are all exactly the same thing, called in a new proc, `generate_bounty_list()`. I've added a new debug item, called the `/obj/item/bounty_voucher`. This item allows you to use it in-hand and it gives the activating player a new bounty from a list of all possible bounties. This makes my life, just specifically just me and nobody else, easier when testing bounties. As mentioned above, the mecha UI required adding a new button to it in order to create holoscans. It's fairly innocuous if I do say so myself, but I can make further tweaks if it's an issue. ## Why It's Good For The Game I've sprinkled a good bit of this in above, but in general, bounties needed some more TLC to make sure they align with their place as a tertiary source of making money in the game. I've talked about this before in some now-ancient design documents, but in summary, there's three forms of credit sources in the game: * Primary sources: This is regular payroll, earned by playing the game when the economy SS fires. In theory, this is how much money you can spend without needing to think about making a purchase most of the time. * Secondary sources: This is from sources like tourist bots. Ignore the design decisions they inhabit, they're gameplay loops that allow you to make additional credits while still performing the functions of your job for the station, which in tourist bot's case, is making food and drinks and serving people, making up for any costs incurred by their presence. * Tertiary sources: This is bounties. These are activities that exist as a fallback from the secondary sources, where you may not be performing the duties of your job in order to get credits, should they be more critical as a resource than the service you provide to the station as a result. ...Everyone has been fairly clear that doing bounties is not very good. If you're playing medical doctor and want a shiny medical doctor thing, you would hope that the majority of your time is spent still playing medical doctor, or scientist, or whatever. However, of all the jobs that have fairly sub-par bounties, the one job that I've heard time and again that I actually got *right* was surprisingly, security officer. Their sets of bounties, (Which aren't just looting the locker room mind you...) between the contraband bounty and the n-spect scanner bounties, actually encourages players to basically do tasks that are already part of their job obligations, without needing to run to the nearest lathe or to _steal 8 boar tusks that drop from the barrens_. The bounties are basically, "Go on patrol to this area", "look for suspicious items on the station", etc. In effect, those are *secondary credit sources*. Which is fantastic! It gave me the idea to revisit a few of these job bounties to try and make them a bit less exhausting to have to deal with, and as usual I got a bit distracted and the scope got a bit too big and now it's march. God damnit. But yeah if this goes well, I'd love to see about adjust a few of the bounty methodologies to be in-line with the changes I've implemented here. More bounties that encourage players to be doing what they're already doing, bounties that encourage players to learn more about the game when it comes to assistant bounties or that encourage them to get a toe-dip report on mechanics that they may not be introduced to yet, and get rid of some of the CBT bounties that nobody in their god damn mind wants to do. ## Changelog 🆑 add: New Medical bounty! Scan crewmates who have been healed or currently have a clean bill of health, and ship the medical report to prove that you're not accidently letting them die on your watch. Most of the time. balance: Assistant bounties for toolboxes now only require 1, but the toolbox must be fully stocked like standard mechanical toolboxes. balance: Potted plant bounties no longer accept plastic plants. They only require 3 plants now, however. balance: The action figure bounty now only requires toys instead. del: Removed the pens bounty. balance: The robotics mech bounty now requires a diagnostic scan of a newly completed mech as opposed to sending the whole mech itself. Diagnostic scans can now be generated by riding in a mech and completing the action from the UI menu. Mech bounties are worth about half as much. add: Mechs can be sold on the cargo shuttle for the remaining half of the value from previous mech bounties. fix: You can now no longer roll duplicates of the same bounties when generating a new bounty from the civilian bounty console. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
9950e761c4 |
Re-adds nanites (#2995)
## About The Pull Request Re-adds nanites, balance changes pending. No plans to do mapping/role changes Based on https://github.com/tgstation/tgstation/pull/60473 with a lot of work on modularizing ## Why It's Good For The Game Nanites are a rather interesting system, my hope is to port it in a more balanced format. ## Proof Of Testing Works, thoroughly tested ## Changelog 🆑 add: Re-adds nanites /🆑 TODO: - [x] Add techweb linking for nanites - [x] Prevent stacking of armor mods (fortitude + dna vault + nanite armor) - [x] Rebalance damage regeneration programs - [x] Remove force speak program by @StrangeWeirdKitten request - [x] Convert UI's to TSX - [x] Fix Nanite program uhb and programmer overlays not working --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> |