mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-16 19:53:37 +01:00
60e3451960cfc1d40597dcafe7fc6165d6c012e3
226 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
20118ad747 |
Converts a bunch of time/delay vars to use time defines (#92495)
## About The Pull Request Converts as many time vars expressed in deciseconds as I could find to use time defines. ## Why It's Good For The Game Makes these values neater and more readable. ## Changelog 🆑 code: Converted a lot of time-based variables to be expressed with time defines. /🆑 # Conflicts: # code/modules/clothing/head/hat.dm # code/modules/clothing/shoes/boots.dm # code/modules/clothing/suits/utility.dm |
||
|
|
1c0ac21cb4 |
Fixes the issue of usr pointing to admins by making Trigger pass down clicker (#92354)
## About The Pull Request
Fixes the issue of usr pointing to admins by making Trigger pass down
clicker, as usr is fucky and can be passed down by other unrelated
procs. Fun.
Added the clicker arg to all usages of Trigger as well
Also changes isobserver check in antagonist ui_act code that prevents
observers from clicking UI's instead to check if the ui.user is
owner.current
## Why It's Good For The Game
Fixes admins giving heretic to people opening the heretic UI for the
admin instead
(cherry picked from commit
|
||
|
|
4f76587e68 |
Un-hardcode door ID on derelict vault door computer (#91528)
## About The Pull Request Change the code for the Russian derelict vault to use a var instead of having a hardcoded value for the door ID to link to, also change the default value to a define ## Why It's Good For The Game Enables mappers and var editors to make use of these things for shenanigans ## Changelog 🆑 code: the russian derelict vault computer now uses a variable for the door id /🆑 |
||
|
|
9ef0768b1c |
Removes a couple of duplicate gag map_icons + fixes the gags_recolorable component + most lootpanel gags previews (#91341)
## About The Pull Request Turns out there were a couple of black mask subtypes that I missed as well as a prisoner uniform subtype. Also fixes some bugs that are not related to the map icon pr to further improve the situation with GAGS previews. ## Why It's Good For The Game Smaller .dmis, working previews ## Changelog 🆑 fix: spraycan can now be used to recolor the gi, glow shoes, striped dress, H.E.C.K. suit fix: most GAGS items should now be showing up in the lootpanel again /🆑 |
||
|
|
d841c9df40 |
[MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
Refactors most of blood handling code untouched by #90593 and completely rewrites all blood decals, components and reagents. - Blood types now have behavioral flags which allow them to control where they leave decals/DNA/viruses. Oil no longer transfers DNA and viruses with it, while podpeople water-blood doesn't leave visible decals on turfs and items, but still can be picked up by DNA scanners. - Multiple blood types have received unique handling - liquid electricity blood now glows in the dark, oil trails are flammable and lube ones are slippery. Oil blood can be restored with fuel, lube with silicon and slime with stable plasma (as normal plasma already passively regenerates their blood), instead of everything using iron. Saline solution only supplements on iron-based blood and won't do anything to help with bloodloss for species who rely on different blood types. (Roundstart this applies only to Ethereals) - All blood logic has been moved away from the blood reagent itself into a blood element that is assigned to the blood reagent by default, and to any reagent that's drawn from a mob as their "blood" (in ``transfer_blood_to``). This means that blood you draw from lizards will be green and have lizard's blood description instead of mentioning red blood cells, Ethereal "blood" will actually contain their DNA and genes, etc. - Refactored all blood decals. Blood states are no more, everything is now handled via blood DNA. Credits to MrMelbert and Maplestation, as a significant amount of code has been taken from https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his followup PRs. Oil and xenomorph splatters are now subtypes of blood, blood drying is now animated, blood trails now curve and can be diagonal. - Rewrote bloodysoles and bloody_spreader components, credits to Melbert again for the former, while latter now makes more sense with its interactions. Bloody soles no longer share blood DNA with your hands. - Ported Melbert's bloody footprint sprites and bot-blood-spreading functionality. - Removed all species-side reagent interactions, instead they're handled by said species' livers. (This previously included exotic blood handling, thus the removal) - Slightly optimized human rendering by removing inbetween overlay holders for clothing when they're not needed. - Blood-transmitted diseases will now get added to many more decals than before. - Cleaned up and partially refactored replica pods, fixed an issue where monkeys/manipulators were unable to harvest mindless pods. - Exotic bloodtype on species now automatically assigns their blood reagent, without the need to assign them separately. - Clown mobs now bleed (with colorful reagent instead of blood during april fools), and so do vatbeasts (lizard blood) - Implemented generic procs for handling bleeding checks, all sorts of scanners now also correctly call your blood for what it is. - Podpeople's guts are now lime-green like their organs, instead of being weirdly greyish like their water-blood. (Their bleeding overlays are still grey, as they're bleeding water) - Slimepeople now can bleed. Their jelly is pale purple in color, but their wound overlays copy their body color. - Injecting/spraying/splashing/etc mob with a reagent preserves its data, so you could theoretically recycle fine wines from someone's bloodstream - Fixed burdened chaplain's sect never actually giving a blessing when applying effects, and giving a blessing when nothing can be healed. Inverted check strikes again. - Closes #91039 A lot of blood here has dried, visually the blood colors are almost exactly the same as before either of the blood refactors.   |
||
|
|
655b66bdd0 |
Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
Revival of https://github.com/tgstation/tgstation/pull/86482, which is even more doable now that we have rustg iconforge generation. What this PR does: - Sets up every single GAGS icon in the game to have their own preview icon autogenerated during compile. This is configurable to not run during live. The icons are created in `icons/map_icons/..` - This also has the side effect of providing accurate GAGS icons for things like the loadout menu. No more having to create your own previews.  <details><summary>Mappers rejoice!</summary>   </details> <details><summary>Uses iconforge so it does not take up much time during init</summary>  </details> --- this still applies: Note for Spriters: After you've assigned the correct values to vars, you must run the game through init on your local machine and commit the changes to the map icon dmi files. Unit tests should catch all cases of forgetting to assign the correct vars, or not running through init. Note for Server Operators: In order to not generate these icons on live I've added a new config entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in the config.txt No more error icons in SDMM and loadout. 🆑 refactor: preview icons for greyscale items are now automatically generated, meaning you can see GAGS as they actually appear ingame while mapping or viewing the loadout menu. /🆑 --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
bc2215667f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
251d23530e |
Changes all uses of notify_ghosts to use the real names of mobs (#90919)
## About The Pull Request Quite simple - this changes every direct mention of a mob in a `notify_ghosts` message to use `[mob.real_name]` instead of just `[mob]` ## Why It's Good For The Game makes things less confusing - ghosts can see easily their actual identity anyways, so it's not like there's much of a reason _not_ to do this. ## Changelog 🆑 qol: Ghost notifications will now use the real names of mobs when something happens (i.e no more "Unknown has completed an ascension ritual!") /🆑 |
||
|
|
1428f663e0 |
Part 4: Storage Improvements (#90783)
- Address https://github.com/tgstation/tgstation/pull/90476#discussion_r2051701283. Makes pill bottle code cleaner - Datumized some more storage values(monkey guncase toolbox & crafter toolbox) making their init slightly faster - Moved all standard storage subtypes(bags, boxes, lockboxes etc) that is scattered across various files & folders in the codebase into their respective files under `code/game/objects/item/storage` folder. This means for e.g. if you want to see all boxes in the game you can find them in `code/game/objects/item/storage/boxes` folder & don't have to go looking for hidden subtypes in various module files or folders where they were hidden away. Makes looking for stuff & modifying these storages much saner & easier 🆑 code: organized storage subtypes under the same files & folders /🆑 --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> |
||
|
|
d315286ec3 | Readds Cloning (#90754) | ||
|
|
b296d71625 |
Aquariums have now three different modes (Manual/Assisted/Stasis) (#90605)
## About The Pull Request This PR replaces the toggleable safe mode with Manual, Assisted and Stasis. Manual and Stasis mode works much like the old safe mode being off and on respectively. The real addition here is the new default assisted mode, which automatically sets fluid and temperature based on what combination of these two settings would keep the most fish alive. It can also temporarily enable stasis if over half of the fish population is at risk of dying. The main difference with stasis is that it doesn't necessarily prevent fish death if it's a minority of the general population, rather just make aquarium easier for players to manage. Also added a line about fluid and temp when examining aquariums. Still have to test it, definitely a WIP. ## Why It's Good For The Game I want to make aquariums a bit easier and more accessible, since the benefits are fairly meager for the efforts needed to maintain one, excluding the power generator. I'll probably look into fish traits and fish reproduction next, who knows... ## Changelog 🆑 add: Aquariums can now be switched between three different modes (Manual/Assisted/Stasis) to replace the old Safe Mode toggle. /🆑 |
||
|
|
4ba1520df8 |
There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request This PR: - Converts all of the blood types into their own datums, which can be set up to have their own colors, descriptions, and other fun unique properties. For example, the clown blood that is constantly randomizing itself. - Converts all the blood decals into greyscale, which in turn eliminates the need for separate xeno sprites. They both use the same ones now. - Audit of blood splatters/gibs/bodyparts/organs to make sure that they are getting the correct forensic data applied to them. - For the admins: Adds a clown blood smite. My primary goal with was to make the appearance of the new sprites look almost indistinguishable to the original ones. I consider this a "first pass", as in there are still some further refactors I would like to do on the backend side, but am satisfied with it enough to push it forward as a first step towards a better blood system! I didn't want to do too much at once because of A) fatigue and B) easier to test things to make sure I'm not breaking something important this way. This has been test-merged on Nova for over a week now and has been going great, so I finally got around to upstreaming the bones to TG. Although I did test it a bit you may want to TM it just in case I missed some things when copying it over. |
||
|
|
11d82b7995 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. Improving old code. And I want to be able to pet mobroaches while holding them too. 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
8c3e6f2635 |
Fixes runtimes caused by get_atom_on_turf and reverts an unintentional balance change to stabilized crossbreeds (#90500)
get_atom_on_turf would return the last movable in chain, even if it was passed a type, which is not the behavior most people would expect and thus had led to errors in multiple other segments of code. Additionally, regardless of their storage depth which was an intentional limiter - this restores said behavior. - Closes #90498 - Closes #90497 Runtimes bad, and so are unintentional change to game's balance. 🆑 fix: Fixed runtimes caused by stabilized crossbreeds fix: Fixed an unintentional buff to stabilized crossbreeds, they now once again need to be put in your backpack or pockets. /🆑 |
||
|
|
12d995aeea |
Squashed commit of the following:
commit cb550ab79badae3ffd493dcee24d96f7ad146ed6 Merge: 732416f01d8 |
||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
6b83a91956 |
Revert "Refactor for storage initialization & organization (#89543)" (#90332)
## About The Pull Request Reverts the storage initialization refactor and all subsequent related PRs. The original PR is below our standards both for code quality and testing, and is majorly flawed at its core. This has been discussed with other maintainers and headcoder(s?) over on discord. A lot of changes from the PR could be brought over later, but in its current state it should not have been merged. - Closes #90322 - Closes #90313 - Closes #90315 - Closes #90320 - Closes #90312 - Closes #90344 ## Why It's Good For The Game This PR causes a series of major issues which cannot be resolved without either completely rewriting a lot of the original PR, or bad code. Not matching our standards is grounds for not merging a PR, and the fact that a PR should not have been merged is a reason for a revert. ## Changelog 🆑 fix: Fixed a series of storage-related bugs caused by a refactor PR. /🆑 |
||
|
|
0f57a23830 |
Refactor for storage initialization & organization (#89543)
## About The Pull Request A Huge chunk of changes just comes from moving existing storage code into new files & seperating `atom_storage` code into its own subtype under the already existing `storage/subtypes` folder. With that the changes in this PR can be organized into 3 categories. **1. Refactors how `/obj/item/storage/PopulateContents()` initializes storages** - Fixes #88747 and every other storage item that has a similar variant of this problem The problem with `PopulateContents()` is that it allows you to create atoms directly inside the storage via `new(src)` thus bypassing all the access restrictions enforced by `/datum/storage/can_insert()` resulting in storages holding stuff they shouldn't be able to hold. Now how this proc works has been changed. It must now only return a list of items(each item in the list can either be a typepath or a solid atom or a mix of them in any order) that should be inserted into the storage. Each item is then passed into `can_insert()` to check if it can fit in the storage. If your list contains solid atoms they must be first moved to/Initialized in nullspace so `can_insert()` won't count it as already inserted. `can_insert()` has now also been refactored to throw stack traces but explaining exactly why the item could not fit in the storage thus giving you more debugging details to fix your stuff. A large majority of changes is refactoring `PopulateContents()` to return a list instead of simply creating the item in place so simple 1 line changes & with that we have fixed all broken storages(medical toolbox. electrical toolbox, cruisader armor boxes & many more) that hold more items they can handle **2. Organizes initialization of `atom_storage` for storage subtypes.** All subtypes of `/obj/item/storage` should(not enforced) create their own `/datum/storage/` subtype under the folder `storage/subtypes` if the default values are not sufficient. This is the 2nd change done across all existing storages Not only does this bring code cleanliness & organization (separating storage code from item code like how `/datum/wire` code is separated into its own sub folder) but it also makes storage initialization slightly faster (because you are not modifying default values after `atom_storage` is initialized but you are directly setting the default value in place). You now cannot & should not modify `atom_storage` values inside `PopulateContents()`. This will make that proc as pure as possible so less side effects. Of course this principle is not enforced and you can still modify the storage value after `Initialize()` but this should not be encouraged in the future **3. Adds support for automatic storage computations** Most people don't understand how `atom_storage` values work. The comment here clearly states that https://github.com/tgstation/tgstation/blob/55bbfef0da70d87455ca8d6fd5c95107eb8dbefb/code/game/objects/items/storage/toolbox.dm#L327-L329 Because of that the linked issue occurs not just for medical toolbox but for a lot of other items as well. Which is why if you do not know what you doing, `PopulateContents()` now comes with a new storage parameter i.e. `/datum/storage_config` This datum allows you to compute storage values that will perfectly fit with the initial contents of your storage. It allows you to do stuff like computing `max_slots`, `max_item_weight`, `max_total_weight` etc based on your storage initial contents so that all the contents can fit perfectly leaving no space for excess. ## Changelog 🆑 fix: storages are no longer initialized with items that can't be put back in after taking them out refactor: storage initialization has been refactored. Please report bugs on github /🆑 |
||
|
|
eb2796831b |
[MDB Ignore] Refactors pills, patches, and generalizes stomach contents, nothing to see here. (#89549)
## About The Pull Request Currently patches are a subtype of pills, and while they have the ``dissolveable`` var set to FALSE, barely anything checks it (because people don't expect patches to be pills in disguise) so we end up patches being dissolveable and implantable, which is far from ideal. Both have been moved into an ``/obj/item/reagent_containers/applicator`` class, which handles their common logic and helps handling cases where either one fits. As for gameplay changes: * Pills no longer dissolve instantly, instead adding their contents to your stomach after 3 seconds (by default). You can increase the timer by dropping sugar onto them to thicken their coating, 1s per 1u applied, up to a full minute. Coating can also be dissolved with water, similarly -1s per 1u applied. Pills with no coating will work like before. * Patches now only take half as long to apply (1.5s), but also slowly trickle in their reagents instead of instantly applying all of them. This is done via embedding so you could theoretically (if you get lucky) stick a ranged patch at someone, although they are rather quick to rip off. The implementation and idea itself are separate, but the idea for having a visual display has been taken from https://github.com/Monkestation/Monkestation2.0/pull/2558.  * In order to support the new pill mechanics, stomachs have received contents. Pills and items that you accidentally swallow now go into your stomach instead of your chest cavity, and may damage it if they're sharp, requiring having them surgically cut out (cut the stomach open with a scalpel, then cauterize it to mend the incision). Or maybe you can get a bacchus's blessing, or a geneticist hulk to gut punch you, that may also work. Alien devour ability also uses this system now. If you get a critical slashing wound on your chest contents of your cut apart stomach (if a surgeon forgot to mend it, or if you ate too much glass shard for breakfast) may fall out. However, spacemen with the strong stomach trait can eat as much glass cereal as they want. Pill duration can also be chosen in ChemMaster when you have a pill selected, 0 to 30 seconds.  ## Why It's Good For The Game Patches and pills are extremely similar in their implemenation, former being a worse version of sprays and pills, with only change being that pills cannot be applied through helmets while patches and sprays ignore both. This change makes them useful for separate cases, and allows reenactment of some classic... movie, scenes, with the pill change. As for stomach contents, this was probably the sanest way of implementing pill handling, and everything else (item swallowing and cutting stomachs open to remove a cyanide pill someone ate before it dissolves) kind of snowballed from there. I pray to whatever gods that are out there that this won't have some extremely absurd and cursed interactions (it probably will). ## Changelog 🆑 add: Instead of dissolving instantly, pills now activate after 4 seconds. This timer can be increased by using a dropper filled with sugar on them, 1s added per 1u dropped. add: Patches now stick to you and slowly bleed their reagents, instead of being strictly inferior to both pills and sprays. add: Items that you accidentally swallow now go into your stomach contents. refactor: Patches are no longer considered pills by the game refactor: All stomachs now have contents, instead of it being exclusive to aliens. You can cut open a stomach to empty it with a scalpel, and mend an existing incision with a cautery. /🆑 |
||
|
|
34310e680e |
Adds Film Studio space ruin (+ Actor/Director Space roles) (#89419)
Adds a space ruin revolving around a studio where ghost roles can provide entertainment to the station, the studio has a bunch of construction stuff and costume vendors to create any set and portray any character you'd want. Features 3 stages and a radio station (neutral aligned syndie comms agent?) there's a total of 4 ghost roles, 3 actors. 1 director.  Studio also has a sizable living quarters and a mini-medbay for basic provisions. a couple of paper fluff texts are strewn about on the noticeboards The cast:  In terms of things that can be balance-breaking, I can only name the gas masks and agent ID actors/directors spawns in. But I think its a necessary sacrifice for them to play "characters" I think too many of the ghost roles have too little interactions with the main station, this is for good reasons obviously, balance and metagrudges and all that. But, say. what if we can have a ghost role that interacts and give something to the station besides being their own little isolated game? it can't be anything material of course. so what if we have the ghost role centered around giving entertainment? which is how this PR came to be 🆑 add: After some light bit of restructuring, the local TV station, serving SPACE SECTOR 13 has opened up again! /🆑 |
||
|
|
434e4e435e |
Removes Secondary & Final Objectives from Traitors (#89466)
## About The Pull Request  Pre-discussed with @Watermelon914, this PR removes Secondary & Final Objectives from all Traitors, rather than just midround ones. It also removes all of the surrounding supporting code. Randomly assigned Primary Objectives still exist, I just used the ability to rewrite mine to take the screenshot. In terms of final objectives, the surrounding items that were available still exist but don't necessarily have sources. If anyone has good ideas for readding these in some other form it can be done in future PRs. It also allows all traitors to buy the Contractor kit, previously limited to midround traitors which lacked secondary objectives, because now all traitors lack secondary objectives. This essentially limits all traitors to a maximum of 20 TC (16 if they spawn with an uplink implant). Currently I don't foresee that they strictly need any additional way of gaining TC during a round as 20 is quite sufficient, but it may take some time to adjust and get used to it after such a long time of having access to more. If we need to adjust the starting value or add a slow drip of more points over time or something, that can be done in followup PRs. This also removes the ability to recreate your uplink added by my beautiful wife in #74315 This was part of the progression traitor design document, but ultimately probably a bad idea as it essentially made traitors impossible to properly disarm. You will once more just need to carefully protect your uplink. **This does not remove the threat/progression system**. Like midround traitors, all Reputation requirements on gear are now simple timelocks, most of which will have elapsed by the time 30 minutes have passed. **Finally** this PR also adds Romerol to the traitor uplink for 25 TC and 30 minutes of reputation, as a treat (and because I removed the final objective that previously granted it). ## Why It's Good For The Game We've tried this system for a long time (3 years last month!) and while I think it had a lot of promise, enabled some cool moments, and also solved several of the problems it set out to solve, overall I think some of the behaviours it has encouraged in players have been overall negative for the game. While the _game systems_ are fine, even quite fun and cool (especially final objectives) I am of the opinion that having them in the game creates a net negative purely in the way that they react with players' _brains_, creating incentives towards behaviour we don't actually want people to pursue. While it's hard-to-impossible to prove any of this with hard data, there has been a prevailing feeling for some time among many (though certainly not all) people that the simple fact of _having_ a constant drip-feed of objective available to players leads directly to less interesting antagonist play. While certainly nobody is _forced_ to do secondary objectives you are directly and quite strongly rewarded for doing so, doing so efficiently, and doing so in a way which makes sure that nobody (alive) sees you do it. This leads to a tendency to play defensively and try to maximise the number of tasks you can complete in one round, which also has a knock-on effect of generally minimising the number of people you attempt to interact with in a round (unless you are killing them). Even people who _intend_ on doing some more interesting gimmick can fall into this trap, as "having more tools" is always useful for anyone who is intending on any kind of plan at all, but then executing on the secondary objectives again incentivises you to lay low, not interact with anyone, be efficient, and then reduces the time you are spending doing the thing that's your actual plan for the round. Removing the ever-present temptation to fish for extra TC leaves "doing whatever your actual plan is" as the sole thing to optimise. Final Objectives too have created unfortunate psychological effects between crewsided players and other antagonists. Because of the _threat_ (no matter how remote, Final Objectives have always been tuned to be appropriately rare) that leaving any antagonist alone will cause them to snowball by acquiring more power, it starts to feel foolish to respond to any threat with less than the maximum possible level of force even if they seem relatively innocuous in the moment. This even has an effect on other non-progression antagonists, as traitors are the most common antagonist type and how people treat them is going to be their default level of reaction to most other station threats. While there has always been the promise of expanding the system with novel and exciting objectives that leverage appearing mid-round to do something unique, we've taken very little advantage of that over time. Most objectives we have added that didn't boil down to "kill someone, with a twist" have been somewhat unsuccessful, serving either as ways to get yourself arrested and killed for no reason or ways to get free telecrystals by doing something the crew don't really care about stopping you from doing. The option still exists to add more roundstart objectives to traitors, if someone suddenly has a great idea that would fit in this space. The ideal outcome of making this change is a slight relaxation of crew attitude towards feeling like their only option after catching an antagonist that isn't sandbagging is to permanently remove them from the round (although it's fine to do this still in many scenarios), and a broadening of traitorous activity which is not purely focused on collecting as many checkboxes as possible and might give people more time to roleplay with other players, not worrying that this time could have been more efficiently spent pursuing a different secondary goal. I don't anticipate or desire that this will prevent traitors from killing anyone (or even stop them from killing people they don't have a specific objective to kill), I just want to remove the FOMO from people's minds. Also this gives us something to talk about at the coder townhall meeting on the 22nd. ## Changelog 🆑 del: Misplaced or stolen traitor uplinks can no longer be recreated using a radio code and special device, guard yours carefully or buy a backup implant. del: Roundstart traitors can no longer take on additional objectives in order to earn additional Telecrystals and fast-forward any unlock timers on items. They also cannot earn the ability to complete a Final Objective. balance: Roundstart traitors can now buy the Contractor Kit from their traitor uplink, rather than only midround traitors. add: Traitors can buy Romerol for 25 TC, after 30 minutes of time has passed in a round. /🆑 |
||
|
|
254cd32c93 | Merge branch 'master' of https://github.com/Bubberstation/Bubberstation into upstream-25-02a | ||
|
|
af06b24bc0 |
Adds 3 (well, technically 4) More Infinite Dorms Maps (#3140)
## About The Pull Request Hello! Since I've been bored, I decided to test my mapping muscles, and so I come to you with 3 Infinite Dorms maps. **1. Corporate Office** First one's quite easy and simple, a rather large Corporate Office, comes with all the expected amenities; fake bookcases, coffee, donuts, luxury alcohol, cigars, stamps, paperwork, intercoms, Italian maple desks, comfy chairs, secure consoles, motion-sensitive camera that keeps blinking red for whatever reason. Ideal for anyone with more interests in the 'corpo' side, or just for people who want to ERP in an office environment.  **2. Recovery Wing** A more hospital-themed dorm, thought of as the Recovery Ward of the whatever Facility that NT uses to keep putting spessmen together after they have been blown up twenty times during one shift. Comes with two separate Patient rooms, a small Nurse station and a similarly small commons area.  **3. Secluded Grotto** Did notice there was no real "outdoors" area, this map tries to- and kinda fails to rectify this issue, as in-lore the map takes a place in a small, secluded and remote grotto, perfect for running away from everyone, comes with a small picnic space, with a freezer full of snacks, a small pond to the upper right and the center-piece in the form of a fire pit, complete with a guitar and some stools. Also comes in a night version.   ## Why It's Good For The Game well, more varied dorms are better since they (theoretically) allow for more varied RP. ## Proof Of Testing it do the compile thing without melting my poor poor computer  ## Changelog 🆑 map: Added "Corporate Office" Infidorm map map: Added "Recovery Wing" Infidorm map map: Added "Grotto" Infidorm map map: Added "Grotto (night)" Infidorm map /🆑 |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
14a1b5e1e8 |
Adds Film Studio space ruin (+ Actor/Director Space roles) (#89419)
## About The Pull Request Adds a space ruin revolving around a studio where ghost roles can provide entertainment to the station, the studio has a bunch of construction stuff and costume vendors to create any set and portray any character you'd want. Features 3 stages and a radio station (neutral aligned syndie comms agent?) there's a total of 4 ghost roles, 3 actors. 1 director.  Studio also has a sizable living quarters and a mini-medbay for basic provisions. a couple of paper fluff texts are strewn about on the noticeboards The cast:  In terms of things that can be balance-breaking, I can only name the gas masks and agent ID actors/directors spawns in. But I think its a necessary sacrifice for them to play "characters" ## Why It's Good For The Game I think too many of the ghost roles have too little interactions with the main station, this is for good reasons obviously, balance and metagrudges and all that. But, say. what if we can have a ghost role that interacts and give something to the station besides being their own little isolated game? it can't be anything material of course. so what if we have the ghost role centered around giving entertainment? which is how this PR came to be ## Changelog 🆑 add: After some light bit of restructuring, the local TV station, serving SPACE SECTOR 13 has opened up again! /🆑 |
||
|
|
23ac16411d |
Removes Secondary & Final Objectives from Traitors (#89466)
## About The Pull Request  Pre-discussed with @Watermelon914, this PR removes Secondary & Final Objectives from all Traitors, rather than just midround ones. It also removes all of the surrounding supporting code. Randomly assigned Primary Objectives still exist, I just used the ability to rewrite mine to take the screenshot. In terms of final objectives, the surrounding items that were available still exist but don't necessarily have sources. If anyone has good ideas for readding these in some other form it can be done in future PRs. It also allows all traitors to buy the Contractor kit, previously limited to midround traitors which lacked secondary objectives, because now all traitors lack secondary objectives. This essentially limits all traitors to a maximum of 20 TC (16 if they spawn with an uplink implant). Currently I don't foresee that they strictly need any additional way of gaining TC during a round as 20 is quite sufficient, but it may take some time to adjust and get used to it after such a long time of having access to more. If we need to adjust the starting value or add a slow drip of more points over time or something, that can be done in followup PRs. This also removes the ability to recreate your uplink added by my beautiful wife in #74315 This was part of the progression traitor design document, but ultimately probably a bad idea as it essentially made traitors impossible to properly disarm. You will once more just need to carefully protect your uplink. **This does not remove the threat/progression system**. Like midround traitors, all Reputation requirements on gear are now simple timelocks, most of which will have elapsed by the time 30 minutes have passed. **Finally** this PR also adds Romerol to the traitor uplink for 25 TC and 30 minutes of reputation, as a treat (and because I removed the final objective that previously granted it). ## Why It's Good For The Game We've tried this system for a long time (3 years last month!) and while I think it had a lot of promise, enabled some cool moments, and also solved several of the problems it set out to solve, overall I think some of the behaviours it has encouraged in players have been overall negative for the game. While the _game systems_ are fine, even quite fun and cool (especially final objectives) I am of the opinion that having them in the game creates a net negative purely in the way that they react with players' _brains_, creating incentives towards behaviour we don't actually want people to pursue. While it's hard-to-impossible to prove any of this with hard data, there has been a prevailing feeling for some time among many (though certainly not all) people that the simple fact of _having_ a constant drip-feed of objective available to players leads directly to less interesting antagonist play. While certainly nobody is _forced_ to do secondary objectives you are directly and quite strongly rewarded for doing so, doing so efficiently, and doing so in a way which makes sure that nobody (alive) sees you do it. This leads to a tendency to play defensively and try to maximise the number of tasks you can complete in one round, which also has a knock-on effect of generally minimising the number of people you attempt to interact with in a round (unless you are killing them). Even people who _intend_ on doing some more interesting gimmick can fall into this trap, as "having more tools" is always useful for anyone who is intending on any kind of plan at all, but then executing on the secondary objectives again incentivises you to lay low, not interact with anyone, be efficient, and then reduces the time you are spending doing the thing that's your actual plan for the round. Removing the ever-present temptation to fish for extra TC leaves "doing whatever your actual plan is" as the sole thing to optimise. Final Objectives too have created unfortunate psychological effects between crewsided players and other antagonists. Because of the _threat_ (no matter how remote, Final Objectives have always been tuned to be appropriately rare) that leaving any antagonist alone will cause them to snowball by acquiring more power, it starts to feel foolish to respond to any threat with less than the maximum possible level of force even if they seem relatively innocuous in the moment. This even has an effect on other non-progression antagonists, as traitors are the most common antagonist type and how people treat them is going to be their default level of reaction to most other station threats. While there has always been the promise of expanding the system with novel and exciting objectives that leverage appearing mid-round to do something unique, we've taken very little advantage of that over time. Most objectives we have added that didn't boil down to "kill someone, with a twist" have been somewhat unsuccessful, serving either as ways to get yourself arrested and killed for no reason or ways to get free telecrystals by doing something the crew don't really care about stopping you from doing. The option still exists to add more roundstart objectives to traitors, if someone suddenly has a great idea that would fit in this space. The ideal outcome of making this change is a slight relaxation of crew attitude towards feeling like their only option after catching an antagonist that isn't sandbagging is to permanently remove them from the round (although it's fine to do this still in many scenarios), and a broadening of traitorous activity which is not purely focused on collecting as many checkboxes as possible and might give people more time to roleplay with other players, not worrying that this time could have been more efficiently spent pursuing a different secondary goal. I don't anticipate or desire that this will prevent traitors from killing anyone (or even stop them from killing people they don't have a specific objective to kill), I just want to remove the FOMO from people's minds. Also this gives us something to talk about at the coder townhall meeting on the 22nd. ## Changelog 🆑 del: Misplaced or stolen traitor uplinks can no longer be recreated using a radio code and special device, guard yours carefully or buy a backup implant. del: Roundstart traitors can no longer take on additional objectives in order to earn additional Telecrystals and fast-forward any unlock timers on items. They also cannot earn the ability to complete a Final Objective. balance: Roundstart traitors can now buy the Contractor Kit from their traitor uplink, rather than only midround traitors. add: Traitors can buy Romerol for 25 TC, after 30 minutes of time has passed in a round. /🆑 |
||
|
|
7d34f23db1 |
Fixes hotel rooms and adds new one (#3082)
## About The Pull Request Adds a new hotel room as of the request of Leathergnome who also made said hotel room, all credit goes to him i just PRed it, ontop of that this PR also fixes https://github.com/Bubberstation/Bubberstation/pull/3078 as said rooms were forgotten to be added to the selectable list, shit happens love the new rooms by the way. ## Why It's Good For The Game Another dorms room to enjoy and fix for already PRed ones ## Proof Of Testing Works and Complies on localhost  ## Changelog 🆑 map: Added new Hotel room fix: Fixed the other hotel rooms not showing up from a different PR /🆑 |
||
|
|
78468452a4 |
[SEMI-MODULAR] Adds 3 new Infinite Dorm Maps! (#3078)
## About The Pull Request Adds three new awesome Infinite dorms for varying roleplay scenarios and creative environments. -Cultist's Cavern: A spooky cave-like environment populated with an underground spring, a cultist-themed bedroom, a mining hold-out, and general cave flora/decorations around. Spawns a crate of flashlights/flares/hardhats etc to help light the area as this is a darker dorm for lame Heretic/Cult rp. (unoriginal) Also adds a neat little spring however for a more natural swimming hole area instead of hot tubs and pools. -Winter Woods: A cozy little wooden cabin near the edge of a plasma pond of sorts. Very ambient and romantic. Features a campfire, cabin, dark wooded area, and a crate filled with NRI attire. Also features an effect to where it's constantly snowing, the same animated sprite used for light snowstorms. Has a custom area added so that it plays Ice Moon ambience. -Evacuated Station: The Hydroponics Cloning Farm of an evacuated Space Station that _apparently_ got sucked inside of a Void anomaly of sorts. Alarms blaring. Emergency lighting. A deadspace-like environment, or rather what the shuttle leaves behind at the end of a Gamer shift. Features a Bedroom, small engineering lab, damaged flooring and windows, small maintenance path, and a Research Director's Quarters. I had to touch the Modular Herbert Hotel File, similar to what Skyrat did. Those changes are noted with //BUBBER EDIT ADDITION BEGIN - Infinite Dorm Maps Add and //BUBBER EDIT END ## Why It's Good For The Game Infinite dorms are really cool I think ## Proof Of Testing Each were ran locally repeatedly with 0 additional run-time errors. <details> <summary>Screenshots/Videos</summary>    </details> ## Changelog 🆑 map: Added THREE new Infinite Dorms! map: Added 'Cultist's Cavern' Infinite Dorm. map: Added 'Winter Woods' Infinite Dorm. map: Added 'Evacuated Station' Infinite Dorm. /🆑 |
||
|
|
1a0dc51e93 |
fix: oldstation fluff microfix (#89281)
## About The Pull Request Replaced "Singularity Generation Disk" with "Supermatter Crystal Shard" (and the space in front of the "prototype modsuit" has been removed, because it doesn't look pretty.) ## Changelog 🆑 spellcheck: Replaced the words "Singularity Generation Disk" with "Supermatter Crystal Shard" on a paper found by the old station ruin, to match the contents of the inventory room. /🆑 |
||
|
|
bc01d6eefe |
Gets rid of mobile hollow bioscramblers spawning in the anomaly research ruin. (#89303)
## About The Pull Request What it says on the tin. Mobile anomalies still spawn in and around the ruin, but never bioscramblers. ## Why It's Good For The Game A) These fucking things cannot be disabled by conventional means. It needs anomaly research. B) They drift through space away from the ruin literally every single time the ruin spawns. They are meant to be an environmental hazard for the ruin, not for the entire playing space because a remote ruin spawned. C) Because they are not blocked by walls, they will keep drifting until eventually arriving on the station, where they will stay there. Typically occupying a space perpetually until a scientist comes and fixes the problem with their anomaly neutralizer. The only reason this happened was because of bioscramblers being reworked into the state they are now. I don't imagine the original creator intended for the ruin to create problems for the wider round like this. ## Changelog 🆑 del: Mobile hollow bioscramblers no longer spawn from the anomaly research ruin, sparing everyone from the inevitable unannounced arrival of a permanent hollow bioscrambler aboard the station. You maybe still encounter immobile bioscramblers in the ruin, however. /🆑 |
||
|
|
4c2a76ede3 |
Fix a large number of typos (#89254)
Fixes a very large number of typos. A few of these fixes also extend to variable names, but only the really egregious ones like "concious". |
||
|
|
7ddc30783a |
Adds better attack animations and alternate attack modes (#88418)
## About The Pull Request This is the first PR in a series attempting to modernize our damage and armor, both from a code and a gameplay perspective. This part implements unique attack animations, adds alternate attack modes for items and fixes some minor oversights. Items now have unique attack animation based on their sharpness - sharp items are now swung in an arc, while pointy items are thrust forward. This change is ***purely visual***, this is not swing combat. (However, this does assign icon rotation data to many items, which should help swing combat later down the line). Certain items like knives and swords now have secondary attacks - right clicks will perform stabbing attacks instead of slashing for a chance to leave piercing wounds, albeit with slightly lower damage - trying to stick a katana through someone won't get you very far! https://github.com/user-attachments/assets/1f92bbcd-9aa1-482f-bc26-5e84fe2a07e1 Turns out that spears acted as oversized knives this entire time, being SHARP_EDGED instead of SHARP_POINTY - in order for their animations to make sense, they're now once again pointy (according to comment, originally they were made sharp because piercing wounds weren't very threatening, which is no longer the case) Another major change is that structure damage is now influenced by armor penetration - I am not sure if this is intentional or not, but attacking item's AP never applied to non-mob damage. Additionally, also fixes an issue where attack verbs for you and everyone else may differ. |
||
|
|
408fd1fe90 | Prevents the overcharged smes from runtiming when the timer ss falls behind (#88376) | ||
|
|
6da4462e14 |
Fix gravity for areas in space near station (#88176)
## About The Pull Request - Fixes #76827 This removes gravity from the following areas: - Solars - Nearstation - Space - Ordnance bomb testing ##### Note - Asteroid areas (Tram) or planet areas (Ice) are not affected. <details> <summary>Examples of outside gravity turfs</summary>  </details> Now stepping on floor plating in those areas will result in mobs drifting. (like they do inside the station when gravity is offline) Stepping on or near catwalks, lattices, or walls stills controls your movement. Also refactored a little bit of the `has_gravity` code to use defines instead of `TRUE/FALSE`. ## Why It's Good For The Game Consistency. Mag boots are highly recommended when performing EVA. ## Changelog 🆑 fix: Fix gravity for areas in space near station (solars, nearspace, bomb testing, etc.) /🆑 |
||
|
|
58a0794fa6 |
Fix drink labels for alcohol bottles (#88355)
## About The Pull Request - Fixes #88351 An examine proc used bitflags to determine the contents of a bottle despite whatever reagents are inside. I went and changed the examine message to use `The label says it contains` instead of `It is` which is more appropriate. Also the empty bottle parent type was listed as `ALCOHOL` despite spawning with no reagents. A lot of alcohol subtypes relied on this to give them the correct bitflag. ## Why It's Good For The Game Drink consistency. ## Changelog 🆑 fix: Fix drink labels for alcohol bottles /🆑 |
||
|
|
8f715046e2 | prevents the overcharged smes from runtiming when SSprocessing falls behind | ||
|
|
cf100c7010 |
Fixes Hilbert's rigged analyzer not being able to scan the hotel orb (#88308)
## About The Pull Request Closes #87751 ## Changelog 🆑 fix: Fixed Hilbert's rigged analyzer not being able to scan the hotel orb /🆑 |
||
|
|
6b543476da |
Aquarium kits can now be printed + other tweaks. (#88068)
## About The Pull Request Aquarium kits can now be printed from service, cargo, science protolathes and the autolathe too, from half a sheet of metal. You still need the other materials to set it up but it should be fairy simple if you can access a proto/autolathe. The 'Growth/Reproduction' setting for aquariums has been renamed to "Safe Mode", which, on top of disabling features such as growth, reproduction, evolution, power generation etc etc, will also disable the water, temperature and food requirements for keeping the fish alive. Useful if you want a purely ornamental aquarium or you have to skidaddle somewhere else for a while. The lawyer, as well as prefilled aquariums start with 'Safe Mode' enabled. The 'Aggressive' fish trait has been replaced with 'Territorial', which is exactly the same but the fish won't lash out unless the aquarium is populated by five fishes or more. No more angelfish viciously attacking the guppy and goldfish in prefilled aquariums. Tweaked a couple values around hunger and fish health loss when starving or in a bad environment to cause slightly less damage. Lastly, added screentips to the aquarium component, which is something I've forgot to do in the PR that brought it. ## Why It's Good For The Game Aquariums may be a complex feature, but as far as I can tell, I had been neglecting the possibility of aquariums as simple room decoration for a while (outside of the beauty-related mechanics), and the constant maintenance (and perhaps a bit of knowhow) they require makes them awful at that. Also, the "growth/reproduction" setting really didn't have a reason to be before, since it didn't offer any tangible benifit to turn it off, so I had to revamped it. Also it's been proven by now that keeping aquariums as cargo-orderable stuff is just bad. As for the fish trait change, it just sucks to see the angelfish shank the goldfish with no way to solve it other than removing the hyper-aggressive killer fish from san diego fella. ## Changelog 🆑 balance: Aquarium kits can now be printed from cargo, service, science protolathes as well as the autolathe. They no longer have to be ordered from cargo. balance: Revamped the "Growth/Reproduction" setting for aquarium to "Safe Mode", which also disables the food, temperature and water requiremenets of aquariums, making it useful for purely decorative aquariums. balance: Replaced the "Aggressive" fish trait with "Territorial". No more angelfish shanking the goldfish and guppy in prefilled aquariums with less than 5 fishes. qol: Added screentips to aquariums. /🆑 |
||
|
|
95f6903872 |
[no gbp] improves mod installer code (#88025)
## About The Pull Request the args here are user and set density. we are giving it null and user, no good ## Why It's Good For The Game better ## Changelog |
||
|
|
b67a0901f2 |
Fix issues discovered via TypeMaker (#87596)
## About The Pull Request Fixes issues with var typing and proc arguments, discovered using OpenDream's WIP TypeMaker feature (using improvements I haven't PR'd upstream yet). ## Why It's Good For The Game Codebase maintenance. |
||
|
|
03489c2773 | I'm legit happy we have a lint for var/static now | ||
|
|
6d24e69dac |
Adds 3 'Comms Buoy' Space Ruins (#86872)
## About The Pull Request https://github.com/tgstation/common_core/blob/master/Technology%20and%20Science/Communications.md I was playing Starsector shortly before I read through this lore blurb and realized that simple Comms Buoys would be easy little ruins to make. Then I decided to make NT's extra-special because NT is always leading in tech innovation. Adds 2 "low-tech" Comms Buoy ruins (**no local comms**, these are just little fluff things): <details><summary>Kosmokomm Communications Buoy</summary> </details> <details><summary>Pirated Communications Buoy</summary> </details> The majority of the PR is the "high-tech" Nanotrasen Extraorbital Bluespace Communications Buoy <details><summary>The NT-EBCB Model 7 (ignore the parallax i couldnt get it all in one screenshot)</summary>  </details> This is a medium ruin that's more lore heavy than loot heavy - though that doesn't mean there's no danger. NT wouldn't want you walking in and reading all their communication logs after all. <details><summary>SPOILERS INSIDE</summary> **Hazards:** 2 Laser Turrets (in a titanium room, so they reflect off walls) **Loot:** 2 Experimental Tool spawners, 2 NT Private Security bodies, 3 space suits, 1 of each tcomm component, 2 RTGs (can these even be taken) The majority of the sat is for lore. It has 3 paper notes and 5 consoles (1 broken, 1 dupe, so 3 unique consoles) All lore will be here to show how formatting appears in-game. <details><summary>Airlock Note: "Page 33: NT-EBCB Model 7"</summary> This one gives a quick summary of what to expect inside - consoles and defense turrets. Of course, players won't have the special ID (and couldn't use it anyways, the guys inside covered it in blood)  </details> <details><summary>Pinned Note: "Table of Contents: NT-EBCB Model 7"</summary> A page out of the manual. Rest of manual not included. (Names the different parts of the buoy)  </details> <details><summary>Main-Dish Note: "Spinward-NT-EBCB Inspection Report"</summary> An inspector left behind a few notes during pre-deployment. Sure hope no important security risks were missed!  </details> <details><summary>Console 1: "Satellite Dish Operations Terminal"</summary> This one's mostly just a tie-in with the "story", don't know how necessary it is but it filled the empty spaces. This console has a spare in the Main Dish (as its prone to breaking from the turrets)  </details> <details><summary>Console 2: "Blackbox Transcription Terminal"</summary> The "local" side of the story. This console monitors the Local-Space Comms, and managed to log the repair team's activity.  </details> <details><summary>Console 3: "Long-Range Interstellar Relay Operations Terminal"</summary> Here's the big lore thing for freaks like me who love lore being shown in-game. It's got a lot of random-made-up-science-bullwhizz relating to the ongoing NT research mentioned in the plasma_exposure lore blurb. Granted, the guy's a bit biased in his ex-partner's work.   </details> </details> ## Why It's Good For The Game A) Everybody loves new space ruins, even small fluff ones. I hope. B) Lore integration is cool. Aside from the obvious 'Comms Buoys being a thing you can find', it also makes mention of the Gateway system/Port Ellis and a certain lore blurb involving plasma (albeit under more severe, and biased, testing) ## Changelog 🆑 add: 3 new Space Ruins: two small Comms Buoys (fluff) and an NT Bluespace Comms Buoy. Employees are asked not to touch vital components when nearby this critical infrastructure. /🆑 |
||
|
|
ebf25acd9e |
Restores Derelict's vault doors hacking immunity (#87604)
## About The Pull Request Title; it was handled by `attackby()` and became deprecated at some point, something something attack chain Also gave it feedback because might as well ## Why It's Good For The Game Fixes #79926 ## Changelog 🆑 fix: the Derelict vault doors are once again unhackable qol: the Derelict vault doors provide chat feedback when you try to hack them so you can stop poking them with your tools /🆑 |
||
|
|
778ed9f1ab |
The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request This PR kills the abstract internal and external typepaths for organs, now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds. This PR also fixes fox ears (from #87162, no tail is added) and mushpeople's caps (they should be red, the screenshot is a tad outdated). And yes, you can now use a hair dye spray to recolor body parts like most tails, podpeople hair, mushpeople caps and cat ears. The process can be reversed by using the spray again. ## Why It's Good For The Game Time-Green put some effort during the last few months to untie functions and mechanics from external/internal organ pathing. Now, all that this pathing is good for are a few typechecks, easily replaceable with bitflags. Also podpeople and mushpeople need a way to recolor their "hair". This kind of applies to fish tails from the fish infusion, which colors can't be selected right now. The rest is just there if you ever want to recolor your lizard tail for some reason. Proof of testing btw (screenshot taken before mushpeople cap fix, right side has dyed body parts, moth can't be dyed, they're already fabolous):  ## Changelog 🆑 code: Removed internal/external pathing from organs in favor of a bit flag. Hopefully this shouldn't break anything about organs. fix: Fixed invisible fox ears. fix: Fixed mushpeople caps not being colored red by default. add: You can now dye most tails, podpeople hair, mushpeople caps etc. with a hair dye spray. /🆑 |
||
|
|
9f7d6dea62 |
Outfits that put items in your hand now respect if the outfit is visual only (#87355)
## About The Pull Request On a downstream, we have an antagonist, that is a less competent wizards. This antagonist's preview outfit has a beer bottle in their hand, which has caused runtimes, as the bottle did not have any reagents instantiated, and it tried check its length for sloshing. After putting in a check for the `initial` argument of `on_equip`, I have noticed that the problem goes deeper: the various procs that handle putting something in your hand do not pass along if the items is put in your hand as a preview or not. This PR adds a new optional var to these procs, ensuring that unwanted behaviour during previews won't trigger. I also swapped `visualsOnly` to snake case, as it looked inconsistent with the rest of the code style. ## Why It's Good For The Game Making the argument that ensures avoiding side effects during previews work with all kinds of items is good. ## Changelog 🆑 fix: if an outfit puts a reagent container in the preview dummy's hand, it will not try to slosh code: outfits putting items in your hand will respect the visual_only argument /🆑 |
||
|
|
7d1c42de3c |
teleporter turrets are no longer magical (#87397)
## About The Pull Request they are bluespace and the description says so so they no longer are stopped by antimagic ## Why It's Good For The Game figure the real puzzle solution out noob ## Changelog 🆑 fix: teleport turrets are no longer magical and will not be stopped by antimagic /🆑 |
||
|
|
e59d8ba64b | Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b | ||
|
|
e9d8130aa3 |
[No GBP] Minor fixes to Haunted Trading Post, Garbage Truck & Lizard Gas (Lavaland) ruins, and MI13 Food Truck (#87026)
Haunted Trading Post - - Shock traps no longer trigger when Syndicate mobs move nearby. This stops patrolling bots wasting the traps' charges. - Employee lounge has had its items rearranged, to prevent the 1-in-8 chance of the shock trap in the room emitting sparks in just the right direction to ignite the fuel tanks. - Dedbots now become sparks and robotic debris when destroyed. - Space outside the map has been replaced with turf passthrough. By default this doesn't change anything, but this stops the map template bringing space tiles with it if it's force loaded on planetary maps. Garbage Trucks - -Space outside the map has been replaced with turf passthrough. Lizard Gas (Lavaland) - - Asphalt turfs in the unroofed parts of the ruins now use planetary atmos. Atmospheric mishaps (ie plasmafloods and fires from broken or sabotaged equipment) will spread in a more intuitive pattern (ie they will bunch up and bubble under the roof, instead of sticking to the road) MI13 Food Truck - - Removed a decal in a wall. - Minor tweak to thruster sprites. ## Why It's Good For The Game These are maintenance fixes on maps I've made. ## Changelog 🆑 balance: [Haunted Trading Post] Explosive trap in Employee's Lounge is now less sensitive. balance: [Haunted Trading Post] Shock traps will no longer be triggered by Syndicate mobs. fix: Dedbots now properly spawn post-death visual effects. fix: [Lizard's Gas (Lavaland)] Atmos outside the gas station has been tweaked, for realism. fix: [MI13 Food Truck] Minor visual fixes. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
bb70889f6e |
TG Upstream Part 1
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff |
||
|
|
79db7bdfe5 |
Adds 3 'Comms Buoy' Space Ruins (#86872)
## About The Pull Request https://github.com/tgstation/common_core/blob/master/Technology%20and%20Science/Communications.md I was playing Starsector shortly before I read through this lore blurb and realized that simple Comms Buoys would be easy little ruins to make. Then I decided to make NT's extra-special because NT is always leading in tech innovation. Adds 2 "low-tech" Comms Buoy ruins (**no local comms**, these are just little fluff things): <details><summary>Kosmokomm Communications Buoy</summary> </details> <details><summary>Pirated Communications Buoy</summary> </details> The majority of the PR is the "high-tech" Nanotrasen Extraorbital Bluespace Communications Buoy <details><summary>The NT-EBCB Model 7 (ignore the parallax i couldnt get it all in one screenshot)</summary>  </details> This is a medium ruin that's more lore heavy than loot heavy - though that doesn't mean there's no danger. NT wouldn't want you walking in and reading all their communication logs after all. <details><summary>SPOILERS INSIDE</summary> **Hazards:** 2 Laser Turrets (in a titanium room, so they reflect off walls) **Loot:** 2 Experimental Tool spawners, 2 NT Private Security bodies, 3 space suits, 1 of each tcomm component, 2 RTGs (can these even be taken) The majority of the sat is for lore. It has 3 paper notes and 5 consoles (1 broken, 1 dupe, so 3 unique consoles) All lore will be here to show how formatting appears in-game. <details><summary>Airlock Note: "Page 33: NT-EBCB Model 7"</summary> This one gives a quick summary of what to expect inside - consoles and defense turrets. Of course, players won't have the special ID (and couldn't use it anyways, the guys inside covered it in blood)  </details> <details><summary>Pinned Note: "Table of Contents: NT-EBCB Model 7"</summary> A page out of the manual. Rest of manual not included. (Names the different parts of the buoy)  </details> <details><summary>Main-Dish Note: "Spinward-NT-EBCB Inspection Report"</summary> An inspector left behind a few notes during pre-deployment. Sure hope no important security risks were missed!  </details> <details><summary>Console 1: "Satellite Dish Operations Terminal"</summary> This one's mostly just a tie-in with the "story", don't know how necessary it is but it filled the empty spaces. This console has a spare in the Main Dish (as its prone to breaking from the turrets)  </details> <details><summary>Console 2: "Blackbox Transcription Terminal"</summary> The "local" side of the story. This console monitors the Local-Space Comms, and managed to log the repair team's activity.  </details> <details><summary>Console 3: "Long-Range Interstellar Relay Operations Terminal"</summary> Here's the big lore thing for freaks like me who love lore being shown in-game. It's got a lot of random-made-up-science-bullwhizz relating to the ongoing NT research mentioned in the plasma_exposure lore blurb. Granted, the guy's a bit biased in his ex-partner's work.   </details> </details> ## Why It's Good For The Game A) Everybody loves new space ruins, even small fluff ones. I hope. B) Lore integration is cool. Aside from the obvious 'Comms Buoys being a thing you can find', it also makes mention of the Gateway system/Port Ellis and a certain lore blurb involving plasma (albeit under more severe, and biased, testing) ## Changelog 🆑 add: 3 new Space Ruins: two small Comms Buoys (fluff) and an NT Bluespace Comms Buoy. Employees are asked not to touch vital components when nearby this critical infrastructure. /🆑 |