mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 18:45:22 +01:00
docker-container
408 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f601a6ddaf | Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026 | ||
|
|
64f76f52a9 |
Interface Science | The Mariana Trench of Feature Content (#95857)
## Interface Science You know what the problem is with our features? They're all too easy, too optimized to use. Look at Genetics; we went from a confusing UI that a 14 year old hardcoded with html into byond to a polished UI using tgui, optimized for player comfort, and gameplay has suffered. Too long we have coddled players with fun and easy content, no more I say!!! To fix ss13, I have added a feature with the most awful, unusable UI ever. It's just wires with random sequences that may or may not do something. And yet, you will use it till your fingers bleed and your eyes go white, and you will be grateful. "Thank you coder daddy", you say as you sacrifice yourself to a display of unending, procedurally generated dogshit. <img width="563" height="294" alt="image" src="https://github.com/user-attachments/assets/e56c947f-a40c-4df9-beed-672812357576" /> Or maybe you're a sick little deviant, and you don't respect me. Instead of using my awful UI, you start optimizing. You've forced the secret pulse code, and you're not going to pulse them again and again. You make your own interface by connecting it with signallers, or integrated circuits. Ahhh, you beat me! Damn it, and you're gonna get away with it too. ## About the Pull Request Adds new job content to science. Science spawns with a few "gizmo" devices and can order more through cargo. These gizmo's have random functionalities, like the strange objects you can find in maintenance. These functionalities come with different settings to change how they operate. However, there are no buttons, just wires or a voice interface. You need to solve, for example, a wire puzzle. You just pulse the wires, and if you hear ping the sequence is good, if you hear buzz its bad. Just keep going till you hear a creak sound. If you do a sequence correctly, there are a bunch of randomly generated ways this interacts with the functionality, mimicking real life settings and interactions. Imagine a TV remote with randomized buttons, and you have to map them out again. Once you've mapped the sequences, you can make an interface. For simple ones, you can just make some signaller assemblies. For the best control, you could connect it with a bunch of integrated circuit signallers, and program sequences into an integrated circuit machine. Below is a short video of how the puzzle solving works. (I can't be arsed to figure out how to record tgui, here's a video I made with my phone. Also I had the sequences written down, which I STRONGLY recommend you do.) https://github.com/user-attachments/assets/93f79f0f-df14-4ff9-8096-f079ebae7e91 <details> <summary>Actual details</summary> I have hidden the details to make exploring the feature itself more fun. The whole thing was written to be convoluted, but intuitive. You should be able to hit it with a multitool, and figure out everything from there. It will take a bit to get the gist of it. Nonetheless, for review purposes I have written down the details here. If you're reading this for non-review purposes, you should know I have embedded an internet curse that will at some point in 2026 teleport you 2 meters in a random direction. Continue reading at your own discretion. The gizmo objects is usually generated with 1 or 2 'gizmodes'. 'Gizmodes' contains the fun-ctionality, and holds different operating modes (so dubbed 'gizpulse'). You can't directly select a gizpulse, but instead it generates a bunch of mode selections. For example, a function that toggles lights has two gizpulses: toggle_on and toggle_off. There are four different mode selects: Cycle mode: Adds signal to cycle to the next gizpulse, and to activate the current gizpulse Select mode: Adds a signal for selecting every gizpulse, and a signal to activate whatever the activate gizpulse is Direct activate mode: Adds a signal for selecting every gizpulse, and also immediately activates that gizpulse Cycle-active mode: Cycles to the next mode, and activates it (inconvenient but only has 1 signal to worry about) So a light gizmode with the randomly selected 'select mode' has three signals: select toggle_on, select toggle_off and trigger the currently selected gizpulse. Currently implemented gizmodes: - Lights: toggle on, toggle off - Move: start moving, stop moving - Food printer (its filled with the spongebob grey goop thing): print food (donut or burger) - Mood pulser (AOE): happy pulse, sad pulse, radiation pulse - Mopper: select different reagent, dump onto tile (1/2/3 range), make smoke cloud - Teleporter (5 to 15 tiles, random dir): Teleport self, teleport mobs in range 1, do both - Electric: charge from nearest cell (looks into objects and stuff), magically gain some charge, make lightning, make emp, charge nearby object, defibrillate in an area - Copier (makes fake copies of mobs and objects, visual copy only): scan objects, print objects, erase all copies - Sputter: dump oil and shake, throw self - Bad: explode, explode, explode harder, explode with fire, stab you, warning, make robot spider, breaks your bones, throws a grenade at you, radiation pulses - Some behind the scenes gizmodes (language toggle for voice interface, for example) The voice interface starts with wires, with signals to toggle the language or dump the code words. After that, you can talk to it using the code words similarly to the wire sequence to solve the rest of the gizmodes. </details> I've added two to every map, somewhere in or near the experimentor room. They may ocassionally spawn from a maintenance crate spawner <img width="611" height="331" alt="image" src="https://github.com/user-attachments/assets/3782700f-57d3-4591-9282-e0de590056e1" /> ## Why It's Good For The Game It's really difficult to have "experimentation" type features in the game. It all has to fit into 1h rounds, and people get used to it real quick. The experimentor and strange objects kinda try, but it's just one button and praying a bear doesnt spawn you explodes you. I don't claim to have solved this perfectly, but I think this is fun. You truly have to start experimenting, be systematic and write things down. If you figure out how something works, you can go to the next stage of making it more convenient to use. I think it's really fun to mess around with integrated circuits and USB's, and make, for example, a BCI controlled bluespace launchpad. So I lean into it! There's different settings to account for, and its up to you to make it usable! If you like integrated circuits, you'll love this (maybe). The gizmo functions are aimed at benefiting the station as a whole in some ways, to motivate people to make some fun systems for these to get maximum benefit! A mood pulser near a busy area will make everyone happier! (I do need to add more like these, I got distracted doing stupid shit.) |
||
|
|
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> |
||
|
|
d67ca75e37 |
kills cargo imports (#5491)
## About The Pull Request kills cargo imports with no mercy, moves it into goodies with newly-added subcategories also adds a persi only agent ID single pack per request also also tarkon and persi can buy private packs via id money ## Why It's Good For The Game ugly UI that doesn't work for other factions and needs hacks to work with cargo ui is not great ## Proof Of Testing <summary>Screenshots/Videos</summary> <img width="1268" height="1124" alt="image" src="https://github.com/user-attachments/assets/fd3d9a58-ea0b-4242-88d2-b6123a214c72" /> ## Changelog 🆑 add: cargo imports moved into it's own category with a brand subcategory system, and orderable without a private account (god why did i do this) add: persistence only agent ID single pack add: persistence and tarkon can now buy stuff via ids directly add: captain access can always unlock departmental orders fix: persistence and persistence cargo consoles sending cargo pods to the station if cargo bay is selected del: entire cargo company imports system /🆑 |
||
|
|
a614047147 |
Fixes materials market delivery crate (#95813)
## About The Pull Request Fixes materials orders being delivered in a box instead of a crate. The crate is billed as part of the order, subtracted from the order value, and boxes aren't eligible for the 200cr return credit. This results in a loss of 400 credits if there is an error in the order and the manifest is correctly stamped denied. ## Why It's Good For The Game Fixes materials orders correctly stamped 'Denied' resulting in a loss of 400 credits. ## Changelog 🆑 LT3 fix: Fixed loss of credits for correctly denied minerals market cargo manifest fix: Cargo budget materials market orders arrive in crates as expected /🆑 |
||
|
|
8a6649c8a9 |
Adds a cargo shuttle upgrade for plastic flaps and air refills. (#95393)
## About The Pull Request
We've all been there before. You send the cargo shuttle, you return it
only to find the blast doors were wide open, and air is now venting out
into space, and with the airlock cycling you are now trapped in a
freezing death trap of your own unwitting design.
This is funny and I want us to keep doing this.
But in an effort to continue to offer interesting things for cargo to
buy in a given shift, this PR offers the ability for cargo to buy an
upgrade to the cargo shuttle itself, that being 2 ~~tiny fans~~ Plastic
Flaps that are installed into the shuttle, as denoted by landmarks
mapped into the cargo shuttle.
Upon being picked up, also includes a certificate of installation. to go
onto the shuttle. Honestly, this is mostly so that I can be lazy and not
just spawn an empty crate but Ideally I open this up for future
categories of "cargo upgrades" that just spawn onto the station.
The other feature here is in shuttles having their air refilled on the
way to/from the station, as part of their subscription to air ™️
It's currently offered for the fairly steep price of 8,000 credits.
## Why It's Good For The Game
This is admittedly a luxury purchase, but, for players who are doing
well enough on credits, either through stocks, bounties, shuttle loans,
cargo events, whatever, this is something that players may want to
purchase for peace of mind, while being entirely optional in-game. The
cargo shuttle can be finicky in many ways and can tend towards easy
mistakes causing lots of pressure-related injuries in a round.
Again, this is intentionally offered at a high price point to avoid this
being an automatic purchase early into the round, but also something
that feels like an earned luxury if you have it, allowing you to focus
on your loop of buying and selling items, hustling if you will, without
caring if Larry over there is going to vent the shuttle for the
umpteenth time.
Like other tiny fans, these are not deconstruct-able and intentionally
should be locked to the cargo shuttle in practice.
|
||
|
|
42839c4fc9 |
The random supply drop event can now contain goodies and will not runtime. (#95416)
## About The Pull Request This PR tweaks how supply_packs' `generate` and `fill` procs function, so that they do not default to needing to be spawned with a crate specifically in order to properly spawn. What this allows is for the random supply drop event to be able to spawn in with a non-crate container, such as an empty briefcase. ## Why It's Good For The Game Ran into the random runtime while I was testing something non-cargo related, and was considering having a non-crate supply crate for #95393, but decided against it. Took this as a sign that I should implement it anyway. Plus, this will add even more variety to the random supply drop event's results. |
||
|
|
4910e38c5f | Changes the access and contents from the shuttle engine crate, and adds a circuitboard/flatpack for it (#95406) | ||
|
|
3a47370861 |
Adds 1/500 chance for a pizza crate to contain a Romerol pizza (#95368)
## About The Pull Request There's a 1/500 chance that 1 pizza in a pizza crate will have 6u Romerol (1u per slice). It otherwise looks like a normal pizza and comes in a normal box. ## Why It's Good For The Game Ok to start this probably isn't a good idea. This will only cause problems. But between the Nanomachine Pizza, the Bomb Pizza, the Anomalous Pizza, and the Arnold pizza I have this funny idea in my head of pizza orders just constantly go wrong in universe. And the thought is, right, if you eat Romerol... nothing happens....... immediately. So the crew orders pizza for a pizza party and goes off on their day, then 30 minutes later it turns out the entire cargo team has risen from the dead after being killed in a welder bomb accident. In the post-mortem they're looking through the leftover slices and they find trace Romerol. Maybe that's kinda funny? ## Changelog 🆑 Melbert add: Adds a 1/500 chance that the grain used to create a pizza in a pizza crate was cursed by an evil lich. /🆑 |
||
|
|
f1ed88ab46 |
Autogenerate anomaly core cargo orders (#95242)
## About The Pull Request Anomaly core cargo orders are auto-generated from subtypes of raw anomaly core. This makes it marginally easier to add new anomaly core types. ## Changelog 🆑 Melbert fix: Weather anomaly cores are orderable from cargo refactor: Anomaly core cargo orders are auto-generated - report any oddities with them. /🆑 |
||
|
|
87ef004695 |
Add handheld crew monitors to cargo (#95109)
## About The Pull Request Adds a crate of 2 handheld crew monitors to cargo. at 1.125X their station vending machine value. This currently works out to 675cr per crate. ## Why It's Good For The Game I joined medical late and the 2 initial vending machine crew monitors were gone and I was sad. Game not making players sad = good :) ## Changelog 🆑 Dominion add: Added a 3x handheld crew monitor medical crate to cargo. add: Added a goodie crate with a handheld crew monitor to cargo. /🆑 --------- Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com> |
||
|
|
ef28e00690 |
[MDB Ignore] Refactors gauze, adds Tourniquets (#95041)
## About The Pull Request 1. Refactors gauze Removes gauze var from `/stack`, adds a shared parent between tape and gauze. Behavior of "sticking thing on limb" is now a bit more generic, with there being a component to facilitate it and a framework on `/bodypart` Closes #92990 2. Adds Tourniquets A first aid item, when attached to a limb it reduces blood loss from that limb by 90%. However while attached you walk slower (if on a leg), interact slower (if on a arm), and yes, you rapidly die if you put it on your head Paramedic belts have their starting equipment changed again for the 500th time. Surgical tape -> Tourniquet Bone gel -> Bonesetter <img width="604" height="224" alt="image" src="https://github.com/user-attachments/assets/443dd5c0-44a3-4ccb-9f6a-c561bbf2fba9" /> ## Why It's Good For The Game Adds some more variety for field treatment of bleeding wounds, and in the future we can add things like "improvised tourniquets" or "improvised splints" with wooden planks. ## Changelog 🆑 Melbert add: Adds Tourniquets. While attached to a limb, reduces blood loss from that limb by 90%, but makes you walk / interact slower. (Or if you put it on your head, you die.) add: You can purchase Tourniquets from the premium section of the medical vendor add: Paramedic belt setup has changed yet again: Surgical tape replaced with Tourniquet, Bone gel replaced with Bonesetter. add: You can use all forms of tape as splint - like Gauze. Will secure a fracture but won't stop your blood from exiting. refactor: Refactored gauze entirely, report any strangeness with it (or tape, or tourniquets) /🆑 |
||
|
|
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 |
||
|
|
6c5fa75ecd |
One-Way Materials Market (#5137)
## About The Pull Request Re-enables purchase of the GMM, however the GMM can only be used to purchase materials not sell them. ## Why It's Good For The Game Let the station buy materials if they're desperate/lowpop. If people were selling insane amounts of material inflating the budget, just remove the ability to sell. Don't remove the entire machine. ## Changelog 🆑 LT3 add: Galactic materials market can be used by cargo for purchasing materials only /🆑 |
||
|
|
c7e4e90004 |
Adds a new antag, the Blood Worm (#93787)
## LTS Document Check this document before making any significant future changes to blood worms, please. https://hackmd.io/@RikuTheKiller/H1AHQSKNZx ## About The Pull Request THIS PR SHOULD ABSOLUTELY BE TM'D FIRST Blood worms are a new progression antag. When the event runs, 2 candidates are picked from ghosts and spawned in as blood worm hatchlings, which then have to grow up, do a couple objectives and take over the station. Hatchlings are weak outside of a host, while juveniles can stand their own reasonably well. Adults have high offensive power and can only be dealt with using the right gear or a lot of luck and robustness. They're meant to be a moment of glory for achieving maximum progression and they can bootstrap the next hatchlings by gathering corpses before cocooning. Each growth stage requires 30 seconds in a cocoon, which can only be created after consuming a lot of blood. There's a falloff curve on a per-blood-type basis, meaning you can't drain the same person over and over again to reach adulthood. The medbay freezer is a priority target for the blood worms and can get one of them to the juvenile stage if fully ransacked. It takes 500 blood to mature from hatchling to juvenile, and 1500 blood to mature from juvenile to adult. You can only get up to 1000 blood from synthetic sources like monkeys, and consuming synthetic blood is 30% less efficient. Blood worms can also examine living targets to see how much blood a target has, and how much growth the blood worm would gain for consuming that blood. Blood worms spawn in vents and have night vision for maneuvering in maintenance. Hatchlings can ventcrawl, while juveniles can move around by breaking things. Optionally, you can take over a host with a lot of access like the Captain to go basically anywhere, especially if nobody knows you killed the captain. Behind the scenes, host-taking kicks the host's original mind to a backseat mob. This needs the most testing in practice, but it's confirmed that it returns the host's mind back to their body, at least in testing. All mob, ability and action sprites are made by INFRARED_BARON. Legal rights were transferred to me after I paid for the commission. Note, I've been working on this massive PR for quite a while, so documenting every small change is really hard! Apologies for anything I've missed. There's a lot. Final note, admins can spawn these by either: A. Trigger the midround event via the dynamic-panel verb, under the Rulesets tab. B. Giving someone the Blood Worm antag datum via the Traitor Panel in the Player Panel for the target player. This will transform their mob into a valid Blood Worm, with all of the associated objectives and such. ### Active Abilities 1. Leech Blood (No Host) - Lets the blood worm drain blood from living targets and reagent containers. Uses an aggressive grab to restrain living targets until leeching is over, which takes around a second to initiate. Causes oxyloss during the leeching. NPC monkeys can't escape from this and it floors targets as well. 2. Spit Blood (Both) - Multi-function ability, lets the blood worm fire ranged corrosive blood spit at targets, melt restraints on their hosts by right-clicking, and as an adult, shoot a burst of blood spit at a target by right-clicking. Note of the right-click abilities, shooting bursts can't be done while in a host. (to avoid unfair stealth kills) Shooting a burst has a much longer cooldown than shooting normally. All spit types cost blood to use. 3. Invade Corpse (No Host) - Lets the blood worm take a host for themselves, consuming all of the host's blood and in essence, "becoming" the host. Any bloodloss inflicted on the host is taken as damage to the blood worm, and the blood worm retains its weakness to fire even in this state. Burn damage itself no longer has any extra damage, though. 4. Leave Host (Host) - Title, literally just leaves the host after a delay. Notably works even while the host is moving, dead, incapacitated or otherwise fucked up in any way, shape or form. 5. Inject Blood (Host) - Lets the blood worm heal its host. The potency of this increases as the worm grows up, but so does the cooldown and blood consumption. This works on organ damage, injuries, etc. 6. Mature (No Host) - Makes the blood worm enter a cocoon for 30 seconds, emerging as the next growth stage. Requires an increasing amount of consumed blood / growth as the blood worm uses it. 7. Reproduce (No Host, Adult Only) - Makes the blood worm enter a cocoon for 30 seconds, with 4 hatchlings emerging out of it, including the original blood worm, now reverted back into a hatchling as well. 8. Revive Host (Host) - If the host is in a viable state to be revived, revives them after an animation sequence plays out. ### Passive Abilities 1. Space Immunity - Blood worms are immune to the cold, low pressures and a lack of oxygen. Only the immunity to a lack of oxygen carries on to hosts from this. 2. Organ Insertion - Blood worms can insert organs into their hosts by right-clicking on them with the organ in-hand. This mainly exists to deal with hosts that lack organs, and avoids the gotcha where an adult blood worm ends up gutting their host by hitting them too hard, as they can simply fix it on the spot. 3. Life Support - Blood worm hosts don't need a heart, lungs or a liver to survive. Lungs are useful for speaking, and a liver is necessary to process reagents. 4. Regeneration - Blood worms slowly heal over time. This is nowhere near enough to overcome bleeding or heat damage, since it's 0.3 hp/s for a hatchling, 0.4 hp/s for a juvenile and 0.5 hp/s for an adult. 5. Night Vision - Blood worms can see in the dark. This doesn't extend to hosts. 6. Ventcrawling - Hatchling blood worms can ventcrawl. 7. Doorcrawling - Hatchling and juvenile blood worms can slide under doors. Doing so takes 3 seconds for a hatchling and 5 seconds for a juvenile. 8. HUD - Blood worms can tell how much blood targets have at a glance, via a blood HUD bar exclusive to them. They can also tell apart other blood worm hosts from normal people via an antag HUD. There's also an examine message they can use on living targets for even more info. ### Weaknesses 1. Heat and Fire - Blood worms quickly die to heat, their bodies are flammable and their blood will burn up if their host's core temperature is too high. The main counter to this is getting a host with flame-resistant gear. 2. Bleeding - While in a host, bleeding wounds will directly damage the blood worm itself. How much a host needs to bleed before the worm dies depends on their growth stage. Blood worm hosts keep bleeding even while dead, so just keep hitting them and they'll die. Blood worms automatically leave their hosts when they hit 10% health or lower, and their hosts bleed 50% faster than normal people. 3. Stuns - Blood worms have no way of dealing with a stunned host other than getting out. They can deal with any restraints by melting them, though. 4. Testing - Security can order a blood worm testing crate from cargo, either for a 20 minute cooldown via the security cargo interface console, or for 10000 credits via the supply console. It contains 4 single-use testers that hurt a bit when applied, but are instant to use and 100% accurate. The stopgap is that they're really fucking expensive and only work once per item. ### Screenshot <img width="280" height="132" alt="image" src="https://github.com/user-attachments/assets/00d22361-997e-4347-a0bf-aa240de40727" /> ## Why It's Good For The Game Antagonist variety, mainly. This is basically Cortical Borers 2: Electric Boogaloo. Currently, we lack any antagonists with mind control abilities. That really sucks! I've also gotten a lot of positive feedback about the antagonist while working on it. This antagonist also has great potential for roleplay, as they can take over hosts, surprise attack people by getting out of a dead corpse, talk to each other using Wormspeak, etc. I think we're also itching for variety on "pest" antagonists. Right now we just have spiders and xenos. Everybody knows these two, so why not mix it up a bit? And as for balance? Blood worms are relatively easy to dispatch when you know their weaknesses, which are extremely clear. Bleeding for hosts, fire for either one, lasers for the worms themselves. As long as you get the host in crit and keep hitting, you've pretty much won, and they can't keep spamming Inject Blood forever since they'll quickly run out of blood to use. ## Changelog 🆑 add: Added a new heavy roundstart/midround antagonist, the Blood Worm. Credit to INFRARED_BARON for the sprites! fix: Removing traits based on a source no longer causes issues with trait signals. fix: High-priority effects no longer double-trigger due to subsystem issues. fix: Weighted averaging in reagent merging code has been band-aid fixed. It's not the best, but it works. /🆑 |
||
|
|
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> |
||
|
|
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 |
||
|
|
3fd1a2008f |
Laser Gun Update: Second Pass to Fix Lore and Tweak Grammar (#94438)
## About The Pull Request Touches up laser guns' lore a bit and makes them actually add an examine_lore component for every non-base laser gun, because the component wasn't being added due to a return for every non-basic laser type. Adjusts the laser guns so they're all Type [number]/[variant], so the previous `Type 5C laser pistol` is now the `Type 5/C laser pistol`, the `Type 5R laser carbine` is now the `Type 5/R laser carbine`, the `Type 5A laser assault rifle` is now the `Type 5/A laser assault rifle`, as to denote a more obvious separation between the base iteration/version and the variant appending. ## Why It's Good For The Game The lore wasn't being added because of the component add being beyond the slapcrafting component check. The clear slash between base version and variant looks a little nicer to me. Lore grammar tweaks feel like they read a little better to me? The latter two are subjective. ## Changelog 🆑 fix: Non-base laser guns now attach their lore properly. spellcheck: Adjusted the names on the laser guns to have a slash between the numeric type/version and the variant... abbreviation? Letter? One of the two. spellcheck: Fixed some typos and adjusted the now-visible lore on the laser guns to read a little nicer, theoretically. Whether the grammar tweaks improved anything or not is subjective. /🆑 --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com> |
||
|
|
9fb7c20daa |
Cargo can buy more presents at Christmas time (#94251)
## About The Pull Request Last Christmas we had and resolved this bug #88595 where via the mechanic of buying random trash, Cargo could roll on the roulette to try and get random Christmas presents and open them for random items. This was removed because it's not supposed to work that way and was a way of exploiting Christmas cheer for personal gain, which is grinchsome behaviour. That said, being able to order Christmas presents is also kind of soulful, so this PR brings that mechanic back but on purpose this time. During the Christmas season _only_, Cargo can spend 3000 credits of their budget to order a "Surplus Christmas Gifts" crate which contains 4-6 presents _with pre-assigned recipients_. In a similar system to addressed mail, only the person written on the gift tag can open the present, so unless you're sufficiently scroogeous to collect a huge pile of presents on the cargo room floor in hopes of getting a couple with your name on (in my testing these contained raw unbaked croissant dough, and a piece of paper from a space ruin) you should mostly be using this to deliver generalised holiday cheer to the crew rather than just yourself. This PR also contains (maybe as more lines than the actual feature) a refactor changing a bunch of boolean vars on `/datum/supply_pack` into bitflags, because I needed to add one more and it seemed silly to have so many booleans. ## Why It's Good For The Game It allows those with the yuletide spirit to deliver some christmas cheer to their fellow man, isn't that the season's reason? ## Changelog 🆑 add: When the game considers it to be Christmas, Cargo can order additional Christmas gifts pre-addressed to random crew members. /🆑 |
||
|
|
72f76caea0 |
Spy loot tweaks (#94189)
## About The Pull Request 1. Ammo will no longer show as a loot option until a weapon that uses said ammo has been claimed. Some ammo, particularly shotgun ammo has unique status bypassing this, since you could reasonably acquire a shotgun from the armory, a bartender, or cargo. There is also a 10% chance that some ammo will show up anyways, to keep people on their toes. 2. If you claim another weapon of an already claimed ammo type, the ammo in the pool will be refreshed, meaning obtainable once again. 3. Unclaimed items have a 40% chance of being re-added to the loot pool. This is on top of the 80% chance for an item to not be removed from the pool when selecting loot. 4. When hard bounties empty out their loot pool, they will instead draw from the medium loot pool. Likewise medium bounties will draw from the easy pool when they run out. 5. Modified the antag info panel text slightly. 6. Made more appropriate use of `SStraitor.uplink_items`, and checks for abstract items more thoroughly. 7. Some weapons no longer come in gun cases for Spies ## Why It's Good For The Game 1. Initially the thought was Spies would just have dud bounties on occasion. They could take the time to lie low or work on their plans rather than prowl for loot. Alternatively, an aggressive spy would go after them *just in case* they got the correct gun, or a passive spy would go after them for the ability to later bribe someone carrying the correct gun. However, in practice it seems people largely just don't like having dud bounties, as it hurts the pacing. Someone who is on a roll doesn't want to sit there and do nothing. Ghommie tried to implement this earlier but I disagreed with the implementation, so here we are. 2. It would be pretty unappealing to go after a gun after realizing all the gun's ammo has been looted already. 3. I noticed in testing pools would drain themselves pretty fast. This serves as a bit of a stop-gap, and prevents items that rolled on particularly difficult targets from being lost forever. Now you can roll the dice and hope that it shows up again. 4. Might as well reward people with non-junk items if they manage to drain a tier's loot pool, especially since the top tier pool is pretty small. 5. People were oft confused about the wording of the text, thinking they'd get banned. 6. No reason to use the indexed list. 7. Having a gun case thrust into your hands is not very inconspicuous ## Changelog 🆑 Melbert balance: Ammo will no longer show up in the Spy loot pool until a weapon that uses said ammo has been claimed. Some ammo for weapons easily obtainable on station (shotgun shot) are not limited by this restriction. Also, there's a rare chance ammo will show up anyways just to keep people on their toes. balance: Claiming a weapon will refresh ammo in the loot pool that has already been claimed or cycled out. balance: Bounty rewards that no Spy claimed have a chance to re-enter the loot pool after a bounty refresh, rather than being lost for the remainder of the round. balance: When higher tier Spy bounties empty their loot pools, they will attempt to draw from lower tier pools before defaulting to telecrystals. balance: Spies no longer are rewarded with gun cases for bounties; rather just the gun itself spellcheck: Modified the Spy antag info text /🆑 |
||
|
|
9f7dc7c970 |
[MDB IGNORE] Make /obj/item/stamp abstract, create proper granted stamp subtype (#94139)
## About The Pull Request There is technically an `/obj/item/stamp/granted` in that one traitor objective refers to it and tries to override a proc on it thus making it a valid type, but not really. This changes the base `/obj/item/stamp` from being the granted stamp to being an abstract type, and creates a proper subtype for the granted stamp. ## Why It's Good For The Game Base types being concrete outside of scenarios where its intuitive are very annoying ## Changelog 🆑 code: makes /obj/item/stamp abstract, creates /obj/item/stamp/granted /🆑 |
||
|
|
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 |
||
|
|
f910a5a408 |
Re-enables Soviet crate (#4922)
## About The Pull Request Skyrat revert again. I think people should be allowed to LARP as Russians if they want. ## Why It's Good For The Game Ditto. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> </details> ## Changelog 🆑 add: Soviet Surplus has been re-enabled. /🆑 |
||
|
|
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> |
||
|
|
e28e9fbdba | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 | ||
|
|
d1962eec26 |
The Inversenning : Chiral Inversing Buffer (#93376)
## About The Pull Request This PR adds a new buffer (and accompanying Lavaland geyser) to the game: Chiral Inversing Buffer! This unique buffer allows you to instantly transmute a hidden impure or inverse reagent into its original form, no hassle with the HPLC. It can be acquired in three ways, two of which involve Cargo. You can purchase a crate containing one 30u bottle of the buffer for 600 credits, or for free through Medbay's cargo console. You can also scour Lavaland and uncover a geyser that offers unlimited buffer. The buffer itself checks if any eligible inverses or impurities are present within the holder. If there is none, the buffer will fizzle out and be effectively wasted. If there is an eligible reagent, it converts the reagent into the Inverse at a 10-to-1 ratio with the buffer. This means that buying a bottle from cargo will net you at max, 300 units of instant inversing. Do note that this buffer has the best results when added after a reaction, not during or before. https://github.com/user-attachments/assets/5f04097d-6baa-4cfd-bf0d-77f175d37acb ## Why It's Good For The Game This was made from the suggestions of my previous PR at #93316. The main issue that this PR targets is the lack of speedy access to "true" inverse reagents. The current system hides the name of most inverses on creation and only has the HPLC to reliably convert hidden inverses into their true counterpart. This can cause issues with some inverses due to them still retaining some properties of their base reagent. While that system cannot be removed as of now, this PR serves to add another alternative for Chemists to pursue if they need to purify their inverse outputs. <img width="135" height="136" alt="chiralgeyser" src="https://github.com/user-attachments/assets/1cb336ac-966e-4c4b-8cb2-68616c410f26" /> ## Changelog 🆑 add: Chiral Inversing Buffer : A new way to convert your hidden impurities and inverses into their true form! Requires a purchase from Cargo or a trip to Lavaland to acquire. balance: A new geyser has been added to Lavaland that outputs Chiral Inversing Buffer. Geyser weights have been adjusted to accommodate this addition. /🆑 |
||
|
|
e5d40d3cfe | Adds a golf cart to cargo (#92688) | ||
|
|
749643cddb |
Reworks cargo market elasticity (#93235)
## About The Pull Request What it says on the tin. Cargo now has new math for market elasticity, each parameter and what it does is explained below **1. Refactor** 1. **k_elasticity**: This is the elasticity as before applied on all exports except now this is a floating-point value that swings from `0->1` instead of 10e-10 like is the current case. This in laymen terms is the percentile of an items actual cost that is sold on cargo [0 means you get no credits, 0.5 means you get 50% of the items cost, 1 means you get 100% of the items cost]. Whenever an item is sold on cargo this value decreases by an amount that is determined by the next variable 2. **k_hit_percentile(default 5%)**: This is the value by which an export `k_elasticity` decreases whenever an export is successful for every unit of an item sold. The real formulae by which the exports elasticity decreases is dependent on the total amount sold and is as follows <pre>k_elasticity -= amount sold (1 for most cases except stacks) * k_hit_percentile</pre> So subsequent exports yield lesser profits cause the elasticity decreases. Now the rate at which the elasticity recovers is as follows 3. **k_recovery_time(default 10 minutes)**: This is the time (minimum unit should be seconds) it takes for the elasticity to rebound back to 100% after it has reached full 0 but recovery process starts immediately if it decreases at any point. So if elasticity becomes say 50% it means it would take 5 minutes to reach 100% again **2. Some Balance changes** 1. Profits earned from exporting gas is linear per mole sold so the more gas you put in the more profits you get HOWEVER the max number of credits you can make per canister is 15000 cr 2. Selling fish yields higher prices because it's no longer subject to the old elasticity formula 3. Selling 50 sheets of anything will decrease future sale price by 10% and will take 8 minutes to rebound back to 100% if it reaches 0 **3. Improvements:** - `SSProcessing` subsystem no longer processes more than 180+ export datums from round start itself but now starts out empty. It instead processes only those exports whose elasticity has been impacted and later cancels it after elasticity has reached 100% so performance of this subsystem has been drastically improved - export datums now respect `abstract_type` meaning they won't be created and can be used as a skeleton body for subtypes. So datums like `datum/material` & `datum/material/market` are not created anymore but only their subtypes are so we save processing power & memory - Shaved of a lot of dead exports that went unused ## Changelog 🆑 balance: cargo exports now have different prices with applied elasticity code: Improved performance of export code qol: stock blocks can be recycled for materials & show up as stock blocks in order console sold items refactor: refactored cargo export code in whole. Report bugs on GitHub /🆑 --------- Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> |
||
|
|
d14e538393 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 | ||
|
|
aa4cf2b136 | The nullrod refactor (the carp-sie plushie is now actually a plushie) (#93311) | ||
|
|
8aa39b75f0 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
def17fd90a |
Rare Earths! Advanced soils for botany. (#92513)
## About The Pull Request This PR adds 4 new types of soil and a holder item; the soil sack, to contain and transport said soils. <img width="496" height="378" alt="bild" src="https://github.com/user-attachments/assets/57f42a9c-c731-4195-91df-b4456ec45e7b" /> Two of the new soils + the regular old soil are available in the premium section of the nutrimax. All 5 soil types are available from cargo. It also adds two new plant traits; soil lover and semiaquatic, that allows coders to confer maluses to plants growing in trays or soil respectively. Potatoes, sweet potatoes, carrots, parsnips, cahn'roots, white and red beets currently have soil lover, reducing their produced yield by 30% and their potency randomly between 20-80% if grown hydroponically. Rice has semiaquatic which increases the amount of weeds gained by 50% if grown in soil rather than hydroponically. ## Advanced soil types ### Vermaculite #### Stats Max Nutrients: 20u Max Water: 150u #### Special Effects Multigraft: Up to 3 grafts can be cut from a plant planted in vermaculite. Graft Medium: Graft cuttiongs can be directly placed into vermaculite to create a new plant vegetatively. ### Hydrogel Beads #### Stats Max Nutrients: 15u Max Water: 300u #### Special Effects Hydroponic + Soil: Both water loving and soil loving plants can grow without maluses. Super Water: Water consumption rate is decreased by 50% ### Korta Coir #### Stats Max Nutrients: 20u Max Water: 100u #### Special Effects Fast Mushrooms: Mushrooms mature(and age) 40% faster if planted in this soil. ### Worm Castings #### Stats Max Nutrients = 35u Max Water = 200u #### Special Effects Slow Release: If the nutrients run out, 1u nitrogen will be automatically added to the nutient pool. Worm Habitat: Composting veggies in this soil has a chance to produce an extra slimy worm. ### Soil Sacks Use them on the floor to place a soil at that location. You can reverse this process by right clicking a soil with a shovel. The sacks are huge items that deals stamina damage, but have slowdown when carried. They can be wielded to remove slowdown, double the damage output and gain 25% block chance. They have unique normal and wielded inhands for each sack type. #### Price List **Soil** Nutrimax: 50 cr Cargo: 400 cr / 5 sacks **Vermaculite** Nutrimax: 100 cr Cargo: 400 cr / 3 sacks **Hydrogel** Nutrimax: 100 cr Cargo: 400 cr / 3 sacks **Coir** Nutrimax: N/A Cargo: 600 cr / 3 sacks **Worm Castings** Nutrimax: N/A Cargo: 800 cr / 3 sacks #### Misc Soil Changes Soil now have a new armour type and are generally much harder to destroy by shooting or bashing them. Fixed a bug where weeds would instantly reduce yield to 3 instead of lowering it by 1-2 per cycle. ## Why It's Good For The Game I have long been a fan of using soils in botany, they are the cheapest and easiest way to make new trays and enable many interesting strategies. The default soil is fine for what is but it kinda sucks, not only having low stats but also missing autogrow, a feature botanist have grown completely addicted and dependent on. When self sustaining trays were removed and autogrow added, it was intended as a way to keep a couple of plants alive while you ran out to do errands or grab a drink. However, the feature has devolved into basically a shift start self sustaining for all your trays and standard practice is using it on every single tray that currently is not trying to mutate. This has resulted in certain core botany mechanics like water and pests being made totally irrelevant, shrinking design space a lot. Rather than just reaching for the stick, I thought it would be fun to instead offer them a carrot in the form of an expanded toolset of soils with unique effects that cannot be replicated by trays. These new soils offer niche benefits that enable advanced botany gameplay and provides a framwork for deepening plant / tray interactions in the furture. ## Changelog 🆑 add: Added 4 new types of soil add: Added soils sacks to the nutrimax add: Added soil sack crates to cargo. balance: Soil now has higher armor values. balance: Rice now gets more weeds if grown in soil. balance: Carrots, potatoes, beets and their mutations now get reduced yield and potency if grown hydroponically. fix: Weed overgrowth no longer instantly sets yield to 3. /🆑 |
||
|
|
b308ee9d78 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
44b35180fe |
Add cooking oil, nutraslop, and beer keg to cargo supply packs (#93083)
## About The Pull Request This adds the cooking oil vat, nutraslop serving tray, and beer keg as purchasable items from cargo. I also removed the anchored state from the cooking oil and nutraslop so that they can be moved. ## Why It's Good For The Game These objects had no method to be created in game. Allowing them to be purchased via cargo should lead to more usage. I'd honestly love to see the crew's reaction to a mean chef who decides to feed the entire crew nothing but nutraslop for the shift. ## Changelog 🆑 add: Add cooking oil, nutraslop, and beer keg to cargo supply packs. Nutraslop serving trays and cooking oil vats can now be pushed and moved. /🆑 |
||
|
|
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> |
||
|
|
939f2fc9ac | Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync | ||
|
|
37a34b4cd3 |
The Grinch Who Patched Christmas: Preventing Trashy Presents (#92734)
## About The Pull Request - Fixes #88595 Cargo's gift giving was so bad it landed them on Santa's _very_ naughty list. The ~cargo techs~ elves in charge were handing out game breaking equipment. This closes a loophole that allowed players to spam dumpsters during the Christmas event for gifts that could contain admin tools and other debug loot. I've removed Christmas presents (and holiday items) from the dumpster spawns to put a stop to this. ## Why It's Good For The Game  Players were using the cargo system to purchase and dumpster dive endlessly for OP shit. During the Christmas event, these dumpsters had a high chance of spawning the special `/anything` gifts, which can contain literally any item in the game, including admin tools and debug equipment. This exploit bypassed the intended rarity of these items, which were meant to be one-time, limited gifts from Santa's bag or the Christmas tree. ## Changelog 🆑 fix: Santa has put cargo in his very naughty list for spam producing his presents by dumpster diving. This fixes Christmas presents (and other holiday items) from spawning inside dumpsters. /🆑 |
||
|
|
b348b617a3 |
Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts: # README.md # code/__DEFINES/admin.dm # code/__DEFINES/melee.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/economy.dm # code/datums/components/crafting/crafting.dm # code/datums/elements/crusher_loot.dm # code/modules/antagonists/pirate/pirate_shuttle_equipment.dm # code/modules/clothing/suits/_suits.dm # code/modules/escape_menu/leave_body.dm # code/modules/jobs/job_types/_job.dm # code/modules/mining/equipment/mineral_scanner.dm # code/modules/mob/living/living.dm # code/modules/plumbing/plumbers/pill_press.dm # tgui/packages/tgui/interfaces/Vending.tsx |
||
|
|
64af7e953d |
Adds back mounted wind turbines (#92516)
## About The Pull Request Adds portable wind turbines that can be put in your back slot or anchored to the ground. They accept a cell-powered item and charge it while you walk, or when space wind passes over them. Can be purchased for 400 credits or crafted with 3 kitchen knives, plastic, and servos. Requires a capacitor to charge things, and higher tiers charge faster, faster walkspeed also charges faster. <img width="592" height="644" alt="im222age" src="https://github.com/user-attachments/assets/e9997536-5ee0-4417-a31c-cb58666d4d07" /> https://github.com/user-attachments/assets/1cf7fce5-d385-4e3e-be97-fb15e253c308 ## Why It's Good For The Game Sometimes you don't have a cell charger. And you need to charge something. Now you can charge something by running laps around the station. During a blob, rechargers are brought to the front lines to charge energy guns and such but what if the blob turns off the power? And what are bar-rp'ers to do? Kill two birds with one stone by having them run laps instead of sitting around doing nothing. Also its funny. ## Changelog 🆑 add: Added a portable wind turbine which can charge things when you walk around add: Added a signal that procs when an object resists space wind (from being anchored / pulled) sound: added woosh.ogg as a low "wooshing" noise image: added a wind turbine sprite /🆑 --------- Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> |
||
|
|
75ed68aaac |
Laser Carbine and Disabler SMG as Goodies in Cargo and energy/laser cargo crates rebalance (#92656)
## About The Pull Request Adds Laser Carbine and Disabler SMG Single-Packs. Laser Carbine Single-Pack costing 800 credits and Disabler SMG costing 600 credits. Moved Laser Guns crate from security category to armory category. Added 3rd Energy Gun to Energy Guns crate. Added 3rd BR gun to BR crate and 2 more magazines making it 6 (2 for each gun). This should bring gun crates to nice standardization of 3 guns in crate. ## Why It's Good For The Game Standardization improves logistic and makes it easier for brain. (Standardization of guns inside of crates) Laser guns being in armory category together with rest of the gun crates makes looking for guns to order less confusing. More goodies to choose from, able to buy non lethal SMG I think is needed too. Especially with all lethal option in Goodies. ## Changelog 🆑 add: Added Disabler SMG Single-Pack add: Added Laser Carbine Sigle-Pack balance: Moved Laser Guns crate from security to armory category in cargo balance: Increased amount of Energy Guns to 3 in Energy Guns crate balance: Increased amount of NT BR to 3 and magazines to 6 in NT BR crate /🆑 |
||
|
|
906ac46477 |
Makes water coolers more mechanically interesting, fills them up with fruit punch sometimes (#92480)
## About The Pull Request This overhauls Water Coolers (now referred to as "liquid coolers" internally and in most external cases). They'll feel less like a useless prop now. (sprites may look off because of the gif software I use) **Important Thing # 1:** The reagents are now handled by cooler jugs. You can pop the jug off of a cooler, fill it with whatever the hell you want, and put it back on. Fill it with drugs. Fill it with acid. I don't care, I'm not your mom. <img width="41" height="56" alt="image" src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf" /> The sprite now uses an overlay to change colors based on the mix. Water, when present in the cooler, is magically turned blue to keep that classic water cooler look. <img width="280" height="333" alt="image" src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620" /> The jugs are 200 reagents, and are mechanically comparable to the jerry can. No 200 unit acid splashes or anything. Y'know, unless you put the jug in a cooler and knock it over...  **Important Thing # 2:** They can be anchored, tipped, and crafted. Tipping them requires the cooler be unanchored. If you want to use one of these tactically, unwrench it beforehand.  **Important Thing # 3:** They can be bought from cargo now! <img width="501" height="605" alt="image" src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0" /> **Important Thing # 4** Fruit punch. <img width="175" height="127" alt="image" src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55" /> Fruit punch is a drink with impressive (slightly faster than omnizine) healing qualities. Unfortunately, it's so unbearably sweet that it can only be safely consumed near a liquid cooler! Drinking this stuff is a commitment, since if you stray from the cooler while digesting it, you will be hurt and disoriented. You should avoid drinking too much at once, in case an emergency comes up! For this reason, we encourage drinkers to _take small sips from your paper cooler cup, hang around the cooler, and maybe chat with other people who are healing too._ (Mapload) water coolers have a 1% chance to start full of punch instead of water. Maybe you'll get lucky and start with a healing station in your department, or maybe a hopeless space explorer will find one in a ruin and be saved. You can also buy one from cargo but it's priceyyyyy. It's also the only source of punch. ## Why It's Good For The Game Realizing how little functionality water coolers have was super disappointing. They do hardly anything but take up space and look pretty. And now, they're getting mapped into all of the new stations! We can't have a bunch of inert, sandbox-shunning furniture just sitting around, the other codebases would laugh at us! Now, coolers are more congruent with how most people would expect one to behave in the game environment. Even minor changes like making them unanchorable or refillable helps them fit in with most players' intuitive understanding of how atoms typically behave. The reagent storage change gives coolers their own unique niche in the sandbox. Tipping them over can also give you an edge in escaping someone, so even the untouched roundstart coolers can serve a purpose to savvy players. For the punch cooler, I figured "why not make a reagent that rewards players for treating the water cooler like a water cooler?" The punch encourages players to stand around it, slowly sip from the cooler, and chat with their co-workers. Just like people do in offices! It's thematically sound! ## Changelog 🆑 Rhials add: You may now remove water cooler jugs and put whatever you want in them. Go nuts. add: Water coolers are now craftable (with plastic), orderable from cargo, and tippable when unanchored. add: Rarely, water coolers will spawn full of healing fruit punch instead of water! Be careful not to stray from the cooler while digesting this stuff. add: You can also just buy the punch cooler from cargo if you feel like it. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> # Conflicts: # code/modules/reagents/reagent_dispenser.dm |
||
|
|
147df9ec59 |
Organ Growing Kit | Coroner Cytology Cargo Content (1/2) (#92108)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> # Conflicts: # code/modules/clothing/head/tinfoilhat.dm |
||
|
|
4f6e27ca92 |
Makes water coolers more mechanically interesting, fills them up with fruit punch sometimes (#92480)
## About The Pull Request This overhauls Water Coolers (now referred to as "liquid coolers" internally and in most external cases). They'll feel less like a useless prop now. (sprites may look off because of the gif software I use) **Important Thing # 1:** The reagents are now handled by cooler jugs. You can pop the jug off of a cooler, fill it with whatever the hell you want, and put it back on. Fill it with drugs. Fill it with acid. I don't care, I'm not your mom. <img width="41" height="56" alt="image" src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf" /> The sprite now uses an overlay to change colors based on the mix. Water, when present in the cooler, is magically turned blue to keep that classic water cooler look. <img width="280" height="333" alt="image" src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620" /> The jugs are 200 reagents, and are mechanically comparable to the jerry can. No 200 unit acid splashes or anything. Y'know, unless you put the jug in a cooler and knock it over...  **Important Thing # 2:** They can be anchored, tipped, and crafted. Tipping them requires the cooler be unanchored. If you want to use one of these tactically, unwrench it beforehand.  **Important Thing # 3:** They can be bought from cargo now! <img width="501" height="605" alt="image" src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0" /> **Important Thing # 4** Fruit punch. <img width="175" height="127" alt="image" src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55" /> Fruit punch is a drink with impressive (slightly faster than omnizine) healing qualities. Unfortunately, it's so unbearably sweet that it can only be safely consumed near a liquid cooler! Drinking this stuff is a commitment, since if you stray from the cooler while digesting it, you will be hurt and disoriented. You should avoid drinking too much at once, in case an emergency comes up! For this reason, we encourage drinkers to _take small sips from your paper cooler cup, hang around the cooler, and maybe chat with other people who are healing too._ (Mapload) water coolers have a 1% chance to start full of punch instead of water. Maybe you'll get lucky and start with a healing station in your department, or maybe a hopeless space explorer will find one in a ruin and be saved. You can also buy one from cargo but it's priceyyyyy. It's also the only source of punch. ## Why It's Good For The Game Realizing how little functionality water coolers have was super disappointing. They do hardly anything but take up space and look pretty. And now, they're getting mapped into all of the new stations! We can't have a bunch of inert, sandbox-shunning furniture just sitting around, the other codebases would laugh at us! Now, coolers are more congruent with how most people would expect one to behave in the game environment. Even minor changes like making them unanchorable or refillable helps them fit in with most players' intuitive understanding of how atoms typically behave. The reagent storage change gives coolers their own unique niche in the sandbox. Tipping them over can also give you an edge in escaping someone, so even the untouched roundstart coolers can serve a purpose to savvy players. For the punch cooler, I figured "why not make a reagent that rewards players for treating the water cooler like a water cooler?" The punch encourages players to stand around it, slowly sip from the cooler, and chat with their co-workers. Just like people do in offices! It's thematically sound! ## Changelog 🆑 Rhials add: You may now remove water cooler jugs and put whatever you want in them. Go nuts. add: Water coolers are now craftable (with plastic), orderable from cargo, and tippable when unanchored. add: Rarely, water coolers will spawn full of healing fruit punch instead of water! Be careful not to stray from the cooler while digesting this stuff. add: You can also just buy the punch cooler from cargo if you feel like it. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
43fc75facb |
Organ Growing Kit | Coroner Cytology Cargo Content (1/2) (#92108)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
d9a7180f3a |
Removes a remaining mention of the cytology plumbing RCD (#92367)
## About The Pull Request
As stated in the title. In #84235 cytology plumbers got removed, but
they still remained in the crate description.
## Why It's Good For The Game
Misleading people into thinking someting exists isn't that good
actually.
## Changelog
🆑
spellcheck: The cytology crate no longer references the non-existent
research plumbing constructor.
/🆑
(cherry picked from commit
|
||
|
|
950f446cfe |
Removes a remaining mention of the cytology plumbing RCD (#92367)
## About The Pull Request As stated in the title. In #84235 cytology plumbers got removed, but they still remained in the crate description. ## Why It's Good For The Game Misleading people into thinking someting exists isn't that good actually. ## Changelog 🆑 spellcheck: The cytology crate no longer references the non-existent research plumbing constructor. /🆑 |
||
|
|
d738cbb296 |
Several balance changes to Combat MODsuits (#91944)
## About The Pull Request atomization of https://github.com/tgstation/tgstation/pull/91702 with a few changes. - armor booster module has been removed, nukie suits are now always fully armored and EVA proof. - Jetpack modules have had their power drain reduced considerably. - Cap,Hos and Sec MODs armor values have been bumped up (similar to the old hardsuit values). - Sec armor plates are now a cargo import. The nf suit now comes with the Shock absorber pre-installed. - Fixes Nukie suits not having T4 flash protection. - All combat modsuits now have ear protection by default when the suit active (Cap,Sec,Hos,Syndie,ERT, Death Squad, Ninja and RD.) - Night visor module now comes preinstalled in the syndie mods and doesn't conflict with other vision modules, nor it costs complexity, power drain reduced, the module itself has been removed from the uplink. - Increases the complexity on the nukie suits by 2 points. - all traitor modules now cost 1 less TC. ## Why It's Good For The Game **armor booster removal** I really dislike how this module works, it's a constant hassle having to manually swap mode depending on the pressure, it's just an annoyng memory check that punishes you with chip damage when not respected. The choice of wheter wearing a mod or not doesn't really apply to nuclear operatives since they wear these things all the time and losing half of your armor in space never really made a ton of sense to begin with. **Jetpack power drain buff** The drain on this thing is absolute fucking nuts, it eats high capacity cells in a matter of minutes, power should be a limiting factor to using these things but it shouldn't tank your battery health this quickly. **Cap,Sec,Hos MODs buffs** Back when Fikou introduced MODsuits, one point he clarified in the design doc is that "Combat stuff usually leads to uninteresting design, it makes the suits do everything for everyone" I don't want to diss on the dude (Love you bud), but I don't think his point makes a ton of sense. Combat stuff, on this case Combat mods should be built with Combat in mind. In all fairness he then has a paragraph addressing why the crew based combat suits should have low armor, but it still rings hollow to me. Armored or not, being slower than your average spessman is enough to make you an easy target or to never be able to chase anyone on foot, even with their armor increased I don't see players having them constantly on all the time, the slowdown is a hard enough disincentive. The Magnate and HoS mods specifically are unique pieces of gear, and they are usually assigned to 2 of the most important (and prone to assassination) roles on the station. There's also a weird paradox with some of the modules they come equipped with the sec MODs, the pepper spray and the projectile dampener are built around getting hit, which is a hard sell when your armor is so low you might as well just die straight up. Out of respect to Fikou's will of not wanting to grant the crew the ability to mass produce combat MODs, I removed the sec modplates from the techweb and moved em as a cargo import. **Uplink MODules Price reduction** These were originally priced with progression in mind, traitor specifically has become considerably weaker since they lost access to avenues to generate extra TCs. It's hard to justify getting a suit when most weapons in the uplink cost more than half of your budget, let alone the modules. **Shock absorption into the inf suit** This module is pretty much already mandatory if you don't want to lose fights in one hit, wearing a syndie modsuit makes you giga valid to everyone on station and any traitor worth their salt will buy this module regardless anyway; it just punishes new players who don't know better. **Night Visor MOD changes** This module is completely useless, nobody ever uses it, because it conflicts with other vision modules, and it's completely redundant since Thermal vision already comes packed with NV on their own. **Complexity increase on the Nukie suits + T4 flashing protection added** The nukie suits have honestly quite limited complexity for the role they are supposed to fill , the T4 flash protection missing from the suit is unintended as we made any other MODsuit have T4 protection already, Moth Nukies rejoice. **Ear Protection on combat MODs (oh boy)** Listen, as of right now we have a total of 2 counters for flashbangs, a Bowman or being deaf. A sealed, airtight suit shouldn't offer less protection against loud noises than a mere headset. baddies that usually pack these suits usually have a Bowman anyway, Nukies have it, ninja can easily teleport into a sec outpost and get it, it's a bit more tricky for traitor since they usually have to invest in an emag to quickly take the set or kill a security officer. At least now if you see a baddie roll up in a suit you no longer have to play hypotheticals wheter your flashbang will work properly or not. I also gave the ear protection to the RD mod despite it not being a combat MOD, because frankly it made sense, it's a bomb proof armor, It should also protect you from loud noises. ## Changelog 🆑 removal: Armor booster module has been removed. balance: Jetpack module energy drain has been massively reduced. balance: armor on the Magnate,Safegaurd and sec modsuits has been considerably increased. balance: Sec MOD plates have been transferred from RnD to Cargo. balance The Infiltrator MOD now comes with the shock absorption module pre-installed. balance: Nukie MODsuits hav a bit more complexity. fix: Nukie MODs now have the same flash protection as the other suits with welding protection. balance: night visor module comes pre-installed in the syndie mods, no longer consumes complexity,drains less power and doesn't conflict with the other visor MODules. removal: Nightvision MODule removed from the uplink. balance: Combat MODs and RDs now grant earing protection when the suit is active. /🆑 --------- Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com> |
||
|
|
915c41497e | Rewrites description of agent IDs, splits limited-slot and unlimited-slot IDs more cleanly (#92097) | ||
|
|
ec0a685866 |
Several balance changes to Combat MODsuits (#91944)
## About The Pull Request atomization of https://github.com/tgstation/tgstation/pull/91702 with a few changes. - armor booster module has been removed, nukie suits are now always fully armored and EVA proof. - Jetpack modules have had their power drain reduced considerably. - Cap,Hos and Sec MODs armor values have been bumped up (similar to the old hardsuit values). - Sec armor plates are now a cargo import. The nf suit now comes with the Shock absorber pre-installed. - Fixes Nukie suits not having T4 flash protection. - All combat modsuits now have ear protection by default when the suit active (Cap,Sec,Hos,Syndie,ERT, Death Squad, Ninja and RD.) - Night visor module now comes preinstalled in the syndie mods and doesn't conflict with other vision modules, nor it costs complexity, power drain reduced, the module itself has been removed from the uplink. - Increases the complexity on the nukie suits by 2 points. - all traitor modules now cost 1 less TC. ## Why It's Good For The Game **armor booster removal** I really dislike how this module works, it's a constant hassle having to manually swap mode depending on the pressure, it's just an annoyng memory check that punishes you with chip damage when not respected. The choice of wheter wearing a mod or not doesn't really apply to nuclear operatives since they wear these things all the time and losing half of your armor in space never really made a ton of sense to begin with. **Jetpack power drain buff** The drain on this thing is absolute fucking nuts, it eats high capacity cells in a matter of minutes, power should be a limiting factor to using these things but it shouldn't tank your battery health this quickly. **Cap,Sec,Hos MODs buffs** Back when Fikou introduced MODsuits, one point he clarified in the design doc is that "Combat stuff usually leads to uninteresting design, it makes the suits do everything for everyone" I don't want to diss on the dude (Love you bud), but I don't think his point makes a ton of sense. Combat stuff, on this case Combat mods should be built with Combat in mind. In all fairness he then has a paragraph addressing why the crew based combat suits should have low armor, but it still rings hollow to me. Armored or not, being slower than your average spessman is enough to make you an easy target or to never be able to chase anyone on foot, even with their armor increased I don't see players having them constantly on all the time, the slowdown is a hard enough disincentive. The Magnate and HoS mods specifically are unique pieces of gear, and they are usually assigned to 2 of the most important (and prone to assassination) roles on the station. There's also a weird paradox with some of the modules they come equipped with the sec MODs, the pepper spray and the projectile dampener are built around getting hit, which is a hard sell when your armor is so low you might as well just die straight up. Out of respect to Fikou's will of not wanting to grant the crew the ability to mass produce combat MODs, I removed the sec modplates from the techweb and moved em as a cargo import. **Uplink MODules Price reduction** These were originally priced with progression in mind, traitor specifically has become considerably weaker since they lost access to avenues to generate extra TCs. It's hard to justify getting a suit when most weapons in the uplink cost more than half of your budget, let alone the modules. **Shock absorption into the inf suit** This module is pretty much already mandatory if you don't want to lose fights in one hit, wearing a syndie modsuit makes you giga valid to everyone on station and any traitor worth their salt will buy this module regardless anyway; it just punishes new players who don't know better. **Night Visor MOD changes** This module is completely useless, nobody ever uses it, because it conflicts with other vision modules, and it's completely redundant since Thermal vision already comes packed with NV on their own. **Complexity increase on the Nukie suits + T4 flashing protection added** The nukie suits have honestly quite limited complexity for the role they are supposed to fill , the T4 flash protection missing from the suit is unintended as we made any other MODsuit have T4 protection already, Moth Nukies rejoice. **Ear Protection on combat MODs (oh boy)** Listen, as of right now we have a total of 2 counters for flashbangs, a Bowman or being deaf. A sealed, airtight suit shouldn't offer less protection against loud noises than a mere headset. baddies that usually pack these suits usually have a Bowman anyway, Nukies have it, ninja can easily teleport into a sec outpost and get it, it's a bit more tricky for traitor since they usually have to invest in an emag to quickly take the set or kill a security officer. At least now if you see a baddie roll up in a suit you no longer have to play hypotheticals wheter your flashbang will work properly or not. I also gave the ear protection to the RD mod despite it not being a combat MOD, because frankly it made sense, it's a bomb proof armor, It should also protect you from loud noises. ## Changelog 🆑 removal: Armor booster module has been removed. balance: Jetpack module energy drain has been massively reduced. balance: armor on the Magnate,Safegaurd and sec modsuits has been considerably increased. balance: Sec MOD plates have been transferred from RnD to Cargo. balance The Infiltrator MOD now comes with the shock absorption module pre-installed. balance: Nukie MODsuits hav a bit more complexity. fix: Nukie MODs now have the same flash protection as the other suits with welding protection. balance: night visor module comes pre-installed in the syndie mods, no longer consumes complexity,drains less power and doesn't conflict with the other visor MODules. removal: Nightvision MODule removed from the uplink. balance: Combat MODs and RDs now grant earing protection when the suit is active. /🆑 --------- Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com> |
||
|
|
af45bab672 | Rewrites description of agent IDs, splits limited-slot and unlimited-slot IDs more cleanly (#92097) |