mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 11:36:24 +01:00
docker-container
776 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f601a6ddaf | Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 | ||
|
|
e93488eb69 | Gives QM locker a flash (#96233) | ||
|
|
054653de87 |
Add a "Prison Block" holodeck map (#96032)
## About The Pull Request This adds a new "Prison Block" holodeck simulation, accessible only when the holodeck safeties are disabled (or emagged). The layout features four functional jail cells with holographic flashers, a security desk, evidence lockers, an electric death chair, and camera/record consoles. <img width="288" height="320" alt="StrongDMM-2026-05-10 20 22 24" src="https://github.com/user-attachments/assets/f32da2c6-9281-4681-b415-4eac5d9bf167" /> ## Why It's Good For The Game While many departments have dedicated holodeck programs, Security currently lacks a specialized simulation. By placing a functional brig within an emagged simulation, we create opportunities for emergent scenarios: - Antagonists now have more non-lethal options to detain and hold personnel - Security now has a backup brig during station emergencies - Power cuts, EMPs, or AI intervention can trigger instant prison breaks - With the press of a button, switching the simulation can transform it into a death trap for everyone inside This creates high-tension gameplay for both the captors and the captives. The electric chair was only used in the pirate shuttle (ruin?) and didn't work properly, so it needed some code updates. Also, I did not like how insulated gloves prevented electric shocks from working, so I made it bypass insulation. I had to add holodeck versions of brig lockers and security windoors so now any ID can open windoors/lockers. People cannot open windoors/lockers without an ID, so you must strip them of their ID when imprisoning them, otherwise they can just walk out. ## Changelog 🆑 map: Added a "Prison Block" holodeck simulation, accessible via the disabled safety/emagged menu. code: Fixed electric chairs to work, and they now bypass insulation from gloves when executing a mob. code: Added holodeck versions of brig lockers and windoors that allow anyone with a station ID card to access them. /🆑 |
||
|
|
5c5a636485 | Merge branch 'master' into upstream-feb12-2026 | ||
|
|
79b1019458 |
Ports the Holotool from yogstation (#5252)
## About The Pull Request Ports the Experimental Holotool from yogstation. An RD item that is all the tools in a compact package. ## Why It's Good For The Game RD has nothing interesting except the armor that kills you if you use it, and many people dont because of that. This gives a unique, interesting item that is useful to their kit, much like the CMO's hypo. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> <img width="273" height="314" alt="image" src="https://github.com/user-attachments/assets/7111c679-928c-4069-a4d9-ab93588d9daf" /> <img width="127" height="83" alt="image" src="https://github.com/user-attachments/assets/86346c30-3ae3-449d-b40a-3c26b05f6949" /> </details> ## Changelog 🆑 add: The RD now has an Experimental Holotool! It starts in their locker. /🆑 |
||
|
|
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 |
||
|
|
d5102b2030 |
Void stamp integration - the stampening (#94359)
## About The Pull Request Void stamp added to bureaucracy loot spawners, a new box that contains a granted, denied, and void stamp found in the lawdrobe, hop locker, bureaucracy crate, mod stamper module, and the paperwork implant gets a stamp that can cycle between 3 different ones like the mod stamp. ## Why It's Good For The Game Finally the void stamp is obtainable ## Changelog 🆑 add: The void stamp is now obtainable add: The lawdrobe now sells a box of stamps add: The head of personnel's locker now contains a box of stamps fix: The mod stamper module is now visible /🆑 --------- Co-authored-by: Fghj240 <fakeemail@notrealemail.com> |
||
|
|
3799968eb3 |
feat: new floppy disk sprites; most disks are now under the /item/disk type; adds disk stacking, uqinue styling and wrapping (#94112)
## About The Pull Request Floppy disks received a sprite upgrade, as well as unique wraps: <img width="364" height="150" alt="image" src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f" /> <img width="786" height="527" alt="image" src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348" /> You can now stack floppy disks! They also scatter around when thrown. The video also showcases new styling options with a selection of stickers! You can also write something on the disk instead of selecting an icon: https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2 MOST disks now inherit the `/item/disk` type to properly stack and do... stuff. An updatepaths script included. ## Why It's Good For The Game Old school is cool. Stacking disks makes them feel more authentic, while styling allows for more crearivity! ## Changelog 🆑 add: New unique wraps for floppy disks qol: Floppy disks can now be stacked image: New sprites and stickers for floppy disks map: Added and ran an updatepaths script refactor: Most disks are now under the base disk item type /🆑 --------- Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com> |
||
|
|
acaae89cf6 |
Removes some cargo culty global lists that don't need to be global lists (#94531)
## About The Pull Request Not really sure why these were there storing the lists in memory permanently, when these just get consumed anyway. People copy paste them all over it seems so I'm going to put a stop to that. ## Why It's Good For The Game Cleans up like 7 years of cargo cult. ## Changelog Not player-facing |
||
|
|
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 |
||
|
|
46e1f8ff27 |
Fix closets, crates, and drawers missing material tags (#94273)
## About The Pull Request This adds custom material lists to closets and crates so it shows what materials they are made out of when examined. ## Why It's Good For The Game <img width="603" height="494" alt="dreamseeker_XhFtjANMiX" src="https://github.com/user-attachments/assets/c31e0789-75ce-40d6-a56d-a52f6490da68" /> ## Changelog 🆑 fix: Fix closets, crates, and drawers missing material tags /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
c0686c63f0 | Captain gets a command megaphone (#94322) | ||
|
|
0b0c5ea91e |
Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request Extends the part of the crafting unit test that ensures consistency between the total mats of the components of a recipe (or rather, the result of said recipe) and a generic instance of the same type as its result, previously only implemented on food recipes. ## Why It's Good For The Game This ensures a degree of consistency with the material composition of various objects in the game. I couldn't do it in the original PR as that one was too big already and it took months to get it merged, and have the relative bugs fixed. Currently a WIP as I slowly deal with the unit test reports. ## Changelog 🆑 refactor: Follow-up to the crafting/material refactor from months ago. All objects crafted with stacks now inherit their mat composition (not necessarily the effects and color) by default, while previously only a few things like chair, sinks and toilets did. Report any object looking or behaving weirdly as a result. fix: The material composition of ammo boxes is no longer a 1/10 of what it's supposed to be. It was a shitty hack to make it harder to recycle empty ammo boxes. Instead, they lose materials as they're emptied now. /🆑 |
||
|
|
99fcd710e5 |
Warden can open the lethal injection locker (#94247)
## About The Pull Request The access of the injection locker matches the rest of the room and warden can open it (not normal officers) ## Why It's Good For The Game It makes no sense why this one method of execution specifically is only for HOS and captain. Warden can already shoot it open with lasers or shoot the guy being executed with lasers so it's not like it's powercreep or smth. ## Changelog 🆑 balance: The lethal injection locker is now accessible by the warden. /🆑 |
||
|
|
595b9c00b3 |
Removes Defibrillators from being printable, and adds cmo compact defib as a spy objective. (#94182)
## About The Pull Request This PR removes Defibrillators from being printable in the techlathe. Which means the Compact belt becomes CMO exclusive item. And adds a objective for spies to steal compact belt because it feeds it into the black market, which other antags can maybe buy and emagg it to turn it into a reasonable weapon This pr also makes it so the baseline of roundstarting defibs is 4 ## Why It's Good For The Game Years ago we made defibrillators never printable, and there was no way to get them unless it was trough cargo, and later we added it to the techlathe which immediatly voided the cargo crate. Medical starts with 4 defibrillators medbay usually uses 2, and then the other 2 go to medical borgs (and theres not really ever a real reason to print out another since you got plenty). We also have spefific upgrade modules for medical cyborgs which is voided by just printing a defib and inserting it into the medical borgs. TL;DR order it from cargo either 1 using your departmental budget, 2 using your free ordering console, or 3 just from cargo ## Changelog 🆑 ezel add: Compact Defibrillator is now a Spy objective balance: Compact Defib is CMO exclusive again balance: you can no longer print Defibrillators in techlathe (purchase them via cargo if needed) sprite: CMO compact defib now looks unique from other ones map: catwalk defibs trimmed to 4 instead of 6 map: metastation defib added from 3 to 4 map: wawastation defib added from 3 to 4 map: tramstation defib added from 3 to 4 map: nebulastation defibs trimmed from 6 to 4 /🆑 |
||
|
|
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 |
||
|
|
267d31d531 |
Adds a bandolier to the warden's locker (#94130)
## About The Pull Request PR title ## Why It's Good For The Game Warden is the weapons guy and even starts with a super cool unique shotgun. Bandoliers are roundstart items (can be bought from bartender's vendor when they arent using it or arent preset, can be crafted by killing five monkeys which there are plenty of) so this just removes the hastle of having to go get it. ## Changelog 🆑 balance: The warden starts with a bandolier in their locker /🆑 Co-authored-by: John Doe <markkavalerov87@gmail.com> |
||
|
|
d76d2f5438 |
Laser Gun Update: Deep Lore, Gun Variety, Pew Pew (#93520)
## About The Pull Request Updates the laser gun into four proper subtypes: Standard, Pistol, Rifle and Carbine. <img width="229" height="210" alt="image" src="https://github.com/user-attachments/assets/12c03076-8ebf-4d87-8c98-6a8cce6821db" /> Current sprites are pending a palette change. **Standard:** Functions as you would expect. Same as ever. **Pistol**: Lower charge, 20 force, normal sized, recharges faster. **Carbine**: 15 force, 26 mag, two round burst. Projectiles flight slightly faster. Cannot dual-wield. **Rifle**: 20 force. 40 mag. Two round burst. EMP resistant (not immune). Projectiles fly slightly faster. Cannot dual-wield (not that you need to). All but the rifle can be sourced from cargo. You can also buy the sovl version of the laser gun if you're especially nostalgic. ### Armory Changes The Armory now can potentially spawn either pistols, carbines or standard. The weighting leans closer to spawning carbines and standard as opposed to pistols. ### Lore Dump The laser line of weapons now all have lore. That rich, deep lore that every game needs and is totally not important at all to the meat and potatoes of the game. I'm paid by the hour ($0.00) ### Code Tidying Lasers are old and a total mess code-wise so we've tidied up while we're here. ## Why It's Good For The Game Variety is the spice of life and also some of these weapons could have used a face lift. Especially the laser carbine. Both functionaltiy wise and appearance wise. A bit of randomness in the armory means some rounds might have unique outcomes compared to others. Sometimes, items in cargo don't see particularly much use, so peppering in a few random potential deviations can maybe nudge people to utilize variant gear on future rounds. I'm obsessed with writing too much information. I blame Hatterhat. ## Changelog 🆑 add: Three variants of the laser gun; Carbine (replacing the existing one), Pistol and Rifle! Find it (possibly) in your armory today! balance: The armory laser guns might be different variants of the laser gun, rather than always being the standard. The standard is the same as ever, even if it looks different. add: If you care, the sovl version is available as a goodie. And in the hands of pirates... spellcheck: Lore! LORE FOR LASER GUNS! LOOOORE! Examine laser guns closely and you might learn more about them. balance: The new set of laser guns come with brand new sprites. /🆑 --------- Co-authored-by: StaringGasMask <62149527+Exester509@users.noreply.github.com> |
||
|
|
b7a54117ad |
Removes advanced health analyzer from CMO (#94017)
## About The Pull Request This PR removed the health analyzer from cmo roundstart gear ## Why It's Good For The Game Its a tech bypass and encourages heads to research stuff to the department can do their work better plus cmo like the ce who lost his tools get alot other QoL tools which give them the edge as a head ## Changelog 🆑 Ezel balance: Cmo no longer starts with a advanced health analyzer /🆑 |
||
|
|
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> |
||
|
|
d14e538393 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 | ||
|
|
e85674d366 |
Unified CMO blues slightly, updates garment bags slightly, updates CMO locker contents slightly (#93321)
## About The Pull Request ### CMO palette update Before - after <img width="533" height="324" alt="image" src="https://github.com/user-attachments/assets/c8a843a6-875d-4796-8c62-d24dd509147b" /> Logical follow up to #93313 and #91902 CMO now has a backpack which matches their teal palette rather than re-using the medical doctor's blue backpack CMO now starts with white sneakers instead of blue sneakers ### Garment bag update Garment bags can hold backpacks, duffels, etc. However they CANNOT store backpacks which have ANY contents, so no risk of storage nesting memes here. ### Misc Removed the defib mount from the CMO's closet Minor bugfix for being unable to swap storage positions of items which were instantiated in a storage ## Why It's Good For The Game - Much like the Paramedic, the CMO has had many cooks which have not always been on the same page, so this makes their sprite a bit more coherent. - Heads with unique packs just tossed them in their closet which is pretty spammy given we have four variants now. Putting them in the garment back makes sense. - Defib mount in CMO's locker hasn't been necessary for a while now that all treatment centers spawn with defib mounts. - Bugfix. ## Changelog 🆑 Melbert image: CMO now has unique backpack/satchel/etc. sprites which matches their teal palette. image: CMO spawns with white sneakers instead of blue sneakers. qol: Garment bags can hold empty backpacks/satchels/etc. del: Defib mount removed from CMO's locker. fix: Items stocked in a storage item by default can be mouse-drag-swapped like any other item. /🆑 |
||
|
|
b308ee9d78 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
c0f8e7bb5c |
Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request Gets, yet again, more granular with multiload capabilities, by introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with this can speed-load ammo boxes that are currently inside another gun, like revolver cylinders or internal magazines. To accomodate for this, the previous flag that covered this, `AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded magazines (e.g. internal magazines, including revolver cylinders). Also implements a base type for speedloaders, moving .38 and .357 speedloaders along with .310 stripper clips to this type, instead of being ammo boxes. Also features an UpdatePaths script for mappers, which is why there's so many files touched - repathing is a pain. Also also adds fancy types for ammo boxes, magazines, and speedloaders, which isn't particularly player-facing. Also also also makes the lionhunter ammo strip for the lionhunter rifle visually three rounds only instead of being perpetually half-full (or half-empty, depending on your pessimism). ## Why It's Good For The Game The hypothetical case of "ammo box that holds shotgun ammo" should probably... not... teleport as much of its ammo as possible into a tube-fed shotgun, but should probably still be okay at reloading magazines that actually go into shotguns. Or something. More relevant, reloading BR-38 magazines with speedloaders, while funny, probably also shouldn't be teleporting in six fresh rounds. ## Changelog 🆑 balance: General ammo boxes (not speedloaders, not stripper clips) can no longer multiload into currently loaded magazines (revolver cylinders, internal magazines). balance: Speedloaders are now a separate type from ammo boxes, and can only multiload into currently loaded magazines e.g. revolver cylinders. qol: Ammo boxes, magazines, and speedloaders now have fancier types for spawning in by admins. sprite: Lionhunter ammo clips are visually smaller now. /🆑 --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com> |
||
|
|
0b677b689a |
generic parent type for both sabre sheaths (#92300)
## About The Pull Request puts both the grass and normal sabre sheath types under a shared parent type for shared behavior. considered subtyping the storage datum but it seemed overkill. can do if requested. ## Why It's Good For The Game less copy paste. good if someone wants to add a clay-more sheath for similar (believe that exists somewhere downstream), would have done it myself but no sprites. ## Changelog N/A |
||
|
|
d74f9ae8d5 |
generic parent type for both sabre sheaths (#92300)
## About The Pull Request puts both the grass and normal sabre sheath types under a shared parent type for shared behavior. considered subtyping the storage datum but it seemed overkill. can do if requested. ## Why It's Good For The Game less copy paste. good if someone wants to add a clay-more sheath for similar (believe that exists somewhere downstream), would have done it myself but no sprites. ## Changelog N/A |
||
|
|
5833b6429c |
Allows attaching breath masks and tanks to operating tables (#91112)
## About The Pull Request Air tanks (ones that can slot into tank holders) and breath masks (normal, surgical and muzzle, which has been repathed to be a subtype of breath masks instead of being a subtype of a muzzle, for some reason) can now be attached to operating tables, and removed using wrenches/screwdrivers respectively. Right-clicking on an operating table with a mask attached will put it in your hand akin to defib paddles (similarly snapping back if you walk away). Dragging the table with an attached tank onto the person lying on it will attempt to connect their internals to the attached tank. Also since I had to adjust the table sprite, its lights now change color based on whenever there's an active patient and an active operating computer. ##### This is a commission for Improvedname/Ezel ## Why It's Good For The Game Anesthetics are incredibly clunky to use, as either the person themselves, or you as a surgeon, need to equip the tank onto whoever is being operated on, then equip and activate the mask. This should make them a bit less tedious, so maybe they'll actually see some use. ## Changelog 🆑 add: You can now attach anesthetic tanks and breathing masks to surgical tables. /🆑 |
||
|
|
7f693d1395 |
Allows attaching breath masks and tanks to operating tables (#91112)
## About The Pull Request Air tanks (ones that can slot into tank holders) and breath masks (normal, surgical and muzzle, which has been repathed to be a subtype of breath masks instead of being a subtype of a muzzle, for some reason) can now be attached to operating tables, and removed using wrenches/screwdrivers respectively. Right-clicking on an operating table with a mask attached will put it in your hand akin to defib paddles (similarly snapping back if you walk away). Dragging the table with an attached tank onto the person lying on it will attempt to connect their internals to the attached tank. Also since I had to adjust the table sprite, its lights now change color based on whenever there's an active patient and an active operating computer. ##### This is a commission for Improvedname/Ezel ## Why It's Good For The Game Anesthetics are incredibly clunky to use, as either the person themselves, or you as a surgeon, need to equip the tank onto whoever is being operated on, then equip and activate the mask. This should make them a bit less tedious, so maybe they'll actually see some use. ## Changelog 🆑 add: You can now attach anesthetic tanks and breathing masks to surgical tables. /🆑 |
||
|
|
bc2215667f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
5261efb67f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). ## Changelog 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
11d82b7995 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. Improving old code. And I want to be able to pet mobroaches while holding them too. 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
12d995aeea |
Squashed commit of the following:
commit cb550ab79badae3ffd493dcee24d96f7ad146ed6 Merge: 732416f01d8 |
||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
21f71c37f1 |
Updates door remote accesses + descriptions, implements logic for area-specific remote operation, moves remote definitions to the top of control_wand file (#90079)
## About The Pull Request This updates door remote accesses to match the accesses of their owner -- research remote = RD access, and so on. However, the Captain's door remote does not inherit this increased access, and is still relegated to command areas like the bridge, AI upload, etc. As well, it implements a logic for a given "domain" per remote holder, based on high-security areas that are iconic of the given role. As such, even though they may have access to the Vault, no other Head besides the Captain can open the Vault with their remote, the head remotes (beside security) can't open the brig (Captain didn't have access anyway), and so on. The restricted areas and the remote with authority to open that area are as follows: **Captain** - The whole station - Note: Still restricted by the remote access, which is: Bridge, Vault, AI Upload, Teleporter, Gateway, Captain's Office, EVA Head of Personnel - Gets no special "domain" for their remote, but otherwise receives HoP's round-start access Head of Security - Security Chief Engineer - Gets no special domain, because no other Head roundstart trims receive access to the CE's high-security areas of Engine or Atmospherics (besides Captain, who has a neutered remote already) Research Director - AI Upload, AI Core Chief Medical Officer - No special domain for the same reason as Chief Engineer; no other heads have unmitigated medical access Also updated remote descriptions with allusions to stereotypes/jokes for a given head (Captain's authority is dubious, QM is not a Real Head, Security remote was stolen from HoS by resentful Warden, HoP disappears more than Carmen Sandiego, CMO shouldn't have a medical license, RD is absolutely jacked) Finally, moved the remote definitions to be above the sheer cliff of the ranged interaction proc in the control_wand file. ## Why It's Good For The Game Makes remote access have parity with the access of their respective head of staff, while at the same time allowing other Heads of Staff to retain their own control over doors in their department areas. ## Changelog 🆑 Bisar balance: Door remotes now match the access of their owner (except for the Captain, whose remote access is unchanged). Door remotes, however, respect the high security area control of other remotes; as such, even if a Head can enter an area like the brig, only the Security remote works to open the entrance. /🆑 |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
8be248363c |
Moves the compact combat shotgun back into the warden's locker (#88854)
## About The Pull Request What it says on the tin. Also updates the theft objective appropriately. ## Why It's Good For The Game @MrMelbert asked me to do this, and I'm happy to oblige. Firstly, the HoS has a signature gun as it is. His X-01 Multiphase. Having another weapon in the form of the shotgun kind of steps on the toes of that weapon's presence, and clutters his arsenal somewhat. The HoS, as is, has the means of gearing for alternative equipment if needed, but let's keep it somewhat slim for weapons. Secondly; it feels more appropriate as a riot suppression weapon. And the warden puts down riots and brig invasions. He is the CQB guy after all, he should have a shotgun. It's a bit of an identity thing and a functionality thing. Of course, he could just get a riot shotgun (so can the HOS in this instance), but I think having a special one does have impact from a purely aesthetics point of view, gives more of a feeling of 'ownership' over the shotgun (which matters for the sake of whether people are determined as overgearing or not), as well as telegraphing what should be his combat strategy for him more clearly. No, there is no option where they both have shotguns. Don't bother asking. |
||
|
|
26d27268d1 |
Fixes some weird conflict that appeared 6 months ago and nobody reported (#2668)
## About The Pull Request The cap and HoS lockers had double the gun in them for some reason. Of course, nobody reported this because it was double the gun. ## Why It's Good For The Game No more double the gun ## Proof Of Testing If it compiles it most likely works ## Changelog 🆑 fix: Captain and HoS locker now have the right amount of sabres and guns respectively /🆑 |
||
|
|
e59d8ba64b | Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b | ||
|
|
bb70889f6e |
TG Upstream Part 1
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff |
||
|
|
58501dce77 |
Reorganizes the sound folder (#86726)
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑 |
||
|
|
4c4930c71d | Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit | ||
|
|
d1a37bd047 |
Sticker packs/Chief Engineer sticker (#86154)
## About The Pull Request - Changes sticker container from a generic box to a specialised 'sticker pack' with label - Adds a Chief Engineer seal of approval sticker  ## Why It's Good For The Game The CE can now quell crew concerns about machinery they find in the hallway Before:  After:  ## Changelog 🆑 LT3 add: Added Chief Engineer SEAL OF APPROVAL sticker code: Stickers now come in sticker packs, not boxes code: Stickers can now add examine text to whatever they're stuck on /🆑 |
||
|
|
c3f2895ea0 |
Balance Adjustment 8 (#29560)
* Update shotgun.dm * Update rifle.dm * what * Update packs.dm * yea * Update sec_research.dm * yeah * follow up 8 * insanity * snake eater --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> |
||
|
|
df01bd3020 |
Follow up 5 (#29554)
* mfw * harass me enough and i'll do it * yip yap * hypothetically * Update rifle.dm * Update rifle.dm * superb * Update blueshield.dm * no description |
||
|
|
4dd0fef1cf |
[READY]Armadyne Anti Trust Act Part 2: Return of The Ballistic Security (#27409)
* Update pistol.dm * Update pistol.dm * Update pistol.dm * we fix the linter * Update pistol.dm * Update pistol.dmi * Update pistol.dm * this shit * Update pistol.dm * Update pistol.dm * Update pistol.dm * Update rifle.dm * I am happy. * Update vending.dm * new file * fire delay * Create magazine.dm * finally * Update pistol.dm * bazinga * Update pistol.dm * this is impossible * Update magazine.dm * mm * as * i forgot! * Update pistol.dm * what the hell are we doing * Update pistol.dm * Update security.dm * Update pistol.dm * what * i fixed linter * help me gordon * Update allstar.dm * Update tgstation.dme * Update pistol.dm * Update pistol.dm * now what * Update tgstation.dme * i crave sex * Update smg.dm * Update magazine.dm * Update pistol.dm * Update sec_research.dm * Update sec_research.dm * accurate * mmm * Update tgstation.dme * Update sec_research.dm * Update all_nodes.dm * don't you feel silly? * Update all_nodes.dm * Update tgstation.dme * Update cargo_stuff.dm * Update cargo_stuff.dm * Update magazine.dm * Update magazine.dm * we are ready * Update all_nodes.dm * Update rifle.dm * Update gun48x32.dmi * Update rifle.dm * bird * Update rifle.dm * Why * its ready? * what * Update rifle.dm * i wish i can die soon * Update ammo.dmi * more curious about the result * Update rifle.dm * mister mister president i want to die * Update magazines.dm * what * fml lol * Update gun40x32.dmi * this is sick af * Update rifle.dm * what * Update rifle.dm * Update all_nodes.dm * what * Update rifle.dm * Update all_nodes.dm * yeah * Update all_nodes.dm * Update pistol.dm * so * Update sec_research.dm * Update rifle.dm * ready * Update head.dmi * wwhat * Update gun40x32.dmi * yeah * ww got vything done * we h int at a darker past * yeah I know that there's no pleasing you * Update magazines.dm * Update sol_fed.dm * mhm * Update rifle.dm * Update rifle.dm * Update magazines.dm * Update magazine.dm * Update cargo_stuff.dm * Update cargo_stuff.dm * Update gun_redemption.dm * what * Update rifle.dm * how did we mess this up so badly * be more thorough next time? * fixed * Update pistol.dm * Update rifle.dm * Update rifle.dm * stats and stats * Update rifle.dm * Update ammobox.dm * Update beams.dm * Update magazine.dm * Update rifle.dm * Update rifle.dm * Update magazine.dm * Update rifle.dm * Update helmet.dmi * this should fix it * Update packs.dm * Update rifle.dm * why doesnt this work is beyond me * Update shotgun.dm * Update pistol.dm * i pray this fix it before i die * Update ammobox.dm * this should work * Update shotgun.dm * this is utterly shit code thati should die for * Update shotgun.dm * fix the helmet * Update sec_clothing_overrides.dm * Update shotgun.dm * what did i do * what else? * Update pistol.dm * Update shotgun.dm * an ode to joy * Update rifle.dm * Update pistol.dm * here we go * Update tgstation.dme * Update tgstation.dme * Update tgstation.dme * so * forgive yourself * Update pistol.dmi * Update pistol.dm * Update magazine.dmi * Update magazine.dmi * it was also my plan * mmm * Update magazine.dm * Update rifle.dm * vanilla expanded * yeah * Update sec_research.dm * silly * Update all_nodes.dm * yeah * Update sec_research.dm * yes * can you even say, my name * Update shotgun.dm * this is easier * wonderful * Update tgstation.dme * Update tgstation.dme * Update rifle.dm * Update rifle.dm * done * Update tgstation.dme * yeah * Update tgstation.dme * yes * Update tgstation.dme * Update shotgun.dm * there * yeah! * it feels right * Update helmet.dmi * Update cargo_packs.dm * Update peacekeeper_clothing.dm --------- Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
c6b4fc0df8 |
[MIRROR] Cytology without plumbing (#28630)
* Cytology without plumbing * fix conflict * fix modular * fix * fix 3 --------- Co-authored-by: Andrew <mt.forspam@gmail.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
d4765c0657 |
Cytology without plumbing (#84235)
## About The Pull Request Makes Growing Vat work as a normal machine akin hydrotray. Doesn't need plunger to clear reagents, doesn't need plumbing to input reagents. Still has the plumbing port, but can be used without it. Also made the examine text a bit more compact. Removed science plumbing RCD from the game. Removed plumbing tools from cytology equipment, and added a protein powder jug instead.  Automatically fixes #84573 ## Why It's Good For The Game Plumbing was an unnecessary complication for Cytology. Growing vat is a relatively simple machine that shouldn't require plumbing knowledge. Now it works more like hydrotray, and you can pour reagents directly, and clear them out with a right click. ## Changelog 🆑 refactor: Vat grower is a normal machine now that doesn't need plumbing qol: Cytology petri dish smartfridge starts with 3 random samples add: Added protein powder condiment bottle, available in the cytology supplies locker and the cargo pack del: Removed science variant of plumbing RCD fix: Fixed a bug when machines without stock parts didn't spawn frames on deconstruction fix: Fixed vat grower not growing /🆑 |
||
|
|
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: https://github.com/tgstation/tgstation/blob/c34d56a45b0461f5e0fad3cc75e81580c3357119/code/game/objects/structures/tables_racks.dm#L300-L307 Where `new framestack(target_turf, framestackamount)` accidentally got an extra indent, and ended up in the less common half of the if-else chain. Just moving this outside of the if-else chain again fixes it. Secondly, tables had their own special deconstruction logic, which got 'standardized'. Issue. This was special to accommodate for having two different deconstruction logics: full or top only. With `deconstruct(...)` no longer being overridable, I feel it's awkward to attempt to proxy that information to the new `atom_deconstruct(...)` So we introduce a new method, `deconstruct_top`, for the screwdriver to use, which handles deconstructing only the top. ```dm /obj/structure/table/proc/deconstruct_top() var/obj/table_frame = new frame(loc) if(obj_flags & NO_DECONSTRUCTION) table_frame.obj_flags |= NO_DECONSTRUCTION else // Mimic deconstruction logic, only drop our materials without NO_DECONSTRUCTION var/turf/target_turf = get_turf(src) drop_top_mats(target_turf) qdel(src) ``` Mimicking the `NO_DECONSTRUCTION` logic of normal deconstruction, and copying over the flag onto its frames if need be. This fixes screwdriver deconstruction. ## Why It's Good For The Game Fixes #82503. We can now deconstruct the table top separately again, AND get the right materials back too. ## Changelog 🆑 00-Steven, SyncIt21 fix: Wrench table deconstruction gives the right materials again. fix: Screwdriver table deconstruction only deconstructs the top again. /🆑 * [NO GBP] Reagent grinders display reagents on examination (#82535) ## About The Pull Request - Fixes #82531 Somehow omitted this during the general maintenance thing ## Changelog 🆑 fix: Reagent grinders display reagents of its beaker on examination /🆑 * Monkeys now use height offset (and monkey tail works) (#81598) This PR adds the ability for monkeys to wear any jumpsuit in the game, and adds support for them to wear things like coats, gloves, and shoes (though this cannot be obtained in-game and is solely achieved through admins, which I also improved a bit upon by adding a defined bitfield for no equip flags). This reverts a lot of changes from https://github.com/tgstation/tgstation/pull/73325 - We no longer check height from limbs and such to bring sprites down, instead monkeys now work more similarly to humans, so the entire PR was made irrelevant, and I didn't really want to leave around dead code for the sake of having a human with longer legs. I've now also added support for Dwarfism, which makes monkeys look even smaller. Very minor change but at least now the mutation doesn't feel like it does literally nothing to monkeys (since they can already walk over tables). Here's a few examples of how it can appear in game (purely for demonstration, as it is currently intentionally made impossible to obtain in-game, though if someone wants to change that post-this PR now that support is added, feel free): Tails have been broken for a while now, the only reason you see them in-game is because they are baked into the monkey sprites. This fixes that, which means humans can now get monkey tails implanted into them (hell yeah) and monkeys can have their tails removed (also hell yeah) * Gets [weird] with (spies) by adding protect and deuteragonist-flavored objectives. (#82447) ## About The Pull Request What are their goals? Why are they doing this? gets weird with Spy objectives - namely by adding a lot more ways spies might be asked to affect various targets around the station. the first of these is by several flavors of Protecting targets (these do NOT print a success at roundend in keeping with Spy design:) - Protect (get a humanoid target off alive) - Protect Nonhuman (get an entity off alive) - Jailbreak (make sure a humanoid target escapes free) - Detain (make sure a humanoid target gets taken out arrested) the second of this is by a new escape condition: - Exile (get off-station or off the Z-level by the end of the shift - sometimes it's not just pods, you need to fuck off to space to win.) the third is through a massive increase in the number of possible: - objective templates - departments to target (Command + Service added) - specific locations to target - general classes of objects to target (medicines, floor tiles, critical infrastructure, etc.) - efforts to target (such as meals, mechs, public supplies) - ways to leave (you can be asked to abscond from the scene of your crimes?) ## Why It's Good For The Game More goofy and weird prompts to do more interesting things with Spies. One thing I think we're sorely missing in our lineup is antagonists that can act a bit more as deuteragonists - very possibly helping the crew under certain conditions and frustrating the Hell out of them in others. Since there's no way to check their objectives, and they get their gear/progression through stealing shit, they're still very much an antagonist and exist under the suspicion of doing bad... but, just going by their objectives, introducing more varied (and in some cases even benign) goals for them creates suggestions pointing to a lot more varied and interesting stories if people choose to run with it. * Adds anosmia quirk (#82206) ## About The Pull Request Adds anosmia quirk. Anosmia, also known as smell blindness, is the loss of the ability to detect one or more smells. I tried to find all smells action and (most likely) update all of them, unfortunately I can't change descriptions for this quirk. ## Why It's Good For The Game Some characters will be able to not feel smells That affect: * Gases feelings and alerts (CO2, Plasma, miasm) - you don't feel them * Bakery and cooking * Changeling ability to feel other changelings by smell * Some unimportant spans * Explosions Part I - Directional Explosions (#82429) ## About The Pull Request Adds the ability for explosions to be directional. This is achieved by adding an angle check to `prepare_explosion_turfs()` to drop any turfs outside the cone of the explosion. If the arc covers a full 360 degrees, as is the default, it will accept all the turfs without performing the angle check. Uses this functionality to rework both rocket launcher backblast and X4 explosions. Rocket launcher backblast has been changed from a shotgun of indendiary bullets to a directional explosion of similar length. X4 now uses a directional explosion to "ensure user safety". Apparently the old method of moving the explosion one tile away didn't even work, as it blew up `target` before trying to check its density for the directional behaviour. https://youtu.be/Mzdt7d7Le2Y ## Why It's Good For The Game Directional explosions - Useful functionality for a range of potential use cases, which can be implemented with minimal extra processing cost (Worst case scenario being very large directional explosions) Backblast - Looks way cooler than a bunch of projectiles, and should be significantly more functional in high-lag situations where projectile code tends to get fucky X4 - More predictable for players wanting to use it as a breaching charge, you can actually stand near the charge and not have to worry about being hoist upon your own petard. ## Changelog 🆑 add: Added support for directional explosions. add: Rocket launcher backblast is now 271% more explosive, check your six for friendlies! add: X4 charges now explode in a cone away from the user when placed on a sufficiently solid object. fix: X4 charges will now behave correctly when placed on dense atoms (note: don't try to read a variable from an atom you just blew up) /🆑 * Add balloon alerts to plunging (#82559) ## About The Pull Request Makes all plunging actions (pretty much anything using `plunger_act`) have a visible balloon alert. ## Why It's Good For The Game Makes sense that others would easily notice you plunging the shit out of something. Also, more people might finally learn that you can plunge the vent clogs instead of welding them. ## Changelog 🆑 qol: Added balloon alerts whenever you start plunging something (i.e ) /🆑 * Fixes spurious runtime on Icemoon caused by turf calling unimplemented LateInitialize() (#82572) ## About The Pull Request As of https://github.com/tgstation/tgstation/pull/82540 this runtime was happening,  `/turf/open/openspace/icemoon/` can be changed to `/turf/open/misc/asteroid/snow/icemoon/do_not_chasm` before `Initialize()` returns, which resulted in it `INITIALIZE_HINT_LATELOAD` getting returned on a turf that does not have an implementation of that proc. This should fix that. ## Why It's Good For The Game Fixes CI error * Blueprints tgui (#82565) Blueprints now use a TGUI panel instead of the old HTML one. Also did general code improvement and maintaining to blueprints in general and also destroyed the ``areaeditor`` level, repathing it to just 'blueprints'. Also adds a sound when you look at structural data cause why not Video demonstration: https://github.com/tgstation/tgstation/assets/53777086/861773fd-3d57-472d-bc94-d67b0d4f1dbd The 4 blueprint types:  Another HTML menu dead underground. This is more responsive and doesn't require constant updating to see which area you're in, feels less OOC (instead of saying "the blueprints say", just say it, you ARE the blueprints). Like, come on  Look at all this wasted space  🆑 refactor: Blueprints now use TGUI. qol: Blueprints can now be used while lying down. /🆑 * General maintenance for chem master (#82002) **1. Qol** - Adds screen tips & examines for screwdriver, wrench, crowbar & beaker insertion, removal & replacing actions - Analyzing reagents is now a client side feature & not a back end mode, meaning one person can see details of a reagent while the other can print stuff and do other operations so it's a non blocking operation. This also means 2 players can see information of 2 different reagents in their own screens, With that the overlay for analysis mode has been removed - You cannot do any tool acts on machines while printing. Balloon alerts will be displayed warning you of that. - The preferred container for the master reagent in the beaker is now showed in both condiment & chem master. It can be enabled/disabled via a CheckBox **2. Code Improvements** - Removed defines like `TARGET_BEAKER` , `TARGET_BEAKER` etc. ther functionality is implemented as params in the `transfer_reagent()` proc directly - Removed all variables relating to analyzing reagents like `reagent_analysis_mode`, `has_container_suggestion` etc. all memory savings - `printable_containers` now stores static values that can be shared across many chem masters - Updates only overlays and not the whole icon during operations for efficiency **3. Fixes** - You can hit the chem master with the screwdriver, wrench, crowbar & beaker when in combat mode - You cannot insert hologram items into the chem master - Deconstructing a condiment master will give you the circuit board already pre-programmed with that option selected so you don't need to use a screwdriver to re program it - `printing_amount` is now the maximum number of containers that can be printed at a time. Presently this number with upgraded parts would print out empty containers especially for patches. This is because `volume_per_item` does not take into consideration this var. Also this var would not give control to the player on exactly how many containers to print as whatever amount the player entered would be multiplied with this value producing a lot of waste & worse empty containers. Now this var determines exactly how many containers you can print and is imposed on the client side UI as well **4. Refactors (UI performance)** - Beaker data is compressed into a single entity & sent to the UI. This is set to null if no beaker is loaded thus saving data sent - Reuses Beaker props from chem synthesizer to reduce code - reagent REF replaced with direct type converted to text and later converted with `text2path()` cause its much faster 🆑 qol: Adds screen tips & examines for screwdriver, wrench, crowbar & beaker insertion, removal & replacing actions qol: Analyzing reagents no longer blocks other players from doing other operations. Multiple players can analyze different reagents on the same machine qol: You cannot do any tool acts on the machine while printing to prevent any side effects. qol: The preferred container for the master reagent in the beaker is now showed in both condiment & chem master. The feature can be enabled/disabled via a check box code: removed defines for reagent transfer, vars for reagent analyzis to save memory. Autodoc for other vars & procs fix: You can hit the chem master with tools like screwdriver, crowbar, wrench & beaker in combat mode fix: You cannot insert hologram items into the chem master fix: Deconstructing a condiment master will give you the circuit board already pre-programmed with that option fix: You now print the exact amount of containers requested even with upgraded parts without creating empty containers. Max printable containers is 13 with tier 4 parts able to print 50 containers. refactor: Optimized client side UI code & chem master as a whole. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> * Wraps `lowertext()` to ensure proper stringification. (#82442) Fixes #82440 This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not lost on me) to wrap around all calls of `lowertext()` and ensure that whatever we input into that proc will be stringified using the `"[]"` (or `tostring()` for the nerds) operator. very simple. I also added a linter to enforce this (and prevent all forms of regression) because I think that machines should do the menial work and we shouldn't expect maintainers to remember this, let me know if you disagree. if there is a time when it should be opted out for some reason, the linter does respect it if you wrap your input with the `UNLINT()` function. * Clowns can now make balloon... toys. And also mallets and hats. (#82288) <!-- 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. --> Clowns will now start with a box of 24 random long balloons and a skillchip in their noggin allowing them to create balloon animals by combining two of them of different colour together. Owners of the skillchip also gain access to crafting recepies of balloon mallets, vests, helmets and tophats, all created from long balloons. A crate of long balloons, with a box of balloons inside, can be bought at cargo, in case the clown runs out. I might edit this once I wake up, its 3 in the morning right now. Oh also, resprited how balloons look in inventory.  Balloon animals funny. Silly features are my favourite kind of features, and this one's open-ended too. Someone on the coder chat recommended someone would do it that one time, here it goes. <!-- 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 long balloon box to the clown's starting inventory, and a skill-chip of long lost honk-motherian knowledge to their brain. add: Added long balloons. Consequently, added balloon animals to make from such balloons. Also, balloon top hat, vest, helmet, and a mallet. Don't ask about the mallet. add: A long balloons box harvested fresh from the farms on the clown planet will be able to be shipped in a crate to the cargo department near you! add: As per requests; water balloons can now be printed at service lathe, and entertainment modsuit can now blow long balloons! image: Balloons will now have an unique sprite when in the inventory, compared when to on the ground. /🆑 <!-- 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: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Jacquerel <hnevard@gmail.com> * Quick spellcheck 'steall' (#82560) ## About The Pull Request https://github.com/tgstation/tgstation/pull/82447 quick followup to this, caught it while glancing through the code. * Fix * merge conflicts * Revert "Monkeys now use height offset (and monkey tail works) (#81598)" This reverts commit 5cfdc5972d16c6b509220e8874a927696249d36a. * fix * Fixed lateinitialize * This should cut it * Oh right * There? * Damn, here? * There * [NO GBP] Fixes spurious runtime caused by icemoon (again) (#82582) ## About The Pull Request https://github.com/tgstation/tgstation/pull/82572 I tried to fix this but there was an unaccounted race condition which just caused a separate runtime...  Since the type is being changed mid-execution `replacement_turf` will become out of scope. My bad--this should fix it now for good. --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Higgin <cdonny11@yahoo.com> Co-authored-by: NeonNik2245 <106491639+NeonNik2245@users.noreply.github.com> Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |