mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 02:24:11 +01:00
observer_fix_tm
559 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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 |
||
|
|
be1f231869 |
Lock R&D console boards by default (#94114)
## About The Pull Request This PR makes all R&D console boards that are either printed or sourced from tech storage start out locked. They can be unlocked by swiping them with an ID that has research access. R&D consoles can also be unlocked with an emag, but doing so will break their comms circuit as well, making all researched nodes broadcast over public comms. You can still emag the console itself after it's been constructed without breaking it in any way, while also silencing announcements instead. (that's definitely a noob trap, but it's out of scope for this PR) The reason why the tech storage board is locked as well is because the goal of this PR is to stop engineers from making R&D consoles, and engineers have access to tech storage. Leaving the board unlocked and moving it to secure tech storage would make engineers break in there every shift. The changelog basically has a FAQ for "Okay, so what do I do instead?", because I know people will be confused about what route they're intended to take when science closes their desk shutters for the umpteenth time this week. ## Why It's Good For The Game Engineering has a habit of making an R&D console every round to bypass having to ask science or a head of staff to research things. Locking the consoles at least makes engineers consider asking science to do science's job. Note that this doesn't solve the issue entirely, it just removes the easiest and most convenient way of bypassing science. Engineers can still break into R&D extremely easily using their wire knowledge, and do so regularly. More importantly though, this might shine some light on the fact that heads of department like the CE have remote access to the research network via their PDAs. This means engineers can ask the CE to research things for them. Asking people with access to the research network to research things is a lot better for roleplay and immersion than having engineering construct R&D consoles every shift. ## Changelog 🆑 balance: R&D console boards sourced from printing or tech storage are now locked by default. It's recommended to ask your respective head of department or the science department to complete research for you. Heads of department can remotely access the research network using their PDAs. /🆑 |
||
|
|
d0ca474789 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 | ||
|
|
002aef897f |
[MDB Ignore] Removes circuit board recipe for vend a tray (#93517)
## About The Pull Request - Closes #93497 'Vend a trays' are not subtypes of machines but structures i.e. their path is `/obj/structure/displaycase/forsale`. You can't create structures with machine circuit boards so they runtime like hell You can still create an Vend a tray by - Creating a "display case chassis" with 5 wood - Inserting a card reader in it It's just this broken way of designing the tray has to go ## Changelog 🆑 del: Removes circuit board recipe for vend a tray. Use 5 wood to create a "display case chassis" and insert a card reader to create the tray instead /🆑 |
||
|
|
5e629dff04 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
075de00420 |
Chekov's Canister! Adds missing resupply canisters, makes them constructable & spawn in maint,. (#93028)
## About The Pull Request This is was created because I found several rare and exciting canisters in game and then finding out there is no way to actually construct the vendor they belong to!... <img width="768" height="385" alt="image" src="https://github.com/user-attachments/assets/70261cea-daaf-41df-a212-21cef6d6bd0c" /> ### This PR: * Makes all noteable vendors constructable, if you have the canister. * Adds canisters to syndismokes, syndiechem, liberation station, magivend, shambler's juice and bombuddy * Replaces the old tptally random canisters spawner, with a variety of spawners weighted for power and split according to different themes. * Adds the new main canister spawner to maint. ### Spawner weights The random canister spawner from maintenance has a: * **93,5%** chance to spawn a common station vendor refill(with weights for wardrobes being somewhat reduced.) * **6%** chance to spawn a rare and special vendor refill. * **0.5%** chance to spawn a oddity level., super powerful vendor refill. ## Why It's Good For The Game One must never place a filled canister in maint if it isn't going to be constructed It's wrong to make promises you don't mean to keep. ## Changelog 🆑 add: Nearly all notable vendors are now constructable if you have the canister. add Added refill canisters for syndiesmokes, liberation station, magivend, bombuddy 3000, shambler's juice and syndichem. add: Random vending refill canisters now have a chance to spawn in maint. image: Robco Toolmaker and Centdrobe canisters have new sprites. /🆑 |
||
|
|
fd752f043d |
Easy multi-z support for alarm console (+spawn changes) (#93198)
## About The Pull Request Station alarm consoles now register to all Station Z levels+Areas if they were created on a station Z level (this doesn't include mining, but station ones will see mining areas), otherwise will be a "local" console to that Z level only. Mostly the same applies for Cyborg/AI, but if they were built on a non-station Z level then they have their Z level added on top of Station Z levels, so example Nukie saboteur borgs will see alarms they might need, while a Golem/Oldstation AI will also be able to see their own alarms. Because of how alarms and spawning in worked, Cyborgs/AIs had CentCom's Z level as something it would detect, so we simply create the mob at the spawn location rather than on the title screen during Initialization, fixing that issue as well. ## Why It's Good For The Game Adds easy multi-z support for station alarms and removes the previous bandaid of having to deconstruct your board and multitool it or map in every single station alarm console to allow station alerts (which is quite silly) which was done in https://github.com/tgstation/tgstation/pull/88343. Closes https://github.com/tgstation/tgstation/issues/61592 Closes https://github.com/tgstation/tgstation/issues/83042 Closes https://github.com/tgstation/tgstation/issues/69314 I find this solution better since it catches pretty much all use cases without the need for special subtypes and needing players to actually know the difference between these things. ## Changelog 🆑 fix: Cyborgs and AIs will now see alerts of the whole station rather than solely the Z level they were spawned on. fix: Cyborgs and AIs will no longer get alerts about Thunderdome. /🆑 |
||
|
|
f20c61f670 |
[MDB Ignore] Deletes the bluespace gas vendor (#93137)
## About The Pull Request Deletes the Bluespace Gas Vendor and accompanying Bluespace Gas Sender ## Why It's Good For The Game These wall mounts were added as ways to encourage Atmos Techs to participate in the economy and crew at large. Unfortunately, it's missed the mark and is unused in 99% of all rounds*. **I have seen more atmos techs use the bluespace gas sender for exploits than for its intended use.* It has been noted that 1. Atmos doesn't need to sell gas to the crew to make money. They can export gas to cargo to make more money. 2. The crew doesn't really care about gases. They will rarely go out of their way to acquire them, even if free. 3. Most importantly, most atmos players **like to give out gas for free** - it's mass producible and seeing people utilize their creations tend to be its own reward. 4. Even for the atmos techs that want to charge for their products (to create conflict or whatnot), *you could easily do that by hand via pre-filling tanks**. ***I have seen more atmos techs make money off of selling pre-filled tanks than by using the vendor.* Ultimately, this machine serves no purpose besides bloating wall space and existing as an atmos exploit vector. ## Changelog 🆑 Melbert del: Bluespace Gas Vendors and the accompanying Bluespace Gas Sender have been removed /🆑 |
||
|
|
9b282a850e | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync | ||
|
|
d2f34e33be |
moves abstract_type up to datum, spawners wont spawn them (#92909)
## About The Pull Request moves all implementations (im aware of) for "Im a parent type dont spawn me please" to the datum layer to standardized behavior adds a standerized proc for filtering out "bad" items that we dont want spawning. applies to it the subtype vendor, gifts, and a new spawner and mystery box for a random gun (neither playerfacing) "port" of https://github.com/shiptest-ss13/Shiptest/pull/4621 https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa small warning: I dont have EVERY abstract type defined right now but, ive done a good enough job for now. Im tired of data entry rn ## Why It's Good For The Game standardizing behavior. Might be a micro hit to performance however having this lets us not rely on icon state to determine whether something is a parent type and makes it much easier to tell something is a parent type (could be applied further to things like admin spawning menus and things like that). need feedback on if this is actually good for the game. ## Changelog 🆑 add: Soda cans show up in the silver slime drink table. add: Examine tag for items that are not mean to show up ingame. refactor: Standardizes how gifts rule out abstract types. fix: gifts no longer check if something has an inhand, massively expanding the list of potential items. /🆑 |
||
|
|
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 |
||
|
|
052844c8ec |
Remove double (Computer Board) on custom shuttle boards (#92806)
## About The Pull Request computer boards saying (Computer Board) is done by name_extension on the base board, and the shuttle boards had a second one in their base name. ## Why It's Good For The Game Only need one (Computer Board) ## Changelog 🆑 spellcheck: Made shuttle computer boards only say (Computer Board) once /🆑 |
||
|
|
8b0d22d14b |
General maintenance for vending machines (#91987)
## About The Pull Request **1. Code Improvements** - Removed unused vars `coin`, `bill` & other stuff - Removed duplicate definition of `on_deconstruction()` - Autodoc for a lot of procs - Merged smaller procs into larger ones to avoid scrolling in the code editor & reduced overhead - Split the vending machine file into several smaller files for easy code management **2. Qol** - Implemented vending machine ads. They now display random stuff on the UI https://github.com/user-attachments/assets/9720ea60-f268-4ca2-940d-243e3d0ac75f - More error messages for custom & normal vendors as to why an item could not be loaded - Custom vending machines can be deconstructed safely via crowbar without any explosion only after unlinking your account from the machine else you get the same explosion. Upon deconstruction all loaded items are moved into its restock canister meaning the machine can be safely moved with all its products just like a regular vending machine to a new location **3. Fixes** - Fixes #81917. Any returned items in the vending machine now show up as free in the UI & won't cost credits to buy them - Fixes #87416. Custom & normal vendors now keep track of products removed via `Exited()` so the UI gets always updated - Fixes #83151. Items with different names & custom prices now show up in unique rows - Fixes #92170 Custom vendors now show the correct icon for inserted items - Closes #80010. From the above fix this situation is impossible so it's safe to close this as a duplicate - Closes #78016 same problem as above with `Exited()` duplicate - Custom vendors can now actually be used by players who are not the owner instead of locking down the UI - Vending machines keep track of `max_amount` of stocked items by hand as well & not just RPED **4. Refactor** - Separates custom vending machine code from normal vending machine code. This prime Marely focus on the `vending_machine_input` list which now only exists inside the custom vending machine - Compressed the UI code for vending machine so both custom & normal vending machines can send the same data instead of separating the 2. Overall less code - Moved attack chain from `attackby()` to `item_interaction()` for loading items ## Changelog 🆑 code: cleaned up vending machine code qol: vending machines now have more product slogans you never heard before qol: custom & normal vending machines now have more feedback on why an item could not be loaded qol: vending machines now display random ads on the UI qol: custom vending machines can be deconstructed via crowbar safely only after unlinking your account from the machine. qol: upon deconstructing a custom vendor all its products are moved into its refill canister & it will be restored when reconstructing the machine elsewhere fix: Returned items to the vending machine now show up as free in the UI and won't be greyed out if you don't have credits to get them back fix: items that leave the vending machine by any means will update the UI in all cases fix: loading items by hand to the vending machine now respects the max_amount for that category fix: custom vendors can now actually be used by players who are not the owner thus enabling them to transfer credits to the owner during purchases & basically they do their job again fix: custom vendors now show the correct icon for inserted items fix: Items with different names & custom prices now show up in unique rows in custom vendors refactor: separated custom & normal vending machine code. Reduced UI code & improved attack chain /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> # Conflicts: # code/modules/vending/_vending.dm # tgui/packages/tgui/interfaces/Vending.tsx |
||
|
|
0b6101a37e |
General maintenance for vending machines (#91987)
## About The Pull Request **1. Code Improvements** - Removed unused vars `coin`, `bill` & other stuff - Removed duplicate definition of `on_deconstruction()` - Autodoc for a lot of procs - Merged smaller procs into larger ones to avoid scrolling in the code editor & reduced overhead - Split the vending machine file into several smaller files for easy code management **2. Qol** - Implemented vending machine ads. They now display random stuff on the UI https://github.com/user-attachments/assets/9720ea60-f268-4ca2-940d-243e3d0ac75f - More error messages for custom & normal vendors as to why an item could not be loaded - Custom vending machines can be deconstructed safely via crowbar without any explosion only after unlinking your account from the machine else you get the same explosion. Upon deconstruction all loaded items are moved into its restock canister meaning the machine can be safely moved with all its products just like a regular vending machine to a new location **3. Fixes** - Fixes #81917. Any returned items in the vending machine now show up as free in the UI & won't cost credits to buy them - Fixes #87416. Custom & normal vendors now keep track of products removed via `Exited()` so the UI gets always updated - Fixes #83151. Items with different names & custom prices now show up in unique rows - Fixes #92170 Custom vendors now show the correct icon for inserted items - Closes #80010. From the above fix this situation is impossible so it's safe to close this as a duplicate - Closes #78016 same problem as above with `Exited()` duplicate - Custom vendors can now actually be used by players who are not the owner instead of locking down the UI - Vending machines keep track of `max_amount` of stocked items by hand as well & not just RPED **4. Refactor** - Separates custom vending machine code from normal vending machine code. This prime Marely focus on the `vending_machine_input` list which now only exists inside the custom vending machine - Compressed the UI code for vending machine so both custom & normal vending machines can send the same data instead of separating the 2. Overall less code - Moved attack chain from `attackby()` to `item_interaction()` for loading items ## Changelog 🆑 code: cleaned up vending machine code qol: vending machines now have more product slogans you never heard before qol: custom & normal vending machines now have more feedback on why an item could not be loaded qol: vending machines now display random ads on the UI qol: custom vending machines can be deconstructed via crowbar safely only after unlinking your account from the machine. qol: upon deconstructing a custom vendor all its products are moved into its refill canister & it will be restored when reconstructing the machine elsewhere fix: Returned items to the vending machine now show up as free in the UI and won't be greyed out if you don't have credits to get them back fix: items that leave the vending machine by any means will update the UI in all cases fix: loading items by hand to the vending machine now respects the max_amount for that category fix: custom vendors can now actually be used by players who are not the owner thus enabling them to transfer credits to the owner during purchases & basically they do their job again fix: custom vendors now show the correct icon for inserted items fix: Items with different names & custom prices now show up in unique rows in custom vendors refactor: separated custom & normal vending machine code. Reduced UI code & improved attack chain /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
31edad9967 |
Adds some bit running construction qol (#92217)
## About The Pull Request
- Closes #92210
1) Bit Forge can be deconstructed with a screwdriver & crowbar like a
normal machine
2) Adds examines & screentips for netpod, bitforge(icon for panel open
state added) & quantum server on how to deconstruct them. New icon state
for when bitforge has its panel open is shown below
<img width="210" height="103" alt="Screenshot (497)"
src="https://github.com/user-attachments/assets/bb44c78d-1f0e-468f-9a79-ebc5800edd09"
/>
3) Moved bitrunning machine designs into files that exist to hold that
type of code
## Changelog
🆑
code: moved designs & circuitboards for bitrunning into their correct
files
qol: adds examines & screentips for bitrunning netpod, bitforge & server
on how to deconstruct them
fix: bitforge can be deconstructed with a screwdriver & crowbar
/🆑
(cherry picked from commit
|
||
|
|
bb38209bb4 |
Adds some bit running construction qol (#92217)
## About The Pull Request - Closes #92210 1) Bit Forge can be deconstructed with a screwdriver & crowbar like a normal machine 2) Adds examines & screentips for netpod, bitforge(icon for panel open state added) & quantum server on how to deconstruct them. New icon state for when bitforge has its panel open is shown below <img width="210" height="103" alt="Screenshot (497)" src="https://github.com/user-attachments/assets/bb44c78d-1f0e-468f-9a79-ebc5800edd09" /> 3) Moved bitrunning machine designs into files that exist to hold that type of code ## Changelog 🆑 code: moved designs & circuitboards for bitrunning into their correct files qol: adds examines & screentips for bitrunning netpod, bitforge & server on how to deconstruct them fix: bitforge can be deconstructed with a screwdriver & crowbar /🆑 |
||
|
|
7a9b25c2b7 |
Refactor custom vending machine brand selection (#92205)
The list of options you could choose from when screwdrivering a custom vending machine circuit board was hard-coded and also contained copy pastes of every vending machine name (some of which were outdated). It was yucky - Add a new var on `/obj/machinery/vending` called `allow_custom`, defaults to FALSE and determines whether that type shows up as an option when screwdrivering a custom vending machine board, I've went through and made assignments for it mirror what was in the old static list i.e. this won't introduce any new options - Change the hard-coded static list to be built on Initialize, populating with every subtype that has `allow_custom` set to TRUE - Eliminate a second static list that was just the inverse of the first one (first one was typepath = name and this one was just name = typepath) - Changed an `istype` check to `==` because old behavior meant subtypes of a given vending machine would have their type set to the supertype if that was also a valid custom vending machine option Cleaner code, no needing to maintain two separate entries for the name of a vending machine, eligibility for a machine to be used in custom vending machines is now a var on the type instead of in a random file pertaining to circuit boards 🆑 refactor: refactored custom vending machine brand code, a new var on /obj/machinery/vending called allow_custom now determines whether the machine can be chosen when screwdrivering the circuit board /🆑 |
||
|
|
b7dab59e5e |
Adds modular shield gates and makes modular shields less useless indoors (#91251)
## About The Pull Request Adds modular shield gates and puts them in holographics research (This is the final machine to be added to holographics, if anymore are added they will be put into a brand new adv holographics tech) It can be rotated with screwdriver (to open panel) and wrench It has NO ui (its meant to be used with either a remote signaler or modular shield console in another PR) It takes NO penalty from generating tiles indoors It projects a field until either its max range has been reached or it comes across a closed turf or shield that blocks it. Regeneration rate is still based on how many tiles it projected vs the maximum theoretical range it can project at, meaning relays are still useful. Infact its very inefficient at longer ranges (which is why it's called a gate and not a directional generator, because you will most likely use it like a gate) its screwdrivered in the video thats why the connections are broken.. https://github.com/user-attachments/assets/4536dd5c-a515-43fc-9186-bbd2fc21b703 Makes hulks deal 30 + shield regeneration rate instead of 100+ (remember shields don't have any armor or damage deflection) Has shields block clicks on things under them (mandatory for the shield gate) Shields now react better to explosions and atmos (they used to not block either with barely any interaction) HALVES the bubble shield generator's max radius when set to project tiles in doors (similar to regen) Doubles capacity and regen (if used indoors this is not a large buff because max radius impacts the regen calculation) ## Why It's Good For The Game Allows engineers to use up excess power to further manipulate their environment to produce complicated doorways, walls, and containment fields that are nonharmful but still meaningful as breaching them is an easy fix. Modular shield generators are meant to be progressive content that engineers can mess with throughout an ENTIRE round, giving them a generator subtype that give them a bit more fine control with how to use them seems essential. Alot of people have asked me why the generator is so weak and told me its trash, ive kept it weak because it affects a large area, outside in space thats not a big deal, but inside the station its incredibly powerful to just drop a 300 health bullet sponge wherever you want it by ramping up the radius and blocking someone from entering/exiting a room (this is similar to closing a door behind someone as ai except you're completely surrounding them with that one door.) This is deceptively powerful and by nerfing the radius indoors it's much harder to abuse, which means that shield can now be somewhat stronger without being oppressive. ## Changelog 🆑 add: Modular shield gates which project a shield in a line and does not suffer indoor penalties. balance: Modular shields now better interact with and block atmos and explosions and melee for what they are protecting, hulks are able to take one down eventually no matter what. balance: Modular shields now suffer a severe range penalty when generating indoors but are more potent in their capacity to endure damage. image: modular shield gate sprites /🆑 --------- Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com> |
||
|
|
87ebbba36a |
Refactor custom vending machine brand selection (#92205)
## About The Pull Request The list of options you could choose from when screwdrivering a custom vending machine circuit board was hard-coded and also contained copy pastes of every vending machine name (some of which were outdated). It was yucky - Add a new var on `/obj/machinery/vending` called `allow_custom`, defaults to FALSE and determines whether that type shows up as an option when screwdrivering a custom vending machine board, I've went through and made assignments for it mirror what was in the old static list i.e. this won't introduce any new options - Change the hard-coded static list to be built on Initialize, populating with every subtype that has `allow_custom` set to TRUE - Eliminate a second static list that was just the inverse of the first one (first one was typepath = name and this one was just name = typepath) - Changed an `istype` check to `==` because old behavior meant subtypes of a given vending machine would have their type set to the supertype if that was also a valid custom vending machine option ## Why It's Good For The Game Cleaner code, no needing to maintain two separate entries for the name of a vending machine, eligibility for a machine to be used in custom vending machines is now a var on the type instead of in a random file pertaining to circuit boards ## Changelog 🆑 refactor: refactored custom vending machine brand code, a new var on /obj/machinery/vending called allow_custom now determines whether the machine can be chosen when screwdrivering the circuit board /🆑 |
||
|
|
e49aa65687 |
Adds modular shield gates and makes modular shields less useless indoors (#91251)
## About The Pull Request Adds modular shield gates and puts them in holographics research (This is the final machine to be added to holographics, if anymore are added they will be put into a brand new adv holographics tech) It can be rotated with screwdriver (to open panel) and wrench It has NO ui (its meant to be used with either a remote signaler or modular shield console in another PR) It takes NO penalty from generating tiles indoors It projects a field until either its max range has been reached or it comes across a closed turf or shield that blocks it. Regeneration rate is still based on how many tiles it projected vs the maximum theoretical range it can project at, meaning relays are still useful. Infact its very inefficient at longer ranges (which is why it's called a gate and not a directional generator, because you will most likely use it like a gate) its screwdrivered in the video thats why the connections are broken.. https://github.com/user-attachments/assets/4536dd5c-a515-43fc-9186-bbd2fc21b703 Makes hulks deal 30 + shield regeneration rate instead of 100+ (remember shields don't have any armor or damage deflection) Has shields block clicks on things under them (mandatory for the shield gate) Shields now react better to explosions and atmos (they used to not block either with barely any interaction) HALVES the bubble shield generator's max radius when set to project tiles in doors (similar to regen) Doubles capacity and regen (if used indoors this is not a large buff because max radius impacts the regen calculation) ## Why It's Good For The Game Allows engineers to use up excess power to further manipulate their environment to produce complicated doorways, walls, and containment fields that are nonharmful but still meaningful as breaching them is an easy fix. Modular shield generators are meant to be progressive content that engineers can mess with throughout an ENTIRE round, giving them a generator subtype that give them a bit more fine control with how to use them seems essential. Alot of people have asked me why the generator is so weak and told me its trash, ive kept it weak because it affects a large area, outside in space thats not a big deal, but inside the station its incredibly powerful to just drop a 300 health bullet sponge wherever you want it by ramping up the radius and blocking someone from entering/exiting a room (this is similar to closing a door behind someone as ai except you're completely surrounding them with that one door.) This is deceptively powerful and by nerfing the radius indoors it's much harder to abuse, which means that shield can now be somewhat stronger without being oppressive. ## Changelog 🆑 add: Modular shield gates which project a shield in a line and does not suffer indoor penalties. balance: Modular shields now better interact with and block atmos and explosions and melee for what they are protecting, hulks are able to take one down eventually no matter what. balance: Modular shields now suffer a severe range penalty when generating indoors but are more potent in their capacity to endure damage. image: modular shield gate sprites /🆑 --------- Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com> |
||
|
|
9cb4fb1023 |
Nukie base, expansion expansion pack! (#91829)
## About The Pull Request ## Chemical Department Adds a extra section to the chemlab, with materials and even a empty bomb case for your evil chemistry needs! Adds various beakers sizes of beakers to do chemistry with, gives one chemical payload that can hold up to 5 beakers to nukies Adds a locker with chemical closet supplies, medigels pill bottles beakers. Adds a hand labeler to properly label your stuff with! a succesfull nukie is a organized one Adds a toolbox for properly editing of grenades and plumbing Adds a smart fridge ontop of the window to store your stuff in  ## Bio Terrorism Department Expands the cells so you no longer have to juggle your slimes between 2 cells Adds a big BZ chamber to store the slimes your not breeding in (enough space to contain every color) adds a fully upgraded slime proccesor aswell!  ## Medical section Moves some stuff to make place for a operating computer  This also introduces a new locker sprite made by aliceee2ch and one chemical payload variant by me ## Why It's Good For The Game Removes some of the jank and make these places easier to use. Adds extra stuff to the chemical section to widen the options you can do as nukies. and make the lab a more proper lab toolwise then the absolute bare mininum ## Changelog 🆑 Ezel balance: Nukie Chemistry section, now includes a proper chemistry locker with pill bottles medigels and big beakers balance: Nukie Chemistry section, now has a extra section attached to it that holds some limited amount chemistry materials and a empty bombcase. balance: Nukie Chemistry section, now has various sizes of beakers, a special chemical payload that can hold up to 5 beakers, and a hand labeler to tag your stuff with map: Nukie Chemistry section, now has a smartfridge map: Nukie xenobiology section widened and added a fully upgraded slime proccesor sprite: New syndicate chemical locker sprite by aliceee2ch sprite: Adds a darker version of chemical payload only for nukies /🆑 --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
30266f421f |
[MDB Ignore] General maintenance for SMES (#91587)
- SMES now directly gives/takes charge to the power cells stored inside its component parts instead of modifying a `charge` variable whose value was set from the total charge of its stored cells - Removed `capacity` var. It's now derived from the total cells `max_charge`. Even then its value was set to this so manually setting it was a waste - Fixes #71918. Because of point 1, this also means if you install rigged cells in the SMES it now explodes - Adds examines & screentips for installing terminal & other tool acts - Smes can be connected to the powernet with a multitool with the panel open after construction. - General maintenance for portable smes as well. Repaths it to machine subtype instead of power cause all it's functionality wasn't used - Removed a bunch of unused defines, autodoc and shuffled around other code 🆑 qol: SMES has examines and screentips for various stuff code: Improved code of SMES in general fix: smes can be connected to the powernet with a multitool with the panel open after construction refactor: SMES now functions consistently with its power cells & the RPED. /🆑 |
||
|
|
60549f1c56 |
Nukie base, expansion expansion pack! (#91829)
## About The Pull Request ## Chemical Department Adds a extra section to the chemlab, with materials and even a empty bomb case for your evil chemistry needs! Adds various beakers sizes of beakers to do chemistry with, gives one chemical payload that can hold up to 5 beakers to nukies Adds a locker with chemical closet supplies, medigels pill bottles beakers. Adds a hand labeler to properly label your stuff with! a succesfull nukie is a organized one Adds a toolbox for properly editing of grenades and plumbing Adds a smart fridge ontop of the window to store your stuff in  ## Bio Terrorism Department Expands the cells so you no longer have to juggle your slimes between 2 cells Adds a big BZ chamber to store the slimes your not breeding in (enough space to contain every color) adds a fully upgraded slime proccesor aswell!  ## Medical section Moves some stuff to make place for a operating computer  This also introduces a new locker sprite made by aliceee2ch and one chemical payload variant by me ## Why It's Good For The Game Removes some of the jank and make these places easier to use. Adds extra stuff to the chemical section to widen the options you can do as nukies. and make the lab a more proper lab toolwise then the absolute bare mininum ## Changelog 🆑 Ezel balance: Nukie Chemistry section, now includes a proper chemistry locker with pill bottles medigels and big beakers balance: Nukie Chemistry section, now has a extra section attached to it that holds some limited amount chemistry materials and a empty bombcase. balance: Nukie Chemistry section, now has various sizes of beakers, a special chemical payload that can hold up to 5 beakers, and a hand labeler to tag your stuff with map: Nukie Chemistry section, now has a smartfridge map: Nukie xenobiology section widened and added a fully upgraded slime proccesor sprite: New syndicate chemical locker sprite by aliceee2ch sprite: Adds a darker version of chemical payload only for nukies /🆑 --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
f57f95aa95 |
[MDB Ignore] General maintenance for SMES (#91587)
## About The Pull Request - SMES now directly gives/takes charge to the power cells stored inside its component parts instead of modifying a `charge` variable whose value was set from the total charge of its stored cells - Removed `capacity` var. It's now derived from the total cells `max_charge`. Even then its value was set to this so manually setting it was a waste - Fixes #71918. Because of point 1, this also means if you install rigged cells in the SMES it now explodes - Adds examines & screentips for installing terminal & other tool acts - Smes can be connected to the powernet with a multitool with the panel open after construction. - General maintenance for portable smes as well. Repaths it to machine subtype instead of power cause all it's functionality wasn't used - Removed a bunch of unused defines, autodoc and shuffled around other code ## Changelog 🆑 qol: SMES has examines and screentips for various stuff code: Improved code of SMES in general fix: smes can be connected to the powernet with a multitool with the panel open after construction refactor: SMES now functions consistently with its power cells & the RPED. /🆑 |
||
|
|
4a47c90c18 |
Flatpacker & machine frame enhancements (#91752)
## About The Pull Request **1. Makes the machine creation process from both efficient.** The machine frame no longer creates & deletes the machines old component parts before moving in the new parts. It instead now passes its parts directly to the circuit boards `apply_default_parts()` meaning the old parts are never created and the new ones get applied directly. This also mean it does not have to again call `RefreshParts()` as the machines `Initialize()` proc will do that for us by default so the performance is just faster now. Flatpack box also benefits from this and it will need it as stated below - Fixes #86514. As the circuit board is passed to the machine's `Initialize()` proc during reconstruction so it sets it's `all_products_free` from the board both during mapload & when player constructed from either machine frame & flatpack **2. Flatpack enhancements** - The flatpack box now passes its stored circuit board into the machine meaning any changes made like with a screw driver or such are preserved in the newly created machine rather than the board getting deleted & the machine creating the default board - Flatpacker now accept custom component parts that replaces its stored circuit board default parts. This implements https://github.com/tgstation/tgstation/pull/91670#issuecomment-2977259973 meaning instead of the vendor created from the flatpacker starting out empty it now accepts the refill canister and will package both of them together. Then during deployment that stored canister is stored back in the vendor meaning instead of starting out empty you get to carry over all your previous stock Depends on https://github.com/tgstation/tgstation/pull/91512 because of named arg conflict. Keep this drafted till that gets merged ## Changelog 🆑 qol: flatpacker now accepts custom component parts(like vendor refill canister) along with the circuit board so you can carry over your previous stock during deployment rather than starting out empty fix: flatpack boxes now passes its stored circuit board into the machine thus preserving its properties instead of creating a default board in the machine fix: vending machines reconstructed on station from circuits loaded off station(having free products) will continue to sell free products code: machine construction via flatpacker/machine frame is faster performance wise /🆑 |
||
|
|
2d41569c65 |
Flatpacker & machine frame enhancements (#91752)
## About The Pull Request **1. Makes the machine creation process from both efficient.** The machine frame no longer creates & deletes the machines old component parts before moving in the new parts. It instead now passes its parts directly to the circuit boards `apply_default_parts()` meaning the old parts are never created and the new ones get applied directly. This also mean it does not have to again call `RefreshParts()` as the machines `Initialize()` proc will do that for us by default so the performance is just faster now. Flatpack box also benefits from this and it will need it as stated below - Fixes #86514. As the circuit board is passed to the machine's `Initialize()` proc during reconstruction so it sets it's `all_products_free` from the board both during mapload & when player constructed from either machine frame & flatpack **2. Flatpack enhancements** - The flatpack box now passes its stored circuit board into the machine meaning any changes made like with a screw driver or such are preserved in the newly created machine rather than the board getting deleted & the machine creating the default board - Flatpacker now accept custom component parts that replaces its stored circuit board default parts. This implements https://github.com/tgstation/tgstation/pull/91670#issuecomment-2977259973 meaning instead of the vendor created from the flatpacker starting out empty it now accepts the refill canister and will package both of them together. Then during deployment that stored canister is stored back in the vendor meaning instead of starting out empty you get to carry over all your previous stock Depends on https://github.com/tgstation/tgstation/pull/91512 because of named arg conflict. Keep this drafted till that gets merged ## Changelog 🆑 qol: flatpacker now accepts custom component parts(like vendor refill canister) along with the circuit board so you can carry over your previous stock during deployment rather than starting out empty fix: flatpack boxes now passes its stored circuit board into the machine thus preserving its properties instead of creating a default board in the machine fix: vending machines reconstructed on station from circuits loaded off station(having free products) will continue to sell free products code: machine construction via flatpacker/machine frame is faster performance wise /🆑 |
||
|
|
508e9ab573 |
Fixes war ops being able to launch shuttle before 20 minutes passed. (#91687)
Fixes the lockdown timer counting from server start instead of challenge start. ## Why It's Good For The Game I'm not sure it's actually good, but balance should be explicit not confluence of bugs. |
||
|
|
a4d5c97f63 |
Adds Modular shield consoles, boards, and tech, lets monkeys mash their keyboards (#91189)
## About The Pull Request (had to cut off the video cause of github file size limit) https://github.com/user-attachments/assets/f6a51d28-dc35-41ad-93ac-099c48215013 Adds modular shield generator consoles to the game, boards are available through holographics tech Simply multitool buffer a generator and then use the buffer on a console. The console can see the current shield health status of every generator that is linked to it and can toggle the generators on and off, but cannot change radius or any other settings. The console can also rename generators for convenience And should a monkey manage to slip past your defenses via ventcrawl it will be able to randomly toggle your shields. https://github.com/user-attachments/assets/94435d15-e52f-45c7-a2e6-135228e7bc08 ## Why It's Good For The Game Helps engineers keep track of their generators for primarily PVE content (mainly when they are trying to protect the station against meteors) ## Changelog 🆑 add: You can now remotely monitor and control modular shield generators using modular shield generator consoles. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
ed7e92bf77 |
Fixes war ops being able to launch shuttle before 20 minutes passed. (#91687)
Fixes the lockdown timer counting from server start instead of challenge start. ## Why It's Good For The Game I'm not sure it's actually good, but balance should be explicit not confluence of bugs. |
||
|
|
c2e0d21c7a |
Adds Modular shield consoles, boards, and tech, lets monkeys mash their keyboards (#91189)
## About The Pull Request (had to cut off the video cause of github file size limit) https://github.com/user-attachments/assets/f6a51d28-dc35-41ad-93ac-099c48215013 Adds modular shield generator consoles to the game, boards are available through holographics tech Simply multitool buffer a generator and then use the buffer on a console. The console can see the current shield health status of every generator that is linked to it and can toggle the generators on and off, but cannot change radius or any other settings. The console can also rename generators for convenience And should a monkey manage to slip past your defenses via ventcrawl it will be able to randomly toggle your shields. https://github.com/user-attachments/assets/94435d15-e52f-45c7-a2e6-135228e7bc08 ## Why It's Good For The Game Helps engineers keep track of their generators for primarily PVE content (mainly when they are trying to protect the station against meteors) ## Changelog 🆑 add: You can now remotely monitor and control modular shield generators using modular shield generator consoles. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
c12d2189e0 |
atmospherics shield generator (#91055)
## About The Pull Request (old video) https://github.com/user-attachments/assets/4b04c372-05a2-4bab-b4a4-1b2c965061e5 unlocked by holographics research put two facing eachother and turn one on to make a field that blocks atmos, if not obstructed by wall fields cannot be broken or clicked but the generators may (theyre relatively weak) requires external airlock access or apc access uses area power, environmental channel may be locked may be screwed open to access wiring, has 1 wire that just toggles it changes tiny fans on stations to use those ## Why It's Good For The Game a better and rebuildable alternative to magic tiny fans ## Changelog 🆑 add: atmospherics shield generator, unlocked by Holographics research /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
730eb8af99 |
Photocopier Improvements (#91258)
## About The Pull Request Photocopiers no longer initialize all their stored papers. Since the only paper that can be stored has to be empty this is now just stored as a number value. This prevents hundreds of blank papers from being spawned during round start loading, since every station map has a dozen of these machines scattered about. Other stuff: - Emag function where it breaks the payment system so people are no longer charged for printing - Stock parts now affect max paper storage, print time, and toner usage (swapped servo part for matter bin) - Can now load paper via paper bins - Can now select which type of paper to print with (regular, carbon, construction, natural) - Fix stored paper counts being wrong - Gave paper subtypes proper names so we can use them in our UI - Paper and toner are now dropped when machine deconstructed - Refactored item code to use `item_interaction()` instead of `attackby()` ## Why It's Good For The Game New functionality, bugfixes, refactored code, and optimizations are good. ## Changelog 🆑 add: Photocopiers can now be emagged to disable the payment system that charges you for printing copies add: Photocopiers are now affected by stock part upgrades. Matter bins affect paper capacity, lasers affect toner usage, and scanning module affects time to print. The servo stock part was replaced with matter bin. add: Photocopiers can now be loaded with regular, carbon, construction, and natural paper. You can select which kind to use in the UI when printing copies if any are stored. qol: Photocopiers can now be loaded with paper bins fix: Photocopiers now display the correct amount of stored paper fix: Photocopiers now drop toner and paper when machine is deconstructed code: Paper subtypes (carbon, construction, natural) were given proper names to use with photocopiers UI menu. refactor: Photocopier code was refactored to not spawn paper when it is initialized. Instead it stores blank papers as a numeric value. Also switched the `attackby()` code handling to use the modern `item_interaction()` proc. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
c62755e2cd |
Engine circuit boards use datum parts (#91451)
## About The Pull Request As it says on the tin and it should be using them because it doesn't take up space in game. Also moved them to `machine_circuitboards.dm` cause it doesn't take up that much space ## Changelog 🆑 code: engine circuit boards use datum parts and don't occupy memory in game /🆑 |
||
|
|
75e7ef6def |
Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑 |
||
|
|
089059d7d3 |
atmospherics shield generator (#91055)
## About The Pull Request (old video) https://github.com/user-attachments/assets/4b04c372-05a2-4bab-b4a4-1b2c965061e5 unlocked by holographics research put two facing eachother and turn one on to make a field that blocks atmos, if not obstructed by wall fields cannot be broken or clicked but the generators may (theyre relatively weak) requires external airlock access or apc access uses area power, environmental channel may be locked may be screwed open to access wiring, has 1 wire that just toggles it changes tiny fans on stations to use those ## Why It's Good For The Game a better and rebuildable alternative to magic tiny fans ## Changelog 🆑 add: atmospherics shield generator, unlocked by Holographics research /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
a91d61d449 |
Photocopier Improvements (#91258)
## About The Pull Request Photocopiers no longer initialize all their stored papers. Since the only paper that can be stored has to be empty this is now just stored as a number value. This prevents hundreds of blank papers from being spawned during round start loading, since every station map has a dozen of these machines scattered about. Other stuff: - Emag function where it breaks the payment system so people are no longer charged for printing - Stock parts now affect max paper storage, print time, and toner usage (swapped servo part for matter bin) - Can now load paper via paper bins - Can now select which type of paper to print with (regular, carbon, construction, natural) - Fix stored paper counts being wrong - Gave paper subtypes proper names so we can use them in our UI - Paper and toner are now dropped when machine deconstructed - Refactored item code to use `item_interaction()` instead of `attackby()` ## Why It's Good For The Game New functionality, bugfixes, refactored code, and optimizations are good. ## Changelog 🆑 add: Photocopiers can now be emagged to disable the payment system that charges you for printing copies add: Photocopiers are now affected by stock part upgrades. Matter bins affect paper capacity, lasers affect toner usage, and scanning module affects time to print. The servo stock part was replaced with matter bin. add: Photocopiers can now be loaded with regular, carbon, construction, and natural paper. You can select which kind to use in the UI when printing copies if any are stored. qol: Photocopiers can now be loaded with paper bins fix: Photocopiers now display the correct amount of stored paper fix: Photocopiers now drop toner and paper when machine is deconstructed code: Paper subtypes (carbon, construction, natural) were given proper names to use with photocopiers UI menu. refactor: Photocopier code was refactored to not spawn paper when it is initialized. Instead it stores blank papers as a numeric value. Also switched the `attackby()` code handling to use the modern `item_interaction()` proc. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
ec86096909 |
Engine circuit boards use datum parts (#91451)
## About The Pull Request As it says on the tin and it should be using them because it doesn't take up space in game. Also moved them to `machine_circuitboards.dm` cause it doesn't take up that much space ## Changelog 🆑 code: engine circuit boards use datum parts and don't occupy memory in game /🆑 |
||
|
|
14fb86e3e8 |
Mutation code cleanup, mutations now have sources to avoid concurrency problems. (#91346)
## About The Pull Request This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. ## Why It's Good For The Game Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. ## Changelog 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑 |
||
|
|
0e7e603d4b |
Properly document circuitboard vars (#91348)
## About The Pull Request Some of the code comments only used `//` so they weren't appearing in VSC when you hover over the proc which is annoying. ## Why It's Good For The Game Documentation good. ## Changelog 🆑 code: Properly document circuitboard vars /🆑 |
||
|
|
2ace938a50 |
Properly document circuitboard vars (#91348)
## About The Pull Request Some of the code comments only used `//` so they weren't appearing in VSC when you hover over the proc which is annoying. ## Why It's Good For The Game Documentation good. ## Changelog 🆑 code: Properly document circuitboard vars /🆑 |
||
|
|
2273df83be |
Adds Modular Shield Cables and wrench connection QoL, Spraypainting the generator now causes it to color the shields on next activation (#91122)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
32abbcc58f |
Adds Modular Shield Cables and wrench connection QoL, Spraypainting the generator now causes it to color the shields on next activation (#91122)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
d315286ec3 | Readds Cloning (#90754) | ||
|
|
713000b32b |
[MDB Ignore] Makes photocopiers buildable (#90658)
## About The Pull Request Adds the ability to build & deconstruct photocopiers. Replaces photocopiers on current maps with a prebuilt version that's prestocked with ink & paper. It starts preresearched in the office equipment node. Takes a scanning module, micro laser, and servo to build. ## Why It's Good For The Game Being able to remake is GOOD !!! Lets crew have ~ass scanning factories~ hard working offices wherever they want. ## Changelog 🆑 Goat, LePiromano qol: Photocopiers now have boards meaning you can build, destroy, and remake them. (If you're a mapper use the prebuilt version to prestock your photocopiers) /🆑 |
||
|
|
341090d420 |
Adds a unit test for techweb design presence, puts some missing designs into protolathes (#90219)
## About The Pull Request Adds a unit test that checks that all designs are accessible through some source, be it techweb, disks, or innate designs. Certain designs, like pocket extinguishers, entertainment screens, etc, that have been present in autolathes but not in the techweb despite having PROTOLATHE flag assigned have been put into protolathes (where it made sense, otherwise the flag was removed). An important change is that restaurant portals are now printable, and thus can be constructed and deconstructed. Indestructible portals have been a major gripe of mine for a while, and I don't see a solid reason for keeping them indestructible if they can easily be printed from the service protolathe. Closes #90212 ## Why It's Good For The Game Initial argument for keeping portals unbreakable was to prevent people from griefing the chef/bartender, but by that logic we can make most machinery unbreakable too. I don't think that having an unbreakable portal is good if its locking us out from allowing chefs/bartenders to reorder or even outright reposition their lunchroom/bar. ## Changelog 🆑 balance: Restaurant portals can now be printed, constructed and deconstructed. They're also no longer completely invulnerable. /🆑 |
||
|
|
f2b07029ef | Readds Cloning (#90754) | ||
|
|
3799f50e65 |
[MDB Ignore] Makes photocopiers buildable (#90658)
## About The Pull Request Adds the ability to build & deconstruct photocopiers. Replaces photocopiers on current maps with a prebuilt version that's prestocked with ink & paper. It starts preresearched in the office equipment node. Takes a scanning module, micro laser, and servo to build. ## Why It's Good For The Game Being able to remake is GOOD !!! Lets crew have ~ass scanning factories~ hard working offices wherever they want. ## Changelog 🆑 Goat, LePiromano qol: Photocopiers now have boards meaning you can build, destroy, and remake them. (If you're a mapper use the prebuilt version to prestock your photocopiers) /🆑 |
||
|
|
44c968f75e |
Adds a unit test for techweb design presence, puts some missing designs into protolathes (#90219)
## About The Pull Request Adds a unit test that checks that all designs are accessible through some source, be it techweb, disks, or innate designs. Certain designs, like pocket extinguishers, entertainment screens, etc, that have been present in autolathes but not in the techweb despite having PROTOLATHE flag assigned have been put into protolathes (where it made sense, otherwise the flag was removed). An important change is that restaurant portals are now printable, and thus can be constructed and deconstructed. Indestructible portals have been a major gripe of mine for a while, and I don't see a solid reason for keeping them indestructible if they can easily be printed from the service protolathe. Closes #90212 ## Why It's Good For The Game Initial argument for keeping portals unbreakable was to prevent people from griefing the chef/bartender, but by that logic we can make most machinery unbreakable too. I don't think that having an unbreakable portal is good if its locking us out from allowing chefs/bartenders to reorder or even outright reposition their lunchroom/bar. ## Changelog 🆑 balance: Restaurant portals can now be printed, constructed and deconstructed. They're also no longer completely invulnerable. /🆑 |
||
|
|
f3ac412f69 |
Custom Shuttles Redux: Allows for the construction of custom shuttles. (#88493)
## About The Pull Request This incredibly detailed PR adds the ability to construct custom shuttles, which function similarly to whiteships. To construct a custom shuttle, you need the following items: - Shuttle frame rods These rods can be hand-crafted by using 5 rods on 1 sheet of titanium, or printed at a sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. Lattices built with these rods, and catwalks/floors built on top of these lattices, are valid for shuttle construction. - Shuttle engines Did you know shuttle engines have boards that weren't normally obtainable? Well the board for one specific engine type is now available from the sci/engi/cargo lathe after researching Shuttle Engineering. Of course, the old options remain. You can steal engines from other shuttles, including escape pods (it's not like engines are strictly necessary for *those* shuttles anyways). Alternatively, the shuttle engine supply pack is no longer locked behind the purchase of the BYOS. - Flight Control & Navigation Console boards These boards are printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. If built on a custom shuttle, it will automatically link to it, unless the shuttle already has such a console. If built on a turf that is valid for custom shuttle construction, it will automatically link to any shuttle constructed from or expanded with that turf. - Shuttle blueprints Standard shuttle blueprints can be printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. A cyborg upgrade granting access to a shuttle blueprint database can be printed at the exofab after researching the aforementioned node. Crude shuttle blueprints can be crafted by hand with a sheet of paper and either a rainbow crayon or 10 uses of a blue crayon or spraycan. If Science won't research the tech, you can also buy a goody pack containing a flight control board, a docker board, two engine boards, and a set of shuttle blueprints for 1200 credits, if you have aux base access. A shuttle can be constructed atop any continuous region of turfs containing a shuttle rod lattice or a catwalk/tile built upon such. Currently, this region cannot intersect any area other than space, lavaland, the icemoon, or the station asteroid. Preexisting custom areas can be included in the construction of the shuttle, but only if every turf in the custom area is valid for shuttle construction. In the shuttle blueprint UI, you can toggle a visualizer to display which turfs fulfill all of the aforementioned conditions. The following video goes through the basic process of shuttle construction. https://github.com/user-attachments/assets/3283422e-a201-4978-972d-67527b5df4ee The blueprint used to construct the shuttle will be its master blueprint. The master blueprint can be copied to other blank shuttle blueprints (or to engiborgs with the shuttle database upgrade), and allows the holder to perform a christening ritual on the shuttle to rename it. If a shuttle's master blueprint ceases to exist, a blank blueprint can be linked to the shuttle to become the new master blueprint, or an existing blueprint associated with that shuttle can be promoted to the master blueprint. Once constructed, the following options are available from the blueprint UI to modify it: - Create Area Convert a continuous open area of the shuttle into a new area with the name written in the above text input. This operates very similarly to regular area construction. - Rename Area Change the name of the area you're currently in to the name written in the above text input. - Expand Area Add a continuous open area of the shuttle to the neighboring area selected from the dropdown to the left. This operates like regular area expansion. - Expand Shuttle Expand a shuttle with valid frame turfs as defined above. These turfs must be physically connected to the shuttle. - Remove Area Remove an area, giving its tiles to the default shuttle area. - Cleanup Empty Space (implemented after the above video was recorded) Removes all completely empty turfs from the shuttle. If all the turfs in one of the shuttle's areas were removed, that area is deleted. If absolutely no turfs of the shuttle remain, the shuttle itself is deleted. Due to the ability for this action to delete the shuttle, only the master blueprint can do it. As mentioned above, the shuttle's master blueprint can be used to christen its associated shuttle. To do this, fill a glass drink bottle with some amount of reagents, then hit it against one of the shuttle's walls from outside while holding the master blueprint. You will be prompted to enter a new name for the shuttle. The variety of things that can happen while inputting a new name can cause the christening rite to fail in one of several humorous ways. ### Optional (Unless specifically requested by a maintainer) Todo's - [x] A way for shuttle circuits to be obtainable without techweb nodes - [x] A more convenient way to carry around shuttle engines or the means to deploy them - [ ] A shuttle construction guide available as a reference book - [ ] Allow boards to be linked to shuttles before construction so they can be used outside the shuttle ## Why It's Good For The Game Shuttles have been part of the sandbox for an incredibly long time, but their limited accessibility has rendered them the exclusive territory of lucky space explorers or the few antagonists who get one off the bat (nukies and pirates). Giving players the means to construct shuttles to their liking opens up a variety of possibilities for gimmicks for antags and non-antags alike. Besides the applications for antaggery and crew-sided gimmicks, this provides side content for several departments to engage with during the relatively-frequent periods of time where they have little else to do as part of their intended roles. With respect to engineering, if the station isn't actively being damaged, the supermatter is in perfect working order, and nobody is clamoring for machine upgrades, engineers have little else to resort to other than construction projects. While the BSA station goal provides an incentive for engineers to construct dedicated rooms for the cannon, it will not necessarily be available every round. Custom shuttles not only provide such a construction project to pursue, but provide the rare opportunity, as well as a very good reason, to set up an independent power network, complete with its own power source. While atmos techs have a lot to do with gas mixing and the crystallizer, they rarely get the opportunity to set up working life support systems outside of repairing the ones that get blown up. Custom shuttles will frequently start with no air, and unless the design settled upon is an open floor plan, it will have several independent chambers that cannot so easily be profused with a proper airmix by just opening a canister. Furthermore, if the air in a custom shuttle gets messed up, a proper scrubber and distro network is a significantly less tedious method of rectifying the problem than cleaning the air manually with portable scrubbers and pumps. Scientists, it can be argued, with their access to RPDs through ordnance, have similar opportunities to atmos techs, even though the act in and of itself is not exactly part of their duties. But compared to the other job content they could be working with after they've completed most of their gameplay loop, custom shuttle construction is a substantially more active endeavor. And I know how much people complain about late-game science content just being sitting around at a console and making gamer gear. Roboticists can have a part to play in this too. They can put their mech RCDs to a use other than 2D topdown Fortnite, and with the shuttle database upgrade, they can help interested cyborgs get in on the action. Cargo is yet another department known for having significant amounts of downtime during a considerable number of rounds. If every other department has gone through their initial rounds of departmental orders, and there isn't an active need for cargo to order lots of one thing or another, cargo techs have little to do besides mail (at least on the days where there **is** mail to deliver). Usually, if cargo techs do, in fact, do something as a department when not presented with more pressing duties, they order guns and other contraband. As funny as this is, there's not a lot of variety in how this behavior manifests. With custom shuttles, cargo can use their free time to plan, and execute, a unique collective expression of design sensibilities, not limited by the size and shape constraints of the cargo bay itself. ## Changelog 🆑 Y0SH1_M4S73R (with special thanks to Vect0r, whose original PR inspired the implementation of these changes) add: Shuttle blueprints, the tool used to construct and modify custom shuttles. Print a set at a science, engineering, or cargo techfab after researching Shuttle Engineering, or craft a crude set from the crafting menu. add: Shuttle blueprint database upgrade for engineering cyborgs, printable from the Exosuit Fabricator after researching Shuttle Engineering. A version of shuttle blueprints designed for use by cyborgs. add: Shuttle frame rods, usable to construct custom shuttles. Hand-craft by using 5 rods on 1 titanium sheet, or by printing them at a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Custom shuttle flight control and navigation boards, printable from a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Shuttle engine boards can be printed from a science, engineering, or cargo techfab after researching shuttle engineering. add: The shuttle engine supply pack is no longer locked behind the purchase of the Build Your Own Shuttle kit. add: Shuttle Construction Starter Kit goodie pack, containing a set of shuttle blueprints, flight control and navigation console boards, and two engine boards, can be purchased from cargo for 1200 credits. Requires aux base access to purchase. refactor: Shuttles now keep track of what areas are underneath each of their individual turfs, so that the areas left behind on movement are consistent with what they were beforehand. refactor: Shuttle ceilings now place themselves down as baseturfs, instead of only appearing if the turf above is open space. /🆑 --------- Co-authored-by: vect0r <71346830+Vect0r2@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
cbc3350224 |
Custom Shuttles Redux: Allows for the construction of custom shuttles. (#88493)
## About The Pull Request This incredibly detailed PR adds the ability to construct custom shuttles, which function similarly to whiteships. To construct a custom shuttle, you need the following items: - Shuttle frame rods These rods can be hand-crafted by using 5 rods on 1 sheet of titanium, or printed at a sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. Lattices built with these rods, and catwalks/floors built on top of these lattices, are valid for shuttle construction. - Shuttle engines Did you know shuttle engines have boards that weren't normally obtainable? Well the board for one specific engine type is now available from the sci/engi/cargo lathe after researching Shuttle Engineering. Of course, the old options remain. You can steal engines from other shuttles, including escape pods (it's not like engines are strictly necessary for *those* shuttles anyways). Alternatively, the shuttle engine supply pack is no longer locked behind the purchase of the BYOS. - Flight Control & Navigation Console boards These boards are printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. If built on a custom shuttle, it will automatically link to it, unless the shuttle already has such a console. If built on a turf that is valid for custom shuttle construction, it will automatically link to any shuttle constructed from or expanded with that turf. - Shuttle blueprints Standard shuttle blueprints can be printed at the sci/engi/cargo lathe after researching the Shuttle Engineering techweb node. A cyborg upgrade granting access to a shuttle blueprint database can be printed at the exofab after researching the aforementioned node. Crude shuttle blueprints can be crafted by hand with a sheet of paper and either a rainbow crayon or 10 uses of a blue crayon or spraycan. If Science won't research the tech, you can also buy a goody pack containing a flight control board, a docker board, two engine boards, and a set of shuttle blueprints for 1200 credits, if you have aux base access. A shuttle can be constructed atop any continuous region of turfs containing a shuttle rod lattice or a catwalk/tile built upon such. Currently, this region cannot intersect any area other than space, lavaland, the icemoon, or the station asteroid. Preexisting custom areas can be included in the construction of the shuttle, but only if every turf in the custom area is valid for shuttle construction. In the shuttle blueprint UI, you can toggle a visualizer to display which turfs fulfill all of the aforementioned conditions. The following video goes through the basic process of shuttle construction. https://github.com/user-attachments/assets/3283422e-a201-4978-972d-67527b5df4ee The blueprint used to construct the shuttle will be its master blueprint. The master blueprint can be copied to other blank shuttle blueprints (or to engiborgs with the shuttle database upgrade), and allows the holder to perform a christening ritual on the shuttle to rename it. If a shuttle's master blueprint ceases to exist, a blank blueprint can be linked to the shuttle to become the new master blueprint, or an existing blueprint associated with that shuttle can be promoted to the master blueprint. Once constructed, the following options are available from the blueprint UI to modify it: - Create Area Convert a continuous open area of the shuttle into a new area with the name written in the above text input. This operates very similarly to regular area construction. - Rename Area Change the name of the area you're currently in to the name written in the above text input. - Expand Area Add a continuous open area of the shuttle to the neighboring area selected from the dropdown to the left. This operates like regular area expansion. - Expand Shuttle Expand a shuttle with valid frame turfs as defined above. These turfs must be physically connected to the shuttle. - Remove Area Remove an area, giving its tiles to the default shuttle area. - Cleanup Empty Space (implemented after the above video was recorded) Removes all completely empty turfs from the shuttle. If all the turfs in one of the shuttle's areas were removed, that area is deleted. If absolutely no turfs of the shuttle remain, the shuttle itself is deleted. Due to the ability for this action to delete the shuttle, only the master blueprint can do it. As mentioned above, the shuttle's master blueprint can be used to christen its associated shuttle. To do this, fill a glass drink bottle with some amount of reagents, then hit it against one of the shuttle's walls from outside while holding the master blueprint. You will be prompted to enter a new name for the shuttle. The variety of things that can happen while inputting a new name can cause the christening rite to fail in one of several humorous ways. ### Optional (Unless specifically requested by a maintainer) Todo's - [x] A way for shuttle circuits to be obtainable without techweb nodes - [x] A more convenient way to carry around shuttle engines or the means to deploy them - [ ] A shuttle construction guide available as a reference book - [ ] Allow boards to be linked to shuttles before construction so they can be used outside the shuttle ## Why It's Good For The Game Shuttles have been part of the sandbox for an incredibly long time, but their limited accessibility has rendered them the exclusive territory of lucky space explorers or the few antagonists who get one off the bat (nukies and pirates). Giving players the means to construct shuttles to their liking opens up a variety of possibilities for gimmicks for antags and non-antags alike. Besides the applications for antaggery and crew-sided gimmicks, this provides side content for several departments to engage with during the relatively-frequent periods of time where they have little else to do as part of their intended roles. With respect to engineering, if the station isn't actively being damaged, the supermatter is in perfect working order, and nobody is clamoring for machine upgrades, engineers have little else to resort to other than construction projects. While the BSA station goal provides an incentive for engineers to construct dedicated rooms for the cannon, it will not necessarily be available every round. Custom shuttles not only provide such a construction project to pursue, but provide the rare opportunity, as well as a very good reason, to set up an independent power network, complete with its own power source. While atmos techs have a lot to do with gas mixing and the crystallizer, they rarely get the opportunity to set up working life support systems outside of repairing the ones that get blown up. Custom shuttles will frequently start with no air, and unless the design settled upon is an open floor plan, it will have several independent chambers that cannot so easily be profused with a proper airmix by just opening a canister. Furthermore, if the air in a custom shuttle gets messed up, a proper scrubber and distro network is a significantly less tedious method of rectifying the problem than cleaning the air manually with portable scrubbers and pumps. Scientists, it can be argued, with their access to RPDs through ordnance, have similar opportunities to atmos techs, even though the act in and of itself is not exactly part of their duties. But compared to the other job content they could be working with after they've completed most of their gameplay loop, custom shuttle construction is a substantially more active endeavor. And I know how much people complain about late-game science content just being sitting around at a console and making gamer gear. Roboticists can have a part to play in this too. They can put their mech RCDs to a use other than 2D topdown Fortnite, and with the shuttle database upgrade, they can help interested cyborgs get in on the action. Cargo is yet another department known for having significant amounts of downtime during a considerable number of rounds. If every other department has gone through their initial rounds of departmental orders, and there isn't an active need for cargo to order lots of one thing or another, cargo techs have little to do besides mail (at least on the days where there **is** mail to deliver). Usually, if cargo techs do, in fact, do something as a department when not presented with more pressing duties, they order guns and other contraband. As funny as this is, there's not a lot of variety in how this behavior manifests. With custom shuttles, cargo can use their free time to plan, and execute, a unique collective expression of design sensibilities, not limited by the size and shape constraints of the cargo bay itself. ## Changelog 🆑 Y0SH1_M4S73R (with special thanks to Vect0r, whose original PR inspired the implementation of these changes) add: Shuttle blueprints, the tool used to construct and modify custom shuttles. Print a set at a science, engineering, or cargo techfab after researching Shuttle Engineering, or craft a crude set from the crafting menu. add: Shuttle blueprint database upgrade for engineering cyborgs, printable from the Exosuit Fabricator after researching Shuttle Engineering. A version of shuttle blueprints designed for use by cyborgs. add: Shuttle frame rods, usable to construct custom shuttles. Hand-craft by using 5 rods on 1 titanium sheet, or by printing them at a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Custom shuttle flight control and navigation boards, printable from a science, engineering, or cargo techfab after researching Shuttle Engineering. add: Shuttle engine boards can be printed from a science, engineering, or cargo techfab after researching shuttle engineering. add: The shuttle engine supply pack is no longer locked behind the purchase of the Build Your Own Shuttle kit. add: Shuttle Construction Starter Kit goodie pack, containing a set of shuttle blueprints, flight control and navigation console boards, and two engine boards, can be purchased from cargo for 1200 credits. Requires aux base access to purchase. refactor: Shuttles now keep track of what areas are underneath each of their individual turfs, so that the areas left behind on movement are consistent with what they were beforehand. refactor: Shuttle ceilings now place themselves down as baseturfs, instead of only appearing if the turf above is open space. /🆑 --------- Co-authored-by: vect0r <71346830+Vect0r2@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |