forked from tgstation/tgstation
-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Orb update 01 10 #758
Merged
lizardqueenlexi
merged 266 commits into
lizardqueenlexi:orbstation
from
Profakos:orb-update-01-10
Jan 14, 2025
Merged
Orb update 01 10 #758
lizardqueenlexi
merged 266 commits into
lizardqueenlexi:orbstation
from
Profakos:orb-update-01-10
Jan 14, 2025
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… again (tgstation#88662) ## About The Pull Request Closes tgstation#88661 ## Changelog :cl: fix: Fixed forcing open airlocks only working once and then never again /:cl:
…same for other similar interactions) (tgstation#88674) ## About The Pull Request Added a helper to check if something is a tile made out of iron, and changed all plating placement code to use it. ## Why It's Good For The Game Its very easy to misclick or get confused and make the wrong type of tile in the crafting menu, and since material tiles made from iron aren't a subtype of ***iron*** tiles, you won't be able to use them to make plating. Space already accounts for this, but lattice, chasms, openspace and foam plating do not. ## Changelog :cl: qol: Iron material tiles can now be used to tile lattice to make plating /:cl:
## About The Pull Request I haven't profiled this and I don't need to. It doesn't matter to me if it's slower to divide or multiply (it likely is to some extent because byond). Any cost associated is going to be on the scale of micro-ops, a level of optimization I think we should deliberately avoid documenting. Micro-ops are so minor and potentially variable that writing them down poisons the well that is our greater contributor base's practices. `*` and `/` imply different things. As an example the move from `/ 2` to `* 0.5` obfuscates intent slightly. That intention is more important then the optimization I think. Hence, yeet @tgstation/commit-access requesting input
## About The Pull Request I was digging through sound code trying to add a few misc `.ogg`'s when I noticed a horrifying revelation. Sound calculations are broken as fuck. At first I didn't think it was a big deal until I remembered this comment in another PR: ![chrome_6rspeYVig1](https://github.com/user-attachments/assets/04c3fa79-c267-43ae-a77f-85b0e8d3108f) I asked for the profile logs: ``` Profile results (total time) Proc Name Self CPU Total CPU Real Time Overtime Calls ---------------------------------------------------------------------------------------------- --------- --------- --------- --------- --------- /proc/playsound 4.771 26.841 26.902 0.347 153938 /mob/proc/playsound_local 9.511 15.689 15.891 0.724 429391 /mob/living/say 0.125 19.064 19.945 0.000 2550 /mob/living/carbon/updatehealth 0.878 8.305 8.341 0.013 49847 /mob/living/carbon/proc/handle_organs 1.486 9.263 9.300 0.000 70977 /obj/item/organ/internal/on_life 0.415 0.455 0.561 0.000 340312 /mob/living/carbon/Life 0.758 30.085 30.123 0.000 71933 /mob/living/proc/Life 5.509 39.404 39.512 0.000 401951 ``` Yeah, that is _really_ bad. Especially since it is a hot proc that is used half a million times. Optimizing this would help a decent amount. So now you are probably wondering, what exactly is the problem?! Let's take a look. https://www.desmos.com/calculator/sqdfl8ipgf Sounds are being broadcast on a large radius which is typically about ~17 tiles. Since the volume of a sound is reduced by distance, the further away the sound is, the quieter it becomes. You would think, hey that's fine! Sounds become inaudible at the 17 tile distance limit right? Except no, they generally become inaudible about 2/3rds of the way there. (~10 tile range) Sound volume is between 1-100. When the sound volume is lower than 3, it becomes (pretty much) inaudible. This means most of the sounds that are being spammed in game everywhere, you can't even hear!!! To fix this we used two major optimizations: 1. Add a `SOUND_AUDIBLE_VOLUME_MIN` to ignore any sound lower than this volume and calculate an audible distance 2. Use the new audible distance to drastically shorten the tile range of mob listeners using `get_hearers_in_view()` To give you an idea of how much better this is: Sounds that had a range of 17x17 (289 turfs) are now 12x12 (144 turfs). There is also large range machinery like the SM that has a 40x40 (1600 turfs) that is now 30x30 (900 turfs). It's quite an improvement. I also went and added a debugging tool to the admin/debug equipment set that can be found in the debug box. It is a pair of earmuffs that when worn has any sounds sent to the mob via a `to_chat` message displaying the sounds max range, distance from player, volume, and sound name. It is highly recommend to walk while wearing the earmuffs since walking stops your mob from emitting footstep sounds. ## Why It's Good For The Game The speed of sound is now faster than ever. Please don't break the sound barrier. ## Changelog :cl: refactor: Sound has been heavily optimized and will now ignore low volume sounds from far away. admin: Add debugging sound earmuffs to admin equipment inside the debug box. Wear them to determine a sounds max range, distance, volume, and sound name. Highly recommended to walk otherwise you will get spammed with footstep sounds. /:cl:
## About The Pull Request Welding overlays were being put on the welding tool's update_overlays_on_z, rather than the target's. This fixes that. ## Why It's Good For The Game Fix bug ## Changelog :cl: fix: welding sparks no longer break on transitioning to a different floor /:cl:
## About The Pull Request No exciting new features added, I only broke up this massive file into a folder. ## Why It's Good For The Game Call me react brained but seeing UI files with >500 lines of code just strikes me as wall of text / sensory overload ## Changelog N/A
## About The Pull Request - Fixes tgstation#88606 ## Changelog :cl: fix: Changing gather mode on storage items won't drop it's stored items /:cl:
… speed, a neutral tackling outcome actually lets you get up, as intended (tgstation#88630) ## About The Pull Request What it says on the tin. Also cleans up some tackling code ## Why It's Good For The Game Only in my delirium did I actually realize how I fucked up. Thanks flu. ## Changelog :cl: fix: Tackling resulting in a neutral outcome does not force you to the floor. fix: Getting up is now properly influenced by spinal implants. /:cl:
## About The Pull Request Making rice dough through the crafting menu would make it inherit all the reagents of it's ingredients... which were the ingredients to make rice dough. This means that when you baked the dough in an oven, it would react the reagents and make a new rice dough, while removing all the reagents in the newly made reispan. This made it inedible, and thus impossible to make edible reispan. ## Why It's Good For The Game Infinite inedible bread is probably bad 👍 ## Changelog 🆑 fix: fixes crafting menu-made rice dough being unusable for bread /🆑
## About The Pull Request Changes `examiante` to `examine` in the give alert description. ## Why It's Good For The Game `examiante` ain't a word and, uh, `examinate` I don't think actually fits here either. ## Changelog :cl: spellcheck: Give alert 'examiante' > 'examine'. /:cl:
tgstation#88744) ## About The Pull Request iirc, string + string is const folded at compile-time, while "whatever [string]" is not. ## Why It's Good For The Game extra performance for practically no cost? why not ## Changelog :cl: code: Very slightly improved the performance of code related to adding and removing traits. /:cl:
## About The Pull Request Fixes lead acid battery being overlooked in the split between cell and megacell. It still remains a very good battery fitting of being rare maintenance loot, but it's no longer equivalent to several bluespace cells combined. It is a cell with a maximum charge of 600kJ, more than a bluespace cell, but a lower charge rate and no charge indicator. It spawns with 250kJ to 350kJ in starting charge, between super and hyper. ## Why It's Good For The Game Fixes tgstation#88573 ## Changelog :cl: LT3 fix: Fixed lead acid cell having extremely high max charge /:cl:
…ted objects (tgstation#88745) ## About The Pull Request Closes tgstation#88644 Insanity ## Changelog :cl: fix: Fixed chair, echair, wheelchair and vehicle overlays on painted objects /:cl:
## About The Pull Request Closes tgstation#88655 ## Changelog :cl: fix: Fixed podperson hair not updating /:cl:
## About The Pull Request - Fixes tgstation#88727 Now when an atom shatters if that turf is blocked by a dense object (e.g. wall, closed airlock, window etc) such that no air can pass through it then we drop stuff on the thrown object's location and not on the hit target location. In laymen's terms if you throw a plate on the wall, window, closed airlock etc then the shattered contents drop on the plate's last location & not on the wall itself ## Changelog :cl: fix: Fixes shattering element dropping stuff on blocked turfs /:cl:
…ually (tgstation#88876) ## About The Pull Request ![image](https://github.com/user-attachments/assets/9161fa99-cba1-4424-bcfa-c51bb20a7e2d) ![image](https://github.com/user-attachments/assets/d7740349-ca84-4453-9c2a-ddfaa0211c4e) ## Why It's Good For The Game Even though you (logically) should be able to peer down a ladder before you step down, to know if you're going to climb directly into a meat grinder, you cannot. Now you can. Gas still does not travel between ladders. Maybe later ## Changelog :cl: Melbert qol: You can now look down ladders, both via the look down verb/hotkey and by just looking with your eyes /:cl: --------- Co-authored-by: _0Steven <[email protected]>
## About The Pull Request Spessmen now need to blink! If you have non-robotic eyes, you'll automatically blink every once in a while. Lizards have asynchronous blinking, and whenever they blink one of their eyes (chosen at random) will blink slightly sooner. https://github.com/user-attachments/assets/e62020ef-d2f8-4634-9399-a27244326cfe You can also blink manually, as emotes now fire the animations. https://github.com/user-attachments/assets/80d6304f-f3c2-424a-a5aa-96a4aee7acdc Adds a new eye-related quirk, Fluoride Stare! It will spawn you without eyelids, preventing random or manual blinking and forcing you to wet your eyes with some saline solution (of which you get a bottle, and a dropper to apply it) every minute or so. Additionally, eyes now display their color on their organ sprite, instead of always showing up as blue. (Don't tell roleplayers, but Fully Immerse smite now blinds you when you blink, for true full immersion) ## Why It's Good For The Game Spessmen blinking is just soulful, and brings some life into the game. As for the quirk, its just a funny bit/reference that people can use to... torture themselves? ## Changelog :cl: add: Spessmen now blink. add: Added a new Fluoride Stare quirk, keep those eyeballs wet, lest they crack! image: Eyes now display their color on their organ sprite, instead of always being displayed as blue. /:cl:
…88954) ## About The Pull Request OD thresholds are scaled by purity when ingested. The current scaling penalises high purity, which appears to have been a mistake, see tgstation#64028. This PR changes the scaling to favour higher purities and penalise lower ones. ## Why It's Good For The Game Properly synthesised chems, will match or exceed the listed OD threshold. Fixes tgstation#64028. ## Changelog :cl: balance: Overdose thresholds now positively scale with high purity /:cl:
## About The Pull Request OpenDream was recently bumped to .NET 9, which is not on our runner image. I added an action which installs the required .NET version for DMCompiler to function. ## Why It's Good Adding this action is not only good as a quick hack fix, but also for posterity. I also considered the impact this has on our runner execution time, but my hope is that it should not matter if we have .NET installed already.
… chat text. (tgstation#88947) ## About The Pull Request Deconverting a revolutionary now throws a balloon alert alongside the chat text. ## Why It's Good For The Game Important information we want to communicate to players needs to be on the actual game screen; otherwise it's going to get missed during heavy-chat situations. ## Changelog :cl: qol: Deconverting a revolutionary now throws a balloon alert alongside the chat text. /:cl:
## About The Pull Request A bunch of places in code were recently updated to use a helper proc for validating teleportation. Unfortunately a lot of them also got the return value inverted, and would only let you teleport to illegal locations. Most notably this effected the hand teleporter, but also several other items. Fixes tgstation#88966 what is a "dull universal force" supposed to be anyway
…h organs) on evolution. (tgstation#88861) ## About The Pull Request When a xenomorph evolves, any organs transplanted into it (that aren't the default type for that slot) get transferred to the new caste it evolves into. Additionally, If a xenomorph is missing an organ in a slot it should have one in, the caste it evolves into will also have the organ for that slot missing. Brains also always get transferred, regardless of whether they are xeno brains, so as to preserve skillchips and traumas. ## Why It's Good For The Game Improves the mechanical consistency of surgically altered xenos. ## Changelog :cl: qol: Xenomorphs that have had their organs removed, or replaced with organs they shouldn't normally have, keep those organs (or lack thereof) when evolving. fix: Xenomorphs that somehow get skillchips or brain traumas will keep them when evolving. /:cl:
## About The Pull Request This adds a hair clipper sound to the razor item used to adjust mobs beards and hairstyles. https://github.com/user-attachments/assets/dba18247-415d-42b5-9e4b-a5c73d670088 Source: https://freesound.org/people/VIPERSTRONG/sounds/655747/ License: CC0 ## Why It's Good For The Game Buzz buzz buzz ## Changelog :cl: sound: Add hair clipper sound to hair razor item /:cl:
lizardqueenlexi
approved these changes
Jan 14, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Touched by both:
quirks.dm
cargo/exports/organs.dm
kheiral_cuffs.dm, also moved the code to the orbstation module
preferences/base.tsx
jobspace.tsx
Minor issue:
Table_shuffle: custom_price got renamed to price
AI hologram options are no longer hardcoded in hologram code, but in an external list, moved the orbstation angel there
TgUi update:
LanguagesMenu.tsx
AntagInfoMinor.tsx
AntagInfoWizardJourneyman.tsx
SpellDiploma.tsx