mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-01 20:42:08 +00:00
f4e244fb4922ef5b08d09e46b6ee4a926d59cd43
2978 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0186f4d8b0 |
[MIRROR] Removes stupid listlike var access code (#28658)
* Removes stupid listlike var access code (#84648)
## About The Pull Request
[Removes all other listlike var
accesses](
|
||
|
|
62e0bc6cc8 |
[MIRROR] Fixed quirk conflict between transhumanist and prosthetic limb (#28610)
* Fixed quirk conflict between transhumanist and prosthetic limb (#84325) ## About The Pull Request Transhumanist and prosthetic limb no longer conflict. If you pick the same limb for both it uses the weaker prosthetic (dumbass) Made the name for prosthetic limb global list more intelligible ## Why It's Good For The Game > Transhumanist and prosthetic limb no longer conflict. If you pick the same limb for both it uses the weaker prosthetic (dumbass) I wanted to RP a guy with a robotic voicebox and prosthetic limb but the game didn't let me, which I thought was pretty lame! Since the root issue is likely that both can have the same limb which ends up as Free Points as transhuman takes priority, I just added a check to ensure that can't happen and is overridden by the negative instead. Any transhumanist mood point benefits are made up for by the bad limb. > Made the name for prosthetic limb global list more intelligible It was bad ## Changelog 🆑 qol: Transhumanist and prosthetic limb no longer conflict. If you pick the same limb for both it uses the weaker prosthetic (dumbass) code: Made the name for prosthetic limb global list more intelligible /🆑 * Fixed quirk conflict between transhumanist and prosthetic limb --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> |
||
|
|
d6f7d2609d |
[MIRROR] Bitrunning: Combat domain [READY] (#28573)
* Bitrunning: Combat domain [READY] (#84196) <!-- 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 Finally dusts off this project to make a deathmatch style bitrunning map. Don't be too intimidated by the file diff, lots of code organization + resized a large map. Changes: 1. Reuses the gateway beach map as a combat zone (99% of the file diff) (maptainers: i just added spawners and areas) 2. Alters how bitrunning handles spawning: Custom spawns are now available, which can be anything Misc organization: - Splits netpod.dm into separate files. - Fixes some wording in vdom map documentation. - Organizes vdom variables a bit. - Adds a permanent hololadder spawn. How bitrunning deathmatch works: - Temporary spawners are offered to both ghosts and bitrunners. - Runners spawn in like usual. Ghost can use the spawner menu. - Ghosts work to prevent avatars from collecting side objectives or try to cause mass brain damage. - The domain completes after a number of deaths accrue. Any faction. Blood for the blood god, etc. - This map can be played solo. ANY deaths. <!-- 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 I've been toying with the idea of a deathmatch style map for some time. I liked syndicate assault, the spawners were intentionally left there, and the possibility of player-controlled players made the experience more tense and challenging. This PR leans into this idea: The virtual world is dangerous. Players get a chance to compete on both sides here. It offers a lot of variety to bitrunning other than "run for box". It's also very lucrative if ghosts join in. <!-- 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. --> 🆑 add: Added a bitrunning deathmatch map: Island Brawl. Both ghosts and runners get many more spawns than normal. fix: Lowered the static vision time in domain load in. /🆑 <!-- 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. --> * Bitrunning: Combat domain [READY] --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
ec8519a291 |
[MIRROR] Ambience Buzz Handling Changes + Ambience buzz requires enviorment power (#28537)
* Ambience Buzz Handling Changes + Ambience buzz requires enviorment power * Update areas.dm --------- Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
16dc3418ea |
Redoing Sprite Accessory (#28497)
* [MIRROR] Moves "sprite accessories" (e.g. Hair, Undergarments, Mutant Bits) from `GLOB` to a datasystem (#2278) * Moves "sprite accessories" (e.g. Hair, Undergarments, Mutant Bits) from `GLOB` to a datasystem * Ugh * . * Continuing merging 82847 to Novas codebase (#3136) done, i hope?? * Taur update * lowercase a in accessories --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Iajret <8430839+Iajret@users.noreply.github.com> * fix * Let's see if this cuts it. * Guess we missed a thing long ago. --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Iajret <8430839+Iajret@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
4a5e8d2644 |
[MIRROR] Refactors body markings into bodypart overlays (#28241)
* Refactors body markings into bodypart overlays * Update sprite_accessories.dm * Update changeling.dm * Update mothmen.dm * Update dna.dm * Update dna.dm * Fix * Update lizardpeople.dm * Update mothmen.dm * Update sprite_accessories.dm * Update sprite_accessories.dm * Update _species.dm * Update sprite_accessories.dm --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> |
||
|
|
f693cf82d8 |
[MIRROR] Fixes deaf mobs hearing ship/area ambience (#28461)
* Fixes deaf mobs hearing ship/area ambience (#84207) Fixes #65618 🆑 ShizCalev fix: Deafened mobs will no longer hear the station's ambient sounds. fix: Fixed ambient sounds resetting their loop when entering different bodies (ie admin ghosting, being moved to other mobs, ect.) /🆑 * Fixes deaf mobs hearing ship/area ambience --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> |
||
|
|
08749748f5 |
[MIRROR] Fixes Pathfinder module AGAIN, General JPS Tweak (#28410)
* Fixes Pathfinder module AGAIN, General JPS Tweak (#84348) ## About The Pull Request 1. Fixes the modsuit pathfinder module's pathfinding for the second time. This time AI idling broke it, we just make it not idle. 2. Changes the heuristic used by JPS nodes from Chebyshev distance to Euclidean distance. I have no real logical explanation, it just appeared to produce a more optimal path. CC @ LemonInTheDark 3. Renames `get_dist_euclidian()` to `get_dist_euclidean()`. Red line: Euclidean dist JPS path (roughly) Green line: Chebyshev dist JPS path (roughly)  ## Changelog 🆑 fix: MODsuit pathfinder module works. Again. code: AI pathfinding should produce slightly better paths. /🆑 * Fixes Pathfinder module AGAIN, General JPS Tweak * Update goldeneye.dm --------- Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
58ab268888 |
[MIRROR] Adds Character Loadout Tab to preferences (with just a small handful of items to start) (#28126)
* Adds Character Loadout Tab to preferences (with just a small handful of items to start) * step one rip out all the old nasties * fixes, current bugs: donator lock, ckey lock, one item in case * opps * sanity checks, fixed, donator implementation, ckey locking. fixes. * wew * final fixes * Update loadout_categories.dm * Update loadout_items.dm * Update loadout_items.dm * Update declarations.dm --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
865fc24e48 |
[MIRROR] Moves Round Logs Website Message before the sleep in Reboot (#28233)
* Moves Round Logs Website Message before the sleep in Reboot (#83914) ## About The Pull Request Closes #83823 Move the message about "You can access round logs and statistics at this website" up before we actually start the reboot countdown sleep. The logs probably won't have posted by that point (depending on how the server is set up) but at least it's slightly more useful before the links (apparently) invalidate. Also the reboot timer is ~60 seconds on /tg/ servers and people are either chatting in OOC or something around this time, may as well get the link to save for later in that "cooldown" period. ## Why It's Good For The Game I've actually never seen this message before and I think moving it slightly more upwards would be of value. ## Changelog 🆑 qol: A message with a link to publicly accessible logs (if enabled by your server operators) should now be visible far earlier when a world is about to reboot. /🆑 * Moves Round Logs Website Message before the sleep in Reboot --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
ca19d4d7b0 |
[MIRROR] Fixes station trait based event weight modifiers being added for events that aren't valid on the current map (#28159)
* Fixes station trait based event weight modifiers being added for events that aren't valid on the current map (#83897) ``` [2024-06-12 02:12:22.135] RUNTIME: runtime error: Cannot execute /datum/round_event_control/met... (/datum/round_event_control/meteor_wave/dust_storm).valid for map(). - proc name: New (/datum/station_trait/random_event_weight_modifier/New) - source file: code/datums/station_traits/negative_traits.dm,296 - usr: null - src: Dust Stormfront (/datum/station_trait/random_event_weight_modifier/dust_storms) - call stack: - Dust Stormfront (/datum/station_trait/random_event_weight_modifier/dust_storms): New() - Station (/datum/controller/subsystem/processing/station): setup trait(/datum/station_trait/random_ev... (/datum/station_trait/random_event_weight_modifier/dust_storms)) - Station (/datum/controller/subsystem/processing/station): SetupTraits() - Station (/datum/controller/subsystem/processing/station): Initialize() - Master (/datum/controller/master): init subsystem(Station (/datum/controller/subsystem/processing/station)) - Master (/datum/controller/master): Initialize(10, 0, 1) - ``` 🆑 ShizCalev fix: Fixed a bug with station traits being added to modify weights for events that couldn't actually occur on the current map! /🆑 * Fixes station trait based event weight modifiers being added for events that aren't valid on the current map --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> |
||
|
|
cffb23fea5 |
[MIRROR] Neutralised anomalies respect the core limit (#28185)
* Neutralised anomalies respect the core limit (#83964) ## About The Pull Request This PR changes it so that if you refine an anomaly by neutralising it, it respects the same limit on number of anomaly cores as refining one you bought from Cargo. If it would produce an illegal core, it will create a mostly useless inert core which you can sell at cargo for 80% of the price of buying a raw core. ## Why It's Good For The Game https://hackmd.io/@ tgstation/r1tzxpwPL This was a requirement in the original design doc which just never made it into the game. We want to be able to control how many cores of each type can possibly exist in a round, as this is what allows them to have the "these items can be really busted" allowance. ## Changelog 🆑 fix: Neutralising an anomaly cannot produce more anomaly cores than are supposed to exist in a single round /🆑 * Neutralised anomalies respect the core limit --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
ba6a1b9955 |
[MIRROR] Flatpacker (#28183)
* Flatpacker (#83836) ## About The Pull Request adds the flatpacker, it flatpacks machines  it is unlocked at industrial engineering the default print time is 4.5 seconds, reduced by the servo tier divided by 2 matter bins increase material capacity better servos decrease material cost, and the flatpacker cannot print a machine if it contains parts that are of a tier larger than the servos tier explained in this vid https://github.com/tgstation/tgstation/assets/70376633/c26e4379-f49b-4b1d-a70c-61f1ba96a9e0 ## Why It's Good For The Game machine construction sucks, this should be more convenient, this does not replace machine construction at all compared to machine frames while this is faster and more convenient, it is significantly more costly in materials, and a better servo is needed to use higher tier parts, and the printed machines are always the lowest required tier ## Changelog 🆑 add: the flatpacker, a machine unlocked at industrial engineering /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@ users.noreply.github.com> * Flatpacker --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@ users.noreply.github.com> |
||
|
|
0d8608c32e |
[MIRROR] Adds a config to change the interval profiler information gets saved (#28171)
* Adds a config to change the interval profiler information gets saved (#83849) ## About The Pull Request As title says ## Why It's Good For The Game Important for server operation --------- Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> * Adds a config to change the interval profiler information gets saved --------- Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> |
||
|
|
3f8cbb713f |
[MIRROR] White dwarf meta knowledge check fix (#28122)
* White dwarf meta knowledge check fix (#83633) ## About The Pull Request There is two values for round threat, the shown value and the real value, sometimes the shown threat can be 0, while the real threat is higher, which in turn does not trigger the green alert on getting the classified report and does not make a special announcement, "Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", nor does it enable all station construction projects, so we should disable being able to fake white dwarf on classified report. ## Why It's Good For The Game Knowing when your classified report is fake is meta knowledge and shouldn't be a thing. ## Changelog 🆑 grungussuss fix: fixed getting a fake white dwarf report when the shift isn't extended mode, which lead to meta knowledge being used. /🆑 * White dwarf meta knowledge check fix --------- Co-authored-by: grungussuss <96586172+Sadboysuss@users.noreply.github.com> |
||
|
|
c607284ff4 |
[MIRROR] Tram malfunction adjustments (#28092)
* Tram malfunction adjustments (#83706) ## About The Pull Request Adjusts tram malfunction and the tram malfunction event to be more straightforward and similar to other telecoms machinery. - Tram malfunction now requires engineering, borg, or AI to visit either the tram or the tram controller in telecoms to press 'reset' (previously: open the tram panel and find the appropriate tool to repair it) - Tram malfunction event only stops the tram once per event roll - Adjust announcement to include message that engineers need to reset the tram - Removed loud priority_announce when the tram is fixed. Players know the tram is fixed because they are using it again - Tram doors no longer force crush during malfunction, since engineers have no method to fix this - EMP/communications blackout event will temporarily degrade crossing signals, otherwise the tram continues to function normally - Loss of telecoms power will degrade crossing signals, otherwise the tram continues to function normally Frequency of tram malfunction event is reduced to be in line with communications blackout and grav gen blackout, and a maximum of 3 occurrences per round Signal failure: Previously: Signals fail until reset has physically been done on the controller New: Signal failure is moved to be part of the Communications Blackout event, lasting the duration of EMP blast that hits telecoms Communication loss: Previously: For the duration of the Tram Malfunction event there is a 5% chance the tram does a degraded stop, ending when the controller is repaired or the timer ends New: A guaranteed 1 degraded stop per event roll. To balance the increase in occurrences it's been made easier to reset on the controller. If the tram is not reset by the end of the timer, it is done automatically New telecoms room tram controller:  ## Why It's Good For The Game Making the tram friendlier for engineering to pick up/understand, it will function more predictably in the tram malfunction and communications blackout event. ## Changelog 🆑 LT3 add: Telecoms now has a central tram controller add: Tram controller is now included in communications blackout event qol: Tram malfunction event only stops tram once, requiring engineering to reset (no tools required) qol: Tram malfunction event no longer sends a Central Command announcement when fixed del: Tram doors no longer force crush you during tram malfunction event del: Silicons can no longer control the tram when communication is lost /🆑 * Tram malfunction adjustments --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
7981566da3 |
[MIRROR] Fixes admins not being able to force some rulesets with Stationwide Background Checks station trait (#28059)
* Fixes admins not being able to force some rulesets with Stationwide Background Checks station trait * Update dynamic.dm --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
60b40c1379 |
[MIRROR] Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#27593)
* Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) * [MIRROR] Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) (#2314) * Random Name Generation refactor, generate random names based on languages (for species without name lists, like Felinids and Podpeople) * Modular adjustments (vox, teshari names) * Update yangyu.dm * Delete language.dm * Remove language.dm override --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Fix 2 * fix 3 * Update monkeys.dm * test fix * One modular adjustment * Ticked * yeah * unhardcodes modsuit parts (#82905) see #70061 but i almost finished it, i only need to go through every single module and assign it a fitting part 🆑 refactor: modsuits have been refactored if you see bugs report them fix: admin cargo tech modsuit outfit now works correctly /🆑 --------- Co-authored-by: Andrew <mt.forspam@gmail.com> * Revert "unhardcodes modsuit parts (#82905)" This reverts commit 622968a8e5e9cd142cb4d19bf9775f084a4c17d9. * Removes language.dm and duplicate species() proc * Removes modular language subsystem --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: Andrew <mt.forspam@gmail.com> |
||
|
|
771f00acd9 |
[MIRROR] Adds a few more pulsar star station trait reports (#28066)
* Adds a few more pulsar star station trait reports (#83591) ## About The Pull Request This adds some more station-trait dependent Pulsar Star reports, much like the "Clown Planet" report triggered by the bananium shipments trait. For those of you not up to speed - When pulsar star (no meaningful threat report is provided) rolls, and a relevant station trait is active, the generic report is replaced with one pertaining to that trait. It's better to just check the code changes to get a full picture, but I'll give some summaries on what the individual reports are here: **Assistant Gimmick Outfits** - "Grey Sky", and a warning to monitor the recently emboldened assistants on-station. **Intern** - The intern has forgotten to actually include the report in his message. What a goof! **Ion Stormfront** - Oh dear, the electromagnetic interference is messing with the report broadcast.  **Endless Snowstorm** - Ice Giant, Too much snow, we can't give an actual report. Stay safe! **Wise Cow Invasion** - Cow Planet. [We're gonna go fast and we're gonna go far with a steady driving bass and a rhythm guitar.](https://www.youtube.com/watch?v=BPqPYszbSFI) ## Why It's Good For The Game Seeing the goofy clown planet message always made me think "dang, this feels like underutilized material" and can give command some prompting on what to tell the crew beyond "yeah we don't know what threat level it is". Maybe it'll prompt someone to do a gimmick based on the report? Who knows! It's just an added dash of flavor at the end of the day. Admittedly, some are a bit silly, but also rare (requiring both a specific station trait and the 8% pulsar star chance) so I think its fine. ## Changelog 🆑 Rhials add: Adds some more station-trait dependent pulsar star reports. Keep an eye on that roundstart command report! /🆑 * Adds a few more pulsar star station trait reports --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> |
||
|
|
24151d1228 |
[MIRROR] Moves "sprite accessories" (e.g. Hair, Undergarments, Mutant Bits) from GLOB to a datasystem (#27561)
* Moves "sprite accessories" (e.g. Hair, Undergarments, Mutant Bits) from `GLOB` to a datasystem * Merge branch 'master' of https://github.com/tgstation/tgstation * Moves everything I can think of to the subsystem * Seems to be working fine now * makes it compile --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> |
||
|
|
3c800cf213 |
[MIRROR] Admins can reroll random events into something else (#27855)
* Admins can reroll random events into something else * Fixing Conflicts --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
d5b0a9de08 |
STATION TRAIT GAMEMODE: Station-Wide Background Checks (#83307)
## About The Pull Request Adds a new station trait: Station-Wide Background Checks! It does two things: 1. Blocks most crew-side antagonists. No traitors, changelings, spies, heretics, etc. You won't be able to fully trust your crew though, as Space changelings, Paradox Clones, Obsesseds and Blob Infected are excempted crew-antags since a background check doesn't really help here. Other antagonists still spawn: pirates, revenants, blobs, aliens, nukies, wizards etc. Expect a LOT more of these, as Dynamic is gonna put threat somewhere... 2. Reduces dynamics threat slightly, configurable per server, but defaults to 15. It is essentially the first "dynamic gamemode". ## Why It's Good For The Game Blocking crew antagonists changes the shifts dynamic, similair to old warops. Security can "trust" crew to not be antagonists, and instead can focus more on petty crimes and hunting down external threats. Due to the increased chance of external threats and reduced chance of internal threats, the crew can focus its defenses outwards. Don't worry about your coworker killing you (intentionally/probably), but do worry a lot more about the pirates trying to break through your hull, or alien nests growing in virology. I've also reduced total threat count slightly because the idea of 90 threat being dumped into ghost spawns kinda terrifies me and I do want people to be able to let their guard down a slight bit. It can be reduced/disabled for servers that already tend to lower threats. I think it's a lot of fun to change the paranoia dynamic, and a fun deviation from a normal round of spaceman13. ## Changelog 🆑 add: Station-Wide Background Checks (station trait, rare): Disables crew antagonists, but get a lot more non-crew antagonists /🆑 I want to do more like these (this was just an example I threw into discord to annoy @ Mothblocks but I realized I kinda liked), and this is a good opportunity to gather community feedback and see how it plays! --------- Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com> |
||
|
|
9f3fb3dde0 |
Merge pull request #27862 from Skyrat-SS13/upstream-merge-83453
[MIRROR] Removes sentient disease |
||
|
|
f3d9c4433f |
[MIRROR] Saves profiler snapshots every 5 minutes (#27875)
* Saves profiler snapshots every 5 minutes (#83467) ## About The Pull Request As the title says. Each saved snapshot will be named - `profiler-[TIME IN SECONDS].json` - `sendmaps-[TIME IN SECONDS].json` For example, `profiler-0.json`, `profiler-300.json`, `profiler-600.json` would correspond to a profile at the start of the round, a profile 300 seconds into a round and a profile 600 seconds into a round. The timings depend on world.time, so it's probably not a good idea to rely on these timings to stay consistent. ## Why It's Good For The Game Allows us to track performance of procs over time. Could allow us to spot any sort of anomalies or performance sinks. CC: @ MrStonedOne @ bobbah @ LemonInTheDark --------- Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> * Saves profiler snapshots every 5 minutes --------- Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> |
||
|
|
ff9beb22d1 |
Removes sentient disease (#83453)
## About The Pull Request Completely removes sentient disease from the game ## Why It's Good For The Game Sentient disease is a unique antag and seems fun on paper, but really doesn't work that well. Sentient disease is a pretty binary antagonist: you either get cured and watch helplessly as you lose all your hosts, or you infect everyone and wipe out the entire station. Its everything bad about conversion antags, but there's not even any fighting. I also don't think any amount of balancing can fix sentient disease. If we make it harder to cure, the disease gets an easier station wipe, but if we make it less lethal, it loses all ability to stop cure generation. The core gameplay pitches the entire crew against one disease, and it's merely a timer before either it gets cured or wipes out everyone This is my latest sentient disease round, where I wiped out the entire station. I only even greentexted because there was one guy on the escape shuttle in crit that barely made it because they had the sense to take spaceilline.  The removal of the virologist lets us balance viruses to be fairer challenges to the player, but as long as sentient disease exists we'll always have to balance viruses somewhat in favor of the enjoyment of the disease blowing your head and making you spontaneously combust. ## Changelog 🆑 del: Removes sentient disease from the game /🆑 Hopefully, once we get virology truly sorted out, we can readd sentient disease, but this would require our diseases to have endgoals that aren't focused around killing every person, being widespread while also not being instantly curable. A reworked sentient disease would have to be so different, it's better to leave it out, fix virology and then consider if we can truly add a new sentient disease and have it be fun and fair |
||
|
|
8e17d80198 |
[MIRROR] Moves as many db related date/time operations to the db side to avoid byond bugs with dates and times. (#27694)
* Moves as many db related date/time operations to the db side to avoid byond bugs with dates and times. * Update blackbox.dm * SQLtime to ISOtime --------- Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
3827a3701b |
[MIRROR] Protects space spawned humans from radiation nebula (#27711)
* Protects space spawned humans from radiation nebula (#83202) Fixes #80864 When a mob is spawned in space in a nebula, they get 1 minute of radiation immunity. Ninja is the main one, but it'll also apply to other space spawned mobs (lone nukie, space changeling?) This only works for dynamic spawned antags. If an admin forces ninja through an event, it doesnt work  🆑 fix: Space Ninja and other space spawned antags get a 1 minute radiation shield in the radioactive nebula /🆑 * Protects space spawned humans from radiation nebula --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
f79cf4ea68 |
Implements dynamic scaling for spies (#82961)
## About The Pull Request Implements dynamic scaling for spies. TL;DR On average less spawn, but there is a chance it scales up to add even more. Old  New  ## Why It's Good For The Game Maybe more dynamic rounds? Just for testing really ## Changelog 🆑 Melbert qol: Spies may spawn in less numbers, but rarely may also spawn in more numbers. /🆑 |
||
|
|
aac945232a | fix ipintel caching to db not working. (#83046) | ||
|
|
b7eea17e11 | text2num moment for ipintel (#83032) | ||
|
|
6ec24c7f87 |
General IP intel tweaks (#82904)
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: ZephyrTFA <matthew@tfaluc.com> Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com> |
||
|
|
b713fa9086 |
Fixed the ipintel subsystem not initializing (#82936)
## About The Pull Request Subsystem had the SS_INIT_NO_NEED inside of its subsystem flags. This is not a flag and has a value of 3, which includes the SS_NO_INIT and SS_NO_FIRE flags, which stopped it from initializing. The subsystem has things it needs to do in init, so I've replaced this flag with SS_OK_TO_FAIL_INIT so that it can pass unit tests, but still be okay to fail. ## Why It's Good For The Game Fixes the ipintel subsystem not working. ## Changelog 🆑 fix: Fixed the ipintel subsystem not working. /🆑 --------- Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
8f8195da22 |
ip intel mk2 (#82683)
Do not merge this without coordinating with your server's host. Slightly refactors the way we handle IP intel. You can still use the old data stored in the database. Adds the ability to automatically reject connections determined by config flags. We used to have IP intel to check for VPNs, although it was disabled due to being bad and unhelpful. This refactor should make it much more manageable for hosts and admins. This adds a new SQL table `ipintel_whitelist` Look at the schema! 🆑 admin: The return of IPIntel /🆑 --------- Co-authored-by: MrStonedOne <kyleshome@gmail.com> Co-authored-by: oranges <email@oranges.net.nz> |
||
|
|
e68a2e1142 | Merge remote-tracking branch 'origin/master' into upstream-merge-82833 | ||
|
|
7955937232 |
Fixes auxtools hanging on server shutdown. (#83050)
## About The Pull Request Does a full shutdown of auxlua when the lua subsystem shuts down. This should unpin the dll file. Compare `AUXTOOLS_SHUTDOWN` code with `AUXTOOLS_FULL_SHUTDOWN`, let me know if I'm mistaken: ### AUXTOOLS_SHUTDOWN |
||
|
|
483236f32a |
[MIRROR] Code cleanup: Sorting (#27596)
* Code cleanup: Sorting * Fixes --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> |
||
|
|
8213cffe0d |
Blood Brothers should start with objectives (#83030)
## About The Pull Request Fixes #82064 Fixes a couple of different bugs with Blood Brothers. - Delegates creating the objectives to the team rather than the ruleset, so ones created via the traitor panel will also have objectives. - Creates the objectives after the team has a member mind, so it doesn't runtime when trying to give that mob the equipment needed to steal a supermatter sliver. - Creates the objectives before the first Blood Brother is assigned the antag datum, so that they will correctly be given the starting objectives. - Check the maximum number of brothers that can be recruited when deciding how many objectives to generate rather than the current number of members (which would always be 1). ## Changelog 🆑 fix: Blood Brothers should spawn knowing what their objectives are. fix: Teams of 3 Blood Brothers will once more have an additional objective. /🆑 |
||
|
|
2b15dbdbb9 | Fix crafting bypassing checks | ||
|
|
5db91e6a91 | Merge remote-tracking branch 'origin/master' into upstream-merge-82943 | ||
|
|
12091aa3d0 |
Merge pull request #27562 from Skyrat-SS13/upstream-merge-82978
[MIRROR] make SSevents `frequeny_lower` and `frequency_upper` configurable, fix runtimes when no events were drafted to trigger |
||
|
|
eccdc0c94c |
make SSevents frequeny_lower and frequency_upper configurable, fix runtimes when no events were drafted to trigger (#82978)
## About The Pull Request Make events frequency configurable. Fix runtime when no events were drafted to be picked from. ## Why It's Good For The Game No runtimes good. No need to change frequency in code. 🆑 fix: fix runtime when no events were drafted to be picked from config: make events frequency configurable /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> |
||
|
|
e2e67e6384 |
Vote clean up and admin additions (#82981)
## About The Pull Request - Fixes `vote_delay` not being a thing. I broke this two years ago but there's no bug report associated. - Admins can now reset the vote delay (to let people vote again instantly) - Admins can now end the current vote immediately (rather than cancelling) - Custom multi and custom single combined into one vote ## Why It's Good For The Game Makes voting a bit easier to use, both for admins and for coders adding new votes.  ## Changelog 🆑 Melbert admin: Custom Single and Custom Multi votes are now combined into one vote admin: Admins can now end votes instantly, rather than cancelling them admin: Admins can now reset the vote cooldown fix: Vote cooldown actually applies now /🆑 |
||
|
|
8c4cf753f5 | Remove data systems in favor of global datums (#82943) | ||
|
|
4ea447c862 |
[MIRROR] fix roleless poll ignores not working (#27500)
* fix roleless poll ignores not working (#82911) Fixes https://github.com/tgstation/tgstation/issues/82890 In some cases an alert poll had no role, like the monkey helmet, and because of that it skipped the eligibility check ## Changelog 🆑 fix: All alert polls ignore option works /🆑 * fix roleless poll ignores not working --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> |
||
|
|
7a65bbaf16 |
[MIRROR] Fixes pAIs permanently blocking requests (#27495)
* Fixes pAIs permanently blocking requests (#82900) ## About The Pull Request Removes pAI subsystem/card's reliance on clients and makes them unstoppable, which didn't really make much sense for it to be this way in the first place since it's something that has to always happen and is something that isn't client-controlled. Also removed case of ``usr`` use in ui act. ## Why It's Good For The Game Closes https://github.com/tgstation/tgstation/issues/70401 ## Changelog 🆑 fix: pAI requests should no longer randomly permanently break in a round. /🆑 * Fixes pAIs permanently blocking requests --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
487a2cb9b7 |
[MIRROR] Fix malf AI being unable to trigger because AIs are considered ghost roles (#27485)
* Fix malf AI being unable to trigger because AIs are considered ghost roles (#82893)
## About The Pull Request
Fix #82891
PR #82030 added this job flag check to dynamic candidate trimming
|
||
|
|
55d1c715e5 |
Pulls2 (#27514)
* New docking port sprites (#82729)
* Adds text to lootpanel items [no gbp] (#82722)
## About The Pull Request
Just some qol, this captures a small portion of the item name and fixes
some icon clipping issues
I clipped it at 5 because monke


## Why It's Good For The Game
Handy if youre in a rush and won't upgrade byond to fix the issue
## Changelog
🆑
fix: Lootpanel additions: Condensed item names for the quick of draw
/🆑
* Fixes tgui alert buttons (#82714)
<!-- 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
Been on my mind for a long time
I did this while relatively inexperienced (how do I center a div etc)
Fixes an issue inherent to our stack implementation where reversing the
direction caused strange spacing issues. This effectively reverses the
extra margins in css so it looks identically spaced whether reversed/not
<details>
<summary>before/after</summary>
Before (normal buttons)

Before (large buttons)

After (normal buttons)

After (large buttons)

Long buttons (normal)

Long buttons (large buttons (I am 35 and yet still fight the forces of
chaos))

</details>
<!-- 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
Looks better, runs smoother, no clipping
<!-- 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. -->
🆑
fix: TGUI Alerts shouldn't have such wonky buttons any more
/🆑
<!-- 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: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* MetaStation: Replaces the tools in the Primary Surgery Theatre with filled surgery trays (#82730)
## About The Pull Request
Replaces the tools on the tables with 2 surgery trays.

## Why It's Good For The Game
Makes surgery a bit less painful in the surgery theatre, Using tools
from a tray is much nicer than having to open the context menu on the
piles of tools on the tables.
## Changelog
🆑
qol: Replaced the surgical tools in the Primary Surgery Theatre with 2
Surgery Trays.
/🆑
* Fixes smart pipe & cryo gas reallocation (#82701)
## About The Pull Request
**1. Smart Pipe Problem**
- Fill a pipe with any gas, plasma for e.g.
- Unwrench the pipe to deconstruct
- The pressure sends you flying but notice plasma is nowhere to be seen
from the now destroyed pipe
**2. Cryo pipe connector problem**
The gas gets reallocated when the object is deleted. We only want this
when its deconstructed not deleted to prevent any side effects
This PR fixes them
## Changelog
🆑
fix: smart pipes release their gases into the air when unwrenched
fix: cryo pipe connector component has no side effects of gas
reallocation when deleted
/🆑
* Fix Primal Instincts (#82741)
## About The Pull Request
#82539 randomly made these two lines switch their AI controllers to idle
rather than on, when the intent was for them to wake up immediately to
do make the mob attack or fight or do something
## Changelog
🆑 Melbert
fix: Primal Instincts and Living Flesh should be a tad more reactive
/🆑
* Fix handcuffing (#82760)
## About The Pull Request
Changed this to an early return but then didn't invert the condition
## Changelog
🆑 Melbert
fix: You can handcuff people with 2 arms and you can no longer handcuff
people with 0 arms
/🆑
* Gets rid of UNIT_TESTS compiler warning (#82695)
## About The Pull Request
Basically every single CI Run is throwing the following warning:
```txt
code/modules/unit_tests/lootpanel.dm:24:warning (unused_var): new_box: variable defined but not used
```
You may find an example here:
https://github.com/tgstation/tgstation/actions/runs/8698627681/job/23855921813#step:9:24
This is pretty silly but I don't really know why we even have this
variable (I assume there's something far more complicated underneath the
surface based on what the unit test is asserting), but assuming it is
important let's just insert a do-nothing procedure to get rid of the
compiler warning while ensuring the unit test is actually operating as
it should.
I also don't really like the fact that this is a warning instead of an
error but let's tackle this problem one step at a time by at least
getting rid of the compiler warning in a quick advance PR while I dwell
on this issue (is there a way to get the Dreamchecker linter to look at
the unit test files? it's caught perfectly fine in the langserver)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Makes dropdowns better (#82697)
## About The Pull Request
Kind of a pain to work with, confusing people with its prop names (many
such cases!)
After recently discovering deathmatch it's very obvious to me how broken
it is, so I made it less so
(now comes with a complete ui upgrade!)
It now scrolls with the selection and to the selection on open, which
felt like major QoL
<details>
<summary>pics/vids</summary>
In motion

Deathmatch got some UI facelifts


Fixes #75741

</details>
## Why It's Good For The Game
Better UX
Bug fixes
Potential exploit patched (ui validation for ai voice changer)
Fixes #81506
## Changelog
🆑
fix: Dropdowns received some much-needed QoL, like having the scrollbar
follow your selection.
fix: AI voice changer now shows its current voice selection.
fix: Deathmatch screen has been touched up.
fix: Prefs menu has their dropdowns simplified, hopefully fixing issues
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Fixes the NT SWAT helmet sprite (#82743)
* Mass Item Creation (#82455)
## About The Pull Request
Have you ever had to click the "Make" button a dozen times for a chef
making soup? I've also had it, so with this PR you can press the button
and everything will repeat itself as long as possible.
## Why It's Good For The Game
Makes life easier for chefs, now they can play chess on their cool
smartphone and craft food. (actually you can transfer it to other items
as well, see for yourself).
* Adds Retain volume flag on the ants reaction (#82718)
Fixes #82575
We'd expect feeding ants to always result in more ants I imagine.
* Borg movement now has sounds (#82704)
## About The Pull Request
adds sound effects to cyborgs when they move
Demo:
https://imgur.com/a/7Mu98pQ
Open to feedback on this sound so please tell me what you think.
## Why It's Good For The Game
a hunk of metal moving at you without any sound is frightening
## Changelog
🆑 grungussuss
sound: cyborgs now have sounds to indicate they are moving
/🆑
* Use cell defined constants for various stuff (#82594)
## About The Pull Request
This re writes most cell power usage cases with 2 defines
`STANDARD_CELL_CHARGE`(Joules) & `STANDARD_CELL_RATE`(Watts) so changing
cell capacity values in the future won't cause discrepancies.
## Changelog
🆑
code: most cell power usages are scaled with defined constants to help
adapt to future changes
/🆑
* Plumbing machinery power & processing tweaks (#82702)
## About The Pull Request
- Plumbing machinery begins processing only when wrenched & ends
processing when unwrenched. The machines plumbing component
`/datum/component/plumbing/process()` already does this but the
underlying machines processing proc for e.g.
`/obj/machinery/plumbing/synthesizer/process()` is always processing
regardless of its wrenched state or not. We can optimize this & save
power when unwrenched
- Fixes #82621. This adds plumbing machines `idle_power_usage` on top of
its `active_power_usage` ensuring it only uses power when actively doing
work, So if your factory is say full of reagents & cannot do any more
work it will use less energy i.e almost enter an stand by mode,
efficiency
- Plumbing grinder chemical will grinds & juice stuff correctly i.e.
prefer grinding over juicing most of the time
## Changelog
🆑
fix: plumbing machinery begins processing only when wrenched & ends when
unwrenched
fix: plumbing machinery uses energy only when wrenched & doing work,
will stop/use less energy when idle
fix: plumbing grinder chemical will grinds & juice stuff correctly i.e.
prefer grinding over juicing for most stuff
/🆑
* Carps migrating through the station no longer idle so they don't get stuck after spawning until someone walks by. (#82744)
## About The Pull Request
Carps migrating through the station no longer idle so they don't get
stuck after spawning until someone walks by.
## Why It's Good For The Game
Bugfix for Carp Migrations.
## Changelog
🆑
fix: Carps migrating through the station no longer idle so they don't
get stuck after spawning until someone walks by.
/🆑
* Alt click no longer conflicts with mech suit [no gbp] (#82758)
## About The Pull Request
Get in the gundam shinji!!!
Context: Mech users hold ALT to disable strafe, which would trigger the
lootpanel to come up while committing war crimes (annoying!)
This prevents the panel from appearing and fixes the previous behavior,
meaning you can alt click your own mech to disable strafing.

It also makes toggling strafe a balloon alert with sound. Parties for
all occupants!!
## Why It's Good For The Game
Fixes #82753
## Changelog
🆑
fix: Mecha pilots are no longer bothered by incessant loot panels while
holding ALT for strafe disable.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds a Wizard-themed map to the deathmatch (#81640)
## About The Pull Request
Deathmatch is severely lacking in HIGH IMPACT MAGIC LARPING. So I added
a big ass wizard arena. The arena itself is based off the wizard den.
Loadouts:
**Wizard:** Standard all-rounder. Got magic missile, jaunt, and
forcewall. Regular gear.
**Pyromancer:** Fire guy. Red robes, fireball, smoke.
**Electromancer:** Zappy guy. Lightning and tesla shock.
**Necromancer:** Is a skeleton. Has Scream for Me and blink.
**LARPer:** Straight from Station & Spessmen. Fake robes and can only
throw lightning and repulse.
**Chuunibyou:** Classic animage. Got chuuni buff and magic cards.
**Battlemage:** Melee fighter. Got some armor and a big hammer with
instant summons.
**Apprentice:** Underpowered until they find a mystery box. Got charge.
**Gunmancer:** Who needs magic when you have guns? Starts with an m1911,
lesser gun summons, and knock.
**Monkeymancer:** Is a monkey. Can summon monkeys and gorillas. Has a
banana.
**Chaosmancer:** Jumbled robes. Starts with a chaos rod. Can rod form
and summon traps for high chaos.
**Funnymancer:** It's just a clown with a banana staff.
The map itself is a pretty standard arena with a long sightline in the
middle. Each participant spawns in their own room complete with a magic
item box. The very southern portion of the ship has a standard mystery
gun box. Soon after the round starts, a hostile gelatinous cube in the
center of the map will break out and attack whoever it sees. Inside its
enclosure is a free death wand. Map has been tested to make sure
deathmatch participants can't escape the deathmatch.
## Why It's Good For The Game
Deathmatch provides a unique opportunity for people to play with
mechanics they will not often get to use. Allowing people to play wizard
for a few minutes shouldn't cause too much harm aside from admin logging
from explosions, which hopefully a fix is in the pipeline for.
## Changelog
:cl:Motho
add: Added wizard-themed deathmatch map.
add: Added mystery wand box.
/🆑
* Makes viewers() defines (#82767)
* Fixes Pseudo circuit delay & some missed cell define usages (#82771)
## About The Pull Request
- Fixes #82688
If the circuit cost is<= 1% of `STANDARD_CELL_CHARGE` then the delay is
5 seconds, if the circuit cost is >= 50% of `STANDARD_CELL_CHARGE` then
delay is 1 minute. All other delay values are interpolated in between
these 2.
- Pseudo circuits don't use power when used on cooldown
- Makes `INSPECTOR_ENERGY_USAGE_*` defines values use standard cell
values
## Changelog
🆑
fix: pseudo circuit adapter computes recharge delay durations correctly
& won't use power when on cooldown
code: uses standard cell defines for N-spect scanner
/🆑
* Lava/Plasma River tiles now immerse you in them (#82736)
## About The Pull Request
This adds the "immerse" element to lava tiles.

It's a tad hard to see because you're super on-fire, but it still looks
nice.
## Why It's Good For The Game
Eye candy, pretty...
## Changelog
🆑 Rhials
qol: Lava and plasma rivers now immerse you in them.
/🆑
* Adds `ALLOW_RESTING` to a bunch of items (#82761)
## About The Pull Request
Allows you to alt-click a bunch of items while resting.
Fixes #82788
## Why It's Good For The Game
Some of these, such as storage, are bugfixes. You shouldn't need to be
standing up to configure a spray can, or change the direction of your
bedsheet
Others are just sensible changes.
## Changelog
🆑 Melbert
fix: You can open bags with alt click while resting again
qol: Many items which previously required you to stand to alt-click now
don't, such as bedsheets and spray cans
/🆑
* Fixes sight range on lootpanel [no gbp] (#82765)
## About The Pull Request
When asked to make lootpanel visible at range they did not just mean
_any range_
AI alt click was a little weird (still is) but now it works
(TM BUG)
Fixes #82768
* Adds Omnitools for engineer and medical cyborgs, reducing on inventory clutter. (#82425)
[This PR is a bounty requested by Ophaq and worked on by
Singul0.](https://tgstation13.org/phpBB/viewtopic.php?f=5&t=36013)
All of the following description in this PR is written by Ophaq as to
what this PR entails:
In this PR, the medical and engineering cyborg's tools are completely
reworked and condensed into an arm similar to the implant a carbon would
get. The tools are shown in a radial wheel around the character to quick
select what is needed instead of looking for it in a cluttered bag of
items. There are a few tools such as the blood filter for the medical
cyborg, as well as the welder, gas analyzer, and t-ray scanner for the
engineering cyborg excluded from the radial wheel. mostly due to their
inherent inmodularity


Each cyborg gets two arms in case the player wishes to have one on the
side to quick swap to, like having a scalpel in one arm and a hemostat
in the other on the hotbar for convenience or just preference. An
upgraded version of the tools has been added to each respective cyborg
upgrade node with somewhat faster action speed. The upgrade replaces the
arms and transforms them into the "advanced" version which is currently
the same sprite as the regular but just a faster and more efficient
version. The sprites for the surgical arm currently look good but may
need replacing later if someone who wishes to resprite them down the
line decides to do so.
As it currently stands, the medical cyborg's magical bag of gadgets
takes up a lot of your screen space and as a player who plays medical A
LOT, this was a MUCH NEEDED quality of life feature.
The amount of clutter in a medical cyborg's bag makes it in my opinion,
hard to see at the bottom of the screen and a nuisance to constantly
close compared to other models. My standard set up for playing medical
cyborg on the hotbar is 1=med analyzer, 2=usually a secondary surgery
tool or injector, and 3=another surgery tool. The flow of gameplay
during surgery ends up being surgery tool, hit 3 and drop it, surgery
tool, repeat or for efficiency using X to swap between the two surgery
tools I need on 2 and 3. This gets tedious especially after so many
hours of playing medical cyborg. I know some people may disagree, but I
think it would help a lot of help to speed up this flow of gameplay
during surgery and declutter.
By turning the medical cyborg's toolset into an omni-surgery tool which
functions like the surgery arm implant's radial wheel, this would
greatly declutter by like an entire row and make things easier on
medical cyborg players. Having a secondary in the bag helps with
efficiency for those players who like having an extra tool on their
hotbar and swapping back and forth would also improve efficiency and
make less swapping by hitting Z needed. Additionally with the upgraded
version as an optional upgrade in the mediborg tech, this also lets them
be on par with players who use advanced tools late game but not at the
level of alien tools where players would obviously out compete a
mediborg in terms of action speed.
Engineering models also benefit from this rework but at a slightly
different and lesser way whereas certain tools are excluded such as the
welder, due to the way they work on refill and the gas scanner and t-ray
scanner not counting as tool components are not included in the arms.
Syndicate versions of the engineering and medical cyborg also get these
arms, unupgraded.
🆑
add: Adds an omnitoolset for both engineering and medical cyborgs,
containing various basic tools
qol: Engineer and Medical module inventory space is now significantly
decluttered
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes dropdown displaytext not working for numeric values (#82778)
## About The Pull Request
https://github.com/tgstation/tgstation/pull/82697 broke the prefs menu
downstream; we have a couple of dropdown choices that are numeric but
that make use of `display_names` to map those choices to appropriate
strings.
The code was assuming that `value` would always be a string when calling
`capitalizeFirst(value)`. Basically it should be doing
`display_names[value]` when `display_names` are present.
## Why It's Good For The Game
Fixes an oversight/bug.
## Changelog
🆑
fix: dropdowns that use display_names as an alias for numeric values
will no longer cause tgui bluescreens
/🆑
* [NO GBP] HPLC can purify inverted chems (#82727)
## About The Pull Request
- Fixes #82725
Inverted chems are now coloured green and classified as clean (like
before my general maintenance PR) which means they can be purified
again.
Only chems that are too impure to use & have an inverted chem value are
coloured red in the UI and not when they are just of the inverted type
## Changelog
🆑
fix: HPLC can purify inverted chems and are now coloured green(clean) in
the UI
/🆑
* Lathes compute their local storage size correctly (#82770)
## About The Pull Request
Basically we have to add the material container before we call parent
Initialize(which calls `RefreshParts()`), else the container doesn't get
initialized early and we skip over computing storage sizes
## Changelog
🆑
fix: off station & round start lathes with local storage don't have
infinite storage size.
/🆑
* Arcmining QoL: GPS component to scanned vents and vent(pin)pointer (#82724)
## About The Pull Request
Scanning ore vents will now tag them on GPS so you can find them easily
when you are prepared (and remove them when they are tapped). Also adds
special pinpointer to help with finding unscanned vents in a first
place. And adds missing uranium overlays for scanned vents. Because why
not.
<details>


</details>
## Why It's Good For The Game
While looking at mineral density to find vents is somewhat fun and
entertaining, having some sort of upgrade to make finding them easier
adds a bit of a progression. Also re-finding already scanned vents can
be a bit annoying. You need to fill your backpacks with GPSs and tag
them manually. It is also inconsistent with geysers that are added to
positioning after you scan them. And with tendrils, which are always
visible.
## Changelog
🆑
add: added ventpointer that points toward nearby ore vents and can be
bought with mining points
balance: scanned ore vents can now be found with GPS
fix: fixed ore vents missing overlay icon for uranium
/🆑
* Fix oven tray runtime (#82782)
## About The Pull Request
Fixes a lil typo from the interaction refactors that broke the ability
to load oven trays from containers
## Why It's Good For The Game
squamsh bug
## Changelog
🆑
fix: loading oven trays from serving trays and other containers works
again
/🆑
* Fix flaky test detection (#82790)
- Add missing job pagination.
- Fix multiple jobs being able to fail if they aren't in
`CONSIDERED_JOBS`
* Add utf8 support for state laws button (#82789)
## About The Pull Request
Adds UTF-8 support for state laws HTML page. Now it supports more than
just English
## Why It's Good For The Game
Support for other symbols, such as cyrillic

* Update highest available sound channel (#82780)
Current channels are:
```
```
So, the highest available now is 1013
Updating the thing which everyone forgot for 7 years. Not that many
special channels were added either way
* Revert "Borg movement now has sounds" (#82795)
Reverts tgstation/tgstation#82704
The sound ingame appears much louder than the original author intended.
Not to mention that the sound loops stack for every borg moving near
you.
* Use defines for "General Research" where it's not used (#82785)
## About The Pull Request
There is a define for it, so why not use it?
## Why It's Good For The Game
Defines good
* [READY] the unfuckening of clothing rendering (#79784)
refactors clothing visors to use the same system, including masks being
toggled and stuff like riot helmets toggling using the same system and
welding helmets and such
adds a handler that updates all visuals in slots that an item has
obscured, each visual proc calls that so you no longer have weird shit
happening like having to hardcode a proc for heads where you need to
also update hair, mask, glasses everytime you put on an item
one thing here i could also do is make check_obscured_slots return the
HIDEX flags instead of item slots, because in 99% of cases its hardcoded
to be ran against specific slots (like eye code running it against the
glasses slot), but maintainers didnt seem to like that :/
fuck this 2003 bullshit
theres like several bugs here i fixed but i forgot them all and they are
small
* Allows vv investigate /appearance + better checking image (#82670)
* Fixes Alien Numerical Identifier Transfer System (#82762)
## About The Pull Request
Fixes #82756
I'm not sure what the root cause of the issue is or why it broke so
recently (this has been a thing since #49150) but I went and cleaned up
the code and ensured that we always reset the `name` to the `initial()`
value we have for it if we determine that we need to transfer over the
`numba` from the old xenomorph. This is done by a new proc which is a
lot less convoluted from the old system (always respecting var-edited
names and stuff like that) that should make it flow a lot better and
make it more hardy against double-addition of the `numba` to the name.
## Why It's Good For The Game
Having two numbers in your name is weird, should only have one.
[x] I tested this PR
## Changelog
🆑
fix: Evolved aliens should no longer have two numbers in their name.
/🆑
* [NO GBP] Fixes runtime in advanced camera console (#82699)
## About The Pull Request
We only unset machine if we have a user who has logged in
## Changelog
🆑
fix: Fixes runtime in advanced camera console when power is turned off
/🆑
* Refactors how basic ais do their success/failures (#82643)
* Rocky DLXIII: Fitness to Athletics, Athletics skill influences Boxing against Boxers, Boxing overhaul, Evil Boxing (#82611)
as the only meaningful reward
Basically just a rebranding so that it is more broad in its concept. It
isn't just about peak physique. It's about how you can apply it too.
Reaching Legendary rewards you with the Golden Gloves.
I started it in this pr here
https://github.com/tgstation/tgstation/pull/80635
But this is a more significant overhaul of boxing from the ground up.
Namely, it now is majorly influenced by the Athletics skill, and also
more thoroughly aligns with conventional punching in its current state.
However, a major component of this is that boxing's breadth of mechanics
is only relevant when used against another boxer. Non-boxer targets are
only ever going to get smacked by a stamina punch, as it is currently
(and more or less the same values too). Additionally, boxers cannot
punch someone who is either unconscious or in stamina crit, so it can't
be used to maintain stamcrit.
- Boxing now has a One-Two Punch mechanic. Swapping between the left and
right mouse buttons to punch and maintaining this causes every second
punch to do more damage (to boxers). Breaking this chain by punching
with the same button twice will cause you to lose damage (against
boxers).
- Boxing now can have crits occur below 50 stamina damage (against
boxers). However, to knock someone out clean, the target must be
staggered from a previous crit first. (Or I guess be staggered at all,
maybe their shoelaces were tied or something). Crit probabilities are
determined by adding your Athletics probability skill bonuses to your
unarmed effectiveness, and then reduced by the targets own Athletics
skill bonuses. It is hard for two athletes to knock each other out in
one blow. It is trivial for a legendary boxer to knock out a novice in a
single punch. Cybernetically enhanced boxers are dangerously effective
at boxing.
- Boxers can block other boxers by using throw mode, but the chances of
doing so is based on Athletics skill bonuses. A successful block causes
the attacker to take stamina damage (as does the blocker, but less so).
- Participating in boxing increases the Athletics skill. Your gains are
probably slower than normal training, but you at least get some reward
for doing so. Only relevant if your opponent is a boxer. Get a sparring
partner!
So this is all well and good, but what if you're a scoundrel with no
care for the other person in this equation? Well, that's where Evil
Boxing comes in. Evil Boxing has absolutely no restrictions at all, and
can freely use its boxing abilities against anyone. Even non-boxers. You
can even grab people! Wow, what a scumbag. I bet you even king hit
people. Thankfully, only an admin can make you into an Evil Boxer.
(against boxers)
Both mutations have a flimsy increase to instability of 5 because of how
incredibly particular the bonus is.
Strength now reduces the amount of stamina damage inflicted via
exercising by half. Strength also adds a +2 damage bonus on boxing
punches while boxing against boxers (this doesn't influence normal
unarmed attacks whatsoever, or boxing against nonboxers). Obviously,
evil boxers just get this benefit against everyone because they're
knaves.
Stimmed increases the duration of the exercised status effect by one
factor. (That is, if you have no other modifiers, it will double the
duration on its own)
@Jacquerel was racking their brain trying to come up with an alternative
to the skill rewards of Fitness. At the moment, sprite growth is not
only a really bad bonus (it does literally nothing but make you big, and
thus is actually a detriment due to how intrusive sprite size is with
interaction, and plays weird with other sprite changing effects), but
isn't really all that interesting for all the effort put in.
Problem is, how do you make Fitness meaningful without making it a
powergame mechanic? Simple! You make it applicable to a really niche,
self-contained but still utilized game mechanic that is engaging to
participate in and makes you meaningfully very good in it. AND scratches
that power scaling itch that many players have.
Boxing is reasonably self-contained as is, but pretty bland due to how
old it is. While maintaining that self-contained nature, I hoped to
expand the interactivity of boxing a little bit by giving it a small
mini-game in of itself. And also introduce ways to simulate the idea of
boxing a bit better.
The idea of being an Evil Boxer is funny. For every Rocky, there is a
[Insert Rocky Villain Here that isn't Creed]. But in this case, it's
probably some Syndicate douchebag looking to punch clowns into a coma
and inspire the mime to take up shadowboxing in revenge.
🆑
add: Replaces Fitness with Athletics; same skill, but now more
specifically applicable to boxing.
add: Athletics does not increase sprite size.
balance: Overhauls Boxing to add a lot more depth to the interactions.
Only applicable to other boxers, however. You can still punch the snot
out of non-boxers though. But only up to stamcrit or unconsciousness. No
hitting someone who can't fight back!
balance: Adds Evil Boxing, which is the evil and fucked up version of
boxing that you kill people with and are allowed to flout the sacred
rules of boxing as you please. Everyone is a victim!
/🆑
* Cargo ui refactor -> TS (#82745)
Refactors cargo ui, fixing some visual bugs, just making it look better
in general
Should be no gameplay effect other than it looking better
<details>
<summary>pics</summary>




Fixes #81442

Made a type grabber for backend data in case you want to make your own
typescript uis
`logger.log(getShallowTypes(data))`

Otherwise cargo's data is unreadable
</details>
Any UI over 500 lines should get broken up to reduce cognitive load
~~Any ui in javascript shouldn't exist~~
Cargo UI is better
Typescript
🆑
fix: Cargo's supply console has been upgraded visually.
/🆑
---------
Co-authored-by: EricZilla <81941674+EricZilla@users.noreply.github.com>
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Makes lavaland stone tiles prevent immersion (#82807)
## About The Pull Request
Adds the same trait that lavaproof rods have to the stone tiles, so
things can continue being visually outside of the lava
## Why It's Good For The Game
this shit looks goofy

## Changelog
🆑 FlufflesTheDog
fix: Stone tiles (and things on them) no longer get immersed in lava
/🆑
* Getting up from prone, z movement, and mod de/activation don't do cogwheels (#82794)
Adds `hidden` to getting up (from prone), moving up (z-movement), moving
down (z-movement), and de/activating MODsuits
- Getting up from prone happens very often, makes it a bit hard to
differentiate when people are doing actions or just crawling around.
- If we want feedback for getting up, should just be a chat message.
- Moving up and down is just movement. Only affects using the verbs.
- Same as before: If we want feedback, it should just be a chat message.
- Other methods of moving up/down (IE, ladders) are untouched / retain
their cogwheel.
- De/activating modsuits have their own visual feedback and sound
effects associated. Both feels unnecessary.
🆑 Melbert
qol: Getting up from prone, moving up or down a z-level (not via
ladders, naturally. Like flight), and de/activating your modsuit no
longer shows cogwheel effect
/🆑
* [NO GBP]Inversely scale mechanical favor with STANDARD_CELL_CHARGE. (#82801)
## About The Pull Request
Makes the mechanical sect cell sacrifice favor adjustment inversely
scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000.
## Why It's Good For The Game
So they don't get 1,000 times the favor as intended from a cell.
## Changelog
🆑
fix: Fixes mechanical sect gaining 1,000 times the favor from a cell
sacrifice.
/🆑
* Fix all types of damage to the head causing brain damage (#82763)
## About The Pull Request
5 months ago when I separated this stuff out to its own proc I forgot a
damagetype check.
## Changelog
🆑 Melbert
fix: Only brute damage causes brain damage when applied to the forehead,
rather than all damage types
/🆑
* Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it (#82792)
## About The Pull Request
If we say something is a Modal it should actually be a Modal
## Why It's Good For The Game
You can now use this system in other windows if you want.
Fixed the misnomer.
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)
## About The Pull Request
Creates a higher capacity version of the SMES unit that spawns in with
super capacity cells, as well as a full version. Places the full version
into all the AI sats (which all have independent grids for the most
part), some remote space ruins and the mining base. These SMES units are
intended for areas where players aren't expected or cannot reasonably be
expected to constantly monitor power usage within the length of a
standard round.
Miners can access their power stations, telecommunications box and
atmospheric station on the mining base. They're really the only people
who care, after all.
The gulag's SMES (also now upgraded) no longer saps power from the main
base due to having its input terminal rigged to the main base power
grid, and thus demanding all power from the grid greedily. To revert
this in-game is a single power cable placed back east of the SMES unit.
## Why It's Good For The Game
The power changes made some of the once largely low-maintenance areas
much more likely to run out of power more quickly than you would expect.
These aren't areas expected to be maintained or monitored by engineering
(probably because they're not easily accessed), and they're just kind of
troublesome to deal with on a round-to-round basis.
Mining had this problem triple-fold. It had significant drain with no
convenient method of installing power generation at all, miners couldn't
access what power generation there was without using their 'skeleton
key' to open the way (only engineers could, and they aren't expected to
come down to mining at all), and even then, there was the gulag SMES
just eating all the power anyway. I'm pretty sure that SMES unit was the
biggest culprit of them all, but I think this conveniently future proofs
these issues for the time being.
## Changelog
🆑
add: Adds a higher capacity SMES unit to lower maintenance areas and
maps.
fix: Miners can actually access and fix their engineering issues on the
lavaland base via the engineering section of the base.
fix: The gulag SMES unit is no longer needlessly draining the entire
power grid of the main mining base.
/🆑
* Revert "Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)"
This reverts commit
|
||
|
|
ba5c112a86 |
Huge Mirror fixes (#27488)
* Fixes incorrect operator usage in mecha code (#82570) ## About The Pull Request I completely screwed up and told the original PR author of #82415 ( |
||
|
|
7aa6664021 |
Mirror (#27453)
* Fix Conflicts
* Change COGBAR_ANIMATION_TIME to seconds and not deciseconds (#82530)
Most people should not be using this define
* New Battle Arcade (#81810)
Remakes Battle Arcade from just about the ground up, with exceptions
taken for emagged stuff since I didn't really want to touch its
behavior.
The Battle Arcade now has stages that players can go through, unlocking
a stage by beating 2 enemies and the boss of the previous one, but this
must all be done in a row. You can choose to take a break between each
battle and there's a good chance you'll sleep just fine but there's also
a chance it can go wrong either through an ambush or robbery.
The Inn lets you restore everything for 15 gold and you can buy a sword
and armor, each level you unlock is a new sword and armor pair you can
buy that's better than the last, it's 30 gold each but scales up as you
progress through levels. They are really worth getting so it's best to
try to not lose your money early in.
The battle system is nearly the same as how it was before but I removed
the poor combo system that plagued the old arcade as one big knowledge
lock, now it's more just turn based. The game is built on permadeath so
dying means you restart from the beginning, but if you are going to lose
you can try to escape instead which costs you half of your gold.
Getting to higher levels increases the difficulty of enemies but also
increases the gaming exp rewards which could make this a better way to
get exp if you can get good at it.
Gaming EXP is used to increase chances of counterattacking but doesn't
give any extra health to the player.
I also removed the exploit of being able to screwdriver arcade cabinets
because people would do that if they thought they were on the verge of
losing to bypass the effects of loss. I instead replaced it with a new
interaction that the Curator's display case key can be used to reset
arcade cabinets (there's several keys on the chain so it made sense to
me), which I added solely because I thought Curators would be the type
of person to have run an actual arcade.
This is some gameplay
https://github.com/tgstation/tgstation/assets/53777086/499083f5-75cc-43b5-b457-017a012beede
As a misc sidenote, I also split up the arcade file just like how Orion
Trail was before, just for neat code organization.
The Inn keeper is straight up just a photo of my localhost dude, he's
not a player reference or anything it's not my actual character.
I also have no idea how well balanced this is cause I suck at it lol.
Battle Arcade is one of 3 last machines in my hackmd here to turn into
TGUI https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view
I've always thought the current version of battle arcade is quite lame
and lacks any progression, like Orion Trail I thought that since I was
moving this to TGUI, it would also be a perfect opportunity to revamp it
and try to improve on where it failed before, especially since the
alternative (NTOS Arcade) is also lame as hell and is even lamer than
HTML battle arcade (spam mana, then spam health, then just spam attack,
rinse and repeat).
This will hopefully be more entertaining and give players sense that
they are getting through a series of tasks rather than doing one same
one again and again.
🆑 JohnFulpWillard, Zeek the Rat
add: Battle Arcade has been completely overhauled in a new progression
system, this time using TGUI.
add: The Curator's keys can now reset arcade cabinets.
balance: You now need to be literate to play arcade games, except for
Mediborg's Amputation Adventure.
fix: You can no longer screwdriver emagged arcade consoles. Accept your
fate.
fix: Silicons can no longer play Mediborg's Amputation Adventure.
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Change setting item weight class to a setter to patch some weight class related shenanigans (#82494)
## About The Pull Request
Fixes #81052
Fixes #58008
Setting weight class of items is now done via `update_weight_class`.
I updated as many occurrences of manually setting `w_class` as I could
find but I may have missed some. Let me know if you know of any I
missed.
This is done to allow datums to react to an item having its weight class
changed.
Humans and atom storage are two such datums which now react to having an
item in its contents change weight class, to allow it to expel items
that grow to a weight class beyond what is normally allowed.
## Changelog
🆑 Melbert
fix: You can't fit items which are normally too large for a storage by
fitting it in the storage when it is small, then growing it to a larger
size.
/🆑
* Material datum color update, plus touching up some material items (knight armor, tiles) (#82500)
## About The Pull Request
Tries to bring the material datum colors in closer approximation to the
stacks they're attached too. I literally used the colors on the stacks.
some might need to be lighter or darker, but for the most part they'll
look...closer to their actual material hues.

I've also tweaked the sprites of both the tile object and the actual
material tile turf to give it the right shading.

In addition to the tiles, I've also updated the knight armor and helmet
to look closer to the much higher quality plate armor already in the
game.
## Why It's Good For The Game
It bothered me that the material datum coloring was inconsistent with
the actual colors used for the material stacks. When they were updated,
and even before they were updated, material datum stuff just never
looked _right_. I wanted to change that so that it looks just right.
I did not like the old material knight armor whatsoever. It was a
dithered mess, and seemed to already use parts of the standard plate
armor but with all the actual shading removed or replaced with the wrong
colors. This fixes that so that the armor is actually readable for what
it is.
## Changelog
🆑
image: Updates the colors of various material datum to bring them closer
in-line with their actual material stacks
image: Improves the sprites for the material knight armor and helmet.
/🆑
* LateInitialize is not allowed to call parent anymore (#82540)
## About The Pull Request
I've seen a few cases in the past where LateInitialize is done cause of
the init return value being set to do so for no real reason, I thought I
should try to avoid that by ensuring LateInitialize isn't ever called
without overriding.
This fixes a ton of machine's LateInitialize not calling parent
(mechpad, door buttons, message monitor, a lot of tram machines,
abductor console, holodeck computer & disposal bin), avoiding having to
set itself up to be connected to power. If they were intended to not
connect to power, they should be using ``NO_POWER_USE`` instead.
Also removes a ton of returns to LateInit when it's already getting it
from parent regardless (many cases of that in machine code).
## Why It's Good For The Game
I think this is better for coding standard reasons as well as just
making sure we're not calling this proc on things that does absolutely
nothing with them. A machine not using power can be seen evidently not
using power with ``NO_POWER_USE``, not so much if it's LateInitialize
not calling parent.
## Changelog
🆑
fix: Mech pads, door buttons, message monitors, tram machines, abductor
consoles & holodeck computers now use power.
/🆑
* Fix table top deconstruction (#82508)
## About The Pull Request
Edited: updated changelog, read comments for changes in implementation
details
So previously, tables would let you use a wrench to fully deconstruct
them, or a screwdriver to take off only their top.
This, however, broke in two different ways in #82280, when their
deconstruction logic got changed.
First off, deconstructed tables would only drop the materials for their
top and not their frame.
For this, the primary culprit seems to be on line 307:
|
||
|
|
08d9f59838 |
[NO GBP] Slime AI fixes + prerequisites (newest mirror: makes slimes not idle) (#27470)
* Reworks targeting behavior to fall back onto proximity monitors. Refactors ai cooldowns a bit (#82640) ## About The Pull Request Nother bit ripped out of #79498 [Implements a get_cooldown() proc to get around dumb manual overrides and empower me to optimize the findtarget logic]( |