mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 00:55:20 +01:00
mayfools
20 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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! /🆑 |
||
|
|
7b3a31b1db |
Fixes appendicitis not curing on aheal (#93204)
## About The Pull Request Closes #93161 ## Changelog 🆑 fix: Aheals now cure appendicitis /🆑 |
||
|
|
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> |
||
|
|
37ec7f8054 |
Changes all uses of notify_ghosts to use the real names of mobs (#90919)
## About The Pull Request Quite simple - this changes every direct mention of a mob in a `notify_ghosts` message to use `[mob.real_name]` instead of just `[mob]` ## Why It's Good For The Game makes things less confusing - ghosts can see easily their actual identity anyways, so it's not like there's much of a reason _not_ to do this. ## Changelog 🆑 qol: Ghost notifications will now use the real names of mobs when something happens (i.e no more "Unknown has completed an ascension ritual!") /🆑 |
||
|
|
1406210b6e |
Improves the "Check mood" printout, reworks the "Check self" printout, minor embed changes (#89854)
## About The Pull Request 1. Reformats "Check Mood" Basically just cleaning it up. - Moodlets are bullet pointed. - Hunter is displayed here now. - Quirks are displayed here now. - It now tells you how drunk you feel. Sample  2. Reworks "Check self" Big reworks done here. - Organs now don't outright say "Your hear is hurty" "Your lugs are hurty". Now they'll say something like, "Your chest feels tight" - Unless you're self aware, then it will say "Your heart is hurty". - Check self no longer reports wounds with 100% accuracy. You get an approximate of what the wound is like - "Your chest has an open cut". More severe wounds will still be bolded, though. Sample   3. Embed tweaks Embeds can be hidden, and thus will only show up on health analyzers. This means you can't rip them out by hand. Right now only bullet shrapnel and explosion shrapnel is hidden. ## Why It's Good For The Game 1. Just some cleanup, largely. Stuff like quirks and hunger make more sense when checking your mental rather than checking your body. Though this might be weird for if mood is config-disabled, I might have to revisit htat. 2. I always found that clicking on yourself and just getting a print out of "Your liver's non-functional, your chest has a weeping avulsion, etc" is pretty lame... it kind of diminishes diagnosis / doctor's job. Ultimately, the goal of this is to open up a little more doctor gameplay - primarily I think it'll allow for some fully roleplay moments, like "Doc my chest hurts a lil" "You have 7 bullets and broken ribs bro" 3. Adds more punch to some embeds. Mostly for larp though. ## Changelog 🆑 Melbert add: Your mood printout (clicking on the mood face) has been reformatted, and should generally be cleaner. add: Self examining was reworked, and overall gives you a lot less perfect information, unless you are self-aware. add: Bullet and grenade shrapnel is now hidden from examining - it's skin deep. You can't rip them out with your hands, but hemostats / wirecutters still suffice if you know they're there. Health analyzers still pick them up too. qol: Ghosts aren't notified about NPCs getting appendicitis /🆑 |
||
|
|
31306fb956 |
The Organ Tree | New Exotic Seed (#89310)
## About The Pull Request 99% of all code was stolen completely from @MrMelbert, like I spent more time waiting for the plant to grow for the video than actually contributing to this Adds a new tree mutation to the shrub (from exo crate) It has a High Complexity Gene, which halves the harvest and blocks pollination benefits. It produces podperson organs and limbs. Limbs are twice as likely to drop as organs (because there's a lot more organs). It can also drop plant meat. https://github.com/user-attachments/assets/88bb89dd-4cd7-4bc9-ac2f-f4c67a5ea9ff (Yes the sprite is mine please don't bully Melbert for it) Podpeople now also have their own set of organs, which are mostly just standard organs but colored green. ## Why It's Good For The Game Gives us another source of organs and limbs besides the limb grower, exosuit fab and medical protolathe. Those only produce organic and robotic organs and limbs, but now we can also produce plant organ and limbs! (Without committing horrible crimes). This also synergizes well with #89306 , which makes it so plant bodyparts have actual unique benefits (more than just a fashion statement). ## Changelog 🆑 MrMelbert, Time-Green add: Adds an organ tree as a mutation of shrubs (from the exotic seeds crate)! Spare organs have never been so green! /🆑 --------- Co-authored-by: MrMelbert <kmelbert4@gmail.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
8c3fc471d8 |
Refactor tasting code and reagent taste carrying, no longer taste your stomach contents or have non-existing flavours win out (#87329)
## About The Pull Request Soooooooooooooooooooooooooooooooo tasting code has been jank for a good damn while, and with this we aim to fix that- let's start from the beginning. Earlier when I was making a food item, I noticed that it'd never actually have the taste I gave it, just tasting indescribable as things without tastes do. Weird, cause it definitely has a taste set, and plenty of nutriment subtype reagents!... When looking into it, I noticed that we only copy the tastes to *specifically* the base nutriment and the vitamin subtype: https://github.com/tgstation/tgstation/blob/57b718ad20c3b6af02dbdbc87f3cae4dd4d7e297/code/datums/components/food/edible.dm#L215-L216 But! Surely the other reagents should have tastes, right?.... No: https://github.com/tgstation/tgstation/blob/57b718ad20c3b6af02dbdbc87f3cae4dd4d7e297/code/modules/reagents/chemistry/reagents/food_reagents.dm#L119-L120 we were always returning the tastes data, but never actually setting it except for those two reagents, overriding any and all tastes. This caused the non-taste of the proteins and fats to override the food taste applied to the vitamins with their volume. So, to fix this, we replace these hardcoded ids with a check for `carry_food_tastes` on the nutriment reagent, such that each can individually define whether they carry food tastes. This lets oils have their own tastes, while letting all other nutriments carry the tastes. We then make `get_taste_description(...)` return the base flavour if no special flavour is found, and add base flavours to proteins and vitamins based on what pure proteins/vitamins with no further additives would roughly taste like. This fixes our issue!....... Except, we now always taste something "rich earthy pungent" when we eat. Looking into it, that's the organ tissue reagent, used in our stomachs: https://github.com/tgstation/tgstation/blob/57b718ad20c3b6af02dbdbc87f3cae4dd4d7e297/code/modules/reagents/chemistry/reagents/food_reagents.dm#L232-L236 ....Because whenever we ingest something, we taste the contents of our stomach. This was previously less noticeable, as while it *did* count, it only added a weight for _no flavour_. To fix this we just, well, make it so you taste what you're eating and not the container itself. It's as simple as separating the tasting code from the reagent holder, and making the tasting that happens on ingest exposure use that logic instead. We keep the old logic for the INTJ skillchip and tasting machine, just re-routed through this, and split up some procs to avoid too much duplication. This fixes our issue! Though, there's still some minor issues. This lets us add organ tissue instead of nutriment to other organs so they no longer taste indescribable, as it actually works properly now, but letting organ tissue hold flavours would risk having the stomach organ tissue permanently leech the flavours of the organ tissue you eat. So we make a subtype of organ tissue for the stomach, stomach lining, which cannot hold flavours. This lets us apply the base organ tissue to all other organs without risking stomach contamination. ## Why It's Good For The Game It's jank to taste your stomach contents. It's jank for organs to taste like nothing. It's jank for reagents with flavours to never taste like anything. It's jank for tasteless reagents to block out food flavours. It's jank for organs to only sometimes contain organ tissues. yeah. ## Changelog 🆑 refactor: Refactored tasting code. Please report any jank tasting behaviours. fix: You taste what you eat instead of the contents of your own stomach. fix: Other basic nutriment subtypes also carry food flavours, instead of outweighing the food flavours with their lack of flavour. fix: Basic nutriment subtypes have a flavour they default to, in case of not carrying any food flavours. fix: Oils taste like oil instead of tasting indescribable. fix: Clothing eaten by moths actually carries its flavours instead of tasting indescribable. fix: Organs use organ tissue instead of nutriment. fix: You can actually taste organ tissue. qol: Mineral slurry tastes like minerals instead of tasting indescribable. fix: Tasted flavours can actually be "strong" in addition to mild or "a hint of", as intended. qol: Flavours are only strong when their percentage of what you're tasting is more than 4x taste sensitivity instead of 3x, for most default tongues being 60% and lizards 40% of the drink. qol: Tasted flavours are sorted by strength, stronger flavours coming first. qol: Tasted flavours are grouped into "strong", "mild", and "hint" in the message, replacing "You can taste a hint of bitterness, alcohol, a hint of sweetness, and a hint of cola" with "You can taste alcohol and a hint of bitterness, sweetness, and cola". /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
778ed9f1ab |
The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request This PR kills the abstract internal and external typepaths for organs, now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds. This PR also fixes fox ears (from #87162, no tail is added) and mushpeople's caps (they should be red, the screenshot is a tad outdated). And yes, you can now use a hair dye spray to recolor body parts like most tails, podpeople hair, mushpeople caps and cat ears. The process can be reversed by using the spray again. ## Why It's Good For The Game Time-Green put some effort during the last few months to untie functions and mechanics from external/internal organ pathing. Now, all that this pathing is good for are a few typechecks, easily replaceable with bitflags. Also podpeople and mushpeople need a way to recolor their "hair". This kind of applies to fish tails from the fish infusion, which colors can't be selected right now. The rest is just there if you ever want to recolor your lizard tail for some reason. Proof of testing btw (screenshot taken before mushpeople cap fix, right side has dyed body parts, moth can't be dyed, they're already fabolous):  ## Changelog 🆑 code: Removed internal/external pathing from organs in favor of a bit flag. Hopefully this shouldn't break anything about organs. fix: Fixed invisible fox ears. fix: Fixed mushpeople caps not being colored red by default. add: You can now dye most tails, podpeople hair, mushpeople caps etc. with a hair dye spray. /🆑 |
||
|
|
b5bf007846 |
you cant roll appendicitis if youre a bitrunner avatar or deathmatch player (#87212)
## About The Pull Request fixes #87206 ## Changelog 🆑 fix: you may no longer roll appendicitis in deathmatch or as a bitrunner avatar /🆑 |
||
|
|
d4ac95a0e1 |
Nobody expects the span inquisition: replaces most <span>s with macros (#86798)
## About The Pull Request 123 changed files and multiple crashes after writing broken regex, I replaced most remains of direct spans with macros. This cleans up the code and makes it easier to work with in general, see justification for the original PR. I also fixed a bunch of broken and/or unclosed spans here too. I intentionally avoided replacing spans with multiple classes (in most cases) and spans in the middle of strings as it would impact readability (in my opinion at least) and could be done later if required. ## Why It's Good For The Game Cleaner code, actually using our macros, fixes borked HTML in some places. See original PR. ## Changelog Nothing player-facing |
||
|
|
c42d4dcfb2 | Health Analyzer Rework (medial mains inquire within) (#86666) | ||
|
|
095f7e3b70 |
Death of mutant bodyparts AND external organs (#85137)
## About The Pull Request Removes mutant bodyparts and external organs from the game completely Digitgrade behaviour was mutant bodypart for no reason Cat ears now work with the bodyparts overlay system, same as all the other external organs (since all their behaviour is now just on /organ It doesn't remove all the /external types, but moves all behaviour to /organ. I'll follow up with a PR wiping all the /external organ types, but it's just conflict heaven so not this PR I've also streamlined a lot of duplicate/weird species regeneration code Melbert did the same PR as well but due to a lack of time (?) I have absorbed his PR to double nuke mutant bodyparts ## Why It's Good For The Game Frees us from the chain of unmodular code, and kills my greatest nemesis (after the shuttle meteor murder bug) ## Changelog 🆑 Time-Green and MrMelbert Refactor: External organ behaviour has been moved to /organ, ears now use the same system as the other organs Refactor: Mutant bodyparts are dead! This likely does not mean much to the average person but it's very dear to me code: Improves digitgrade handling in preference code /🆑 I have absorbed #85126, using Melberts code to improve and add some missing changes. Mainly improving the functioning of preferences and digitgrade legs. I didn't take over the hairstyle improvements. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
74f6a755ef |
Advanced Health Analysers can detect certain organs (#83305)
## About The Pull Request This PR makes certain organs appear in the output of the Advanced Health Analyzer, even if they are at 100% health.  The organs this applies to are: - Legion Tumours - Heretic Organs which you get when you are sacrificed - Abductor Organs (but it doesn't specify what they do) It doesn't apply to xenomorph or changeling eggs, or romerol tumours, as those are supposed to be "stealthy". ## Why It's Good For The Game Basically I just saw someone ask for this to be possible and thought it sounded like a reasonable idea; none of these three things are intended to be particularly stealthy and it seemed like reasonably nice medical quality of life not to have to do exploratory surgery to detect their presence. It should be reasonably obvious to a medical practitioner with the correct tools that something is wrong here. ## Changelog 🆑 balance: Certain unhealthy organs can be detected via the advanced health scanner /🆑 |
||
|
|
54ab1e3936 |
Organ movement refactor *Un-nullspaces your organs* (#79687)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> closes #53931, #70916, #53931 ## About The Pull Request Organs were previously stored in nullspace. Now they are stored in their prospective bodyparts. Bodyparts are now stored in the mob. I've also had to refactor a lot of code concerning organ movement. Previously, organs were only moved into bodyparts once the bodyparts were removed. To accomodate this change, two major distinctions have been made: **Bodypart removal/insertion** Called only when an organ is taken out of a bodypart. Bodypart overlays, damage modifiers or other changes that should affect a bodypart itself goes here. **Mob insertion/removal** Called when an organ is removed from a mob. This can either be directly, by taking the organ out of a mob, or by removing the bodypart that contains the organ. This lets you add and remove organ effects safely without having to worry about the bodypart. Now that we controle the movement of bodyparts and organs, we can fuck around with them more. Summoning someones head or chest or heart will actually kill them now (and quite violently I must say (chest summoning gibs lol)). https://github.com/tgstation/tgstation/assets/7501474/5efc9dd3-cfd5-4ce4-b70f-d0d74894626e I´ve also added a unit test that violently tears apart and reconstructs a person in different ways to see if they get put toghether the right way This will definitely need a testmerge. I've done a lot of testing to make sure interactions work, but more niche stuff or my own incompetence can always slip through. ## Why It's Good For The Game <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> A lot of organ work is quite restricted. You can't C4 someones heart, you cant summon their organs and a lot of exceptions have to be made to keep organs in nullspace. This lets organs (and bodyparts) play more nicely with the rest of the game. This also makes it a lot easier to move away from extorgans since a lot of their unique movement code has been removed and or generalized. I don't like making PRs of this size (I'm so sorry reviewers), but I was in a unique position to replace the entire system in a way I couldn't have done conveniently in multiple PRs ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 refactor: Your organs are now inside your body. Please report any issues with bodypart and organ movement, including exotic organ, on github and scream at me fix: Cases of unexpected organ movement, such as teleporting bodyparts and organs with spells, now invokes a proper reaction (usually violent death) runtime: Fixes HARS runtiming on activation/deactivation fix: Fixes lag when species swapping /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |
||
|
|
bbe440b3d6 |
More standardization for ghost notifications (READY) (#79596)
## About The Pull Request I'm still not satisfied with how ghost notifications work. This gives every notification with a source (99% of all notifications, in other words) a link to jump/orbit. Currently, notifications with "play" interactions would only get the interact link, so jumping to the source was pretty annoying. It removes posting the entire message in the alert tooltip, as some got pretty lengthy and it didn't seem to fit. To replace this, they will always use headers After:    NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference seems to be whether it's a turf. The result shaves off some redundant lines of code, since most-every usage of notify_ghosts uses NOTIFY_ORBIT. ## Why It's Good For The Game More standardization for the ghost notification system. Adds a few alert headers that never had them. All in all, makes it easier for creators to throw alerts at ghosts ## Changelog 🆑 qol: Nearly every ghost alert should now feature a "VIEW" button, even those with click interaction. del: Ghost alerts no longer show the entire message in the tooltip, instead have been replaced with titles. /🆑 |
||
|
|
3c7005a37c |
Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls (#79320)
## About The Pull Request This helps clean up my favorite helper proc in the whole codebase, `notify_ghosts()`. The notify_suiciders, ignore_mapload, and flashwindow args are GONE. They have been replaced with the notify_flags bitflag argument. This was intended to make deadchat announcements a bitflag argument too, but those got reverted right before I originally wanted to submit this PR. The on-screen popup now shows the notification body when you hover it with your mouse again. The format is now `[notify_ghosts message] -- [click action (orbit/jump/play)]` Every single `notify_ghosts()` call has been changed to multiline format and has been given trailing commas. Pretty! ## Why It's Good For The Game Cleans up a proc that is very popular and going through a lot of changes at the time. Allows for further flexibility when this proc inevitably gets tweaked or improved. 12 -> 10 args is an improvement, and it doesn't impact the helper's flexibility at all. ## Changelog 🆑 Rhials code: The notify_ghosts proc has been cleaned up. Please report any abnormal changes in deadchat notification behavior. qol: The on-screen deadchat popups now contain the notification blurb when hovered with your mouse again. /🆑 |
||
|
|
68b798efa0 | A thorough audit of damage procs and specifically their use in on_mob_life() (with unit tests!) (#78657) | ||
|
|
a7060641bb |
Converts vomit() to use bitflags (#78191)
## About The Pull Request Having seven trillion boolean arguments isn't kino nor poggerchampion, let's adjust it so we use a define flag-based system that works really nice. I also cleaned up a lot of jank and stuff that simply just never was meant to work. We also had sprites for nanite vomit, but this was completely unused! Since we still have an interaction where you're meant to throw up nanites, I added that it so it could be leveraged. Neato. ## Why It's Good For The Game Much easier to pass in the right args or special args to a high-profile proc. ## Changelog 🆑 image: When you throw up nanites, your vomit should now be appropriately nanite-colored. /🆑 Let me know if I glonked anything. --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
82cf9ea499 |
Removes shitty "status" variable on organs, makes them use organ_flags instead (#76350)
## About The Pull Request Title. ## Why It's Good For The Game Seriously this shit pisses me off, why are ORGAN_SYNTHETIC and ORGAN_ROBOTIC two different things? ## Changelog not applicable unless i fucked up --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
6da96bef84 |
SPECIES NUKING 2023: Mein leber! Allows livers to handle reagents in special ways, instead of the species datum doing it (#76184)
## About The Pull Request Refactors livers so special chemical handling can be done by them, instead of the species datum. Plasmamen, skeletons and golems all use the liver for all their species specific chem handling now. ## Why It's Good For The Game SPECIES DATUM I HATE YOU! Also, being able to handle reagents like any species if you have their liver is REALLY FREAKING COOL and allows for emergent gameplay by mixing various organs from various sources. ## Changelog 🆑 refactor: Mutant livers can now handle chemicals in special ways. Currently, only plasmaman, skeleton and golem livers do it. Every other species is the same. /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |