mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 14:08:31 +01:00
ok-behavior-trees
35
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f601a6ddaf | Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 | ||
|
+37 |
21b4095dfd |
[MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
aa4dc56835 |
Removes Station-time (more time changes) (#95744)
## About The Pull Request Removes Station-Time entirely Server Time is now NST (Nanotrasen Standard Time). SS13 takes place exactly 540 years in the future of the current day, so every second is 1 second in-game. Round Time is now PT (Pay-Time), how Nanotrasen keeps track of how long the current rotation of Employees has been working for. Telecomms uses NST due to its importance of being the communication to the blackbox. Autopsy report, clocks, scientific reports and requisitions use both timestamps due to them being more official documents that NT may need to know beyond just the current round (just for flavortext). Pretty much everything else (Det scanner, PDA, IC logs, Time-of-Death, AI law changes, Cyborg file downloading) uses PT PT <img width="305" height="217" alt="image" src="https://github.com/user-attachments/assets/cef73025-6292-4f9c-8565-197397bda2ca" /> <img width="168" height="59" alt="image" src="https://github.com/user-attachments/assets/a99db568-045d-45fc-8206-0d9a7b13c7d2" /> <img width="308" height="122" alt="image" src="https://github.com/user-attachments/assets/37ca6f17-8916-4af2-9c91-0f0707038ca5" /> https://github.com/user-attachments/assets/29445051-c98b-4af3-a657-812083aab91a Clock (Literate) <img width="748" height="292" alt="image" src="https://github.com/user-attachments/assets/c824e812-91b5-4737-858d-768336e9a7c4" /> Clock (Illiterate) <img width="446" height="94" alt="image" src="https://github.com/user-attachments/assets/90d5ea0d-eaff-4ced-aa31-ffdf0b4832a5" /> New paperwork time working properly <img width="311" height="190" alt="image" src="https://github.com/user-attachments/assets/6d048926-db61-4c91-893b-ce93e1ea7775" /> NST <img width="800" height="115" alt="image" src="https://github.com/user-attachments/assets/35ffde49-13c1-4ce7-ab24-858e48b608bd" /> <img width="1288" height="142" alt="image" src="https://github.com/user-attachments/assets/40c30d16-e0de-4efc-b460-9486eeb901d6" /> # Other changes 1. Circuit time checker will now get the value of the given input (Hour, Minute, Second) rather than the full dedisecond time converted into hour/minutes/seconds <img width="270" height="67" alt="image" src="https://github.com/user-attachments/assets/097440cc-1c45-447f-9976-18de7f9c722c" /> 2. Turns nightshift into a round event that'll last approximately 22 minutes 3. 12-hour pref (doesn't apply to the stat panel because it's global info) & removal of "TCT" time <img width="569" height="440" alt="image" src="https://github.com/user-attachments/assets/d39083b1-d248-41c0-9a1c-b2398ca203a7" /> 4. The chocolate pudding negative moodlet is now based on the server's IRL time. 5. Admins can now use ``class``, ``style`` and ``background`` (they were already given perms to use ``img`` so hiding background, which was removed to prevent image embedding, is pointless) 6. Also fixes ``year`` being off on localhost. ## Why It's Good For The Game Server Time is approximately 1s = 12s converted, not including it desyncing from lag (I believe?). This makes it pretty much impossible for people to actually use this as a unit of measurement for in-game actions. Different things also uses different timestamps which is a bit more confusing. The main change here is for accessibility and, hopefully, using time as a source of immersion. "20 minutes ago" is no longer OOC, they're just speaking in PT. There's no timezones in space, Nanotrasen Standard Time is the closest there is, but Pay Time is how NT considers when you get your paychecks, so it's what is more commonly used. It also fixes major inconsistencies between "IC time" and "Station time", things like breakfast moodlet was the first 15mins of the round despite the round starting like 7 hours in? Nukies with an L6 SAW firing down the halls was shooting like 1 bullet every 3 seconds (assuming 4 bullets per second), overall there was just a disconnect between how long time actually is in the universe. The secondary reason for this change (though it is what pushed me to actually get around to making this change) is the greater stat-panel removal. This hopes to lessen the dependence on the stat panel for station-time by making it easier to understand, and the end-goal I have is for this information to be limited to Admins & the AI (AI will get the IC version with the accurate year), so until that happens I would like to improve the use of station-time by making it consistent (for example, you should only care for PT for IC, which is also what your PDA displays), so that when it gets removed it won't leave players timeless. If you haven't already, and is interested in helping remove the stat panel, every entry that needs to be removed can be found here - https://hackmd.io/443_dE5lRWeEAp9bjGcKYw?view Closes https://github.com/tgstation/tgstation/issues/94988 ## Changelog 🆑 del: Removed Station Time, now we use NST (Nanotrasen Standard Time), which is IRL server time +540 years, and PT (Pay Time), the amount of time since the round has started. del: Station nightshift is now a Station event rather than being based on Server time. balance: Time circuit's Unit of Measure now tells the amount of time in hour/minute/seconds rather than giving the whole time translated to hours/minutes/seconds. qol: Added a 12-hour clock pref for people who prefer it. qol: Hovering over NST timestamps on official documents will now translate how much it is in PT/Shift Time. admin: Admins can now use style/class/background in their papercode. /🆑 --------- Co-authored-by: Isratosh <Isratosh@hotmail.com> |
||
|
|
f2360d64fd | Gives subsystem controllers a bitfield def to make vv easier, renames their flags var (#95439) | ||
|
|
00ccf0c6b5 |
Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts: # .github/CODEOWNERS # .github/workflows/compile_changelogs.yml # .github/workflows/stale.yml # SQL/database_changelog.md # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/__DEFINES/atom_hud.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/species_clothing_paths.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/global_lists.dm # code/_globalvars/lists/maintenance_loot.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/minor_mapping.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/shuttle.dm # code/datums/components/palette.dm # code/datums/components/surgery_initiator.dm # code/datums/diseases/advance/advance.dm # code/datums/hud.dm # code/datums/mood.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/nyctophobia.dm # code/datums/status_effects/debuffs/debuffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/slime/slime_leech.dm # code/datums/weather/weather.dm # code/game/data_huds.dm # code/game/objects/items.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/frog_statue.dm # code/game/objects/items/rcd/RLD.dm # code/game/objects/items/robot/items/hypo.dm # code/game/objects/items/stacks/medical.dm # code/game/objects/items/stacks/wrap.dm # code/game/objects/items/storage/garment.dm # code/game/objects/items/tools/medical/defib.dm # code/game/objects/items/weaponry.dm # code/game/objects/items/weaponry/melee/misc.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/curtains.dm # code/game/objects/structures/dresser.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/maintenance.dm # code/game/objects/structures/mirror.dm # code/modules/admin/greyscale_modify_menu.dm # code/modules/admin/verbs/light_debug.dm # code/modules/antagonists/ashwalker/ashwalker.dm # code/modules/antagonists/heretic/knowledge/starting_lore.dm # code/modules/antagonists/ninja/ninjaDrainAct.dm # code/modules/art/paintings.dm # code/modules/client/preferences.dm # code/modules/client/verbs/ooc.dm # code/modules/clothing/head/wig.dm # code/modules/events/disease_outbreak.dm # code/modules/holodeck/holo_effect.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/jobs/job_types/security_officer.dm # code/modules/library/skill_learning/generic_skillchips/point.dm # code/modules/mining/lavaland/ash_flora.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/basic/guardian/guardian.dm # code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defines.dm # code/modules/mob/living/carbon/life.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/mob.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mod/mod_control.dm # code/modules/mod/modules/modules_general.dm # code/modules/modular_computers/computers/item/computer_ui.dm # code/modules/paperwork/paper.dm # code/modules/paperwork/paperbin.dm # code/modules/power/lighting/light.dm # code/modules/projectiles/guns/energy/kinetic_accelerator.dm # code/modules/projectiles/projectile.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/food_reagents.dm # code/modules/reagents/chemistry/reagents/other_reagents.dm # code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm # code/modules/research/xenobiology/crossbreeding/_clothing.dm # code/modules/research/xenobiology/crossbreeding/prismatic.dm # code/modules/surgery/advanced/brainwashing.dm # code/modules/surgery/advanced/lobotomy.dm # code/modules/surgery/amputation.dm # code/modules/surgery/blood_filter.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/brain_surgery.dm # code/modules/surgery/cavity_implant.dm # code/modules/surgery/coronary_bypass.dm # code/modules/surgery/gastrectomy.dm # code/modules/surgery/healing.dm # code/modules/surgery/limb_augmentation.dm # code/modules/surgery/organ_manipulation.dm # code/modules/surgery/revival.dm # code/modules/surgery/sleeper_protocol.dm # code/modules/surgery/surgery_helpers.dm # code/modules/surgery/surgery_step.dm # code/modules/unit_tests/_unit_tests.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/icon_state_worn.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/items/_item.dmi # icons/mob/huds/hud.dmi # icons/mob/inhands/64x64_lefthand.dmi # icons/mob/inhands/64x64_righthand.dmi # icons/obj/machines/computer.dmi # tgui/packages/tgui/interfaces/OperatingComputer.jsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/types.ts # tgui/packages/tgui/interfaces/SurgeryInitiator.tsx # tools/icon_cutter/check.py |
||
|
|
c7c61ec373 |
Enhance bitrunner domain creation blackbox logging (#94913)
## About The Pull Request Improves some blackbox logging for bitrunner domain creation, by also logging how much information they had when they chose it. Also some minor code improvements, by making methods for whether the name/reward of a domain is visible. ## Why It's Good For The Game Right now, if we just look at blackbox logs, we cannot easily tell if a domain is being deliberately avoided when possible, as we cannot tell if it's run unintentionally or intentionally. Now we will record that information, so we can act on it, and hopefully perform actions to improve the domains that people attempt to avoid. |
||
|
|
b068c1e7c9 |
Fixes job changing swapping paycheck dep (#94792)
## About The Pull Request Adding job access in the HoP's console (``add_trim_access_to_card`` proc) changes the paycheck department of EVERYONE of that job, because we assign all players via one job datum using ``SStype_occupations`` (through ``get_job_type``), so everyone's bank account stores the same job datum as everyone else of their job. To fix this, we are simply going to update the job of the bank account to the new one, rather than change the paycheck department. This will keep it in-sync with the current system while fixing the bug. ## Why It's Good For The Game WTAF. |
||
|
|
a9b0ecb7d0 |
Weather anomaly (#94509)
## About The Pull Request A weather anomaly can spawn on the station, causing a sandstorm, snowstorm, or rainstorm to affect the room (and nearby rooms). These weathers range from "harmless" to "mildly damaging". They last for around five minutes. The weather doesn't start immediately, giving people time to neutralize it before it causes damage. Neutralizing the anomaly stops the weather. If they detonate, it just throw objects away from itself. <img width="407" height="225" alt="image" src="https://github.com/user-attachments/assets/2de1b797-2b17-442c-9023-11085b4849cf" /> <img width="991" height="674" alt="image" src="https://github.com/user-attachments/assets/afe5a21d-9cf8-4e9d-95ec-adef6fd12a93" /> A rarer version of the anomaly can also occur, which brings a lightning storm, which may damage the station itself. Also, reactive weather armor. When you are hit, it summons a lightning strike below nearby assailants. ## Why It's Good For The Game With the added rain mechanics I wanted to use them, but it's kinda hard to shoe them into the station because, "why is it raining on a space station that makes no sense" However, anomalies are weird, so this fits perfectly ## Changelog 🆑 Melbert add: Weather anomalies, in four variants: Rain, snow, sand, and the rare lightning storm. add: Reactive Weather Armor /🆑 |
||
|
|
6e9f2ccfc0 |
Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts: # .github/workflows/compile_all_maps.yml # .github/workflows/run_integration_tests.yml # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/_onclick/hud/credits.dm # code/controllers/subsystem/networks/id_access.dm # code/datums/diseases/advance/advance.dm # code/datums/diseases/advance/symptoms/heal.dm # code/game/machinery/doors/door.dm # code/game/objects/structures/crates_lockers/closets/secure/medical.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/modules/antagonists/malf_ai/malf_ai_modules.dm # code/modules/jobs/job_types/_job.dm # code/modules/loadout/categories/accessories.dm # code/modules/loadout/loadout_helpers.dm # code/modules/loadout/loadout_items.dm # code/modules/loadout/loadout_preference.dm # code/modules/mob/living/silicon/robot/robot_defense.dm # code/modules/mod/mod_theme.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/reagents/reagent_containers/cups/drinks.dm # code/modules/shuttle/mobile_port/variants/supply.dm # code/modules/surgery/organs/internal/eyes/_eyes.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png # icons/hud/screen_full.dmi |
||
|
|
9175f53a2e |
Adds "Department Budget" access that lets you place orders with the shopping app, gives it to warden and cargo techs (#94288)
## About The Pull Request The "NT Shopping Network" app now checks for if you have "Department Budget" access instead of command access for letting you place orders and not requests. All heads, cargo techs and the warden have it shift start but it can be given to anyone (same as EVA access) and heads of staff can add or remove it at their access consoles. Also makes warden start with the app to hint that they have access to the budget. ## Why It's Good For The Game The access itself is good because letting heads choose who has access to the department budget is obviously good. Cargo techs get it cuz they already have access to it by having access to the request consoles in cargo. Warden gets it by default because HOS is usually busy killing/arresting/patrolling while warden is the one actually managing brig and the armory. If HOS really hates that warden has access to the budget they can just remove it on their console. |
||
|
|
9c8a60a0b8 |
Removes some cargo cult string interpolations (#94210)
## About The Pull Request Macros that are strings do not need to be doing this. ## Why It's Good For The Game Less improper things to copy paste existing in the codebase |
||
|
|
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 |
||
|
|
4a6daa0785 |
New CENT_OFFICER access and mapping helpers (#94019)
## About The Pull Request Have you ever wondered, why CentCom officers' IDs have the same access as those of ERT commanders? Tired of ERT members trying on stylish officer's apparel? Well, it's time to change that. This PR adds centcom officer's access (cent_officer), as well as mapping helpers for cent_officer and cent_specops access. Death Commando officers and ERT Commanders don't have this access. It also changes access of administrative office doors to cent_officer. <details> <summary>screenshots</summary> <img width="630" height="838" alt="PR - Admiral" src="https://github.com/user-attachments/assets/a7dd48fc-4fb5-4a98-878b-a28abfadfb24" /> <img width="628" height="838" alt="PR - CentCom Commander" src="https://github.com/user-attachments/assets/6ef9dd9f-49e1-409c-8d90-75201aa21ebd" /> <img width="627" height="835" alt="PR - Special Ops officer" src="https://github.com/user-attachments/assets/055fcdb5-4f6a-4c51-b52a-7848666c7c59" /> <img width="626" height="841" alt="PR - Death Commando" src="https://github.com/user-attachments/assets/9786331f-b3c4-4c0f-bed2-831eada3a05c" /> <img width="627" height="847" alt="PR- ERT Commander" src="https://github.com/user-attachments/assets/92ff59f4-a1ea-4b43-8749-1a4bd3ac6c46" /> <img width="430" height="445" alt="PR - Mapping helpers" src="https://github.com/user-attachments/assets/ead91df7-a872-4ecc-9088-58c0a719deed" /> </details> ## Why It's Good For The Game ERT commanders will have a hard time getting CentCom apparel from the vending machine in the office. It could also be useful for custom maps and shuttles (or even new CentCom map). ## Changelog 🆑 add: Added centcom officer's access (cent_officer) add: Added mapping helpers for cent_officer and cent_specops access map: Changed access on the administrative office doors (cent_officer) /🆑 --------- Co-authored-by: AlexTheEng1neer <128976622+AlexTheEng1neer@users.noreply.github.com> |
||
|
|
d0ca474789 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 | ||
|
|
6395f12833 |
Adds a rewards bonus for nohitting combat bitrunning domains (#93531)
## About The Pull Request Completing a combat bitrunning domain grants 0.8 score bonus per player that escaped without being hit ## Why It's Good For The Game I figured it be a fun challenge to try to nohit these things, especially the megafauna ones. For a bonus. ## Changelog 🆑 Melbert add: Nohitting a combat bitrunning domain rewards a higher score. /🆑 |
||
|
|
e28e9fbdba | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 | ||
|
|
ee388c204f |
More love to paramedic: revamping/adding paramedic offices, new access and more! (#93457)
## About The Pull Request most of info in changelog, here i'll pin some screenshots. (also didnt touch catwalk on purpose since its medbay in process of rework) <details><summary>Screenshots</summary> ### Example of paramedic dispatch area, before it was used only on 2 maps: <img width="479" height="490" alt="image" src="https://github.com/user-attachments/assets/ca6f0ba6-93ed-4386-a94d-63b90985ef27" /> ### Example of how I changed pallete to match paramedic outfit: dark color mixed with blue <img width="479" height="490" alt="image" src="https://github.com/user-attachments/assets/e7acef94-2fd3-4fb4-9abf-5b83fd5cd738" /> ### Icebox <img width="463" height="320" alt="image" src="https://github.com/user-attachments/assets/3e12aa10-caac-4b6e-89e8-81690d979150" /> (moved chem storage south) <img width="534" height="476" alt="image" src="https://github.com/user-attachments/assets/863a0644-520b-40a7-9deb-f1174b252757" /> ### Tramstation <img width="518" height="504" alt="image" src="https://github.com/user-attachments/assets/f410f6c8-e2ee-423e-838c-03643ea1499f" /> (removed elevator and replaced with some public atmos equipment) <img width="353" height="727" alt="image" src="https://github.com/user-attachments/assets/df635bb5-5692-4367-b2b6-7c8df3c6c9a4" /> (theres new hall to replace the elevator path) <img width="857" height="725" alt="image" src="https://github.com/user-attachments/assets/15d12685-c9a0-44b5-a916-41766b12677c" /> ### New locker that has all kind of stuff for emergencies! <img width="186" height="155" alt="image" src="https://github.com/user-attachments/assets/c1e40fd6-44f7-48e0-a5e4-ecb9fc562627" /> </details> ## Why It's Good For The Game Since paramedic got more attention now, I feel it would be wise to separate paramedic content (jaws and medical suit) from general medbay and doctors. <img width="382" height="135" alt="image" src="https://github.com/user-attachments/assets/750e0d4c-7011-41e5-8ec4-d5f05f6c3515" /> For locker part: I think paramedic should have own locker with all kind of emergency items/drip items instead of bloating items on the tables. ## Changelog 🆑 add: Added new medical access for paramedics. map: Added paramedic dispatch on: TramStation and IceBox, removed elevator from Tram and moved chemstorage on IceBox. map: Paramedic dispatch area is used on every paramedic office now. map: Medical MODsuit and Jaws of Recovery moved to paramedic office. map: Redesigned northern medbay on MetaStation. sprite: Paramedic locker was added. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
9b282a850e | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
a1fdc715df |
Request Emergency Temporary Access - RETA (#92753)
<img width="819" height="348" alt="image" src="https://github.com/user-attachments/assets/0424ec76-2648-43d3-8e94-d44558b44bcf" /> ## About The Pull Request Follow up from #92751 - Not to conflict with it but as an idea on how to change it for the long run. Paramedics currently start with broad department access. This proposal replaces that by granting temporary department access only when an emergency is called. When a player presses "Call X" on a Requests Console, responders called receive temporary access to the common work areas of that department.  > [Security] The Automated Announcement System coldly states, "SECURITY EMERGENCY in Research Lab! (Called by Sloan Keppel, Scientist) RETA door access granted to responders." > [Science] The Automated Announcement System coldly states, "RETA activated (Called by Sloan Keppel, Scientist). Security personnel now have temporary access to your areas." They do not receive access to sub rooms or high risk areas. - Access lasts 5 minutes (configurable) - Access is removed when the timer expires or the emergency is resolved - No mapping changes are required (uses existing request consoles) - Removes Paramedics round start access but gives them external access to rescue bodies in space by default - Flashing blue lights on doors affected by temporary access <img width="897" height="837" alt="image" src="https://github.com/user-attachments/assets/97980cb4-3481-44b6-9f96-fc241ca16f57" /> **The full document is here: https://hackmd.io/@NM8HxpG_Toahg5pimrpsKw/Hk0tKq3Yxe** **Wiki documentation for players and admins: https://wiki.tgstation13.org/Guide_To_RETA** ## Why It's Good For The Game - Removes paramedics’ broad “Doctor+” access. - Keeps them effective as emergency responders. - Responders must be called in OR access upgraded. - Keeps sensitive areas secure. - Prevents spam or stacking through cooldown. - Scales across all maps without mapper work. - Gives admins a new tool for temp department wide access - Dedicated logging file and unit tests - Very performant, only affects living players with connected mind - Gives Request Consoles more use as an alarm button and further utility - Imagine later on "Request Janitor" which sorts access and tells Janitor where needed ## Changelog 🆑 add: RETA System - Request Consoles give temporary access to responders when used for some areas. Paramedics lose broad access but get external space access. qol: Request consoles now show name and job role on call message & Cooldown on spamming calls + sound prompt qol: Medibot access no longer based on Paramedic trim ID - Still has original access image: Added "lights_reta" for temporary door access when in effect admin: Gives admins "RETA door access" verb for giving department wide area access on maps. config: New config settings for RETA /🆑 |
||
|
|
edb85b2d0c |
Refactors say modes and custom say verbs. Extends custom say verbs to more situations, forwards more spans. (#92127)
## About The Pull Request Oh man, so this entire pr started because of two things: 1. A kinda hacky fix to #92123 that got closed a good while ago. 2. A borg I know mentioning you can't do custom say verbs over robotic talk. Which subsequently led me down this rabbit hole of say modes and custom say verbs. So! The most wide-reaching thing this does is merge the custom say verb/radio emote logic that used to be specialcased in `compose_message(...)` into `say_quote(...)`, renaming this to `generate_messagepart(...)` with its new functionality. This means things that don't use the exact same chain as living things talking normally can still generate custom say verbs if given that message modifier. Then, we split up say modes into a "can we do this" and "try to do this" check to reduce conflicts (like #92123), and forward more of our data to the latter. This allows us to then edit the say modes to actually make use of that data, and with the previous addition of `generate_messagepart(...)` allow for custom say verbs to be used. In doing this I realized the logging was kind of awkward and all over the place, so we create the new logging helper `log_sayverb_talk(...)` which handles selecting how we should log things based on the given message modifiers. For better or worse I forgot about this pr for a few weeks, so I don't perfectly remember all the details, but those are the big key parts. ## Why It's Good For The Game Fixes #92123. I think custom say verbs are some of the best flavour we have for talking over radio, and any situation benefits from that being possible. It's great to be able to tap your microphone, and it's hilarious for an AI to be able to emote beaming an image directly into the heads of their borgs over robotic talk. The rest is mostly cleanup. |
||
|
|
089c6a8f94 |
Refactors say modes and custom say verbs. Extends custom say verbs to more situations, forwards more spans. (#92127)
## About The Pull Request Oh man, so this entire pr started because of two things: 1. A kinda hacky fix to #92123 that got closed a good while ago. 2. A borg I know mentioning you can't do custom say verbs over robotic talk. Which subsequently led me down this rabbit hole of say modes and custom say verbs. So! The most wide-reaching thing this does is merge the custom say verb/radio emote logic that used to be specialcased in `compose_message(...)` into `say_quote(...)`, renaming this to `generate_messagepart(...)` with its new functionality. This means things that don't use the exact same chain as living things talking normally can still generate custom say verbs if given that message modifier. Then, we split up say modes into a "can we do this" and "try to do this" check to reduce conflicts (like #92123), and forward more of our data to the latter. This allows us to then edit the say modes to actually make use of that data, and with the previous addition of `generate_messagepart(...)` allow for custom say verbs to be used. In doing this I realized the logging was kind of awkward and all over the place, so we create the new logging helper `log_sayverb_talk(...)` which handles selecting how we should log things based on the given message modifiers. For better or worse I forgot about this pr for a few weeks, so I don't perfectly remember all the details, but those are the big key parts. ## Why It's Good For The Game Fixes #92123. I think custom say verbs are some of the best flavour we have for talking over radio, and any situation benefits from that being possible. It's great to be able to tap your microphone, and it's hilarious for an AI to be able to emote beaming an image directly into the heads of their borgs over robotic talk. The rest is mostly cleanup. |
||
|
|
16aa15a136 |
Changes human name updates to be request-based instead of being automatically done every single tick (#92393)
## About The Pull Request
Changes human name to update whenever anything that could result in
their visible name changing occurs, such as changing IDs, equipping
gasmasks, picking potted plants, etc. Currently name updates occur every
``Life()`` tick and in a few "special" cases, which causes a lot of name
changes from sources such as equipment to not apply until the mob ticks,
and makes us waste a tiiiny bit of CPU time on name updates.
I've also slighly cleaned up human /Life() and made species'
``spec_life()`` not run when the mob is dead, as it was causing certain
unintended interactions, such as slimepeople regenerating blood while
dead.
## Why It's Good For The Game
Microoptimization, ensures that correct names are always used (in case
something could update their name but the mob hasn't ticked yet), plus
its just a cleaner implementation
(cherry picked from commit
|
||
|
|
87e1ef6f64 |
Changes human name updates to be request-based instead of being automatically done every single tick (#92393)
## About The Pull Request Changes human name to update whenever anything that could result in their visible name changing occurs, such as changing IDs, equipping gasmasks, picking potted plants, etc. Currently name updates occur every ``Life()`` tick and in a few "special" cases, which causes a lot of name changes from sources such as equipment to not apply until the mob ticks, and makes us waste a tiiiny bit of CPU time on name updates. I've also slighly cleaned up human /Life() and made species' ``spec_life()`` not run when the mob is dead, as it was causing certain unintended interactions, such as slimepeople regenerating blood while dead. ## Why It's Good For The Game Microoptimization, ensures that correct names are always used (in case something could update their name but the mob hasn't ticked yet), plus its just a cleaner implementation |
||
|
|
9494021f16 |
[NO GBP] Silo logging hotfix 2 (includes hotfix 1): Multitool linking, decon/recon, funky define fix (#92349)
## About The Pull Request Includes #92346 Additionally, fixes a non-pattern define that would fling the silo logging formatting off its spinwheel when it would recursively jsonify the logs. Adds an id_read_failure for disassembling ore silos logging all their dropped materials. ## Why It's Good For The Game Hotfixes for a PR ## Changelog 🆑 Bisar fix: Ore silos should be able to be connected/disconnected/disassembled without any issues now. fix: The define for CENTCOM_SPECOPS was incorrectly formatted; it has been fixed. /🆑 |
||
|
|
ff7ee72146 |
Ore silo logging & access refactor; UI updates, single-target bans, more robust logging information, more robust access control (#91142)
## About The Pull Request
# More robust logging
## Ore silo logs have now been refactored in the UI to display:
- Number of sheets is now the relative unit when displaying a given log.
- Instead of `100 iron` being displayed when removing one sheet, it just
says `1 iron`
- Instead of `25 iron` being displayed when using a quarter sheet, it
just says `0.25 iron`
- All information from ID_DATA(log_user) now sent to tgui backend
- The items rendered to ore silo users are:
- Name on ID, job on ID
- If the ID's bank account (if one is registered) is one of the ore
silo's banned users
- If the user for a given entry was wearing a chameleon card, they will
always appear unbanned
- NOTE: The bank account ID # is (currently) not shown to players using
the ore silo.
- Full log information is rendered within a dropdown; the dropdown
one-liner shows
- Action (deposit, eject, item created)
- Amount (deposit/eject? amount of material used. item created? number
of items created.)
- Either name of material (if deposit/eject) or the name of items
crafted
- The name of the user who performed a given operation (if wearing an
unbanned ID) or ID_READ_FAILURE (if ore silo ID requirement has been
disabled and the person is not wearing an ID)
- As name, but instead, the job of the ID (or ID_READ_FAILURE)

# Access control improvements
## Single-user bans
- Anyone with QM access (not silicons) can now ban/unban a user from a
given log from using the ore silo
- Bans are associated to bank account IDs.
- Wearers of chameleon cards bypass any ban restrictions.
- Anyone with QM access on their worn card bypasses ban restrictions.
- Silicons bypass ban restrictions.
- QM access requirement is removed if the ore silo is emagged.
- Silicons can ban/unban people if the ore silo is emagged.
## Worn ID requirement
- Enabled at roundstart, can be disabled by anyone with QM access (not
silicons)
- If enabled, you must be wearing an ID with a bank account associated
to it to use ore silo materials.
- Wearers of chameleon cards bypass this restriction (so-called ID
requirement free thinkers wearing chameleon ID cards)
- QM access requirement to toggle removed if emagged.
- Silicons can toggle this on/off if the ore silo is emagged.
# Access control radio notifications
## Access control operations reported on the radio
- Any operations for access control are reported on radio channels.
- Currently, the policy is always the default.
- In the future, the ore silo UI will allow the quartermaster to modify
what operations are reported on what channels (petty QM broadcasting ban
reports on Common)
- Current default policy:
- Reported on COMMON channel:
- Anyone but the Captain attempts to ban someone with QM access from the
ore silo (nice try dumbass)
- Ore silo ID requirement toggling
- Reported on COMMAND channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access attempts to ban/unban someone.
- Anyone without QM access attempts to toggle the restriction for ID.
- Silicons attempting to tamper with the ID requirement restriction
- Silicons attempting to tamper with the ban/unbanned user list
- A ban attempt failing because a given log entry had a user with no
bank ID.
- Reported on SECURITY channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access tampering with the silo.
- Reported on SUPPLY channel:
- Command channel reports.
- Reporting to the radio is disabled if the ore silo is emagged.
## Modifications to the remote_materials component
- Strictly encompass the behavior for connecting/disconnecting ore silos
to material receptacles (RCDs, machines, etc) into procs on the
component, instead of handling it all over the place
## Why It's Good For The Game
Gives people with ore silo access more fine grained control over ore
silo use without having to resort to heavy-handed fabricator lockouts
Makes the logging on the ore silo more robust so we can make sure we
kill the right Roboticist for using all the materials
Offers an avenue for sidestepping all of this with a chameleon card or
emag if a given traitor (organic or otherwise) is particularly opposed
to DRM mats.
https://github.com/user-attachments/assets/effd2c63-509c-4d33-992f-837a0d62b935
## Changelog
🆑 Bisar
add: The ore silo has had a significant expansion to its logging
capabilities.
add: The ore silo now allows any ID with Quartermaster access (NOT
SILICONS!) to ban/unban specific users from the silo.
add: The ore silo now has a toggle (on by default) that a user of ore
silo materials has an ID with an associated bank account. This can be
toggled by anyone with Quartermaster access (NOT SILICONS!)
add: NanoTrasen discounts any reports that Syndicate contraband
(cryptographic sequencer, agent card) can be used to circumvent any
protocols instituted on the ore silo access control routines.
add: The ore silo now announces operations to ban/unban users and
enable/disable ID requirements on radio channels (check the Github for
actions reported to what channels.)
add: The tgui interface for ore silo log entries has been reworked.
refactor: The code for logging a given access to ore silo materials has
been significantly refactored.
qol: Ore silo log entries now display materials spent in terms of sheets
rather than the obfuscated absolute-units previously display (1 iron
ejected instead of -100 iron, 0.25 used in a craft instead of -25 iron)
/🆑
|
||
|
|
07f6b7e879 |
[NO GBP] Silo logging hotfix 2 (includes hotfix 1): Multitool linking, decon/recon, funky define fix (#92349)
## About The Pull Request Includes #92346 Additionally, fixes a non-pattern define that would fling the silo logging formatting off its spinwheel when it would recursively jsonify the logs. Adds an id_read_failure for disassembling ore silos logging all their dropped materials. ## Why It's Good For The Game Hotfixes for a PR ## Changelog 🆑 Bisar fix: Ore silos should be able to be connected/disconnected/disassembled without any issues now. fix: The define for CENTCOM_SPECOPS was incorrectly formatted; it has been fixed. /🆑 |
||
|
|
988ca0b482 |
Ore silo logging & access refactor; UI updates, single-target bans, more robust logging information, more robust access control (#91142)
## About The Pull Request
# More robust logging
## Ore silo logs have now been refactored in the UI to display:
- Number of sheets is now the relative unit when displaying a given log.
- Instead of `100 iron` being displayed when removing one sheet, it just
says `1 iron`
- Instead of `25 iron` being displayed when using a quarter sheet, it
just says `0.25 iron`
- All information from ID_DATA(log_user) now sent to tgui backend
- The items rendered to ore silo users are:
- Name on ID, job on ID
- If the ID's bank account (if one is registered) is one of the ore
silo's banned users
- If the user for a given entry was wearing a chameleon card, they will
always appear unbanned
- NOTE: The bank account ID # is (currently) not shown to players using
the ore silo.
- Full log information is rendered within a dropdown; the dropdown
one-liner shows
- Action (deposit, eject, item created)
- Amount (deposit/eject? amount of material used. item created? number
of items created.)
- Either name of material (if deposit/eject) or the name of items
crafted
- The name of the user who performed a given operation (if wearing an
unbanned ID) or ID_READ_FAILURE (if ore silo ID requirement has been
disabled and the person is not wearing an ID)
- As name, but instead, the job of the ID (or ID_READ_FAILURE)

# Access control improvements
## Single-user bans
- Anyone with QM access (not silicons) can now ban/unban a user from a
given log from using the ore silo
- Bans are associated to bank account IDs.
- Wearers of chameleon cards bypass any ban restrictions.
- Anyone with QM access on their worn card bypasses ban restrictions.
- Silicons bypass ban restrictions.
- QM access requirement is removed if the ore silo is emagged.
- Silicons can ban/unban people if the ore silo is emagged.
## Worn ID requirement
- Enabled at roundstart, can be disabled by anyone with QM access (not
silicons)
- If enabled, you must be wearing an ID with a bank account associated
to it to use ore silo materials.
- Wearers of chameleon cards bypass this restriction (so-called ID
requirement free thinkers wearing chameleon ID cards)
- QM access requirement to toggle removed if emagged.
- Silicons can toggle this on/off if the ore silo is emagged.
# Access control radio notifications
## Access control operations reported on the radio
- Any operations for access control are reported on radio channels.
- Currently, the policy is always the default.
- In the future, the ore silo UI will allow the quartermaster to modify
what operations are reported on what channels (petty QM broadcasting ban
reports on Common)
- Current default policy:
- Reported on COMMON channel:
- Anyone but the Captain attempts to ban someone with QM access from the
ore silo (nice try dumbass)
- Ore silo ID requirement toggling
- Reported on COMMAND channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access attempts to ban/unban someone.
- Anyone without QM access attempts to toggle the restriction for ID.
- Silicons attempting to tamper with the ID requirement restriction
- Silicons attempting to tamper with the ban/unbanned user list
- A ban attempt failing because a given log entry had a user with no
bank ID.
- Reported on SECURITY channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access tampering with the silo.
- Reported on SUPPLY channel:
- Command channel reports.
- Reporting to the radio is disabled if the ore silo is emagged.
## Modifications to the remote_materials component
- Strictly encompass the behavior for connecting/disconnecting ore silos
to material receptacles (RCDs, machines, etc) into procs on the
component, instead of handling it all over the place
## Why It's Good For The Game
Gives people with ore silo access more fine grained control over ore
silo use without having to resort to heavy-handed fabricator lockouts
Makes the logging on the ore silo more robust so we can make sure we
kill the right Roboticist for using all the materials
Offers an avenue for sidestepping all of this with a chameleon card or
emag if a given traitor (organic or otherwise) is particularly opposed
to DRM mats.
https://github.com/user-attachments/assets/effd2c63-509c-4d33-992f-837a0d62b935
## Changelog
🆑 Bisar
add: The ore silo has had a significant expansion to its logging
capabilities.
add: The ore silo now allows any ID with Quartermaster access (NOT
SILICONS!) to ban/unban specific users from the silo.
add: The ore silo now has a toggle (on by default) that a user of ore
silo materials has an ID with an associated bank account. This can be
toggled by anyone with Quartermaster access (NOT SILICONS!)
add: NanoTrasen discounts any reports that Syndicate contraband
(cryptographic sequencer, agent card) can be used to circumvent any
protocols instituted on the ore silo access control routines.
add: The ore silo now announces operations to ban/unban users and
enable/disable ID requirements on radio channels (check the Github for
actions reported to what channels.)
add: The tgui interface for ore silo log entries has been reworked.
refactor: The code for logging a given access to ore silo materials has
been significantly refactored.
qol: Ore silo log entries now display materials spent in terms of sheets
rather than the obfuscated absolute-units previously display (1 iron
ejected instead of -100 iron, 0.25 used in a craft instead of -25 iron)
/🆑
|
||
|
|
268f2619bd |
SSid_access now has a proc for getting information about an ID holder from their ID, there is also a define to invoke this proc in a less verbose way (#91269)
<!-- 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 As part of the ore silo logging PR I'm working on I needed a way to get the information on someone's ID in a robust and consistent way. I decided on adding this proc to SSID_access and also adding a define to invoke it since it's otherwise quite verbose. ``` /datum/controller/subsystem/id_access/proc/__in_character_record_id_information( atom/movable/target_of_record, bypass_chameleon = FALSE ) as /alist #define ID_DATA(subject) SSid_access.__in_character_record_id_information(subject) ``` This proc expects either a living mob or an ID. It returns an alist of: "Name" Current ID name "Age" Current ID age "Assignment" Current ID job "Account ID" ID# of the attached bank account if a standard ID, random number if chameleon ID "Account Holder" Name of attached bank account holder if one is attached, current ID name if chameleon "Account Assignment" 'title' of the job datum of the attached bank account if normal ID, current ID name if chameleon "Accesses" a list of the accesses on the ID, in the style of our other access lists Additionally, if it fails to read an ID, it also adds [ID_READ_FAILURE] = ID_READ_FAILURE Finally, there are overrides for if The card is a chameleon card. The being scanned is a silicon. Which appends, respectively, .[SILICON_OVERRIDE] = SILICON_OVERRIDE .[CHAMELEON_OVERRIDE] = CHAMELEON_OVERRIDE And does special handling. This collects a significant quantity of relevant information into a single convenient proc call, which is also named to reflect that the information returned is meant to serve as an in character record of what is being read (if it is used anywhere). <!-- 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 Offers standardized information returned from an ID for scenarios where the information of an ID is especially relevant, rather than writing boilerplate ID reading code for varying situations. <!-- 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 its 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. --> 🆑 Bisar code: A proc has been added to the subsystem for ID access to serve to standardize the way information is read and returned from a given ID. /🆑 <!-- 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. --> |
||
|
|
a5a4b83a25 |
Sets prettier to run on the repo (#91379)
Prettier (an auto formatter) is set to only run within the tgui folder currently. This removes that limitation, allowing it to automatically format all supported files in the repo (.js, .html, .yml [etc](https://prettier.io/docs/)) I made a few exceptions for bundled and generated files I'm of the opinion that code should look uniform and am lazy enough to want CTRL-S to format files without having to think beyond that |
||
|
|
febf4308d4 |
SSid_access now has a proc for getting information about an ID holder from their ID, there is also a define to invoke this proc in a less verbose way (#91269)
<!-- 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 As part of the ore silo logging PR I'm working on I needed a way to get the information on someone's ID in a robust and consistent way. I decided on adding this proc to SSID_access and also adding a define to invoke it since it's otherwise quite verbose. ``` /datum/controller/subsystem/id_access/proc/__in_character_record_id_information( atom/movable/target_of_record, bypass_chameleon = FALSE ) as /alist #define ID_DATA(subject) SSid_access.__in_character_record_id_information(subject) ``` This proc expects either a living mob or an ID. It returns an alist of: "Name" Current ID name "Age" Current ID age "Assignment" Current ID job "Account ID" ID# of the attached bank account if a standard ID, random number if chameleon ID "Account Holder" Name of attached bank account holder if one is attached, current ID name if chameleon "Account Assignment" 'title' of the job datum of the attached bank account if normal ID, current ID name if chameleon "Accesses" a list of the accesses on the ID, in the style of our other access lists Additionally, if it fails to read an ID, it also adds [ID_READ_FAILURE] = ID_READ_FAILURE Finally, there are overrides for if The card is a chameleon card. The being scanned is a silicon. Which appends, respectively, .[SILICON_OVERRIDE] = SILICON_OVERRIDE .[CHAMELEON_OVERRIDE] = CHAMELEON_OVERRIDE And does special handling. This collects a significant quantity of relevant information into a single convenient proc call, which is also named to reflect that the information returned is meant to serve as an in character record of what is being read (if it is used anywhere). <!-- 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 Offers standardized information returned from an ID for scenarios where the information of an ID is especially relevant, rather than writing boilerplate ID reading code for varying situations. <!-- 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 its 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. --> 🆑 Bisar code: A proc has been added to the subsystem for ID access to serve to standardize the way information is read and returned from a given ID. /🆑 <!-- 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. --> |
||
|
|
9db2f6916b |
Sets prettier to run on the repo (#91379)
## About The Pull Request Prettier (an auto formatter) is set to only run within the tgui folder currently. This removes that limitation, allowing it to automatically format all supported files in the repo (.js, .html, .yml [etc](https://prettier.io/docs/)) I made a few exceptions for bundled and generated files ## Why It's Good For The Game I'm of the opinion that code should look uniform and am lazy enough to want CTRL-S to format files without having to think beyond that ## Changelog |
||
|
|
29e2f867b8 |
Adds some trailing commas to lists (#90501)
## About The Pull Request I heard you liked commas. ## Why It's Good For The Game Trailing commas make everyone happy! ## Changelog Nothing anyone will notice besides downstreams adding to these lists |
||
|
|
f30800d4dc |
Subsystems meant to represent/handle in-game networks moved under their own subfolder ( no code changes ) (#90561)
## About The Pull Request While working on another PR, I noticed that there wasn't any real distinction between subsystems that function as a network for various logical components/systems in the code, and subsystems that are meant to represent what is actually an in-game network. As such, I moved what seemed to be clear representations of the functions of in-game networks under their own subfolder. This should have no effects otherwise. ## Why It's Good For The Game Per an .md I added in the folder, it helps to clearly demarcate what are backend programmatic networked systems, and what are meant to actually be a network in the game itself; the radio jammer disrupts your suit sensors and headset, not your signal relationships with DCS, and I believe having that distinction be clear at a glance of the file structure is valuable. ## Changelog 🆑 Bisar code: Subsystems that are meant to represent a network in-game have been moved into their own category inside the codebase. /🆑 |
||
|
|
d71375eafd |
Adds some trailing commas to lists (#90501)
## About The Pull Request I heard you liked commas. ## Why It's Good For The Game Trailing commas make everyone happy! ## Changelog Nothing anyone will notice besides downstreams adding to these lists |
||
|
|
98135b69dc |
Subsystems meant to represent/handle in-game networks moved under their own subfolder ( no code changes ) (#90561)
## About The Pull Request While working on another PR, I noticed that there wasn't any real distinction between subsystems that function as a network for various logical components/systems in the code, and subsystems that are meant to represent what is actually an in-game network. As such, I moved what seemed to be clear representations of the functions of in-game networks under their own subfolder. This should have no effects otherwise. ## Why It's Good For The Game Per an .md I added in the folder, it helps to clearly demarcate what are backend programmatic networked systems, and what are meant to actually be a network in the game itself; the radio jammer disrupts your suit sensors and headset, not your signal relationships with DCS, and I believe having that distinction be clear at a glance of the file structure is valuable. ## Changelog 🆑 Bisar code: Subsystems that are meant to represent a network in-game have been moved into their own category inside the codebase. /🆑 |