[IDB IGNORE] [MDB IGNORE] Upstream Merge 2026-03-25#803
Open
XeonMations wants to merge 157 commits intoDarkPack13:masterfrom
Open
[IDB IGNORE] [MDB IGNORE] Upstream Merge 2026-03-25#803XeonMations wants to merge 157 commits intoDarkPack13:masterfrom
XeonMations wants to merge 157 commits intoDarkPack13:masterfrom
Conversation
## About The Pull Request This changes spiderwebs to drain stamina from mobs whenever they enter a turf filled with spiderwebs. ## Why It's Good For The Game The old movement code was very janky and buggy. Because it used the `CanAllowThrough` proc, a mob could spam several dozens of movement attempts per second, resulting in a massive amount of shaking and `stuck in the web` messages. This had the effect of not really slowing or stopping movement, since the RNG was being rolled so fast that it was a minor inconvenience. I feel like the stamina drain effect makes more sense and feels more natural. ## Changelog :cl: balance: Sticky spider webs now drain stamina when mobs enter the turf /:cl:
## About The Pull Request Chem scanning a maint pill now removes the achievement for eating it. ## Why It's Good For The Game cheater. You can still scour maints for pills with stuff you'd like, but you lose the achievement for doing so. ## Changelog :cl: fix: Chem scanning a maintenance pill removes the achievement value. /:cl:
## About The Pull Request This lets people ride and tame spiders by feeding them mouse, lizard, moth, fly, and worm meat. You can only do this when a spider is a spiderling or young; once it's fully grown, it's no longer possible. This also refactors some tameable code to use `TRAIT_TAMED` instead of setting variables on mobs individually. ## Why It's Good For The Game It looks cool. <img width="1920" height="1080" alt="dreamseeker_97k7fgzdhv" src="https://github.com/user-attachments/assets/87d53102-468d-4dd7-b0a7-004f9a98df17" /> ## Changelog :cl: add: Spiders can now be tamed and ridden. They eat mouse, lizard, moth, fly, and worm meat and can only be tamed when they are spiderlings or young. code: Refactored tameable code to use TRAIT_TAMED instead of setting individual variables on each mob. /:cl:
…angry (#95342) ## About The Pull Request Cannabis will slowly calm monkies down, removing enemies from their enemies list over time and eventually making them docile while it is in their system Nicotine does similar, but does not make them docile Booze on the other hand makes monkeys see enemies as greater enemies depending on strength of the drink ## Why It's Good For The Game Adding interactions between reagents that modify "player behavior" and actual "ai behavior" seems like fun to me, ## Changelog :cl: Melbert add: Cannabis will calm down an angry monkey, eventually even turning them docile (not pacifist!) temporarily add: Nicotine will also calm down an angry monkey, albiet slower than Cannabis and will never turn them entirely docile add: Booze on the other hand will make a monkey even angrier (though only if they are already upset with someone) /:cl:
## About The Pull Request Cleans up the code, swing combat will be real one day ## Changelog :cl: refactor: Rewrote dispenser bots to use item_interaction /:cl:
## About The Pull Request One more refactor, one less attackby ## Changelog :cl: refactor: Rewrote BCI implanters to use item_interaction /:cl:
## About The Pull Request Moving Pun Pun's name handling in #94463 broke their name assignment as it used `var/name_to_use = name` Prior, it would save `var/name_to_use = "Pun Pun"`. But after moving it, it would use `var/name_to_use = "monkey (842)"`, as name is randomized in human init. I will note that I think `use_random_name` var is broken... that may require future investigation. ## Changelog :cl: Melbert fix: Pun Pun is Pun Pun again /:cl:
…act (#95378) ## About The Pull Request Another attackby() gone ## Changelog :cl: refactor: Rewrote integrated circuits to use item_interaction and screwdriver_act /:cl: --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request Another one bites the dust ## Changelog :cl: refactor: Converted circuit printers/duplicators to item_interaction /:cl:
## About The Pull Request Converts basicmob bot construction to use item_interaction instead of attackby() ## Changelog :cl: refactor: Converted bot construction to item_interaction /:cl:
…(#95380) ## About The Pull Request Refactors Revenant abilities into a component Revenant abilities now indicate if they are locked <img width="419" height="185" alt="image" src="https://github.com/user-attachments/assets/7223f025-d99c-4c09-883b-b53f29947c36" /> <img width="337" height="97" alt="image" src="https://github.com/user-attachments/assets/321bf64f-df57-4da5-9951-a2795637cea3" /> They also more accurately update if they are un/usable (ie, if you enter a wall, they turn red.) Also, Revenants are no longer affected by gravity. They already weren't affected by gravity (as far as I could tell) this just prevents them from getting the no-grav alert. ## Why It's Good For The Game - Not all future Revenant abilities need to be an AOE spell - It makes them easier to parse at a glance (what powers you have / don't have / can use) ## Changelog :cl: Melbert qol: Revenant abilities indicate if they are locked, and better indicate if they are currently usable qol: Revenants are no longer alerted that they have no gravity (they always have gravity) refactor: Refactored Revenant abilities, report any oddities with them. /:cl:
## About The Pull Request More attackby()s gone ## Changelog :cl: refactor: Converted vehicles to use item_interaction/tool_acts /:cl:
## About The Pull Request 1. Mappers and admins can now VV RTG power without it breaking 2. Replace attackby usage 3. `base_icon_state` usage 4. Rewriting power in terms of watts 5. Grammar updates ## Why It's Good For The Game These are mostly meant for events and mappers but they were relatively difficult to use for events and mappers, requiring you made a subtype. This just brings the code up to snuff to make them more usable. ## Changelog :cl: Melbert code: Cleaned up RTG code. Admins can now VV them easier. If you come across a ruin on Lavaland or in space that uses them and see any odd behavior, report it as an issue. /:cl:
…ompletion when drank (#95466) ## About The Pull Request Previously, when one drank out of a glass of booze that the virtual bartender graciously offered, one would not get any closer to domain completion, because said bartender got his glasses new out of a vending machine. These glasses never were registered on domain creation, due to not existing on domain creation. This pr registers the vending machines within the domain with a new signal that allows newly created glasses to also be registered, and count towards domain completion. ## Why It's Good For The Game A bitrunner dying of liver failure due to the obtuse distinction between glasses that were in a vending machine and glasses that were on the table sounds very annoying. Also, you could very easily make the domain not completable within seconds by spawning as a ghostrole and breaking the table glasses. You can still do that, but you have to break an entire vending machine's worth of glasses too. ## Changelog :cl: fix: Glasses that were in the vending machine now still count for the completion of the Beach Bar virtual domain /:cl:
…hery balls being disabled on shuttle transit (#95407) ## About The Pull Request When something that is orbiting something travels on a shuttle with that thing, its orbit is temporarily removed and then put back right after. To make this happen, the orbiting component calls `stop_orbit()` (on the orbiting object) & then `begin_orbit()` (on itself, the component). This means that effects that begin in `orbit()` & delete their effects in `stop_orbit()` simply lose their effect without putting them back, because `orbit()` is never called again. The solution presented is to pass the `refreshing` argument given in the component's `end_orbit()` into the atom's `stop_orbit()`, and condition actual deletion on that. The `refreshing` argument is `TRUE` only during shuttle movements and re-orbits of the same thing. ## Why It's Good For The Game fixes #95331 & wizard grav anoms & tesla periphery balls ## Changelog :cl: fix: Friendly wisps, wizard gravity balls, & tesla periphery balls are no longer disabled due to shuttle transit /:cl: --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request The barcode scanner has a check-in mode, but to checkout you have to scroll through a (potentially) large list of books. This aims to fix that by letting you skip the UI using the same item you use to check-in. https://github.com/user-attachments/assets/916b743e-d974-4e7d-a9f2-a407562c5123 Also limits library book borrowing time to 2 hours, cause the UI looked really weird with it uncapped (also any round that goes more than 2 hours you should bring your books back) ## Why It's Good For The Game Better UX I think.
## About The Pull Request Not sure if it is oversight or because of some valid balancing concern, but this PR just enables display's design to be able to be printed in golems and charlie station lathes ## Why It's Good For The Game Existence of this item in ghostroles' hands wont impact balancing in any way, as opposed to other locked items such as shuttle parts crew pointers (which, gonna be honest, wont impact said balance either, but whatever). Vitals display is just too cool of a thing to make it limited just for station's people.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
About The Pull Request
Why It's Good For The Game
Changelog
🆑
/:cl: