mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-14 09:35:30 +01:00
mayfools
104 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d14e538393 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 | ||
|
|
f72eb75a6f |
Handcuffs can now be used to bind certain items (briefcases, toolboxes, etc.) to your hand. (#93305)
## About The Pull Request Technically, this PR introduces the cuffable_item element and the cuffed_item status effect and their relative code. In more player-friendly terms, this allows the ability to use handcuffs to bind certain items to your hands by right-clicking it with a pair of handcuffs in your active hand. This makes the item unable to be dropped, for better or worse, until you or someone else remove said cuffs. And no, this doesn't conflict with the ability to be handcuffed if you're silly enough to think that. There are more than one way to remove the cuffs. For the player with the item cuffed to their hand, to remove the cuffs they can either click the status alert, or examine the item and click the relative hyperlink. The second option is good to have if for some reason the status alert doesn't show up (too many alerts etc.). For other people, they can remove the cuffs by opening the strip inventory menu (the one you open by click-dragging the sprite of person with the item onto yours). It's an alternative action specific to this status effect (therefore only held items). Until the cuffs are removed, trying to remove the item **directly** will bring you nowhere **because the item is stuck to their hands**, duh. Alternatively you can just chop their arm off. You do what you do. For a list of items that can be bound with cuffs (suggestions welcome): - briefcases - toolboxes - lockboxes - first aid kits - shields (they generally have handles and all. gameplay-wise they already take away one hand slot to use. Using cuffs seals the deal: no swapping items on the go, so no two-handed weapons, but you won't drop the shield until it's broken) - jerrycans (Kryson's suggestion) - soup pots (ditto, kinda weird) - coffee mugs, and the mauna mug (ditto) - buckets - plushes (silly stuff, if you ever want to arrest a plush or test the feature) - pet carriers - mining drills - swords with closed guards (ERT chainsaw-sword, cap's sabre, parsnip sabre, cutlass, e-cutlass...) - crutches and the white cane - baskets - flashlights and lamps (not subtypes like flares, glowsticks and torches) - TTVs - chairs ## Why It's Good For The Game This opens up for some emergent use for handcuffs beside people (or prisoner shoes). Inspired by a scene of some 1998 action movie, where one of the bad guys had the mc guffin briefcase latched to his wrist with a pair of handcuffs. Codewise, it was also a reason to refactor bits of code like handcuffs and screen alerts slightly. On a sidenote, actual sprites for cult/heretic shackles. ## Changelog 🆑 add: You can now bind certain items like briefcases, toolboxes, medkits, shields, jerrycans etc. to your hand with a pair of handcuffs, preventing them from being dropped. You can remove said binds at any time unless incapacitated, and so can others through the strip inventory menu. qol: The appearance of a screen alert now updates if the object it represents (like, an item offered by another player) changes appearance. imageadd: The shadow shackles item (from cult magic and heretic sacrifices) now has its own icon. /🆑 |
||
|
|
939f2fc9ac | Merge branch 'master' of https://github.com/tgstation/tgstation into xpokee-test-upstream-sync | ||
|
|
c82a39217a |
Converts some afterattack to interaction (#92762)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request Converts the following into item interaction: - porta_turret - porta_turret_cover - plating/foam (Foam plating) - plate ~cup (and mortar subtype)~ - Recharger <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Conversion from afterattack to interaction <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 refactor: change some attack procs to use item interaction /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> |
||
|
|
4222bdc921 |
Updates the medals boxes to be more modern (#91806)
## About The Pull Request This PR simply doesn't add any special gameplay mechanics or any mechanics but instead just updates the sprites for the medals boxes and gives it variants. I've attempted to save sprite space by making them all share the same 'opened' box sprite. But ultimately this is only a cosmetic PR. medal boxes locked  medal boxes unlocked  medal inside their respective boxes  ## Why It's Good For The Game With this PR I am attempting to add some visual aid to the game and update the lockboxes. It wont add any special mechanics or anything but just visual aid and to just update the sprite. I think this would be good to be merged, only because it is just a sprite change, and it updates the sprite from all the way in 2017, hence modernizing them somewhat. I've taken the old colours from the former lockbox so it can keep to its roots but also still look modern. ## Changelog 🆑 image: updates medalbox sprites. image: adds variants to medal box sprites. /🆑 |
||
|
|
55cea20803 |
Updates the medals boxes to be more modern (#91806)
## About The Pull Request This PR simply doesn't add any special gameplay mechanics or any mechanics but instead just updates the sprites for the medals boxes and gives it variants. I've attempted to save sprite space by making them all share the same 'opened' box sprite. But ultimately this is only a cosmetic PR. medal boxes locked  medal boxes unlocked  medal inside their respective boxes  ## Why It's Good For The Game With this PR I am attempting to add some visual aid to the game and update the lockboxes. It wont add any special mechanics or anything but just visual aid and to just update the sprite. I think this would be good to be merged, only because it is just a sprite change, and it updates the sprite from all the way in 2017, hence modernizing them somewhat. I've taken the old colours from the former lockbox so it can keep to its roots but also still look modern. ## Changelog 🆑 image: updates medalbox sprites. image: adds variants to medal box sprites. /🆑 |
||
|
|
b9b5baa850 |
Fix for lockboxes spawning with an open icon (#91295)
## About The Pull Request Title ## Why It's Good For The Game Because not intended I think ## Changelog 🆑 fix: Lockboxes now correctly use the closed icon_state when first spawned /🆑 |
||
|
|
1614b9456d |
Fix for lockboxes spawning with an open icon (#91295)
## About The Pull Request Title ## Why It's Good For The Game Because not intended I think ## Changelog 🆑 fix: Lockboxes now correctly use the closed icon_state when first spawned /🆑 |
||
|
|
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> |
||
|
|
455fe545e0 |
Part 4: Storage Improvements (#90783)
## About The Pull Request - 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 ## Changelog 🆑 code: organized storage subtypes under the same files & folders /🆑 --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> |
||
|
|
81c9e6ebd3 |
Part 3: Storage Improvements (#90476)
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
b61ed0972e |
Locking a storage item now locks you out of other storage items inside it. (#90243)
## About The Pull Request This PR introduces the `set_locked()` proc, which I'll also need for something else later. ## Why It's Good For The Game I could still interact with the storage of a box I placed into a secure safe after I locked the latter. ## Changelog 🆑 fix: Locking a storage item now locks you out of other storage items inside it. /🆑 |
||
|
|
9bd45e2f3a |
Part 3: Storage Improvements (#90476)
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
753d8e5ba4 | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a | ||
|
|
a2e141c859 |
Locking a storage item now locks you out of other storage items inside it. (#90243)
## About The Pull Request This PR introduces the `set_locked()` proc, which I'll also need for something else later. ## Why It's Good For The Game I could still interact with the storage of a box I placed into a secure safe after I locked the latter. ## Changelog 🆑 fix: Locking a storage item now locks you out of other storage items inside it. /🆑 |
||
|
|
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. /🆑 |
||
|
|
a16745c8e4 |
[NO GBP]Fixes some storages doing stuff in init (#90322)
## About The Pull Request - Fixes #90315 Only the 2 items listed in the issue had the problem ## Changelog 🆑 fix: lockboxes & fancy storages spawned at round start with items in them don't have issues anymore /🆑 |
||
|
|
d3d3a12540 |
The big fix for pixel_x and pixel_y use cases. (#90124)
## About The Pull Request 516 requires float layered overlays to be using pixel_w and pixel_z instead of pixel_x and pixel_y respectively, unless we want visual/layering errors. This makes sense, as w,z are for visual effects only. Sadly seems we were not entirely consistent in this, and many things seem to have been using x,y incorrectly. This hopefully fixes that, and thus also fixes layering issues. Complete 1:1 compatibility not guaranteed. I did the lazy way suggested to me by SmArtKar to speed it up (Runtiming inside apply_overlays), and this is still included in the PR to flash out possible issues in a TM (Plus I will need someone to grep the runtimes for me after the TM period to make sure nothing was missed). After this is done I'll remove all these extra checks. Lints will probably be failing for a bit, got to wait for [this update](https://github.com/SpaceManiac/SpacemanDMM/commit/4b77cd487d0a7b6a069df20356b701af5b20489d) to them to make it into release. Or just unlint the lines, though that's probably gonna produce code debt ## Why It's Good For The Game Fixes this massive 516 mess, hopefully. closes #90281 ## Changelog 🆑 refactor: Changed many of our use cases for pixel_x and pixel_y correctly into pixel_w and pixel_z, fixing layering issues in the process. /🆑 --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: SmArtKar <master.of.bagets@gmail.com> |
||
|
|
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 /🆑 |
||
|
|
b6b8306fda | Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a | ||
|
|
5020138b0e |
Improves mind lockbox handling (#89027)
## About The Pull Request Mind lockboxes have received a tooltip about their in-hand use, but also can be unlocked by trying to open them normally (clicking on one while holding it in your offhand). Should reduce the player confusion around these significantly. Closes #88999 ## Why It's Good For The Game More intuitive handling of objects is always nice ## Changelog 🆑 qol: Improved mind lockbox handling /🆑 --------- 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 |
||
|
|
4c4930c71d | Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit | ||
|
|
2d8cb334d3 |
[MIRROR] Removes 8 cases of double indentation (#28992)
* Removes 8 cases of double indentation (#85140) ## About The Pull Request Thanks to Potato (Lemon here) on discord for writing a regex to find these ``^/.*\).*\n\t\t`` ## Changelog 🆑 code: Removed 8 cases of double indentation /🆑 * Removes 8 cases of double indentation --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
77a82d4747 |
Removes 8 cases of double indentation (#85140)
## About The Pull Request Thanks to Potato (Lemon here) on discord for writing a regex to find these ``^/.*\).*\n\t\t`` ## Changelog 🆑 code: Removed 8 cases of double indentation /🆑 |
||
|
|
53d3099582 |
[MIRROR] Moves tool use back higher in the chain, but makes it so tool acts are only called on non-combat-mode (#28457)
Moves tool use back higher in the chain, but makes it so tool acts are only called on non-combat-mode Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
4aa7bae77a |
Moves tool use back higher in the chain, but makes it so tool acts are only called on non-combat-mode (#84083)
## About The Pull Request ### Dilemma So we've been running into a dilemma recently as we move more and more items over (#84070, #83910) Some things like modsuits, tables, washing machines, storage items want to do their tool acts before their item interactions In the past this was perfectly fine, because it was `tool_act` -> `attack`, but now it's a problem, because it's `item_interaction` -> `tool_act` -> `attack`. Rather than resort to snowflaking, my idea is that we can move tools back up the chain so deconstruction and other similar effects are handled first, before anything else like putting the tool onto the table. ### So why does it require non-combat-mode? A large amount of tool acts early return if the user's on combat mode to allow the user to smack the thing instead of using the tool on it. So I've decided to walk back on what I said like a week ago and make this standardized behavior. ### Misc Reintroducing `tool_act` as a proc that exist means that atoms can easily hook certain interactions that must happen very high in the click chain, such as doing something that block storage insertion. Moves some of the behaviors I put on the (admittedly rather hacky) new proc to that. (Also cleaned up a bit of lockbox and medbot code) ## Changelog 🆑 Melbert fix: Fixed modsuit interactions slightly. No longer requires combat mode to use tools on it, plasma core works as intended as well. (Using combat mode, however, will make you insert the item) refactor: Refactored lockboxes refactor: Refactored medbot skin application /🆑 |
||
|
|
b540aaf8ab |
[MIRROR] Afterattack is dead, long live Afterattack (#28128)
* Afterattack is dead, long live Afterattack * wew * fixes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
ff6b41aa07 |
Afterattack is dead, long live Afterattack (#83818)
## About The Pull Request - Afterattack is a very simple proc now: All it does is this, and all it's used for is for having a convenient place to put effects an item does after a successful attack (IE, the attack was not blocked)  - An overwhelming majority of afterattack implementations have been moved to `interact_with_atom` or the new `ranged_interact_with_atom` I have manually tested many of the refactored procs but there was 200+ so it's kinda hard ## Why It's Good For The Game Afterattack is one of the worst parts of the attack chain, as it simultaneously serves as a way of doing random interactions NOT AT ALL related to attacks (despite the name) while ALSO serving as the defacto way to do a ranged interaction with an item This means careless coders (most of them) may throw stuff in afterattack without realizing how wide reaching it is, which causes bugs. By making two well defined, separate procs for handing adjacent vs ranged interactions, it becomes WAY WAY WAY more easy to develop for. If you want to do something when you click on something else and you're adjacent, use `interact_with_atom` If you want to do something when you click on something else and you're not adjacent, use 'ranged_interact_with_atom` This does result in some instances of boilerplate as shown here:  But I think it's acceptable, feel free to oppose if you don't I'm sure we can think of another solution ~~Additionally it makes it easier to implement swing combat. That's a bonus I guess~~ ## Changelog 🆑 Melbert refactor: Over 200 item interactions have been refactored to use a newer, easier-to-use system. Report any oddities with using items on other objects you may see (such as surgery, reagent containers like cups and spray bottles, or construction devices), especially using something at range (such as guns or chisels) refactor: Item-On-Modsuit interactions have changed slightly. While on combat mode, you will attempt to "use" the item on the suit instead of inserting it into the suit's storage. This means being on combat mode while the suit's panel is open will block you from inserting items entirely via click (but other methods such as hotkey, clicking on the storage boxes, and mousedrop will still work). refactor: The detective's scanner will now be inserted into storage items if clicked normally, and will scan the storage item if on combat mode /🆑 |
||
|
|
ba5c112a86 |
Huge Mirror fixes (#27488)
* Fixes incorrect operator usage in mecha code (#82570)
## About The Pull Request
I completely screwed up and told the original PR author of #82415
(
|
||
|
|
8e3f635b98 |
Alt click refactor (#82656)
## About The Pull Request Rewrites how alt click works. Based heavily on #82625. What a cool concept, it flows nicely with #82533. Fixes #81242 (tm bugs fixed) Fixes #82668 <details><summary>More info for devs</summary> Handy regex used for alt click s&r: `AltClick\((.*).*\)(\n\t.*\.\.\(\))?` `click_alt($1)` (yes I am aware this only copies the first arg. there are no other args!) ### Obj reskins No reason for obj reskin to check on every single alt click for every object. It applies to only a few items. - Moved to obj/item - Made into signal - Added screentips ### Ventcrawling Every single atmospherics machine checked for ventcrawling capability on alt click despite only 3 objects needing that functionality. This has been moved down to those individual items. </details> ## Why It's Good For The Game For players: - Alt clicking should work more logically, not causing double actions like eject disk and open item window - Added context menus for reskinnable items - Removed adjacency restriction on loot panel For devs: - Makes alt click interactions easier to work with, no more click chain nonsense and redundant guard clauses. - OOP hell reduced - Pascal Case reduced - Glorious snake case ## Changelog 🆑 add: The lootpanel now works at range. add: Screentips for reskinnable items. fix: Alt click interactions have been refactored, which may lead to unintentional changes to gameplay. Report any issues, please. /🆑 |
||
|
|
7e2cd23368 |
[MIRROR] Fixes Cargo Lockbox Iconstates (#26520)
* Fixes Cargo Lockbox Iconstates (#81481) ## About The Pull Request The cargo lockboxes didn't update iconstates when locked. Seems like an oversight given that their parent object does this and there's unused sprites for this behaviour in this item, so this enables it to use those sprites that are already in code. ## Why It's Good For The Game It's hard to know if someone has taken their items or not because an unlocked case looks identical to a locked one. Also fixes an oversight idk. ## Changelog 🆑 fix: cargo lockboxes update iconstates correctly now /🆑 * Fixes Cargo Lockbox Iconstates --------- Co-authored-by: Sylphet <58074918+Sylphet@users.noreply.github.com> |
||
|
|
311da1348e |
Fixes Cargo Lockbox Iconstates (#81481)
## About The Pull Request The cargo lockboxes didn't update iconstates when locked. Seems like an oversight given that their parent object does this and there's unused sprites for this behaviour in this item, so this enables it to use those sprites that are already in code. ## Why It's Good For The Game It's hard to know if someone has taken their items or not because an unlocked case looks identical to a locked one. Also fixes an oversight idk. ## Changelog 🆑 fix: cargo lockboxes update iconstates correctly now /🆑 |
||
|
|
138d1324b8 |
[MIRROR] Comprehensive cleanup of storage datum, replaces the weakrefs with just refs (because they were managed already) (#26357)
* Comprehensive cleanup of storage datum, replaces the weakrefs with just refs (because they were managed already) * fixes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: jjpark-kb <mccorvey.norman@gmail.com> |
||
|
|
12afcb911e |
Comprehensive cleanup of storage datum, replaces the weakrefs with just refs (because they were managed already) (#81120)
## About The Pull Request
- Large amount of storage datum cleanup.
- Documentation.
- Maybe more consistent use of parent vs real_location.
- Removes the weakrefs, replaces it with just references.
- These were already managed references anyways so why bother?
- Removes a bunch of arguments no one used and would ever used so only
the most useful args are left.
- Some bugfixes.
## Why It's Good For The Game
Aiming to make storage easier to work with. The whole intent of this was
to bugfix the whole "weight class" thing that keeps popping up but I had
to do this first.
## Changelog
🆑 Melbert
fix: When placing an item into storage (such as backpacks), all nearby
mobs now get a message, rather than just the first mob.
fix: TGC decks of cards should act a bit less odd when looking inside.
refactor: Refactored a bit of storage, cleaned up a fair bit of its
code. Let me know if you notice anything funky about storage (like
backpacks).
/🆑
|
||
|
|
85f883f22c |
[MIRROR] Export scanner no longer shows shipping manifest value + manifest error changes [MDB IGNORE] (#24478)
* Export scanner no longer shows shipping manifest value + manifest error changes (#78923) ## About The Pull Request Adds a variable to exports called `scannable`. If you are trying to scan it and its set to false, then it won't show the value. When the actual sale is done, the value will still be added/subtracted. I also reorganized the message the scanner sends because I didn't want to put multiple inline if statements. Lastly, made it so that locked crates and private order lockboxes can't get the shipping manifest contents error by adding a new trait `TRAIT_NO_MANIFEST_CONTENTS_ERROR`. For departmental orders, I just entirely disabled the manifests having errors by setting it to `MANIFEST_CAN_FAIL` to false. This PR conflicts with #78911, sorry but that PR was what reminded me to fix this bug. ## Why It's Good For The Game Some may call it tedium but having to read paperwork is part of the cargo experience. Since it is harder to determine the crates value, there has been a few balance changes. The penalty for incorrect manifest is half the crates price or 500 credits, whichever is less.  Let me know if you have any suggestions for how the message is worded, it might be too long. Locked crates and private orders can no longer get the shipping manifest contents error because it is basically impossible to get someone to tell you all the contents of their purchase. It's only a 5% chance of being wrong and if they're not in cargo they probably don't care about the cargo budget. ## Changelog 🆑 balance: Export scanner no longer shows value of shipping manifests, now you actually have to read them. balance: Shipping manifest penalty is now only half crate cost as well as capped to 500 credits. balance: Shipping manifests for private orders or locked crates can no longer have the incorrect contents error. Shipping manifests for departmental orders can n longer have any error. /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Export scanner no longer shows shipping manifest value + manifest error changes --------- Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
9a129de703 |
Export scanner no longer shows shipping manifest value + manifest error changes (#78923)
## About The Pull Request Adds a variable to exports called `scannable`. If you are trying to scan it and its set to false, then it won't show the value. When the actual sale is done, the value will still be added/subtracted. I also reorganized the message the scanner sends because I didn't want to put multiple inline if statements. Lastly, made it so that locked crates and private order lockboxes can't get the shipping manifest contents error by adding a new trait `TRAIT_NO_MANIFEST_CONTENTS_ERROR`. For departmental orders, I just entirely disabled the manifests having errors by setting it to `MANIFEST_CAN_FAIL` to false. This PR conflicts with #78911, sorry but that PR was what reminded me to fix this bug. ## Why It's Good For The Game Some may call it tedium but having to read paperwork is part of the cargo experience. Since it is harder to determine the crates value, there has been a few balance changes. The penalty for incorrect manifest is half the crates price or 500 credits, whichever is less.  Let me know if you have any suggestions for how the message is worded, it might be too long. Locked crates and private orders can no longer get the shipping manifest contents error because it is basically impossible to get someone to tell you all the contents of their purchase. It's only a 5% chance of being wrong and if they're not in cargo they probably don't care about the cargo budget. ## Changelog 🆑 balance: Export scanner no longer shows value of shipping manifests, now you actually have to read them. balance: Shipping manifest penalty is now only half crate cost as well as capped to 500 credits. balance: Shipping manifests for private orders or locked crates can no longer have the incorrect contents error. Shipping manifests for departmental orders can n longer have any error. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
340f3d1bba |
[MIRROR] The Medal Epilogue: Engineering (And Medical) Now Gets Them Too [MDB IGNORE] (#23855)
* The Medal Epilogue: Engineering (And Medical) Now Gets Them Too (#78461) ## About The Pull Request **Credits to @ CoiledLamb for the awesome sprites in this PR!** CE 🤝 CMO Finally, the last department to receive their own medal box, the engineering department. The saga is complete, we can go home now. Adds two types of medals: 1. For assisting the station in a crisis, the "emergency services award" 2. For showing your atmospheric prowess with a project, the "atmospheric mastery award" To me, those two awards symbolize the best engineering (and medical) has to offer. On the one hand, assisting the station and its crew in a calamity, and on the other hand just absolutely flexing your atmos knowledge on your boss. CEs now have a lockbox in their locker with 3 emergency service medals and 1 atmospheric mastery medal, and CMOs get 3 emergency services medals in their lockbox. 3 emergency service medals may seem like a lot, but remember that assisting the station is often done in a team and not alone. An engineering/medical department who can work together in a crisis really demonstrates how robust they are. As for the atmos mastery medal, well... ### THERE CAN ONLY BE ONE ! <details> <summary>Pictures</summary>  Upper row: emergency services award, engineering Middle row: atmospheric mastery award Lower row: emergency services award, medical    Sprites without funky byond scaling   </details> ## Why It's Good For The Game medals are cute and awesome, i think you can agree ## Changelog 🆑 distributivgesetz, CoiledLamb add: Added two new awards specifically for engineering and medical: The "Emergency Services Award" and the "Atmospheric Mastery Award". CEs get 3 Emergency Services Awards and 1 Atmospheric Mastery Award and CMOs get 3 Emergency Services Awards. /🆑 * The Medal Epilogue: Engineering (And Medical) Now Gets Them Too --------- Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> |
||
|
|
83fb93e275 |
The Medal Epilogue: Engineering (And Medical) Now Gets Them Too (#78461)
## About The Pull Request **Credits to @CoiledLamb for the awesome sprites in this PR!** CE 🤝 CMO Finally, the last department to receive their own medal box, the engineering department. The saga is complete, we can go home now. Adds two types of medals: 1. For assisting the station in a crisis, the "emergency services award" 2. For showing your atmospheric prowess with a project, the "atmospheric mastery award" To me, those two awards symbolize the best engineering (and medical) has to offer. On the one hand, assisting the station and its crew in a calamity, and on the other hand just absolutely flexing your atmos knowledge on your boss. CEs now have a lockbox in their locker with 3 emergency service medals and 1 atmospheric mastery medal, and CMOs get 3 emergency services medals in their lockbox. 3 emergency service medals may seem like a lot, but remember that assisting the station is often done in a team and not alone. An engineering/medical department who can work together in a crisis really demonstrates how robust they are. As for the atmos mastery medal, well... ### THERE CAN ONLY BE ONE ! <details> <summary>Pictures</summary>  Upper row: emergency services award, engineering Middle row: atmospheric mastery award Lower row: emergency services award, medical    Sprites without funky byond scaling   </details> ## Why It's Good For The Game medals are cute and awesome, i think you can agree ## Changelog 🆑 distributivgesetz, CoiledLamb add: Added two new awards specifically for engineering and medical: The "Emergency Services Award" and the "Atmospheric Mastery Award". CEs get 3 Emergency Services Awards and 1 Atmospheric Mastery Award and CMOs get 3 Emergency Services Awards. /🆑 |
||
|
|
4d7ba6ebcb |
[MANUAL MIRROR] Reworks Duffel Bags (Zippers) (#22363)
* Reworks Duffel Bags (Zippers) * Update backpack.dm * Duiffel Spotfix * error fixes * Update backpack.dm * Update code/modules/antagonists/cult/cult.dm * Update backpack.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
e264ee3644 |
[MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts * Update communications.dm * Modular override * Some modular adjustments, removes 'emagged' vars in favor of obj_flags * whoops, mobs don't have obj_flags. --------- Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
ccf547c142 |
Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts (#76669)
## About The Pull Request New malf AI upgrade Remote safety overrides: Mid-cost, Mid-supply. Allows the AI to remotely emag things it can see and can access. 1. Very useful for psychological warfare (Emagging APCs to throw the crew off their trail) 2. Logically makes sense - why, of all things, can the AI not emag anything when it's fundumentally integrated with the station's electronics? 3. Generally speaking can only access things that make sense for it to access - it cannot emag ethereals, sadly In order for this to work, emag_act now returns a boolean, designating if the emag had any effect. While I was in there, I also added args to every single emag_act I could find and added far more feedback/converted a lot of things to balloon alerts to allow the AI to see if its emag had any effect. ## Why It's Good For The Game It just makes sense that the AI, the most electronically-sensitive entity in the game, would be able to emag things. Plus, more options given to malf that aren't strictly MURDER KILL MURDER are always a plus, especially if they allow for fancier plays. ## Changelog 🆑 add: New malf ability: Remote safety overrides. Allows the AI to remotely emag things it has access to. code: emag_act() now returns a boolean designating it's success in emagging code: All instances of emag_act() now have the proper arguments qol: Most usecases of emagging now have some kind of feedback, and existing feedback has been sanity checked and converted to balloon alerts. /🆑 |
||
|
|
8c2c72b0ed |
Duiffel Spotfix (#76442)
## About The Pull Request Gives duffelbags their proper slot count They inherited this from backpacks, but I sorta just forgot about that [Creates "levels" of locked objects, uses that to make locked duffels work](https://github.com/tgstation/tgstation/pull/76442/commits/c613c00f62fa3ff03bb33737d24da9acbf2050e3) [c613c00](https://github.com/tgstation/tgstation/pull/76442/commits/c613c00f62fa3ff03bb33737d24da9acbf2050e3) Turns locked into something that holds defines, this makes life a lot easier. Requires a lot of boilerplate because of how many uses of these procs there are and all the passthrough and shit. Adds a few outfit subtypes to avoid this class of failure in future. Renames the args in a few but not all touched procs, one thing at a time Closes #76407 Closes #76430 Had the lock check in the wrong place Closes #76441 GOD I HATE TK SO MUCH Wrote half the pr without glasses so if it's weird gimme some grace yeah? ## Changelog 🆑 fix: Fixes some fuck with duffelbags, them not holding enough + issues with spawning gear in them (job shit and all) /🆑 |
||
|
|
f8f2abb11f |
[MIRROR] Refactor, improve, and rename canUseTopic to be can_perform_action [MDB IGNORE] (#19391)
* Refactor, improve, and rename canUseTopic to be can_perform_action * updoot * https://github.com/tgstation/tgstation/pull/72876 https://github.com/tgstation/tgstation/pull/72876 --------- Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
a1ada2c9ef |
Refactor, improve, and rename canUseTopic to be can_perform_action (#73434)
This builds on what #69790 did and improved the code even further. Notable things: - `Topic()` is a deprecated proc in our codebase (replaced with Javascript tgui) so it makes sense to rename `canUseTopic` to `can_perform_action` which is more straightforward in what it does. - Positional and named arguments have been converted into a easier to use `action_bitflag` - The bitflags adds some new checks you can use like: `NEED_GRAVITY | NEED_LITERACY | NEED_LIGHT` when you want to perform an action. - Redundant, duplicate, or dead code has been removed. - Fixes several runtimes where `canUseTopic` was being called without a proper target (IV drips, gibber, food processor) - Better documentation for the proc and bitflags with examples |
||
|
|
6abd24776d |
[MIRROR] Lockboxes and wrapped crates are no longer invisible [MDB IGNORE] (#18090)
* Lockboxes and wrapped crates are no longer invisible * Apply suggestions from code review Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: Funce <funce.973@gmail.com> |
||
|
|
57e99cbc5a |
[MIRROR] Refactors to add directly to desc less [MDB IGNORE] (#18160)
* Refactors to add directly to desc less (#71996) ## About The Pull Request Refactors some of the desc += calls to instead use examine() additions ## Why It's Good For The Game There were a few parts in the code where the description was directly written to after an action, where that extra note is information on the status of the item. Moving it to examine() lets you call those procs multiple time without worry and makes it look more consistent to players (extra item info displayed as notice/warning spans under desc) ## Changelog 🆑 refactor: moved some description edits to examine hooks /🆑 Co-authored-by: etherware-novice <candy@ notarealaddr.com> * Refactors to add directly to desc less Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com> Co-authored-by: etherware-novice <candy@ notarealaddr.com> |
||
|
|
c2577638ef |
Refactors to add directly to desc less (#71996)
## About The Pull Request Refactors some of the desc += calls to instead use examine() additions ## Why It's Good For The Game There were a few parts in the code where the description was directly written to after an action, where that extra note is information on the status of the item. Moving it to examine() lets you call those procs multiple time without worry and makes it look more consistent to players (extra item info displayed as notice/warning spans under desc) ## Changelog 🆑 refactor: moved some description edits to examine hooks /🆑 Co-authored-by: etherware-novice <candy@notarealaddr.com> |
||
|
|
b08e6d24b2 |
[MIRROR] 3/4ths-ify some wall mount sprites (by Kryson and Viro) [MDB IGNORE] (#18039)
* 3/4ths-ify some wall mount sprites (by Kryson and Viro) (#71788) posters are now 24px tall, new sprites for nanomeds, emergency safes, and ticket machines (by Kryson) * 3/4ths-ify some wall mount sprites (by Kryson and Viro) * DON'T INCLUDE FUCKING OVERRIDES IF THEY DON'T DO ANYTHING HHHNGH MY CI IS FAILING CODERS * FUCK Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com> |
||
|
|
b570ac2846 |
Lockboxes and wrapped crates are no longer invisible (#71893)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request Missed putting the icon for lockboxes on the base type. Same for wrapped crates. <!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! --> ## Why It's Good For The Game Seeing items is good. Fixes #71912 Fixes #71909 Fixes #71905 <!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. --> ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and it's effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 Tattle fix: lockboxes' and wrapped crates' invisibility spell has worn off /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> Co-authored-by: tattle <article.disaster@gmail.com> |