mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-27 17:41:50 +00:00
4b4fa2d61269aa56cdcaba5fb2f0d8fb104fefdd
949 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c0acaf7b01 | Fixes admin's ckey search in orbit sometimes failing (#92183) | ||
|
|
08045236ca |
Quirks send on_gain messages in fewer contexts (#91867)
## About The Pull Request Quirks only send their on_gain text when given midround, such as by an admin ## Why It's Good For The Game Spams the hell out of you for no reason - in very few contexts are these messages important (randomized allergies come to mind), but there are other avenues to figure out (such as dogtags)  ## Changelog 🆑 Melbert qol: Quirks spam you less on roundstart or latejoin /🆑 |
||
|
|
35494b93bb |
Telecomms Update: Ability to change existing radio channels and create new ones (#91647)
## About The Pull Request I have added the ability to create and edit station radio channels through the existing telecommunications system. You can change the name of the radio channel and its color. The channel settings are changed and created through the servers (Frequencies Settings)  Here i created my own channel: 1) Add frequency at Receiver (you will not see channel name):  2) Add frequency at Bus (you will not see channel name):  3) Add frequency at Server 4) Add settings for your frequency  5) See the result:  Important Notes: 1) Headsets, radios, and intercoms will not see a change in telecommunications, but will use standard names (Common, Security etc.). 2) There are still reserved names that cannot be used: CentComm, Syndicate, Uplink, CTFs channels 3) Servers must filter frequency for applying settings on them ## Why It's Good For The Game Now telecommunication channels names and colors depends on the settings of the network servers, which makes it more flexible and logical. It is also useful for foreign language servers, as you can translate channel names. ## Changelog 🆑 add: Added ability to change existing radio channels and create new qol: Added color for some buttons in Telecomms UI /🆑 |
||
|
|
4c277dc572 |
Dynamic Rework (#91290)
## About The Pull Request Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic from the ground-up - Dynamic configuration is now vastly streamlined, making it far far far easier to understand and edit - Threat is gone entirely; round chaos is now determined by dynamic tiers - There's 5 dynamic tiers, 0 to 4. - 0 is a pure greenshift. - Tiers are just picked via weight - "16% chance of getting a high chaos round". - Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be selected". - Tier determines how much of every ruleset is picked. "Tier 4 (High Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3 latejoins". - The number of rulesets picked depends on how many people are in the server - this is also configurable[2]. As an example, a tier that demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and will not spawn 2 rulesets if population <= 25. - Tiers also determine time before light, heavy, and latejoin rulesets are picked, as well as the cooldown range between spawns. More chaotic tiers may send midrounds sooner or wait less time between sending them. - On the ruleset side of things, "requirements", "scaling", and "enemies" is gone. - You can configure a ruleset's min pop and weight flat, or per tier. - For example a ruleset like Obsession is weighted higher for tiers 1-2 and lower for tiers 3-4. - Rather than scaling up, roundstart rulesets can just be selected multiple times. - Rulesets also have `min_antag_cap` and `max_antag_cap`. `min_antag_cap` determines how many candidates are needed for it to run, and `max_antag_cap` determines how many candidates are selected. - Rulesets attempt to run every 2.5 minutes. [3] - Light rulesets will ALWAYS be picked before heavy rulesets. [4] - Light injection chance is no longer 100%, heavy injection chance formula has been simplified. - Chance simply scales based on number of dead players / total number off players, with a flag 50% chance if no antags exist. [5] [1] This does not guarantee you will actually GET 3-4 roundstart rulesets. If a roundstart ruleset is picked, and it ends up being unable to execute (such as "not enough candidates", that slot is effectively a wash.) This might be revisited. [2] Currently, this is a hard limit - below X pop, you WILL get a quarter or a half of the rulesets. This might be revisited to just be weighted - you are just MORE LIKELY to get a quarter or a half. [3] Little worried about accidentally frontloading everything so we'll see about this [4] This may be revisited but in most contexts it seems sensible. [5] This may also be revisited, I'm not 100% sure what the best / most simple way to tackle midround chances is. Other implementation details - The process of making rulesets has been streamlined as well. Many rulesets only amount to a definition and `assign_role`. - Dynamic.json -> Dynamic.toml - Dynamic event hijacked was ripped out entirely. - Most midround antag random events are now dynamic rulesets. Fugitives, Morphs, Slaughter Demons, etc. - The 1 weight slaughter demon event is gone. RIP in peace. - There is now a hidden midround event that simply adds +1 latejoin, +1 light, or +1 heavy ruleset. - `mind.special_role` is dead. Minds have a lazylist of special roles now but it's essentially only used for traitor panel. - Revs refactored almost entirely. Revs can now exist without a dynamic ruleset. - Cult refactored a tiny bit. - Antag datums cleaned up. - Pre round setup is less centralized on Dynamic. - Admins have a whole panel for interfacing with dynamic. It's pretty slapdash I'm sure someone could make a nicer looking one.   - Maybe some other things. ## Why It's Good For The Game See readme for more info. Will you see a massive change in how rounds play out? My hunch says rounds will spawn less rulesets on average, but it's ultimately to how it's configured ## Changelog 🆑 Melbert refactor: Dynamic rewritten entirely, report any strange rounds config: Dynamic config reworked, it's now a TOML file refactor: Refactored antag roles somewhat, report any oddities refactor: Refactored Revolution entirely, report any oddities del: Deleted most midround events that spawn antags - they use dynamic rulesets now add: Dynamic rulesets can now be false alarms add: Adds a random event that gives dynamic the ability to run another ruleset later admin: Adds a panel for messing around with dynamic admin: Adds a panel for chance for every dynamic ruleset to be selected admin: You can spawn revs without using dynamic now fix: Nuke team leaders get their fun title back /🆑 |
||
|
|
601654a91c | lobby art is mouse transparent on fade out (#91774) | ||
|
|
096c032402 |
Adds a new halloween species: Spirits (#90711)
## About The Pull Request Adds 2 new species: Spirits and Ghosts Spirits are available roundstart during Halloween, Wabbajack and Xenobio's black slime extract Ghosts are available through Magic mirrors They fly around, and don't have legs and instead float around. They also can't get legs implanted onto themselves. They also do have organs, so they are affected by flashbangs, they do get hungry, they do need oxygen to survive (they don't take damage in space but they do suffocate & get slowdown), and can process chems. Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers. Chaplains also got a buff here, null rod-type weapons' bane is now against Spirit mobs, rather than hardcoded revenants. This means it now includes Spirits/Ghosts, but also Soulscythes & Cult shades. Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was reverted in https://github.com/tgstation/tgstation/pull/86506 which I assume was accidental. ### The difference between Spirits and Ghosts Ghosts have an innate ability to become incorporeal, which allows them to phase through walls and stuff. Using this will immediately make them drop any non-ghost limb/organ (not implants cause I thought it would be funny). This ability is not available if they have holy water in their system, and like revenants they also can't walk over blessed tiles with it. They are also invisible to cameras while using this (not the obscura though). Sprites taken from observers directly, if anyone wants to make custom sprites for them feel free. If anyone wants to make this obtainable somehow in-game as well I wouldn't be opposed, halloween is just where I thought it would fit most. This also adds a lot of fixes that I encountered trying to add this, from systems that have been neglected throughout the years. https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e ## Why It's Good For The Game We haven't gotten a new halloween species in a long time and thought it would be fun if you can play as an actual ghost, the soul that remains after a person passes, so Halloween feels more haunted. It's overall made in just good fun, with a bonus that Ghosts are a cool species to play with as well for Wizards & maybe Chaplains in the future (Dead sect when?) ## Changelog 🆑 add: Added a new halloween species: Spirits, a species without legs and instead floats. add: Added a new magic mirror species: Ghosts, like spirits but with the ability to become incorporeal, traversing through solid wall. fix: Mobs unable to use storage items now can't use storage items. fix: Mobs unable to use items can now not open airlocks & closets fix: Mobs unable to pick items up can no longer pick items up and immediately drop, moving one tile at a time. fix: Mobs with intentional missing limbs (Alien larva) no longer show their limbs as missing on examine (again) fix: Golems' pref page had a missing icon, it now has one. /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
4c82b029c7 |
Removes widescreen config (#91419)
## About The Pull Request 19x15 forever, or 15x15 if you're non widescreen user. ## Why It's Good For The Game Idek why this is a config |
||
|
|
010c585c71 |
[NO GBP] fix server hop lobby art fade-in (#91693)
## About The Pull Request accidentally broke this in https://github.com/tgstation/tgstation/pull/91637, whoops ## Why It's Good For The Game bugfix ## Changelog 🆑 fix: Fixed lobby art not fading in when server hopping. /🆑 |
||
|
|
5f2d40389e |
Adds back a couple ghost verbs (#91654)
## About The Pull Request https://github.com/tgstation/tgstation/pull/91619 missed a couple that I use and I want them back!! Also unhides the report-issue verb as it's kind of a pain to get to now with the removal of the ever present button above stat panel. ## Why It's Good For The Game Reee give me back my verbs ## Changelog 🆑 qol: "Spawners Menu" and "Minigames Menu" are back as chat verbs for power users qol: report-issue is now a verb that can be used in chat to open the issue report prompt for power users /🆑 |
||
|
|
c0e63357d9 |
Fix the lobby art not fading out (#91637)
## About The Pull Request ports a fix from https://github.com/Monkestation/Monkestation2.0/pull/6991 https://github.com/tgstation/tgstation/pull/76772 accidentally broke most instances of using `/atom/movable/screen/splash`, bc now the client needs to be third instead of second argument to `new /atom/movable/screen/splash`... yeah. <details> <summary><h3>pre-fix video clip</h3></summary> https://github.com/user-attachments/assets/87015373-de72-4753-bf6e-55c3d9ffa207 </details> <details> <summary><h3>post-fix video clip</h3></summary> https://github.com/user-attachments/assets/3dc80c68-f4a5-44a7-95fe-d590affc273d </details> ## Why It's Good For The Game bugfix good ## Changelog 🆑 fix: The lobby art properly fades out during roundstart, latejoin, and server restart again. /🆑 |
||
|
|
d8a032cb56 | Ghost lighting now updates prefs (#91592) | ||
|
|
5ecd40b16d |
Brings back ghost verbs (chatbar only) (#91619)
## About The Pull Request Partially rolls back #91370 by reintroducing ghost verbs, but for the chatbar only. Doesn't clutter up the statpanel, but powerusers can quickly type them in without navigating the menu. ## Why It's Good For The Game The change massively fucked over our powerusers (aka admins, which are already suffering from poor UX) who were used to typing out the verbs in the chat. No reason to remove functionality, the menu is neat but if you remember commands by heart its faster to type them out. ## Changelog 🆑 add: Ghost verbs are back in the chatbar, you can now type out things like "Orbit" or "T-ray-scan" once again as a ghost. /🆑 |
||
|
|
c8701aa056 |
Mob ckey sanity check now respects insano aghost code (#91517)
## About The Pull Request I HATE THIS PLACE DUDE, aghosting sets your ckey/key to your normal ckey/ckey but with @ prefixed. hhhhhhhhh. |
||
|
|
ca96a9e2cd |
Ghost settings UI (#91370)
## About The Pull Request This is part of my ongoing project to remove the Stat panel which you can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw Replaces the pAI button at the bottom of Ghost's HUD with a new button for Ghost settings Default look  With fun verbs (admin only, the 2 buttons at the top right), No body, and lag switches on (disables T-Ray and Zooming)  The ghost icon next to "re-enter body" is the DNR button, which requires double click. Extra view is now easier to understand, 0 is "default", anything more is extra vision you get. Goes to 3 for regular users, 7 for BYOND members. Removes the "Ghost" tab from the stat panel entirely, this replaces it. ## Why It's Good For The Game The Ghost tab of the stat panel is filled with barely functional stuff, like "Jump to Mob" which allows you to jump to "oranges ear" which teleports you to nullspace, or the 4 different jump to verbs for different things which is irrelevant from the Orbit menu and the many improvements it got over the years, and even the Notifications panel, which seems pretty useful, but because it's delegated to a small button filled with the rest of these it gets entirely drowned out. This puts all the important things in front of the user at the click of a button, meant to be easy to navigate and giving important information first. ## Changelog 🆑 add: Added a 'Ghost settings' button, taking the spot of the pAI candidate button and replacing the "Ghost" tab of the Stat panel. This button contains buttons pertinent to your time as an Observer. /🆑 |
||
|
|
0a49e07859 | Spirit realm ghosts can't observe (#90556) | ||
|
|
6ff440bbc2 |
Lobby info is now part of the hud instead of stat panel (#90572)
## About The Pull Request Removes ``/mob/dead/get_status_tab_items()``, replaces it with a lobby hud icon showing the same information TV sprite made by Kryson, scanline and static taken from ``effects.dmi`` which I then blew up to fit the size. https://github.com/user-attachments/assets/99733ae6-c596-42b1-bcae-d1a8d8f094c3 ## Why It's Good For The Game I want to try to remove as much reliance from the stat panel as possible so we can hopefully remove it, as it takes up 1/3 of the screen for nothing. ## Changelog 🆑 Kryson, JohnFulpWillard qol: Lobby info is now on the title screen rather than being hidden in the stat panel. /🆑 |
||
|
|
5bc18586a7 |
System for restricting quirks based on species, no more blood deficiency on bloodless species (#90326)
## About The Pull Request Quirks can now define if they're "species appropriate," where the base proc's behavior is simply "does this species already have the quirk's main trait" I am unsure if that on its own imposes any new restrictions, currently. Additionally, blood deficiency cannot be picked on any species without blood or that doesn't breathe. I'm sure there's more that might make sense, I'm open to suggestions Alternative to #90238 ## Why It's Good For The Game Currently, reduces the possibility of taking something like blood deficiency on a race which suffers no downside from it in order to get free positive quirks. Future-ly, potentially allows quirks exclusive to only a select few species as offered by #90238 ## Changelog 🆑 fix: Species without blood can no longer be blood deficient /🆑 |
||
|
|
d3d3a12540 |
The big fix for pixel_x and pixel_y use cases. (#90124)
## About The Pull Request
516 requires float layered overlays to be using pixel_w and pixel_z
instead of pixel_x and pixel_y respectively, unless we want
visual/layering errors. This makes sense, as w,z are for visual effects
only. Sadly seems we were not entirely consistent in this, and many
things seem to have been using x,y incorrectly.
This hopefully fixes that, and thus also fixes layering issues. Complete
1:1 compatibility not guaranteed.
I did the lazy way suggested to me by SmArtKar to speed it up (Runtiming
inside apply_overlays), and this is still included in the PR to flash
out possible issues in a TM (Plus I will need someone to grep the
runtimes for me after the TM period to make sure nothing was missed).
After this is done I'll remove all these extra checks.
Lints will probably be failing for a bit, got to wait for [this
update](
|
||
|
|
fcbd67e699 |
Hotfix for IRV votes not submitting on 516 (#90285)
## About The Pull Request Fixes #90273 we relied on the post request sending the form data over the url, apparently this was the default behavior in ie11 but edge changed the form data to be sent in the http body, because browser standards i guess this is bad for us though because it breaks voting since the form data does not appear in the topic anymore. this PR changes the form submission method to get, which correctly submits form data again. proof of testing on localhost:  (the long line on the bottom of the log is me suibmitting my result to the form, also note how the "Vote successful." message shows up in the chat) ## Changelog 🆑 fix: Players on 516 can submit votes for IRV again. /🆑 |
||
|
|
2c49da04c7 |
Fixes auto observe parallax being white (#89885)
## About The Pull Request Fixed parallax being white when observing someone in auto observe mode Closes https://github.com/tgstation/tgstation/issues/43866 Closes https://github.com/tgstation/tgstation/issues/75855 Proof: https://github.com/user-attachments/assets/72ce4ffd-e319-443d-aa6b-ed31cd2c2c69 ## Why It's Good For The Game I prefer not to be flashbanged when observing ## Changelog 🆑 fix: fixed white space when observing in auto observe mode /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
d578965582 |
Wallout Loadout equips itself / Lipstick Loadout comes applies itself (and is customizable) (#89808)
## About The Pull Request - Selecting Wallet in the loadout, will equip the wallet when you load into the game. It will auto-fill the wallet with small items from your roundstart kit like quirk items or other loadout items. - Selecting Lipstick in the loadout will automatically apply it to your character. You still get the lipstick item at game start. - Deletes all the preset lipstick colors, now you can just pick what color you want. You can also pick what layer the lipstick starts at (high, middle, low). ## Why It's Good For The Game - Makes it work like the station trait (except the money part) - Convenience - Extra customization ## Changelog 🆑 Melbert qol: Wallet loadout item comes pre-equipped qol: Lipstick loadout item comes pre-applied qol: You can choose your lipstick color from any color now. You can also choose what layer it defaults to. /🆑 |
||
|
|
dfa7f2bb62 |
some more 516 compat fixes (#89766)
Ports the helpers from https://github.com/BeeStation/BeeStation-Hornet/pull/12240 This should fix some more of the 516 issues that I've seen while giving a quick check through the code The remaining browse should work now. Also fixing another sass warning while being on it. ## About The Pull Request ## Why It's Good For The Game ## Changelog 🆑 fix: tgui say 516 will no longer change channels when the button is used to drag it fix: tgui say 516 will no longer leak radio messages into the wrong channel fix: runechat flickering when faded up messages fade out /🆑 |
||
|
|
a0e862d575 |
Base implementation of /datum/persistent_client (#89449)
## About The Pull Request Converts `/datum/player_details` into `/datum/persistent_client`. Persistent Clients persist across connections. The only time a mob's persistent client will change is if the ckey it's bound to logs into a different mob, or the mob is deleted (duh). Also adds PossessByPlayer() so that transfering mob control is cleaner and makes more immediate sense if you don't know byond-fu. ## Why It's Good For The Game Clients are an abstract representation of a connection that can be dropped at almost any moment so putting things that should be stable to access at any time onto an undying object is ideal. This allows for future expansions like abstracting away client.screen and managing everything cleanly. |
||
|
|
0ec9ab3a17 |
Adds a Config for Auto-Deadminning on Ready Up and Latejoining (#89522)
## About The Pull Request Fixes #89458 Adds a config for auto-deadminning admins who ready up before the round starts, or click join game after. The deadminning happens as soon as the button is pressed, not when a job is selected or the round starts. I figure it's better to do it straight away since both have opportunities for metainfo to be posted in admin chat. Before there's admins messing with dynamic config / plotting events etc. and during the round there's basically everything that gets posted to admin logs. I've had to add a typecheck to the auto_deadmin proc, since the lobby menu technically happens on the centcom Z-level, and there's a pref for ignoring deadminning on centcom Z, so it checks to see if the admin is a new player mob. Changed the old config from auto_deadmin_player to auto_deadmin_always to make it less deceptive. Was suggested a pref could be added to do this. I can do that if people want it maybe, but it's not in this PR at the time of posting it. Is now a pref <img src="https://i.ibb.co/211sBMYd/Deadmin-Prefs1.png"> <img src="https://i.ibb.co/r20Srbw4/Deadmin-Prefs2.png"> I dunno if the latejoin proccall is in the right spot in the click sequence thing I can move it if people want. ## Why It's Good For The Game Admins spawning themselves on station is very important for both shenanigans and troubleshooting. It's annoying to have to click readmin every time and I'm too lazy to figure out how to perms escalate my way into disabling that config every round (Though I have tried). This PR is marginally more likely to convince Timber to turn that off than cussing him out in adminbus. ## Changelog 🆑 admin: Added a new config to force admins to deadmin when readying up or latejoining the round. /🆑 |
||
|
|
10abeb0ab1 |
Allows admins to filter observable mobs by ckey (#88922)
## About The Pull Request Adds ckey sorting akin to how you can look someone up by their name or job in the observer menu, only available for admins. ## Why It's Good For The Game Wine said it would be mad useful, no reason not to - they can already observe people by ckey via the ``Who`` verb, this just adds a cleaner way to do so. ## Changelog 🆑 admin: Admins can now filter observable mobs by ckey /🆑 |
||
|
|
e61f1315c6 |
Fixes admin observe showing all antags as revs upon enabling Real Name Display (#88859)
## About The Pull Request  Also made job colors in job sorting mode work, and tooltips no longer hide antags' jobs. ## Why It's Good For The Game Kinda weird seeing all antags show up as revs, should make admins' lives easier. ## Changelog 🆑 SmArtKar, AnturK admin: Fixes admin observe showing all antags as revs upon enabling Real Name Display /🆑 |
||
|
|
2e4d70afe5 |
Updates href uses for 516 (#88699)
## About The Pull Request Was just scrolling through the Paradise github since they seem to have more work done for 516 to see if there's anything I can port over, found this and thought why not. Ports parts of https://github.com/ParadiseSS13/Paradise/pull/25105 Specifically, updaing all hrefs to use the internal ``byond://``, and adding it to grep. ## Why It's Good For The Game More work towards 516. ## Changelog Nothing player-facing. |
||
|
|
e28ca62ee8 |
Makes all antags visible to an admin in the orbit menu (#88433)
## About The Pull Request As the title says, makes all antags visible to an admin in the orbit menu. ## Why It's Good For The Game Makes it easier for admins to observe the round and act preventive in case an antagonist goes too far. A nice QOL addition.  ## Changelog 🆑 qol: Now all antagonists are visible to an admin in the orbit menu! /🆑 |
||
|
|
d5daa9c9b8 |
[NO GBP] Renames mob/camera to mob/eye and makes everything follow suit (#87684)
## Why It's Good For The Game Clarity and consistency regarding DM's systems. Internally, `eye` is used for anything that controls the client's view.  How `eye` is used in DM is consistent with how we use the term, so I figured this would add clarity. Being named mob/camera also makes it unclear exactly what it's doing. The name implies that it would function similar to how mob/camera/ai_eye does, but most of the time it's only used as... an eye. My ulterior reason for this PR is that I want to clean up mob/camera/ai_eye and it's subtypes after this. ## Changelog 🆑 server: mob/camera has been renamed to mob/eye, which may break downstreams /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
55a07d99b8 |
Fixed being unable to aghost while corpselocked (#87594)
## About The Pull Request Fixed being unable to aghost while corpselocked, via adding another parameter to ghostize that checks if it's an aghost or not ## Why It's Good For The Game i wana leave my body when testing as ethereal ## Changelog 🆑 fix: Fixed being unable to aghost while corpselocked /🆑 |
||
|
|
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. /🆑 |
||
|
|
a6ce2bd30a |
[NO GBP] Fixes server hop fade out (#87170)
## About The Pull Request Turns out that if you don't test if you fix works, it probably won't! I've actually managed to test this one, and even though it gave me a handshake error when joining the other server, at least the fade in worked! The fadeout is set up in the same way, so it should be fine ## Why It's Good For The Game ACTUALLY fixes #29496 ## Changelog 🆑 fix: ACTUALLY fixes server hop fade in /🆑 |
||
|
|
6639857bce |
Better ghost tray scan (#87143)
## About The Pull Request Partially improves: * #46002 Previously, the ghost's "t-ray view" acted as a toggle, even though the scan only occurred once. This PR changes it to function as an action rather than a toggle, removing the need to press the button twice. While the ideal solution would be for the t-ray scan to work on the process tick, my attempt to give ghosts their own t-ray scanner and to toggle it on upon using the verb did not work as expected because the scanner didn't recognize the ghost as its holder (`mob/viewer` in the code). This update serves as an improvement to the current behaviour, but in the future, the t-ray scan verb should function like a normal t-ray scanner, instead of just a one-time scan. ## Why It's Good For The Game Improves the t-ray verb, before it acted as a toggle even though it only worked once upon toggling on. Improves user experience using this verb. ## Changelog 🆑 fix: the ghost "t-ray view" no longer requires a double press to activate a second time. qol: renamed "t-ray view" to "t-ray scan" for clarity. /🆑 |
||
|
|
de065cf801 |
Fixes server hop not fading the screen to black (#87132)
## About The Pull Request Fixes #29496 ... probably? I can't actually test this on a localhost but it SHOULD work now ## Changelog 🆑 fix: Server Hopping should fade your screen into black, as it should. /🆑 |
||
|
|
3f0b4abb8d |
Replaces world.icon_size (and some magic numbers) with defines (#86819)
## About The Pull Request All usages of world.icon_size in code have been replaced with new `ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on context Replaces some "32" magic numbers with the defines A few bits of code have been modified to split up x/y math as well ## Why It's Good For The Game Magic number bad, code more readable, code more flexible and I'm told there's an access cost to doing world.icon_size so minor performance gains ## Changelog 🆑 tonty code: made some code relating to the world's icon size more readable /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
6808a082eb |
Assorted changes to job assignment code and logging. Runtime free, guaranteed or your money back. Price: $£0. (#85947)
## About The Previous Pull Request
#85308 reverted by #85929

~~Causes the round to not start when a player isn't eligible for any
jobs at a specific priority level due to runtimes trying to `pick()`
from an empty list aborting the entire job assignment stack.~~
(Fixed???? by
|
||
|
|
aefa22166c |
Heretic Influences use alt appearances (so ghosts can now see them (semi-transparent)) (#85932)
## About The Pull Request Removes the rather overcomplicated system behind heretic influences and makes them use alt appearances Fixes a few bugs involving alt appearances that I noticed in making them I made this PR 7 months ago and forgot to Pr it ## Why It's Good For The Game Less complex codes and lets observers get a cut in on the action. Should fix #77530 ## Changelog 🆑 Melbert refactor: Refactored heretic influences a tiny bit, now ghosts can see them! Report any oddities. /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
1880003270 |
Reworks silicon/ai access checking & fixes some ui_act's (#84964)
## About The Pull Request Currently to check for Silicon access, we do: ``if is silicon or is admin ghost or has unlimited silicon privileges or has machine remote in hand`` What has unlimited silicon privileges? Bots, Drones, and admin ghosts. To check for AI access, it just checks for AI instead of silicon, and doesnt check for unlimited silicon privileges. This was kinda silly, so I thought I should make this a little easier to understand. Now all silicon/ai traits come from ``AI_ACCESS_TRAIT`` or ``SILICON_ACCESS_TRAIT``. I made a single exception to keep Admin ghost, since now instead of being a var on the client, we moved it to using the same trait but giving it to the client instead, but since we have to keep parity with previous functionality (admins can spawn in and not have this on, it only works while as a ghost), I kept previous checks as well. No more type checks, removes a silly var on the mob level and another on the client. Now while I was doing this, I found a lot of tgui's ``ui_act`` still uses ``usr`` and the wrong args, so I fixed those wherever I saw them, and used a mass replace for the args. Other changes: - machinery's ``ui_act`` from https://github.com/tgstation/tgstation/pull/81250 had ``isAI`` replaced with ``HAS_AI_ACCESS``, this has been reverted. Machine wands and admin ghosts no longer get kicked off things not on cameras. This was my fault, I overlooked this when adding Human AI. - Human AI's wand gives AI control as long as it's in your hand, you can swap to your offhand. I hope this doesn't end up going horribly, otherwise I'll revert this part. It should let human AIs not have their UI closed on them when swapping to eat food or use their door wand or whatnot. - Bots previously had special checks to scan reagents and be unobservant, I replaced this with giving them the trait. I also fixed an instance of unobservant not being used, so now statues don't affect the basic creature, whatever that is. ## Why It's Good For The Game This is an easier to understand way of handling silicon access and makes these mobs more consistent between eachother. Other than what I've mentioned above, this should have no impact on gameplay itself. ## Changelog 🆑 fix: Statues don't count as eyes to creatures. fix: Human AIs and Admin ghosts no longer get kicked off of machines that aren't on cameranets. /🆑 |
||
|
|
4d1639b04c |
Revert "Assorted changes to job assignment code and logging." (#85929)
Reverts tgstation/tgstation#85308  |
||
|
|
1eef540054 |
Assorted changes to job assignment code and logging. (#85308)
## About The Pull Request
This PR does a couple of minor things:
Makes the job debug logging a bit easier to follow.
Minorly brings some SSjob code up to code standards, converting proc
names to snake_case and doing some otherm is cleanup.
Refactored some stuff into different procs, updated some comments.
And some major things:
Changes the job assignment logic.
Old behaviour
> Assign dynamic priority roles
> Force one Head of Staff (if possible)
> Assign all AIs
> Assign overflow roles (bugged in 2 ways)
> Shuffle the available jobs list once, at the start of the random job
assignment loop
> Pick and assign random jobs for random players from High prefs down,
with a priority on Head of Staff roles
> Handle everyone that couldn't be assigned a random job
New behaviour
> Assign dynamic priority roles
> Assign all Head of Staff roles to players with High prefs
> If no Head of Staff was made in the above way, force one Head of Staff
(if possible)
> Assign all AIs
> Assign overflow roles (fixed)
> Prioritise and fill unfilled head roles at each job priority pref
level, from High prefs down.
> Build a list of all jobs that each unassigned player could be eligible
for at the above pref level.
> Pick a job from that list at random and assign it to the player.
> Handle everyone that couldn't be assigned a random job.
In reality there should be little impact on overall job assignment, the
code changes read more as semantics. For example, the priority check for
filling Head slots will have the same candidate pool in both old and new
versions, but in the new version we're more clearly saying that Heads
are important and we want to prioritise filling them for the sake of
round progression even though the outcome in new and old is the same.
A key change will lead to an increase in assistants - Overflow fixes.
Currently the code block to do early assignments to the Overflow role
doesn't work - or works but not as you'd expect. The idea was is that
because enabling the Overflow role in the prefs menu is an On/Off toggle
that sets the job to High priority when enabled and prevents any other
High priority pref, players that have the Overflow role enabled will
**always** get it. It's their highest priority job with infinite slots.
So we do a pass right at the start to give everyone with the Overflow
role enabled that role and save us wasting time later on in random job
code giving them that same role but with more work.
The problem is the code for this only assigns the Overflow role to
people with it set to Low priority in their prefs, resulting in log
readouts like:
```
[2024-07-27 09:49:43.469] DEBUG-JOB: DO, Running Overflow Check 1
[2024-07-27 09:49:43.469] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority
[2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Radioprague, TheirLevel: Medium Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.472] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caluan, TheirLevel: High Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Caractaser, TheirLevel: High Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.473] DEBUG-JOB: FOC player job enabled at wrong level, Player: Apsua, TheirLevel: High Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority
[2024-07-27 09:49:43.475] DEBUG-JOB: AC1, Candidates: 0
```
Where nobody gets pre-assigned the overflow role because their prefs are
all set to the High priority from being toggled... Except wait a second,
some people have it at Medium priority when it should just be a No
Role/High Priority Role toggle?
And herein we meet a problem. My hypothesis is that traits and stuff
that change the overflow have allowed players to set the "ordinary"
overflow role of Assistant to Medium and/or Low priority.
This still shows as enabled in the prefs menu, but leads to an outcome
where a player with assistant enabled is assigned Cook instead.
```
[2024-07-27 09:49:47.775] DEBUG-JOB: DO, Running Overflow Check 1
[2024-07-27 09:49:47.775] DEBUG-JOB: Running FOC, Job: /datum/job/assistant, Level: Low Priority
...
[2024-07-27 09:49:43.475] DEBUG-JOB: FOC player job enabled at wrong level, Player: Bebrus2, TheirLevel: Medium Priority, ReqLevel: Low Priority
...
[2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0
```
So players with the Overflow job pref set to Low (an unexpected state,
should be disabled or High) would be guaranteed to get that role if none
of the higher priority Head of Staff/AI/Dynamic roles took over via the
bugged "force overflow for people with the pref enabled" proc.
Players with the Overflow job pref set to High would be guaranteed to
get that role if none of the higher priority Head of Staff/AI/Dynamic
roles took over via the random job assignment code giving them their
Highest priority role thanks to the infinite job slots of the Overflow.
And players with the Overflow job pref set to Medium (an unexpected
state, should be disabled or High) would get Assistant if the shuffle
step of the available jobs list put Assisstant before any of the other
jobs they had prefs enabled for at Medium that weren't already filled,
otherwise they'd get another random job.
This code is now changed to ignore the priority the player has set when
looking for people to fill the overflow role. As long as it **is**
enabled, the player will get it unless they're forced into a dynamic
ruleset role (AI when malf rolls) or a Head of Staff role due to their
other prefs (they have RD set to med or low, and no other player has a
Head of Staff at high so they get randomly picked and miss the overflow
role).
This will increase the number of assistants in shifts where their pref
state has Assisstant in the bugged Medium priority, but doesn't change
it for bugged Low and not-bugged High/On priority.
On the other side of the coin, we have how the random jobs are picked.
They're kinda not random, and I noticed this reading the logs then
reading the code.
The list of available jobs to pick from is randomly shuffled - but only
**once**. All players pull from a list of jobs in the same order. So you
end up with a log block like this:
```
[2024-07-27 09:49:47.985] DEBUG-JOB: DO pass, Player: Pierow, Level:3, Job:Botanist
[2024-07-27 09:49:47.985] DEBUG-JOB: Running AR, Player: Pierow, Job: /datum/job/botanist, LateJoin: 0
[2024-07-27 09:49:47.985] DEBUG-JOB: Player: Pierow is now Rank: Botanist, JCP:0, JPL:2
[2024-07-27 09:49:47.986] DEBUG-JOB: DO pass, Player: Daddos, Level:3, Job:Botanist
[2024-07-27 09:49:47.986] DEBUG-JOB: Running AR, Player: Daddos, Job: /datum/job/botanist, LateJoin: 0
[2024-07-27 09:49:47.986] DEBUG-JOB: Player: Daddos is now Rank: Botanist, JCP:1, JPL:2
[2024-07-27 09:49:47.986] DEBUG-JOB: FOC job filled and not overflow, Player: Bebrus2, Job: /datum/job/botanist, Current: 2, Limit: 2
[2024-07-27 09:49:47.987] DEBUG-JOB: FOC player job not enabled, Player: Bebrus2
[2024-07-27 09:49:47.987] DEBUG-JOB: DO pass, Player: Bebrus2, Level:3, Job:Cook
[2024-07-27 09:49:47.987] DEBUG-JOB: Running AR, Player: Bebrus2, Job: /datum/job/cook, LateJoin: 0
[2024-07-27 09:49:47.988] DEBUG-JOB: Player: Bebrus2 is now Rank: Cook, JCP:0, JPL:1
[2024-07-27 09:49:47.988] DEBUG-JOB: FOC player job not enabled, Player: Redwizz
[2024-07-27 09:49:47.988] DEBUG-JOB: FOC job filled and not overflow, Player: Redwizz, Job: /datum/job/cook, Current: 1, Limit: 1
```
The list is shuffled into an order of something like `list("Scientist",
"Botanist", "Cook", "Sec Officer", ...)` then iterated over for each
player. So every random job selection goes:
> "Does Player1 have Scientist enabled and at the right priority? No?
Okay, Botanist? Yes? You get botanist."
> "Does Player2 have Scientist enabled and at the right priority? No?
Okay, Botanist? Yes? You get botanist."
> "Does Player3 have Scientist enabled and at the right priority? No?
Okay, Botanist has no slots left so we'll remove it from the list. Okay,
Cook? Yes? You get cook."
> "Does Player4 have Scientist enabled and at the right priority? No?
Okay, Cook has no slots left so we'll remove it from the list. Okay, Sec
Officer? ..."
This can lead to stacked individual departments if it gets randomly
rolled to the start of the list in the shuffle, and completely empty
departments if they end up at the end.
On high pop shifts this is probably less of an issue. Player prefs add
noise to this and as departments at the front fill up, those at the back
pick up some of the lower pref players.
But have you ever had a shift where there's just like... No fucking sec
even though there's tons of players? The logging (before I made changes
in this PR) was a bit ass, but my hypothesis there is that sec officer
was shuffled right at the end of the random job list, so every other
department was filled up before sec officers were picked.
To mitigate this, I made the list shuffle every single time the game
picks a random available job for the player. This should lead to a more
balanced selection of available jobs by avoiding situations where the
code is biased towards packing some departments by accident.
## Why It's Good For The Game
Overflow fixes mean people who go to their prefs and see the Overflow
Role is On will all have the same experience - They will be the Overflow
role.
More random random job selection should prevent individual departments
having a jobs be stacked when it would have otherwise been possible for
a more balanced selection but the code unintentially biased random
departments to be overstaffed and understaffed each shift.
## Changelog
🆑
fix: Having the Overflow Role set to On will properly ensure you get
that role at a High priority as intended by the game code.
fix: Job selection is now a little bit more random. Fixes an
unintentional bias in random job assignment that could lead to
feast-or-famine for roles where everyone is assigned one job and nobody
is assigned another job.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
|
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
f4ea731e09 |
fixes ghost huds (#85164)
## About The Pull Request Fixes https://github.com/tgstation/tgstation/issues/85120 I think it was introduced by https://github.com/tgstation/tgstation/pull/84984 ## Why It's Good For The Game fix good ## Changelog 🆑 fix: fixed ghost huds /🆑 |
||
|
|
dfb12f91d6 |
HUD traits now apply their corresponding hud automatically. Most clothing/item/etc sources of HUDs now only use traits (#84984)
## About The Pull Request Currently if you want to apply a HUD you usually add both its trait and the HUD itself. Only exceptions are things like simplemobs where you should avoid adding the hud trait since it adds security/med DB access and such, but there is no cases where you'd want to apply the trait and not apply the hud. Requested by Melbert about a week ago.  ## Why It's Good For The Game This makes working with HUDs significantly easier, as you no longer have to bother with manually adding/removing them. Also potentially removes an edge case where if your hud could get removed while keeping the trait. ## Changelog 🆑 refactor: HUD traits now apply their corresponding hud automatically /🆑 |
||
|
|
c5ac7b7297 |
Ghosts once again can see people's true names and roundstart jobs (#84951)
## About The Pull Request #83186 made it so ghosts are fooled by disguises, like wearing a mask and an ID. This PR fixes that behavior, instead always displaying the person's real name and their face/ID name (if their face name is somehow different from real name) in brackets. Additionally, this PR makes orbit menu prioritize "real" job name and icon, aka the ones the person spawned with. If they don't have an assigned job, it will fall back to current behavior of looking it up from their ID. Also, searching people includes both their fake and real name. ## Why It's Good For The Game Ghosts really, really shouldn't be fooled by wearing a gas mask and an ID. **Especially** admin ghosts. ## Changelog 🆑 qol: Ghost orbit menu now always displays person's real name and their roundstart job and cannot be fooled by disguises. /🆑 |
||
|
|
c3f66f6274 |
Stopping orbiting now automatically breaks you out of autoobserve (#84987)
## About The Pull Request If you move off someone you automatically stop autoobserve (stop viewing their UI and seeing from their perspective) ## Why It's Good For The Game Only way to stop autoobserve right now is via orbit UI, and following in chat does not break you out of it either. And if you have closed your orbit window, you need to open it from ghost tab as you no longer have a button for it, which can be annoying. ## Changelog 🆑 qol: Stopping orbiting now automatically breaks you out of autoobserve /🆑 |
||
|
|
b643391e5a |
Ambience Buzz Handling Changes + Ambience buzz requires enviorment power (#84479)
## About The Pull Request Partial port of https://github.com/DaedalusDock/daedalusdock/pull/996 - Fixes ambience prefrence inconsistancy issues with Observers unable to turn off the ambience buzz. - Ambience buzz requires a working, existing, charged APC with power to the enviorment. - Moves ``update_ambience_area()`` and ``refresh_looping_ambience()`` into ``code\controllers\subsystem\ambience.dm`` for better organization. ## Why It's Good For The Game Mostly to tackle a prefrence bug where ghosts are unable to turn off ambience buzz. But this also includes ambience buzz requiring a powered area. Makes the station feel more dead when there's no enviorment power. There should also be no buzzing inside space. ## Changelog 🆑 Kapu (ported by StrangeWeirdKitten) fix: Ambience buzz will now respect ship ambience prefrences for observers. sound: Ambience buzz requires APC enviorment power to function /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
9c9a5d28ff |
Some alt & ctrl click improvements (#84203)
## About The Pull Request
Improved code quality of both so they resemble each other. Some of the
new specs are as follows
1. Moved` COMSIG_CLICK_ALT` & `COMSIG_CLICK_ALT_SECONDARY` up i.e.
before `can_perform_action()` making them pure hooks not bound by any
action checks giving components full control over them
2. Removed range check(`CAN_I_SEE`) & view check(`is_blind()`) out of
the base alt click proc. They now only apply to living mobs and don't
apply to ghosts(ghosts don't get blind & see everything) & revenants
(the range check still applies for revenants though).
This was actually a bug because these 2 checks were only meant to see if
the loot panel could be opened (as stated in
https://github.com/tgstation/tgstation/pull/83736#discussion_r1628097941)
but because they are at the top of the proc they also apply to all alt
click actions which is not intended. Also, by moving these checks down
to mob subtype levels some of the snowflake checks like this
|
||
|
|
c60556217e |
[NO GBP] Admin ctrl+shift works only on the clicked ghost (#84005)
## About The Pull Request - Fixes #83995 ## Changelog 🆑 fix: ctrl+shift clicking on a ghost will only quick spawn that clicked target and not you /🆑 |