mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
mayfools
7
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dd5915f83d |
Security: A lot of changes (#5132)
## About The Pull Request Special thanks to Cato for helping me with decisionmaking and balancing on this one [in a bunch of things here, but not all.] This PR changes a lot of things so I will be breaking it up into numbers. # 1. Security Vouchers: Primary Ported from monkestation, securirty no longer starts with a taser, but instead with two vouchers. A utility and a primary. All sec should get a utility, the HOS, ~~medic~~ and detective do not get a primary voucher. The vouchers can be redeemed at the same vendor that you get flashbangs/cuffs/donuts from. The choices are: - The default taser - The disabler and an energy shoulder holster to pair - A pepperball gun and a single clip - A flash-bulb riot shield Why the change?: - Warden might not be there to give you your preferred loadout, so even on lowpop, you get your preferred gear up to some extent. We're not giving out hellfire lasers here. It adds nothing that couldn't have been done before, frankly. - The weapons are availible roundstart already, with the exception of the pepperball, which was adjusted to match - More variety in security playstyle, allows sec officers to personalize and play in (mostly) different ways. - The disabler, which is the question I always get, is left in due to it being present in the game as a standalone tool AND some players just having a preferrence to shoot themselves in the foot, or don't like fiddling with modes on the go. The pepperball gun now has a higher shot delay, which is offset by how the weapon makes or breaks fights by applying item drop, knockdown and temporary blindness with it's reagent. Pair it with a baton and any antag who forgot a gas mask just lost. # 2. Security Vouchers: Utility The choices are: - Barrier nades x2 - Stingbangs x2 - Sec laptop, a laptop with relevant programs on it. Lets you view cameras on the go, among others. - Justice Helmet - Donuts - Weighted Space Law/Corporate Regulations. More on that later. - Security barrier projector. More on that later. - A pair of pinpointers, linked with eachother ## Weighted Space Law and Space Law changes: I'll call it space law but it's corporate regulations ok? - Space Law actually links you to wiki. Still teaches you legalese, so just use it more than once to open it. - Weighted Space Law, otherwise known as Space Law: Collecter's Edition. With a gold-coloured-metal-plated trim. Allows you to beat people with space law for 13 damage, a chance to teach them legalese so they can sue you after, and a funny message. Overall a gimmicky thing for more interesting interactions. ## Security Projector changes - Security projector can now CUFF people. Use it as handcuffs to do so. - The cuffs can be EMP'd away at a 50% chance. Makes sense according to what they are and it works for their general purpose of "infinite cuffs, but no cuffs". THE CUFFS FIZZLE OUT IF YOU LEAVE 1 SCREEN OF RANGE. This is because of the sheer amount of space you can save on cuffs by taking this 1 item in their stead, with the condition of "if you can keep them by you until you sit them in their cell.". Worse than cuffs, but a huge timesaver if you feel confident in your skills as an officer. # 3. Breaching Hammer Buff In the current meta, the breaching hammer is dead. Long-gone. Frangible rounds in shotguns, sawn off or otherwise, are much more worth it than any amount of cooperated breaching which leads to yourself being shocked as they are NOT insulated. For that reason, the hammer now takes just 1 person to breach and is resistant to electricity. It's easier to get than the frangible shotgun, it needs potentially less space counting the shots, is infinite, can be even used for dealing with insulated things as security. Simple as. Item revival, way behind meta, or even just convenience. ## Proof Of Testing <img width="1409" height="684" alt="aaaaaaaaa" src="https://github.com/user-attachments/assets/782c23ca-11bb-4ba7-8294-80086af1b134" /> <img width="307" height="269" alt="bbbbbbb" src="https://github.com/user-attachments/assets/8d75a1bb-fb2e-44d8-8338-f22ed6be62da" /> <img width="260" height="311" alt="ddddddd" src="https://github.com/user-attachments/assets/51229031-0a6d-480c-8021-0f57cd8496dc" /> <img width="193" height="181" alt="ccccccc" src="https://github.com/user-attachments/assets/97254655-60f7-4713-9673-bb6b3071d97e" /> ## Changelog 🆑 add: Security starts with a primary and utility voucher for redemption in their equipment lathe to make a choice for what they want to use as their main, nonlethal weapon that round, and a bonus piece of gear on the side. add: Corporate Regulations: Collector's Edition, a space law book with some heft and blunt force to it... add: Security holobarriers can now additionally create holographic cuffs around people, which have a chance to disappear when EMP'd, and disappear if they leave the projector's range of 9 tiles [1 screen] add: Pepperball magazines now in security vendor, premium section balance: Pepperball guns fire much slower, fire delay 8 balance: Breaching hammers can be used by 1 person to breach and are now insulated fix: Space law books now link our website's space law /🆑 --------- Co-authored-by: Alexis <catmc8565@gmail.com> |
||
|
|
baf3837ae8 |
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx |
||
|
|
7a3ad79506 |
All camelCase (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case. UNDERSCORES RULE! (#94111)
## About The Pull Request It's just a partial cleanup of anti-[STYLE](https://github.com/tgstation/tgstation/blob/master/.github/guides/STYLE.md) code from /tg/'s ancient history. I compiled & tested with my helpful assistant and damage is still working. <img width="1920" height="1040" alt="image" src="https://github.com/user-attachments/assets/26dabc17-088f-4008-b299-3ff4c27142c3" /> I'll upload the .cs script I used to do it shortly. ## Why It's Good For The Game Just minor code cleanup. Script used is located at https://metek.tech/camelTo-Snake.7z EDIT 11/23/25: Updated the script to use multithreading and sequential scan so it works a hell of a lot faster ``` /* // Copyright 2025 Joshua 'Joan Metekillot' Kidder This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. // */ using System.Text.RegularExpressions; class Program { static async Task Main(string[] args) { var readFile = new FileStreamOptions { Access = FileAccess.Read, Share = FileShare.ReadWrite, Options = FileOptions.Asynchronous | FileOptions.SequentialScan }; FileStreamOptions writeFile = new FileStreamOptions { Share = FileShare.ReadWrite, Access = FileAccess.ReadWrite, Mode = FileMode.Truncate, Options = FileOptions.Asynchronous }; RegexOptions regexOptions = RegexOptions.Multiline | RegexOptions.Compiled; Dictionary<string, int> changedProcs = new(); string regexPattern = @"(?<=\P{L})([a-z]+)([A-Z]{1,2}[a-z]+)*(Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss)([A-Z]{1,2}[a-z]+)*"; Regex camelCaseProcRegex = new(regexPattern, regexOptions); string snakeify(Match matchingRegex) { var vals = matchingRegex.Groups.Cast<Group>().SelectMany(_ => _.Captures).Select(_ => _.Value).ToArray(); var newVal = string.Join("_", vals.Skip(1).ToArray()).ToLower(); string logString = $"{vals[0]} => {newVal}"; if (changedProcs.TryGetValue(logString, out int value)) { changedProcs[logString] = value + 1; } else { changedProcs.Add(logString, 1); } return newVal; } var dmFiles = Directory.EnumerateFiles(".", "*.dm", SearchOption.AllDirectories).ToAsyncEnumerable<string>(); // uses default ParallelOptions // https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.paralleloptions?view=net-10.0#main await Parallel.ForEachAsync(dmFiles, async (filePath, UnusedCancellationToken) => { var reader = new StreamReader(filePath, readFile); string oldContent = await reader.ReadToEndAsync(); string newContent = camelCaseProcRegex.Replace(oldContent, new MatchEvaluator((Func<Match, string>)snakeify)); if (oldContent != newContent) { var writer = new StreamWriter(filePath, writeFile); await writer.WriteAsync(newContent); await writer.DisposeAsync(); } reader.Dispose(); }); var logToList = changedProcs.Cast<KeyValuePair<string, int>>().ToList(); foreach (var pair in logToList) { Console.WriteLine($"{pair.Key}: {pair.Value} locations"); } } } ``` ## Changelog 🆑 Bisar code: All (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case, in-line with the STYLE guide. Underscores rule! /🆑 |
||
|
|
b8ca0e2884 |
Federation Legalese (#4530)
## About The Pull Request This PR adds a new language, Federation legalese, the language of Bureaucracy in the Federation (hence the name.) After reading Space Law just once, you too can pretend you know Latin. ## Why It's Good For The Game A new language for lawyers. This won't make lawyers played more, but this will let me pretend to know Latin as one ## Proof Of Testing It compiles ## Changelog 🆑 ReturnToZender add: Federation legalese is now a selectable language /🆑 --------- Co-authored-by: Alexis <catmc8565@gmail.com> |
||
|
|
ace20e2dcd |
Wiki books opens a page in-game again (#89250)
## About The Pull Request Wiki is currently down but this should work once it's back. If you're on 516 or above it will open the page in-game, if you're still on 515 then it'll do the old behavior from the PR linked in the why it's good for the game section. ## Why It's Good For The Game In https://github.com/tgstation/tgstation/pull/86891 this was removed "Until 516 with webview2 releases", well it's here now so we're fvckin back ## Changelog 🆑 qol: The wiki books for users on 516 no longer opens the page on an external website on your browser. /🆑 |
||
|
|
088409bbe3 |
Fix guide books that rely on the wiki (#86891)
## About The Pull Request This pull request aims to fix the wiki manuals. Currently the wiki manuals just show "You start skimming through the manual..." because of a bad link (http://www.tgstation13.org/wiki instead of http://tgstation13.org/wiki) which is fixed with this PR, but the issue does not end there. Because BYOND uses trident for its `browse()` function, a lot of Javascript and HTML elements do not function properly, disallowing the removal or blocking of hyperlinks which break the book entirely if they are clicked. Therefore, as a temporary solution (until BYOND 516 is released with webview2) when the user opens a book they are prompted with the following:  Although not the best solution, it makes the books have a function again and are usable. Fixes https://github.com/tgstation/tgstation/issues/77315. ## Why It's Good For The Game Makes books work again so new players can use them to be guided to the wiki resources. ## Changelog 🆑 fix: fix wiki manuals by making them open wiki page on browser /🆑 --------- Co-authored-by: san7890 <the@san7890.com> |
||
|
|
f6a31d92b6 |
Fixes Wiki Book Manuals not working (#79589)
## About The Pull Request Fixes #79545 Basically, the TGUI markdown reader that every other book uses didn't properly send the HTML printified wiki page that we had. In order to fix this, I shuffled around a bunch of code and worked in an edge case to ensure that these manuals keep functioning. In an ideal world we would be able to do something more elegant, or maybe not even rely on displaying wiki pages in-game at all, but we just gotta play the hand we're dealt and ensure that these sorts of features continue to work for right now. Also, we no longer need to both write and access raw HTML in the book framework to make everything work here. This should reduce a LOT of potential exploit vectors. ## Why It's Good For The Game  Thing work 👍 ## Changelog 🆑 fix: Nanotrasen has clarified an issue with their manual publishers, and these guides should now contain actual user-pertinent content. /🆑 |