mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-21 14:14:29 +01:00
41396aab453907855d0a3d2b052d63ff64bfb5cc
1600 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f3155d0f63 |
[MIRROR] Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it [MDB IGNORE] (#19876)
* Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it (#73920) ## About The Pull Request Clicking on the turf of a fire alarm/light switch with your hand will activate it, similar to how you can click the turf a door is on to close it and not pixel hunt. Refers to the turf it *looks* like it's on, not the one it actually is on, since fire alarms and light switches are actually on the turf near the wall, pixel shifted up. False walls are ignored. ## Why It's Good For The Game Lets our artists do whatever they want to these sprites, or those of future consumers, without worrying about niche balance stuff. I really like people using fire alarms for environmental combat and don't want that to get in the way of spriting. ## Changelog 🆑 qol: Clicking on the turf of a fire alarm/light switch with your hand will activate it. /🆑 * Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
f36d71d0c4 |
[MIRROR] The CE blueprints can no longer be used to obfuscate cultist summon locations [MDB IGNORE] (#19772)
* The CE blueprints can no longer be used to obfuscate cultist summon locations (#73853) ## About The Pull Request The Nar'Sie summon message will now only use the original name of the ritual site area. You can no longer fake out the ritual announcement by renaming the area with the CE blueprints. The ritual site locator HUD popup now also uses the original area names, to prevent the same issue from occurring. ## Why It's Good For The Game Closes #73036. ## Changelog 🆑 fix: The cultist ritual site locator and Nar'Sie summon message will no longer use area names modified by the CE's blueprints. /🆑 * The CE blueprints can no longer be used to obfuscate cultist summon locations --------- Co-authored-by: Rhials <Datguy33456@gmail.com> |
||
|
|
fa7538b5dc |
[MIRROR] Adds the "Law panel", a control center for admins interacting with silicon laws [MDB IGNORE] (#19655)
* Adds the "Law panel", a control center for admins interacting with silicon laws * Update admin_verbs.dm --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
53db0f7784 |
[MIRROR] Visual fixes (lighting, weird shit, old bugs from a parallax thing) [MDB IGNORE] (#19482)
Visual fixes (lighting, weird shit, old bugs from a parallax thing) Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
7305d12d29 |
[MANUAL MIRROR] Nightvision Rework (In the name of color) (#19608)
* Nightvision Rework (In the name of color) (#73094) Relies on #72886 for some render relay expansion I use for light_mask stuff. Hello bestie! Night vision pissed me off, so I've come to burn this place to the ground. Two sections to discuss here. First we'll talk about see_in_dark and why I hate it, second we'll discuss the lighting plane and how we brighten it, plus introducing color to the party. https://www.byond.com/docs/ref/#/mob/var/see_in_dark See in dark lets us control how far away from us a turf can be before we hide it/its contents if it's dark (not got luminosity set) We currently set it semi inconsistently to provide nightvision to mobs. The trouble is stuff that produces light != stuff that sets luminosity. The worst case of this can be seen by walking out of escape on icebox, where you'll see this  Snow draws above the lighting plane, so the snow will intermittently draw, depending on see_in_dark and the luminosity from tracking lights. This would in theory be solvable by modifying the area, but the same problem applies across many things in the codebase. As things currently stand, to be emissive you NEED to have a light on your tile. People are bad at this, and honestly it's a bit much to expect of them. An emissive overlay on a canister shouldn't need an element or something and a list on turfs to manage it. This gets worse when you factor in the patterns I'm using to avoid drawing lights above nothing, which leads to lights that should show, but are misoffset because their parent pixel offsets. It's silly. We do it so we can have things like mesons without just handing out night vision, but even there the effect of just hiding objects and mobs looks baddddddd when moving. It's always bothered me. I'll complain about mesons more later, but really just like, they're too bright as it is. I'm proposing here that rather then manually hiding stuff based off distance from the player, we can instead show/hide using just the lighting plane. This means things like mesons are gonna get dimmer, but that's fine because they suck. It does have some side effects, things like view() on mobs won't hide stuff in darkness, but that's fine because none actually thinks about view like that, I think. Oh and I added a case to prevent examining stuff that's in darkness, and not right next to you when you don't have enough nightvision, to match the old behavior `see_in_dark` gave us. Now I'd like to go on a mild tangent about color, please bare with me You ever walk around with mesons on when there's a fire going, or an ethereal or firelocks down. You notice how there isn't really much color to our lights? Doesn't that suck? It's because the way we go about brighting lighting is by making everything on the lighting plane transparent. This is fine for brightening things, but it ends up looking kinda crummy in the end and leads to really washed out colors that should be bright. Playing engineer or miner gets fucking depressing. The central idea of this pr, that everything else falls out of, is instead of making the plane more transparent, we can use color matrixes to make things AT LEAST x bright. https://www.byond.com/docs/ref/#/{notes}/color-matrix Brief recap for color matrixes, fully expanded they're a set of 20 different values in a list Units generally scale 0-1 as multipliers, though since it's multiplication in order to make an rgb(1,1,1) pixel fullbright you would need to use 255s. A "unit matrix" for color looks like this: ``` list(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 ) ``` The first four rows are how much each r, g, b and a impact r, g, b and well a. So a first row of `(1, 0, 0, 0)` means 1 unit of r results in 1 unit of r. and 0 units of green, blue and alpha, and so on. A first row of `(0, 1, 0, 0)` would make 1 red component into 1 green component, and leave red, blue and alpha alone, shifting any red of whatever it's applied to a green. Using these we can essentially color transform our world. It's a fun tool. But there's more. That last row there doesn't take a variable input like the others. Instead, it ADDS some fraction of 255 to red, green, blue and alpha. So a fifth row of `(1, 0, 0, 0)` would make every pixel as red as it could possibly be. This is what we're going to exploit here. You see all these values accept negative multipliers, so we can lower colors down instead of raising them up! The key idea is using color matrix filters https://www.byond.com/docs/ref/#/{notes}/filters/color to chain these operations together. Pulling alllll the way back, we want to brighten darkness without affecting brighter colors. Lower rgb values are darker, higher ones are brighter. This relationship isn't really linear because of suffering reasons, but it's good enough for this. Let's try chaining some matrixes on the lighting plane, which is bright where fullbright, and dark where dark. Take a list like this ``` list(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -0.2, -0.2, -0.2, 0 ) ``` That would darken the lighting a bit, but negative values will get rounded to 0 A subsequent raising by the same amount ``` list(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0.2, 0.2, 0.2, 0 ) ``` Will essentially threshold our brightness at that value. This ensures we aren't washing out colors when we make things brighter, while leaving higher values unaffected since they basically just had a constant subtracted and then readded. You may have noticed, we gain access to individual color components here. This means not only can we darken and lighten by thresholds, we can COLOR those thresholds. ``` list(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0.1, 0.2, 0.1, 0 ) ``` Something like the above, if applied with its inverse, would tint the darkness green. The delta between the different scalars will determine how vivid the color is, and the actual value will impact the brightness. Something that's always bothered me about nightvision is it's just greyscale for the most part, there isn't any color to it. There was an old idea of coloring the game plane to match their lenses, but if you've ever played with the colorblind quirk you know that gets headachey really fast. So instead of that, lets color just the darkness that these glasses produce. It provides some reminder that you're wearing them, instead of just being something you forget about while playing, and provides a reason to use flashlights and such since they can give you a clearer, less tinted view of things while retaining the ability to look around things. I've so far applied this pattern to JUST headwear for humans (also those mining wisps) I'm planning on furthering it to mobs that use nightvision, but I wanted to get this up cause I don't wanna pr it the day before the freeze. Mesons are green, sec night vision is red, thermals orange, etc. I think the effect this gives is really really nice. I've tuned most things to work for the station, though mesons works for lavaland for obvious reasons. I've tuned things significantly darker then we have them set currently, since I really hate flat lighting and this system suffers when interacting with it. My goal with these is to give you a rough idea of what's around you, without a good eye for detail. That's the difference between say, mesons, and night vision. One helps you see outlines, the other gives you detail and prevents missing someone in the darkness. It's hard to balance this precisely because of different colored backgrounds (looking at you icebox) More can be done on this front in future but I'm quite happy with things as of now I have since expanded to all uses of nightvision, coloring most all of them. Along the way I turned some toggleable nightvision into just one level. Fullbright sucks, and I'd rather just have one "good" value. I've kept it for a few cases, mostly eyes you rip out of mobs. Impacted mobs are nightmares, aliens, zombies, revenants, states and sort of stands. I've done a pass on all mobs and items that impact nightvision and added what I thought was the right level of color to them. This includes stuff like blobs and shuttle control consoles As with glasses much of this was around reducing vision, though I kept it stronger here, since many of these mobs rely on it for engaging with the game <details> <summary> Technical Changes </summary> filter transitions. Found this when testing this pr, seemed silly. This avoids dumbass overlay lighting lighting up wallmounts. We switch modes if some turfflags are set, to accomplish the same thing with more overhead, and support showing things through the darkness. Also fixes a bug where you'd only get one fullscreen object per mob, so opening and closing a submap would take it away Also also fixes the lighting backdrop not actually spanning the screen. It doesn't actually do anything anymore because of the fullscreen light we have, but just in case that's unsued. Needs cleanup in future. color with a sprite This is to support the above We relay this plane to lighting mask so openspace can like, have lighting vision goggles and such Side affect of removing see_in_dark. This logic is a bit weak atm, needs some work. It's a dupe of the nightvision action button, and newly redundant since I've removed all uses of it trasnparent won't render These sucked Also transparent stuff should never render, if it does you'll get white blobs which suck </details> Videos! (Github doesn't like using a summary here I'm sorry) <details> Demonstration of ghost lighting, and color https://user-images.githubusercontent.com/58055496/215693983-99e00f9e-7214-4cf4-a76a-6e669a8a1103.mp4 Engi-glass mesons and walking in maint (Potentially overtuned, yellow is hard) https://user-images.githubusercontent.com/58055496/215695978-26e7dc45-28aa-4285-ae95-62ea3d79860f.mp4 Diagnostic nightvision goggles and see_in_dark not hiding emissives https://user-images.githubusercontent.com/58055496/215692233-115b4094-1099-4393-9e94-db2088d834f3.mp4 Sec nightvision (I just think it looks neat) https://user-images.githubusercontent.com/58055496/215692269-bc08335e-0223-49c3-9faf-d2d7b22fe2d2.mp4 Medical nightvision goggles and other colors https://user-images.githubusercontent.com/58055496/215692286-0ba3de6a-b1d5-4aed-a6eb-c32794ea45da.mp4 Miner mesons and mobs hiding in lavaland (This is basically the darkest possible environment) https://user-images.githubusercontent.com/58055496/215696327-26958b69-0e1c-4412-9298-4e9e68b3df68.mp4 Thermal goggles and coloring displayed mobs https://user-images.githubusercontent.com/58055496/215692710-d2b101f3-7922-498c-918c-9b528d181430.mp4 </details> I think it's pretty, and see_in_dark sucks butt. <!-- 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. --> 🆑 add: The darkness that glasses and hud goggles that impact your nightvision (think mesons, nightvision goggles, etc) lighten is now tinted to match the glasses. S pretty IMO, and hopefully it helps with forgetting you're wearing X. balance: Nightvision is darker. I think bright looks bad, and things like mesons do way too much balance: Mesons (and mobs in general) no longer have a static distance you can see stuff in the dark. If a tile is lit, you can now see it. fix: Nightvision no longer dims colored lights, instead simply thresholding off bits of darkness that are dimmer then some level. /🆑 * modular edits * see_in_dark * [MIRROR] Adds a unit test to detect double stacked lights [MDB IGNORE] (#19564) * Adds a unit test to detect double stacked lights * we really need to get that night vision pr done * lints fixes --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com> * Update augments_eyes.dm * Update augments_eyes.dm * eeee --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
9325ea1758 |
[MIRROR] Refactor Statue & Creature unobserved behaviour [MDB IGNORE] (#19565)
* Refactor Statue & Creature unobserved behaviour * Update statue.dm * Update ProduceConsole.js --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
d097050d1d |
[Manual Mirror] Adds checkgrep for improper or missing atom Initialize args (mapload) (#19539)
* Adds checkgrep for improper or missing atom Initialize args (`mapload`) (#72846) ## About The Pull Request Adds a grep for atom initialize overrides which does not include mapload Regex used `^/(obj|mob|turf|area|atom)/.+/Initialize\((?!mapload).*\)` Also replaced some space indentation with some tab indentation in some other greps  ## Why It's Good For The Game See #69107, #61759, #61623 ## Changelog No player facing changes * Missed by #8374 * Add (mapload) to a //Skyrat Edit so that it passes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
5f9f60713b |
[MIRROR] Starlight Polish (Space is blue!) [MDB IGNORE] (#19059)
* Starlight Polish (Space is blue!) (#72886) <!-- 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. --> ## About The Pull Request Adds support to underlays to realize_overlays Ensures decals properly handle plane offsets Fixes space lighting double applying if it's changeturf'd into. this will be important later Makes solar vis_contents block emissives as expected Moves transit tube overlays to update_overlays, adds emissive blockers to them #### Adds render steps An expansion on render_target based emissive blockers. They allow us to hijack an object's appearance and draw it somewhere else, or even modify it, THEN draw it somewhere else. They chain quite nicely Fixes shuttles deleting z holder objects #### Makes space emissive, makes walls and floors block emissives The core idea here goes like this: We make space glow, and give its overlays some color This way, the tile and space parallax remain fullbright, along with anything that doesn't block emissives, but anything that does block emissives will instead get shaded the color of starlight This requires a bit of extra work, see later This is done automatically with render relays, which now support specifiying layer and color (Need to make an editor for these one of these days) The emissive blocking floor stuff requires making a second render plate to prevent double scaling Also adds some new layering defines for lighting, and ensures all turf lights have a layer. We'll get to this soon #### Makes things in space blue We color them the same as starlight, by taking advantage of space being emissive This means that things in space that block emissive will block it correctly and be colored blue by the light overlay, but space itself will remain fullbright This does require redefining what always_lit means, but nothing but cordons use that so it's fineee #### Makes glass above space glow, and some other stuff Glass tiles that sit above space will now shine light with matching color to the glasses color. This includes mat tiles. Glass tiles (not mat because they have no alpha) also only partially block emissives. Adds a new proc that uses render steps to acomplish this, essentially we're cutting out bits below X alpha and drawing what remains as an emissive. #### Modifies partial space showing to support glow Essentially, alongside displaying space as an underlay, we also display a light overlay colored like starlight. That starlight overlay gets masked to only be visible in bits that do not contain any alpha. We also mask the turf lighting to not go into bits that have no alpha, to ensure we get the effect we want. This is done with that lighting layer thing I mentioned earlier. #### Makes appearance realization's list output ordered I want it output in order of overlay, sub overlay suboverlay, next overlay Need to use insert for that ## Why It's Good For The Game Pretty! Also having space be emissive is a very very good way to test for fucked emissive blockers (If it's broken why are we even drawing the overlay) I know for a fact mob blockers on lizards and socks are kinda yorked, I think there's more <details> <summary> Old </summary>    </details> <details> <summary> New </summary>    </details> ## 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. --> 🆑 add: Space now makes things in it starlight faintly blue fix: Glass floors that display space now properly let space shine through them, rather then hiding it in the dark add: Glass floors above space now glow faintly depending on their glass type /🆑 <!-- 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. --> --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> * update modular * Update _decal.dm * Update _decal.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
12d989be4c |
[MANUAL MIRROR] Adds an Escape Menu (#19217)
* Adds an Escape Menu (#72906) * suicide --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
fd9ef31df2 |
[MIRROR] Fixes HUD elements not being set properly on Login() [MDB IGNORE] (#19198)
* Fixes HUD elements not being set properly on Login() (#73245) * Fixes HUD elements not being set properly on Login() --------- Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com> |
||
|
|
1fe0d145a3 |
[MIRROR] Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind [MDB IGNORE] (#18760)
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind * Fixes the conflicts and makes shit compile! * Fixes other things that didn't show up because I hadn't updated * Fixes the lints. * Okay NOW it's ready (please don't add anything else that touches blindness I beg you) --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
4e219672c7 |
[MIRROR] Patches Excessive "The" Out Of Hand Offering [MDB IGNORE] (#19057)
Patches Excessive "The" Out Of Hand Offering (#73040) <!-- 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. --> ## About The Pull Request Hey there,  "her the hand" is rather silly, so let's trim it down a bit to be nice and generic. This alert is custom-made for the hand item, and doesn't really show up in any other context... so it should be fine? The icon will always be that hand icon so we should be fine. I wish we could have used the text macros like `\the` or something, but that doesn't play too well with alerts for some reason? I don't have the time to look into this so let's just do the simple fix of reducing the words that show up (looks better without the larger footprint imo). <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Less confusing language, better grammar and formatting. <!-- 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. --> ## 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. --> 🆑 spellcheck: Whenever you offer your hand to someone in need, or just wanting to pull them around- the alert that shows up to them should be a bit more clear now with a 100% decrease in non-necessary pronouns and articles. /🆑 <!-- 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. --> --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
15d5ab2438 |
[MIRROR] fixes fov removal f12 exploit [MDB IGNORE] (#19112)
* fixes fov removal f12 exploit (#73107) ## About The Pull Request adds a variable to huds containing all screen objects that should be permanently there fov stuff goes there now rather than not being kept on the screen at all therefore fov no longer disappears ## Why It's Good For The Game i must torture lemon. ## Changelog 🆑 fix: fixes fov removal f12 exploit /🆑 * fixes fov removal f12 exploit --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
ffac8f0df0 |
[MIRROR] Fixes critical plane masters improperly not being readded in show_to [MDB IGNORE] (#19060)
Fixes critical plane masters improperly not being readded in show_to (#72604) ## About The Pull Request [Adds support for pulling z offset context from an atom's plane](https://github.com/tgstation/tgstation/commit/9f215c5316e5cfdbedf6a23ff97dfee0e523354b) This is needed to fix paper bins, since the object we plane set there isn't actually on a z level. Useful elsewhere too! [Fixes compiler errors that came from asserting that plane spokesmen had a plane var](https://github.com/tgstation/tgstation/commit/b830002443f2fbe230e9ff00236d7a46a9f2eec7) [Ensures lighting backdrops ALWAYS exist for each lighting plane.](https://github.com/tgstation/tgstation/commit/0e931169f7c5336333bc6f41353c82f603fc1170) They can't float becuase we can see more then one plane at once yaknow? [Fixes parallax going to shit if a mob moved zs without having a client](https://github.com/tgstation/tgstation/commit/244b2b25baecfc644505a3ea1e348e0cb97a04e0) Issue lies with how is_outside_bounds just blocked any plane readding It's possible for a client to not be connected during z moves, so we need to account for them rejoining in show_to, instead of just blocking any of our edge cases. Fixing this involved having parallax override blocks for show_plane and anything with the right critical flags ensuring mobs have JUST the right PMs and relays. It's duped logic but I'm unsure of how else to handle it and frankly this stuff is just kinda depressing. Might refactor later [show_to can be called twice successfully with no hide_from call.](https://github.com/tgstation/tgstation/commit/092581a5c06f7f884f48d41c96fa9300327ef214) Ensures no runtimes off the registers from this ## Why It's Good For The Game Fixes #72543 Fixes lighting looking batshit on multiz. None reported this I cry into the night. ## Changelog 🆑 fix: Fixes parallax showing up ABOVE the game if you moved z levels while disconnected /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Time-Green <timkoster1@hotmail.com> |
||
|
|
2d468e9c2d |
[MIRROR] Implements functionality for variable weapon attack and secondary weapon attack speeds. [MDB IGNORE] (#19048)
Implements functionality for variable weapon attack and secondary weapon attack speeds. (#72959) ## About The Pull Request The click cooldown after attacking with a weapon can now be controlled with a var. A var can also be set for secondary attack cooldown, if unset it is the same as the weapon's normal attack speed. The two weapons who already had hardcoded mechanics to achieve this effect (see: The Stinger, Hyper Frequency Blade) have been converted to this system. ## Why It's Good For The Game Future varying of weapon qualities and admin shenanigans. ## Changelog 🆑 code: Greater support for variability in weapon attack speed admin: Admins are now able to grief you by hitting you with a toolbox 10 times in one second. /🆑 Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com> |
||
|
|
b8f850876d |
[MIRROR] Refactor: Carp Infusion & Lungs [MDB IGNORE] (#19004)
Refactor: Carp Infusion & Lungs (#71940) ## About The Pull Request Recently before merging PR #71867 I failed to account for the carp lungs and spacewalk trait in my testing (I did not try to fly across space) and so I did not notice other bugs. This PR fixes the bugs/oversights which I missed in my prior PR. Fixes #72678 I have completed a refactor of `/obj/item/organ/internal/lungs/proc/check_breath` and `/mob/living/carbon/proc/check_breath` because I noticed that bugs within the gas alert system (stuck alerts) were caused by their improper execution, and the code was written in a hard-to-understand style. This PR also includes a small adjustment to status indicators which allows you to add an already existing timed indicator without overwriting it; it instead resets the existing timeout. Here is a granular list of bugs: - Bug A: Causes the spacewalk trait to not be applied to the mob, and is caused by a minor developer oversight in `/datum/status_effect/organ_set_bonus/carp/enable_bonus()` wherein it attempts to add `TRAIT_SPACEWALK` to the status effect rather than to the Mob. - Bug B: Causes the carp lungs to suffocate you in space, because that behavior is unimplemented. - Bug C: Causes the gas alert indicators ("Too much O2!" etc) to stay stuck to the screen if `check_breath` or other procs fail to remove them. This is caused by the way `check_breath` early-returns without executing the necessary logic to manage its gas alerts. - Bug D: The part of `lungs/proc/check_breath()` that removes consumed miasma from the air is only doing so when helium is also present and consumed. This PR contains fixes for these bugs: - Fix A: Added the spacewalk trait to the mob, allowing the trait to enable space flight as expected. - Fix B: Added `TRAIT_SPACEBREATHING` as a lungs trait, which is used in `check_breath`, which allows the mob to "breathe" in space or vacuum, but suffocate when breathing unsuitable gas/O2. - Fix C: Changed the proc `/mob/proc/throw_alert` such that, when throwing an alert which already exists, it resets the timeout of the existing alert rather than replacing it. - ~Fix C2: Added a 10 second timer to gas alerts. If something fails to clear them from the screen, they will now clear themselves after 10 seconds.~ - Fix D: Refactored `/mob/living/carbon/proc/check_breath` and `obj/item/organ/internal/lungs/proc/check_breath` to run the necessary logic for resetting gas side effects and gas alerts. - Removed an early-return which was causing the `check_breath` functions to skip most of their critical sections. - Fixed the part of `lungs/proc/check_breath()` that removes consumed miasma from the air, allowing it to remove the correct amount when expected to. - Added conditionals to check for `TRAIT_SPACEBREATHING` on lungs to bypass suffocation. - Added a fall-back to a default "flyweight" breath `datum/gas_mixture/empty_breath` to Carbons and lungs, used in in the event that either gets a null `breath`. - Renamed `obj/item/organ/internal/lungs/proc/handle_too_little_breath` to `handle_suffocation` and refactored it to handle more aspects of suffocation that was originally being handled inline. - Added `/obj/item/organ/internal/lungs/proc/breathe_gas_volume` to `check_breath` to replace lots of inlined logic which handles consuming/exchanging gases (O2 for CO2, etc). ## Why It's Good For The Game Shortly after PR #71867 was merged, we noticed the carp lungs and spacewalking trait were not working as expected when doing the Space Carp DNA infusion. This PR fixes the bug and allows you to spacewalk like a Space Carp again. This PR also adjusts the gas alert indicators so they don't get stuck to the screen as often. This PR also fixes a bug that was causing timed alerts to overwrite each other when it was unnecessary to do so, and helps prevent their on-throw animation from being replayed when not appropriate. I have included an intermediate refactor of `/mob/living/carbon/proc/check_breath` and `obj/item/organ/internal/lungs/proc/check_breath` in this PR, and I have tried to improve readability/maintainability while correcting critical oversights in the ways breathing was working. After my changes are merged, I will likely work on another refactor to delete duplicated sections of code between Carbons and lungs, as much of it is 99% identical. ## Changelog 🆑 A.C.M.O. refactor: Refactored breathing, mostly check_breath, for Carbons and lungs organ. add: Added the space-breathing trait for lungs. fix: Fixed the Space Carp DNA infusion to apply the Spacewalk trait, allowing you to fly through space. fix: Fixed the Space Carp lungs, allowing you to breathe in space with them. fix: Fixed gas status indicators re-playing their on-throw animation when they are refreshed. fix: Fixed gas status indicators getting stuck to the screen in some situations. fix: Fixed gas side effects, such as euphoria and hallucinations, to reset when expected. fix: For Humans, fixed Miasma only being consumed from the air when Helium is present. /🆑 --------- Co-authored-by: Dani Glore <fantasticdragons@gmail.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
9c5408fe27 |
[MIRROR] Optimizes changing z level as a ghost by something like 85% [MDB IGNORE] (#19030)
Optimizes changing z level as a ghost by something like 85% (#73005) <!-- 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. --> ## About The Pull Request <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> Optimizes hud image addition/removal on z change We were doing a lot of repeated work here, not to mention all the proc calls. So I pushed the "operate on loops" behavior into its own proc, so I could ensure we only do some of this stuff once This plus some removal of safeties saves 75% of the cost of z level transitions as a ghost Prevents double on_changed_z_level calls from ghosts and shuttles Reacting to z changes used to be done off doMove or one of those children, timber moved it to Moved, but did not remove the calls that assumed things like abstract_move wouldn't trigger it This means that moving up/down as a ghost was causing a double call of the whole z move stack. Suprised this never broke anything tbh Makes csv stat tracking actually encode numbers properly, cleans up an indev comment from plane group code ## Why It's Good For The Game Speed, and fixes Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
b2e7e489cb |
Missed Mirror: Fix incorrect calls to UnregisterSignal (#68698) (#18856)
Fix incorrect calls to UnregisterSignal (#68698)
Fix calls to UnregisterSignal
(cherry picked from commit
|
||
|
|
e98b446a5c |
Mirror #72195 (#18651)
Blob QoL: Orbit menu & Antag Info (#72195) ## About The Pull Request Blob UI refactor that started from sorting blobs into their appropriate orbit section. Original issue: Permanently hostile antags like blob can produce minions, but these lil guys don't actually get an antag datum and thus don't get sorted into the proper section in the orbit menu. Now: - Blob minions also go in "Biohazards" section of orbit UI - Blob helper text is now an antag info UI - Blobs get their own text span type instead of boring big chat - Blob minions get actual objective: Protect the core <details> <summary>View the OUTDATED blob antag info screen:</summary>  </details> ## Why It's Good For The Game Orbit menu will now properly sort player controlled blob minions into the biohazard sections, making it easier to distinguish the bad guys Blob antag info is a little easier to read, much more in line with the other antags ## Changelog 🆑 fix: Blob minions are now sorted into biohazards in orbit UI. add: Blobs now get antag info screens. add: Blob minions get objectives (protect the core!). add: Adds blob style text for victories, etc. refactor: Refactors some blob & blob minion code. /🆑 Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
9ad06abd1f |
[MIRROR] Don't call afterattack() twice in the attack chain [MDB IGNORE] (#18629)
* Don't call afterattack() twice in the attack chain (#72617) ## About The Pull Request It wasn't caused but went un-noticed in #72292 that `afterattack()` proc was called twice towards the end of the attack chain. Just randomly noticed this when browsing the code ## Changelog 🆑 fix: don't call after attack twice /🆑 Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> * Don't call afterattack() twice in the attack chain Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> |
||
|
|
509b89f45c |
[MIRROR] Contextual tutorials for swapping hands and dropping items [MDB IGNORE] (#18604)
* Contextual tutorials for swapping hands and dropping items * Fixes * Oops Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
e7bc2c7d4f |
[MIRROR] Removes double spaces in defines and removes some unused ones [MDB IGNORE] (#18622)
* Removes double spaces in defines and removes some unused ones (#72466) ## About The Pull Request 1. Removes unused defines (DIAG_CIRCUIT_HUD, LIGHTING_BASE_MATRIX, pda_styles and the defines it uses, MAFIA_MEDAL_CHARISMATIC & MAFIA_MEDAL_VIP). 2. Removes double spaces (or tab->space & space->tab) from everywhere I saw them in the defines folder (unless used by autodoc) 3. Removes the unecessary amount of tabs from lists in HubMigrator, this PR was at first gonna be around achievements but this just bugged me, which spiraled into this. ## Why It's Good For The Game me when i spread my code standards onto the codebase i contribute to this doesn't affect the game however it does make the defines look cleaner and brings it up to date with our most recent standards. ## Changelog not player-facing. * Removes double spaces in defines and removes some unused ones Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
ae3b1e78a4 |
[MIRROR] Dogs become tamed when given bones [MDB IGNORE] (#18549)
* Dogs become tamed when given bones * skew Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
36bc850a11 |
[MIRROR] fixes silly stuff about basic mobs [MDB IGNORE] (#18368)
* fixes silly stuff about basic mobs * merge conflicts, also apply upstream 72120 Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
e38eee6dee |
holopara qol update (#72042) (#18438)
holoparasite types have improved code admins can now give someone a holoparasite through a new menu in vv dropdown alt click holopara abilities were moved to right click (support's beacon wasn't, but support's heal mode was) holoparas have less hardcoded stuff so admins can edit them easier holoparasites now get their light color from their guardian color holoparasites no longer have the hostile faction, things will attack them holoparasites now have a damage overlay, so you can see how much your summoner is damaged holoparasite health updating is now event based rather than running on life, so you'll see health changes everytime they happen, rather than every 2 seconds holoparasites fly properly again (they cant spacewalk, but count as flying for stuff like chasms) holoparasite creation now uses a radial menu with tooltips for each subtype. it also shows ghosts which type you picked holoparasites can no longer be fugu'd adds support for ownerless holoparasites fixes mildly related bugs along the way Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: Tastyfish <crazychris32@gmail.com> |
||
|
|
650d64f6d4 |
[MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item * Update _neck.dm Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> |
||
|
|
c812d943e6 |
[MIRROR] Rescale SM health from 900 to 100, UI improvements, visual changes. [MDB IGNORE] (#18456)
* Rescale SM health from 900 to 100, UI improvements, visual changes. (#72252) Rescaling because i saw someone think that the number on the supermatter UI are actually the percent damage over time, which is wrong. Added delta symbol to damage and energy since they actually denote change, not the actual value. Chose the numbers that look good instead of doing a 1:1 rescale of the old one (i.e. im dividing or multiplying things by 10 instead of 9). In practice this means I'm lowering the damage cap but increasing damage over the board for atmos (since it's mostly divisors). Lowered the damage overall for external stuffs. A bit of modification on the filter helpers to suit my needs. Added documentation because I'm awesome. * Rescale SM health from 900 to 100, UI improvements, visual changes. Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com> |
||
|
|
115083352e |
[MIRROR] replaces chaos holoparasite with gaseous holoparasite [MDB IGNORE] (#18226)
* replaces chaos holoparasite with gaseous holoparasite (#72049) ## About The Pull Request replaces chaos holopara with the gaseous holopara (if someone has a better name suggest it) instead of the fire and hallucinations, it can now expel gas from itself, flooding an area with one of the following: o2, n2, n2o, co2, h2o, bz or plasma its punches cause sparks and it regulates the user's temperature and extinguishes them https://streamable.com/leukv5 ## Why It's Good For The Game chaos holopara is very underwhelming, the hallucinations arent really that good and ss13 fires arent either, also there was no real theme tied around it, what do hallucinations and fire have in common? this may be more fun and it plays more with the sandbox, lets see! ## Changelog 🆑 fikou del: chaos holoparasite add: gaseous holoparasite, it can expel various gases from its body and stabilizes the users temperature /🆑 Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com> * replaces chaos holoparasite with gaseous holoparasite Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com> |
||
|
|
1737ab8598 |
[MIRROR] Fixes parallax on >2 level maps going fucky with optimized multiz [MDB IGNORE] (#18298)
* Fixes parallax on >2 level maps going fucky with optimized multiz (#72169) ## About The Pull Request We no longer always render parallax. This was causing issues because we can't isolate the white of space from the vaugely white of everything else. So instead, if your parallax plane is out of view, we'll not only disable it, but we'll disable the strand we send from the main plane TO it. Instead only blending against the bottom stack. This does mean there's a possibility for fullwhite on z transition borders (potentially fixable), or when hijacking the plane (also fixable, but significantly more annoying). This is enough to make large maps functional though, so I'm happy with it ## Why It's Good For The Game Allows for #71731 and other maps like it. Makes my code actually work ## Changelog 🆑 fix: Using optimized multiz on > 2 z layer maps will no longer cause fucko bungo /🆑 * Fixes parallax on >2 level maps going fucky with optimized multiz Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
339f158af5 |
[MIRROR] Pacifists can attack people with non-lethal weapons [MDB IGNORE] (#18302)
* Pacifists can attack people with non-lethal weapons (#72183) ## About The Pull Request Fixes #72054 Allows pacifists to hit people with weapons which only do stamina damage. Additionally, allows pacifists to participate in boxing which also only does stamina damage. Is it pacifism to hit someone square in the face while wearing boxing gloves? I say, maybe. ## Why It's Good For The Game Pacifists were feeling left out after not being invited to your pillow fights. More seriously, they can use _guns_ which only do stamina damage so it makes sense that they can use melee implements too. Boxing is fun. ## Changelog 🆑 fix: Pacifists can now hit people with pillows and holographic weapons, as well as participate in boxing. /🆑 * Pacifists can attack people with non-lethal weapons Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
df737af4a0 |
[MIRROR] *hand, or That /One/ Emote You Always Felt Was Missing [MDB IGNORE] (#18200)
* *hand, or That /One/ Emote You Always Felt Was Missing (#71600) ## About The Pull Request It's happened to me _repeatedly_ that I'd see someone down on the floor, and wanted to just, give them a hand, so they could take it and get up that way, without just, directly clicking on them, since that's a little bland. I've also wanted to just, offer my hand to someone so they could grab it, so that I could pull them alongside me, rather than just targeting one of their arms and ctrl-clicking them. I've had this idea for a _long_ time, and only just decided to do this today. Now, I know what you might say. "Golden, that's a lot of code for something this simple!" You're not wrong. _However_. I decided to go along and to give some more love to the `/datum/status_effect/offering` status effect and the offering-related alerts, to make them a lot more versatile and a lot less hardcoded. Hence the whole "refactoring" part of this. Of course, when I add something, I don't do it half-way. So, the way the emote works is much like the `*slap` emote, except that: - When you click on someone, it does the exact same as if you were offering the item to them, except that it's targeted (much like ctrl-shift-click). - If there's nobody directly adjacent to you, it won't do anything. - If there's at least one person lying down around you, you will offer them your help to get up. Should they take your hand and let you help them up, you will both receive a simple memory about being helped up (or helping up), as well as a 45-seconds-long small mood buff, because it feels nice to be on either end of such a friendly gesture. If they get up, they automatically get disqualified from being offered some help standing up, and likewise, if you lie down, that offer goes away as well. - If there's at least one person around you, you will instead extend your hand in their direction, for them to grab onto it. Should they do so, you will then grab them by their arms and pull them. I reworked the offering status effect to no longer have a hardcoded `can_hold_items()` check, so that kisses and the hand offering would no longer need you to have free hands to complete. The logic here is that you can still pull someone even with both hands filled, so I figured I'd leave it this way. Note: If anyone would like to give the item a better sprite, by all means, go ahead, that'd be amazing. I'm just not really a great spriter and couldn't be bothered to waste hours making a very _meh_ hand. ## Why It's Good For The Game It's fluff, and nice fluff at that. It makes it easier for people to be nice to one-another without having to necessarily spend so long writing up an emote that the person on the floor will already have gotten back up. I'm sure the MRP folks will like it, and I'm certain the HRP downstreams will love it too ;) ## Changelog 🆑 add: Added the *hand emote, which you can offer to someone standing up in order to give them the possibility to grab onto your hand and let you drag them away, or to someone lying down to help them back up, which always makes everyone involved a little happier! refactor: De-hardcoded and genericized a lot of the offering status effect and alert code, to make it require a lot less copy-paste to handle new cases. fix: Offering a kiss no longer requires the receiver to have free hands to accept said kiss! /🆑 * *hand, or That /One/ Emote You Always Felt Was Missing Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> |
||
|
|
1c76ea5334 |
[MIRROR] Changes our map_format to SIDE_MAP [MDB IGNORE] (#18070)
* Changes our map_format to SIDE_MAP (#70162) ## About The Pull Request This does nothing currently, but will allow me to test for layering issues on LIVE, rather then in just wallening. Oh also I'm packaging in a fix to one of my macros that I wrote wrong, as a joke [removes SEE_BLACKNESS usage, because we actually cannot use it effectively](https://github.com/tgstation/tgstation/pull/70162/commits/c9a19dd7cce95038340ebd5c1a6e4cb27ee7c9ee) [c9a19dd](https://github.com/tgstation/tgstation/pull/70162/commits/c9a19dd7cce95038340ebd5c1a6e4cb27ee7c9ee) Sidemap removes the ability to control it on a plane, so it basically just means there's an uncontrollable black slate even if you have other toggles set. This just like, removes that, since it's silly [fixes weird layering on solars and ai portraits. Pixel y was casuing things to render below who shouldn't](https://github.com/tgstation/tgstation/pull/70162/commits/3885b9d9ed634cdc4c8041b19df5b5ea9a1a37ae) [3885b9d](https://github.com/tgstation/tgstation/pull/70162/commits/3885b9d9ed634cdc4c8041b19df5b5ea9a1a37ae) [Fixes flicker issues](https://github.com/tgstation/tgstation/pull/70162/commits/2defc0ad20a0ee7d12e0b071f6d31b6127b8765d) [2defc0a](https://github.com/tgstation/tgstation/pull/70162/commits/2defc0ad20a0ee7d12e0b071f6d31b6127b8765d) Offsetting the vis_contents'd objects down physically, and then up visually resolves the confliciting that was going on between the text and its display. This resolves the existing reported flickering issues [fixes plated food not appearing in world](https://github.com/tgstation/tgstation/pull/70162/commits/28a34c64f830660d7fb1cc669b9fc3ed9f5c7d61) [28a34c6](https://github.com/tgstation/tgstation/pull/70162/commits/28a34c64f830660d7fb1cc669b9fc3ed9f5c7d61) pixel_y'd vis_contents strikes again. It's a tad hacky but we'll just use pixel_z for this [Adds wall and upper wall plane masters](https://github.com/tgstation/tgstation/pull/70162/commits/89fe2b4eb40edc36879e4e1954dee8616be94522) [89fe2b4](https://github.com/tgstation/tgstation/pull/70162/commits/89fe2b4eb40edc36879e4e1954dee8616be94522) We use these + the floor and space planes to build a mask of all the visible turfs. Then we take that, stick it in a plane master, and mask the emissive plane with it. This solves the lighting fulldark screen object getting cut by emissives Shifts some planes around to match this new layering. Also ensures we only shift fullscreen objects if they don't object to it. [compresses plane master controllers](https://github.com/tgstation/tgstation/pull/70162/commits/bd64cc196a4265d42809eebbd1afa46fa33a576d) [bd64cc1](https://github.com/tgstation/tgstation/pull/70162/commits/bd64cc196a4265d42809eebbd1afa46fa33a576d) we don't use them for much rn, but we might in future so I'm keeping it as a convienince thing 🆑 refactor: The logic of how we well, render things has changed. Make an issue report if anything looks funky, particularly layers. PLEASE USE YOUR EYES /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> * Changes our map_format to SIDE_MAP * Modular! Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> Co-authored-by: Funce <funce.973@gmail.com> |
||
|
|
15faaa54f5 |
[MIRROR] Rewrites how action buttons icons are generated, makes them layer nicer. Allows observers to see a mob's action buttons. [MDB IGNORE] (#17907)
* Rewrites how action buttons icons are generated, makes them layer nicer. Allows observers to see a mob's action buttons. * conflicts * Modular! * update modular * icon icon icon icon icon Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: Funce <funce.973@gmail.com> |
||
|
|
699e9f8150 |
[MIRROR] TGUI Latejoin Menu! [MDB IGNORE] (#18025)
* TGUI Latejoin Menu! * [PR PR] Fixes up the TGUI Latejoin Menu! (#18044) * Makes Angel, Dragon and Robotic wings available in the preferences menu again (#18013) Makes Angel, Dragon and Robotic wings available in the prefs menu again * Automatic changelog for PR #18013 [ci skip] * [MIRROR] Petrified human statues now drop a (stone) brain on destruction [MDB IGNORE] (#18026) * Petrified human statues now drop a (stone) brain on destruction (#71816) ## About The Pull Request Destroying a petrified human statue will now drop their brain, albeit a little more statue-like.  Changed from original PR after talking w/ Fikou about it ## Why It's Good For The Game While the combo *does* step on the toes of Smite, the statue+rod combo is capable of fully removing you from the round without a way back very quickly. This keeps the strength of the combo while not making it entirely impossible to get back into the round. ## Changelog 🆑 balance: Destroying a petrified human statue will now drop their brain. /🆑 * Petrified human statues now drop a (stone) brain on destruction Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> * Automatic changelog for PR #18026 [ci skip] * [MIRROR] Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. [MDB IGNORE] (#18019) * Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. (#71674) ## About The Pull Request - The chaplain choice beacon now uses a radial to select the armor set, instead of a list, giving the user a preview of what each looks like.  - Lots of additional cleanup to choice beacon code in general. Less copy pasted code. - All beacons now speak from the beacon with their message, instead of some going by "headset message". Soul removed ## Why It's Good For The Game I always forgot when selecting my armor which looks like what, and choosing an ugly one is a pain since you only get one choice. This should help chaplains get the armor they actually want without needing to check the wiki. ## Changelog 🆑 Melbert qol: The chaplain's armament beacon now displays a radial instead of a text list, showing previews of what all the armor sets look like qol: (Almost) all choice beacons now use a pod to send their item, instead of just magicking it under your feet code: Cleaned up some choice beacon code. /🆑 Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> * Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. * update modular Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> * Automatic changelog for PR #18019 [ci skip] * [MIRROR] Fixed an improper proc ref. [MDB IGNORE] (#18031) Fixed an improper proc ref. Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> * Automatic changelog for PR #18031 [ci skip] * Fiiix! * Fuck * [MIRROR] Windoors are vulnerable to a jaws of life [MDB IGNORE] (#18040) * Windoors are vulnerable to a jaws of life (#71733) ## About The Pull Request Windoors can be pried by a jaws of life now ## Why It's Good For The Game Windoors are already immune to any kind of deconstruction outside of bashing it, so making it immune to the jaws of life as well seems excessive ## Changelog 🆑 balance: jaws of life can pry windoors /🆑 Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com> * Windoors are vulnerable to a jaws of life Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com> Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com> * Automatic changelog for PR #18040 [ci skip] * Automatic changelog compile [ci skip] * [fix] fixes det revolver icons (#18049) * Delete guns.dmi * Add files via upload * Automatic changelog for PR #18049 [ci skip] * [MIRROR] Fixes fake links in Adminwho that led to "no_feedback_link" [MDB IGNORE] (#18027) * Fixes fake links in Adminwho that led to "no_feedback_link" (#71804) ## About The Pull Request Basically, sometimes, very rarely, it was possible for this to happen, when it shouldn't be happening. I was wondering for a little while what it was about, and then I finally downloaded my chat logs for a round and realized what was going on. It should no longer happen. ## Why It's Good For The Game Clickable links that lead nowhere (and thus don't do anything) aren't very good for the game. ## Changelog 🆑 GoldenAlpharex fix: There shouldn't be clickable names in Adminwho that don't do anything anymore. /🆑 * Fixes fake links in Adminwho that led to "no_feedback_link" Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * Fix: Self-Actualization Device Doubling Damage (#18015) * Change adjustOrganLoss/BruteLoss/FireLoss to set * Reverts my naive soluton * Automatic changelog for PR #18027 [ci skip] * Automatic changelog for PR #18015 [ci skip] * Fix TGUI latejoin menu not closing properly, properly this time * Oh yea, flavourtext requirement exists. Not that we actually have it enabled upstream. * Revert "Merge remote-tracking branch 'upstream/upstream-merge-71883' into fixlatejoinmenu" This reverts commit 3279e73418f95637162a2923b0431e9e26b43403, reversing changes made to d46aab7b421fee94d49b57e863bfd8e0917fc43f. * Fucking stupid code merge shit * Cool newline bro * Dumb stupid commented code * Also this Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com> Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com> Co-authored-by: Changelogs <action@github.com> Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com> Co-authored-by: Dani Glore <fantasticdragons@gmail.com> Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> * fix Co-authored-by: Rimi Nosha <riminosha@gmail.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com> Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com> Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com> Co-authored-by: Changelogs <action@github.com> Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com> Co-authored-by: Dani Glore <fantasticdragons@gmail.com> Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
6a5b4a4bac |
[MIRROR] Adds logic to provide leniency for drag clicks [MDB IGNORE] (#18124)
* Adds logic to provide leniency for drag clicks (#71082) ## About The Pull Request Ok so like, in byond. if you click on something and release the click without moving off its sprite, that counts as a "click" If you however move your mouse off its sprite, or it does so on its own, any further releases count as dragdrops. We already have logic for catching drag -> mouse back over sprite. The code I'm adding here basically is just a bit nicer about how exact you need to be I'm adding tweakable values for how much your mouse is allowed to move (This isn't perfect currently, since if the target itself moves we don't care, need to work on this) in a short time period. If you meet these cases, we instead call it a click. They're globs for now cause I don't have a good feel for em, will tweak over time. I want to reduce dumb clickspam and click dragging moving mobs/drifting items by accident. Oh also fixed a bug in ai behaviors that came from not knowing what get_active_hand did Fixes a monkey behavior of using their held item It turns out it never worked, and the only reason it didn't runtime was because of an if() check that got passed the result of an invalid proc call. this fixes that ## Why It's Good For The Game Spam clicking and drag clicking are stupid. they should be less stupid ## Changelog 🆑 add: Adds a grace period for hit detection, between clicking ON someone, and then moving your mouse off before releasing the click. It's short, hopefully it helps with stupid /🆑 * Adds logic to provide leniency for drag clicks Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
a5a173f672 |
[MIRROR] Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?! [MDB IGNORE] (#17811)
* Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?! * SR conflicts * fox ears * remove duplicate event and merge master Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> |
||
|
|
b6f65d6407 |
Fixes cleaning bubbles not showing up during cleaning by removing a redundant call to COMSIG_ITEM_AFTERATTACK (#17847)
Fixes cleaning bubbles not showing up |
||
|
|
6eb8c22245 |
[MIRROR] pAIs and lightgeists can now correctly climb ladders. [MDB IGNORE] (#17802)
* pAIs and lightgeists can now correctly climb ladders. (#70869) ## About The Pull Request See the title and the relative issue reports. The logic here is that, if they can move, chances are they can also use ladders (with a few exceptions such as camera mobs). This ought to include both pAIs and lightgeists, even if they cannot directly interact with about every other object in the game. I have also moved lightgeists onto a new file, from colossus.dm. ## Why It's Good For The Game This will fix #57061 and fix #69228. ## Changelog 🆑 fix: pAIs and lightgeists can now correctly climb ladders. fix: fixed a small issue with the radial menu for ladders that caused the user to travel down when abruptly closed. /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> * pAIs and lightgeists can now correctly climb ladders. Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> |
||
|
|
7f09cedf89 |
[MIRROR] basic mob attack now has should_call_parent [MDB IGNORE] (#17715)
* basic mob attack now has should_call_parent (#71461) Adds SHOULD_CALL_PARENT onto basic mob's attack chain, because of a previous issue that living and obj didn't call parent. This PR originally fixed it, but another PR did the exact same fix, so this is just adding the forced parent call. * basic mob attack now has should_call_parent * obj_defense skew Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
ea1e6ff95f |
[MIRROR] Adds a preference that disables intensive rendering on different multiz layers [MDB IGNORE] (#17737)
* Adds a preference that disables intensive rendering on different multiz layers (#71218) ## About The Pull Request It's kinda hacky, but it is nearly the same as just rendering one z layer. We allow people to ENTIRELY REMOVE most plane masters from their screen. This has the side effect of disabling most visual effects (AO is a big one) which saves a LOT of gpu. We rely on planes being essentially layers to ensure things render in the proper order. (outside of some hackyness required to make parallax work) I've kept parallax and lighting enabled, so visuals will still look better then multiz pre plane cube. It does also mean that things like FOV don't work, but honestly they didn't work PRE plane cube, and FOV's implementation makes me mad so I have a hard time caring. Reduces gpu usage on my machine on tram from 47% to 32%, just above the 27% I get on meta. I'm happy with this. Oh also turns out the parallaxing had almost no cost. Need to remove it as a side effect of what I'm doing but if I could keep it I would. There's still room for in between performance options, like disabling things like AO on lower z layers, but I didn't expect it to make a huge impact, so I left things as is Also fixes a bug with paper bins not respecting z layer. It came up in testing and annoyed me ## Why It's Good For The Game Ensures we can make multiz maps without running into client performance issues, allows users to customize performance and visual quality. ## Changelog 🆑 add: Adds a new rendering option to the gameplay preferences. You can now limit the rendering intensity of multiz levels. This will make things look a bit worse, but run a LOT better. Try it out if your machine chokes on icebox or somethin. /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> * Adds a preference that disables intensive rendering on different multiz layers Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> |
||
|
|
f7c26bbf25 |
515 Compat (#17465)
* ONLY SKYRAT CHANGES * ACTUALLY SKYRAT CHANGES * yolo, revert later * Update alternate_byond_versions.txt Co-authored-by: AnturK <AnturK@users.noreply.github.com> |
||
|
|
b5bd312379 |
[MIRROR] Add investigate_deaths [MDB IGNORE] (#17424)
* Add investigate_deaths * merge changes other than giant_spider which deps on tg/70848 * gib * dust * death Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
61a2b76eee |
[MIRROR] Zombies can now succumb [MDB IGNORE] (#17411)
* Zombies can now succumb (#70883) fixes #70877 Mobs with NODEATH can now succumb if they choose. The only mobs with NODEATH are all zombies, memento mori and penthrite, of which zombies are the only one that can ever enter hardcrit. I think it's fair to let them die if they want. High-functioning zombies can't succumb by whispering, but pressing the succumb UI without whispering will succumb you 🆑 tweak: Mobs with NODEATH can now succumb (this is literally only zombies) /🆑 * Zombies can now succumb Co-authored-by: Time-Green <timkoster1@hotmail.com> |
||
|
|
4cd4044aba |
[MIRROR] Fixes parallax runtimes when your eye is not a mob [MDB IGNORE] (#17394)
* Fixes parallax runtimes when your eye is not a mob (#71072) ## About The Pull Request Also properly supports passing no input into the update proc * Fixes parallax runtimes when your eye is not a mob Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
38fbd28a2e |
[MISSED MIRROR] 71005: Adds a game option to toggle the MultiZ parallax effect for a player (#17375)
Missed mirror 71005 |
||
|
|
69f2f2c624 |
[MIRROR] [s]Remove false positive heavy modified client admin alert. [MDB IGNORE] (#17355)
* [s]Remove false positive heavy modified client admin alert. (#70851) There are too many edge cases and this covers none of them. also i think there is a bug relating to some power of 2 code or maybe some plane/multi-z code or something because these messages are common and admins are ignoring them. This is totally not a ploy to get the bug fixed or the fix merged or whatever. * [s]Remove false positive heavy modified client admin alert. Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com> |
||
|
|
f3faa38e1c |
[MIRROR] (hopefully) improvements to use of scope and kinesis module [MDB IGNORE] (#17302)
* (hopefully) improvements to use of scope and kinesis module (#70934) ## About The Pull Request so, scope and kinesis are the only things in the game (other than the body zone selector) which use the function MouseMove. this tracks every mouse movement, which meant we had to stuff a cooldown on it to not calculate a ton of useless stuff. this time can misalign if you move your mouse fast, not registering at all, as well as not working out with the 0.2 second processing time of the things handling it (the scope component and kinesis module) instead of doing that, we are now keeping the mouse parameters as a variable, which we update with every mousemove to the current parameters. then we handle the calculations right as we need them (in the kinesis/scope) module, rather than relying on mousemove cooldowns, this should hopefully feel way better ## Why It's Good For The Game 😁 ## Changelog 🆑 qol: sniper scopes and kinesis module should feel better to use /🆑 * (hopefully) improvements to use of scope and kinesis module * seconds Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
3d12b40677 | [MIRROR] Fixes a parallax runtime, prevents multiapplying parallax handlers [MDB IGNORE] (#17292) | ||
|
|
c649995506 |
[MIRROR] [NO GBP] Fixes blindness icons on lower station z-levels [MDB IGNORE] (#17170)
* [NO GBP] Fixes blindness icons on lower station z-levels (#70608) I previously tested that footsteps worked when hearing them from a lower Z-level but forgot to test if you can see them while on a lower z-level. It didn't occur to me that offsetted planecube planes wouldn't work with being over the fullscreen blindness mask past the top level but that makes sense in retrospect. So the blindness effects (via play_fov_effect()) are now on the fullscreen plane. Partially reverted doing this with manually talking bubbles as well so they look normal again, and then added a FOV effect as well for chat bubbles. NOTE: Runetext is in general also only above the blind mask on the highest station level and below on others for the same planecube issue but that's a whole other can of worms. * [NO GBP] Fixes blindness icons on lower station z-levels Co-authored-by: Tastyfish <crazychris32@gmail.com> |
||
|
|
11fc632d38 |
[MIRROR] Refactor /mob/living/carbon/alien/humanoid to be /mob/living/carbon/alien/adult [MDB IGNORE] (#17044)
* Refactor `/mob/living/carbon/alien/humanoid` to be `/mob/living/carbon/alien/adult` * update modular Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> |