* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`
* Patches up merge skew (#80197)
## About The Pull Request
Yeah #79968 (1e76fd70b4) was not
compatible with master but no one said anything on the PR so i got
jebaited into merging it. The code should be up to the same standards
per the documentation I read (preventing thwacking the target in certain
situations while not returning anything in other situations)
master will definitely compile now though
* Patches up merge skew
* Merge conflicts
* Modular adjustments
* Removes this entirely duplicated proc...
* Update tool_override.dm
* Update weldingtool.dm
* Update tool_override.dm
* Update tool_override.dm
* Nope. Copy paste begone.
A skyrat edit is so much easier to deal with here
* Update brand_intelligence.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Abductor Ship Bitrunner Domain (#80106)
## About The Pull Request
Adds in a new Bitrunner domain called Abductor Ship which is an
assault-type domain themed as an abductor mothership. It adds in a new
Abductor simplemob, gives them enemy AI almost identical to the
Syndicate Assault mobs and then sets them up in a new modular Domain map
fit with a custom Safehouse and multiple enemy types.
The domain is the same reward and difficulty level as the Syndicate
Assault mission and can be easily compared to it, while also being fresh
and having a cool themed map to run around in and blast aliens. I don't
know, I think it's cool...
## Why It's Good For The Game
Fun alien destruction, more Bitrunner content. Can you really go wrong
with that? It seems like bitrunning becomes dry when you've exhausted
all your domain options and have gotten used to them.
## Changelog
🆑
add: Added new modular Assault-Type domain "Abductor Ship"
add: Added new simple mob abductor agents team
/🆑
* Abductor Ship Bitrunner Domain
---------
Co-authored-by: IsaacExists <125638858+IsaacExists@users.noreply.github.com>
* Demotes the "electrical conductivity" flag from `flags_1` to `obj_flags` (#80033)
## About The Pull Request
Code to handle this flag only ever existed on the `/obj` sublevel, so
there's no need for it to be on the `/atom` level `flags_1`. There was
probably a point in time in which mobs or turfs conducted electricity
but there's zero code for it anymore so we truly just live in a society
now.
## Why It's Good For The Game
Frees up a slot on `flags_1` (which is really nice actually), proper
scoping of certain bitflag stuff, etc.
## Changelog
Not relevant to players.
I may have screwed something up, will be doing a few passes on this
myself to ensure all the search and replaces went alright but we should
be good™️
* Demotes the "electrical conductivity" flag from `flags_1` to `obj_flags`
* Modular
* Update misc.dm
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Fixes an outfit typo (#80077)
## About The Pull Request
Fixes a typo in one of the outfits used in the Pipe Dream domain.
Factory Quatermaster -> Factory Quartermaster
## Why It's Good For The Game
Quatermaster...
## Changelog
🆑 Rhials
spellcheck: Fixes a typo in the Factory Quartermaster outfit name.
/🆑
* Fixes an outfit typo
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Disables mod links from virtual modsuits [NO GBP] (#80038)
## About The Pull Request
Via discussion in discord:

## Why It's Good For The Game
Virtual entities, however suited up they are, shouldn't be able to
communicate station side with crew or with syndicate entities.
## Changelog
🆑
fix: Mod links are now disabled in the virtual realm.
/🆑
* Disables mod links from virtual modsuits [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes cyber cops being equipped with the cyber tac outfit (#80007)
* Fixes cyber cops being equipped with the cyber tac outfit
---------
Co-authored-by: Nathan Singer <supernovaa41@gmx.com>
* Makes the Bitrunning Den area a cargo subtype (#79907)
## About The Pull Request
Converts the bitrunning areas from a station area subtype to a cargo
area subtype.
`/area/station/bitrunning -> /area/station/cargo/bitrunning`
`/area/station/bitrunning/den -> /area/station/cargo/bitrunning/den`
This includes an updatepaths script. Neat!
## Why It's Good For The Game
It's a cargo role, and it's always located within cargo. I think it's a
cargo area. Unity for _all_ jobs under the great Cargonian umbrella!
## Changelog
🆑 Rhials
code: Bitrunning/Bitrunning Den areas are now cargo area subtypes,
rather than station area subtypes.
/🆑
* Makes the Bitrunning Den area a cargo subtype
* UpdatePaths
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Bitrunning glitches that don't escape their domain don't show up in the roundend report (#79910)
## About The Pull Request
Exactly what the title says. I was planning to fully refactor glitches
to function more like lavaland elites, which they operate more similarly
to, but I was lazy and also discovered the `show_in_roundend` var on
`/datum/antagonist` - setting that to `FALSE` does the thing I cared
most about.
Making them still appear in the roundend report if they escape was
Fikou's idea.
## Why It's Good For The Game
Does the roundend report really need to list a hostile that will cease
to exist soon after killing the only characters it can interact with?
## Changelog
🆑
qol: Bitrunning glitches will not show up in the roundend report unless
they escape the virtual domain.
/🆑
* Bitrunning glitches that don't escape their domain don't show up in the roundend report
---------
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Reworks transformation sting to be temporarily in living mobs, forever in dead mobs
* Modular updates
* Recaches the icons generated in the `changeling` unit test
* Pain
* More tweaks
* Disable unit test
* Let's see if we can pass test temporarily
* Makes transformation sting unobtainable more cleanly
* Unit test
* Cursed proc
* Kill the unholy copy pasta
Seriously this stuff is just awful. This is not maintainable.
* test this
* Update comments
* Fixing the screenshot test, maybe?
* grrr
* Update changeling.dm
* Attempt to fix this nonsense
* Update changeling.dm
* Update changeling.dm
* Update changeling.dm
* Update dna.dm
* Fixes it?
* Screenshot test
* Update _traits.dm
* Update _traits.dm
* Fix this
* Update dna.dm
* Update dna.dm
* Hmm
* This proc needs a new name
* I want to scream but I have no mutant parts
* Fix
* Update species.dm
* Update species.dm
* Update species.dm
* Update species.dm
* Some touch ups
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
* Nukes radio.dmi, adds inhands for somewhat relevant items. (#79792)
## About The Pull Request
Third /icon/ cleansing splinter 1. Comments on commits say all it does
pretty much.

## Why It's Good For The Game
Inhand for walkietalkie was requested in the project, gets rid of some
usecases of old 'gangtool', headset splitoff requested by Fazzie.
Inhands reflecting the items they are supposed to represent is nice.
## Changelog
🆑
image: Following now have unique item sprites: syndicate war declaration
radio, curator and chief beacon's, chaplain beacon.
image: Following now have unique inhand sprites: radio, export scanner,
walkie-talkie, syndicate war declaration radio, curator and chief
beacon's, chaplain beacon.
/🆑
* Nukes radio.dmi, adds inhands for somewhat relevant items.
---------
Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
* Fixes admin spawned bitrunning events [No GBP] (#79820)
## About The Pull Request
Don't mind that I opened this on the wrong branch the PR is still valid
ok
## Why It's Good For The Game
Spawning events was broken
## Changelog
🆑
fix: Admins can spawn bitrunning events (again!)
/🆑
* Fixes admin spawned bitrunning events [No GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Reimplements bitrunning hands [NO GBP] (#79810)
## About The Pull Request
As it turns out, you cannot do that
## Why It's Good For The Game
Bitrunners need hands
Fixes#79786
## Changelog
🆑
fix: After correcting a slight miscalculation, Bit Avatars now have
hands again.
/🆑
* Reimplements bitrunning hands [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes half covering glassware protecting eyes (#79592)
## About The Pull Request
Makes glasses that don't cover both eyes protect from dropper chemicals
onto eyes
## Why It's Good For The Game
It's annoying to spray something on someones exposed eye for it to not
transfer
MEDICS HAVE HAD IT GOOD FOR TO LONG resisting MY humanizing toxin with
their dumb one eye covering health huds THE MED MOTHS SHALL BE HUMAN
## Changelog
🆑
fix: fixes half-covering glassware protecting eyes from chemicals
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fixes half covering glassware protecting eyes
---------
Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Removes virtual-specific subtypes of drinking glass + adds a new fishing map (#79423)
## About The Pull Request
Changed how loot signals work with bitrunning entirely, which allows map
creators to attach functionality to objects without creating subtypes of
the item
As a bonus I added a fishing minigame map which uses it
## Why It's Good For The Game
It's a messy solution to need to create subtypes just for the one-off
map that needs them
## Changelog
🆑
add: Added a new fishing map to bitrunning.
add: You are no longer limited to pina coladas on the beach bar domain.
Cheers!
/🆑
* Removes virtual-specific subtypes of drinking glass + adds a new fishing map
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Removes virtual-specific megafauna, fixes boss map issues [NO GBP] (#79424)
## About The Pull Request
Another atomization of the content patch-
Let's not subtype everything into virtual variants
This also fixes some bugs that were present with vdom boss maps
- Made the bubblegum map larger so he wouldn't teleport out
- Legion is just far too annoying to have to fix code wise, given that
few if anyone tries it with the base virtual equipment
<details>
<summary>what do you mean too annoying?</summary>
Legion doesn't handle dying like the standard megafauna - each time it
"dies" it looks to see if there's another legion in the entire game
world. Given the real one very likely exists, this basically means it
won't drop anything. I'd have to modify legion's death proc specifically
for the virtual domain. No other megafauna has this level of weirdness
(nor splitting behavior) and coupled with the fact I think no one tries
the domain, I'm just removing it.
</details>
## Why It's Good For The Game
Cleans up megafauna subtypes that were specific for the virtual domain.
Now, we won't need to keep adding to the list if there's ever a new one
Fixes#79203Fixes#79200
## Changelog
🆑
fix: Bubblegum should no longer teleport out of the simulation when
threatened
del: Chamber of Echoes map removed as it conflicts with the actual
Legion
/🆑
* Removes virtual-specific megafauna, fixes boss map issues [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes some bitrunning bugs [NO GBP] (#79332)
## About The Pull Request
Atomized bug fix PR from the content patch. They seemed to be priority
## Why It's Good For The Game
Fixes#79329Fixes#79164Fixes#79289
## Changelog
🆑
fix: Paraplegics can now enter netpods.
fix: Fixes an exploit caused by teleporting out of a netpod.
fix: Outfit selection at netpods shouldn't give armor bonuses any
longer.
/🆑
* Fixes some bitrunning bugs [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Prevents Mindswapping on Bitrunners (#79323)
## About The Pull Request
Fixes#79310
Adds a new trait to prevent mindswaps (which is just useful for any
future cases when we don't wanna rely on the blacklist typecache) while
also accounting for bitrunners (who you can't mindswap because their
mind is elsewhere) and their avatars (because that's not a real mind now
is it).
this does mean that bitrunners while bitrunning are immune to all
mindswaps but i don't have a good answer on how to fix it. i don't even
much like the idea of VR but I think that having these traits are useful
enough for future utilization.
## Why It's Good For The Game
prevent big breakage.
## Changelog
🆑
fix: Bitrunners can no longer get mass-mindswapped out of their avatar
when the wizard does the event. Something about machinery and magic not
going well together.
/🆑
* Prevents Mindswapping on Bitrunners
---------
Co-authored-by: san7890 <the@san7890.com>
* Cuts the number of `apply_damage` copypaste procs from 3(.5) to 1, fixing a few bugs along the way
* Update _species.dm
* Update damage_procs.dm
* Modular adjustments
* Update mutant_species.dm
* Update mutant_species.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Fixes infinite loop in bitrunning (#79194)
## About The Pull Request
Clears up some functionality in netpod disconnect cases that lead to an
infinite loop
Also fixes an errant message from #78959
## Why It's Good For The Game
Fixes#79190
## Changelog
🆑
fix: Entering a virtual domain should no longer give you a message that
it doesn't forbid items
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes infinite loop in bitrunning
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Allows domains to forgo giving bitrunners their disk items and spells if that is desired (#78959)
## About The Pull Request
Adds two variables to bitrunner domains, one for making them not spawn
disk items, and one for making them not grant disk abilities to
bitrunner characters on loading into the domain.
Not presently used in any domains, but will be a mystery tool that will
help us later.
## Why It's Good For The Game
I've thought of a few pretty good domains but the ideas behind them fall
apart a bit of joey bitrunner can bring a desword and fireball into
them.
## Changelog
🆑
code: Bitrunner domains can now have spells or items from disks disabled
if the domain maker wants such a thing
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Allows domains to forgo giving bitrunners their disk items and spells if that is desired
---------
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Abandoned Domains: Adds two new psyker-oriented virtual domains (#78892)
## About The Pull Request
_Really? Bitrunning maps are so simple you could do them with your eyes
closed? Hmmmmm..._
This adds two new medium-difficulty virtual domains to the pool -- Crate
Chaos and Infected Domain.
These two domains take you to neglected corners of the virtual world.
These are unstable, bizarre locales that do not support the bitrunning
machine's visual display, and must be traversed using echolocation.
**_These domains have been designed around you being a psyker, and will
turn your bitrunner avatar into a psyker until they leave the domain._**
_**Crate Chaos:** Low cost, medium reward._
Sneak into an abandoned virtual domain, where they store all of the loot
crates. There's about 40-ish crates in this space, and one of them
(RANDOM) is the encrypted cache we're looking for. The crates must be
manually inspected, requiring you to drop your weapon for a few moments,
but that shouldn't be a problem. There's no hostiles, just a bunch of
crates... right?
This one has very few shenanigans or threats in it. It's meant to be an
introductory experience to interfacing with things as a psyker, and
getting the rhythm down for moving between visual pulses.
_**Infected Domain:** Medium cost, high reward._
Enter another abandoned virtual domain. This one was sealed off from the
digital world after the cyber-police failed to contain a virus that
zombified its inhabitants, leaving it to grow unstable and full of
holes. Fortunately, you're provided with the single best tool for arming
yourself against zombies in any video game, ever -- Your very own
Mystery Box. Get armed with (basically) whatever gun you want, and go
put those wacky psyker abilities to use against those zombies.
This one is a lot meaner. Many chasms, landmines, and zombies. Walk
slowly, stay with your fellow bitrunners, and if it's too hard, there's
no shame in going back and rolling for a better gun!
The domains themselves are VERY simple, since there's little need for
decor or particularly complex layouts. The idea is that you should be
able to see everything you need to see in a given room/area with a
single vision pulse. Here's what one of the maps looks like:

Err, uh, I mean... This is what the maps look like:
<details>
<summary>SPOILERS BEWARE</summary>
<br>


(You wanna find out if there's something cool under those red lines? Go
there yourself!)
</details>
These two psyker maps come with their own psyker safehouse too -- The
Bathroom. It's gross, the medical supplies are kind of just sitting
there on the floor... It looks a little bit better when you're blind, I
guess.

## Why It's Good For The Game
I like psykers a lot more than I'm willing to admit. Unfortunately, the
jankiness of echolocation provides such a disadvantage at times, that
any "real" conflict is usually over before the psyker is even aware
they're taking damage.
Fortunately, the controlled environments that bitrunning maps are
perfect for psykers. They give the opportunity to craft an experience
around the player being blind, rather than forcing them to play blind
through a seeing mans world.
These two domains should present players with a unique challenge that is
designed around playing as a psyker, with slightly higher-than-usual
rewards for their trouble. More importantly -- They're fun!
## Changelog
🆑 Rhials
add: Two new psyker-oriented virtual domains -- Crate Chaos and Infected
Domain.
add: Map helper for cyber-police corpse spawn.
add: Map helper for swapping the encrypted crate in an area with a
random crate from that same area.
/🆑
* Abandoned Domains: Adds two new psyker-oriented virtual domains
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Fix virtual gondola meat (#78808)
## About The Pull Request
Instead of having a copy-pasted snowflake function for virtual gondola
mutation toxin, lets just move the difference to a variable.
Fixes the "Be unable to push the crate" part of #78804, because it was
applying both versions of the gondola disease, and the slower one could
finish first if you got unlucky.
## Why It's Good For The Game
Bugs bad, duplicate code bad.
## Changelog
🆑
fix: Virtual domain gondola meat will no longer have a small chance to
turn you into a weaker gondola variant
/🆑
* Fix virtual gondola meat
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
* Fix bitrunning drinking glass using the wrong subtype (#78845)
## About The Pull Request
This drinking glass subtype was runtiming like crazy because it didn't
have `base_container_type` set, meaning it ~failed the vibe check~
couldn't properly update its sprite according to the glass styles.

Swapped it out for a subtype of `filled`. Because it's a glass that
starts filled.
## Changelog
🆑 Melbert
fix: Virtual Drink Glasses now look correct.
/🆑
* Fix bitrunning drinking glass using the wrong subtype
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* A thorough audit of damage procs and specifically their use in on_mob_life() (with unit tests!)
* Modular changes--bonus, removes a bunch of completely unused code signals code that was taking up resources needlessly
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Feature: bitrunner, a new supply role (READY)
* Delete bepis.dm
* Conflicts
* Update dynamic_rulesets_midround.dm
* Fixing this invalid icon file path
It was trying to use the aesthetics one
* Bepis is dead
* New digi sprites courtesy of CandleJaxx!!
Now in the correct branch!
* Fixing merge conflict
* bitrunning hotfixes [NO GBP]
* Modular health adjustments
* Revert "Modular health adjustments"
This reverts commit 0ff3c48d398f6c1aac51cdf8fecaf869491bbc86.
* Modular health adjustments
Only this one should be necessary
* The screenshot test
* Bitrunner den for voidraptor (FOR #23865) (#23891)
* no shower in sight
* lets bitrunners actually get to their room and spawn there
* New digi sprites courtesy of CandleJaxx!!
* Revert "New digi sprites courtesy of CandleJaxx!!"
This reverts commit eea9f47de256dd407c78450bc8f2a09b814f93e9.
---------
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Removes bitrunning unit tests (#78607)
## About The Pull Request
Removes the fraction of unit tests I thought would be safe.
Not thrilled that I have to exclude ALL unit tests now, but hey.
The issue is that atmos attempts to process on a turf which hasn't
initialized yet.
## Why It's Good For The Game
Other PRs can pass checks now
## Changelog
N/A
* Update birdshot.dmm
* Tweaks the BEPIS category of the bitrunning order console
* Adds back the flashdark that we had skyrat edited in
* Update tgstation.dme
* Fixes Voidraptor bitrunning den not being connected to the powergrid
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>