## About The Pull Request
This gives the encrypted bitrunning crate a bunch of resistances, making
it (theoretically) impossible to destroy.
## Why It's Good For The Game
The crate getting shot down by mobs or players and softlocking a domain
really kinda sucks!
## Changelog
🆑 Rhials
fix: The encrypted bitrunner cache is now impervious to most
conventional means of destruction.
/🆑
## About The Pull Request
Situation: areas have a list of all turfs in their area.
Problem: `/area/space` is an area and has a 6 to 7 digit count of turfs
that has to be traversed for every turf we need to remove from it. This
can take multiple byond ticks just to preform this action for a single
space rune
Solution: split the list by zlevel, and only search the right zlevel
list when removing turfs from areas.
replaces `area.get_contained_turfs()` with a few new procs:
* `get_highest_zlevel()` - returns the highest zlevel the area contains
turfs in. useful for use with `get_turfs_by_zlevel`
* `get_turfs_by_zlevel(zlevel)` - returns a list of turfs in the area in
a given zlevel. Useful for code that only cares about a specific zlevel
or changes behavior based on zlevel like lighting init.
* `get_turfs_from_all_zlevels()` - the replacement for
`get_contained_turfs()`, renamed as such so anybody copying/cargo
culting code gets a hint that a zlevel specific version might exist.
Still used in for loops that type checked so byond would do that all at
once
* `get_zlevel_turf_lists()` - returns the area's zlevel lists of lists
but only for non-empty zlevels. very useful for for loops.
The area contents unit test has been rewritten to ensure any improper
data triggers failures or runtimes by not having it use the helpers
above (some of which ensure a list is always returned) and access the
lists directly.
## About The Pull Request
Specifically corrects the following;
- Adds a period to the end of the Research Director's job description.
- Fixes the grammar for the description of the encrypted cache crate.
## Why It's Good For The Game
Proper grammar makes things look nice.
## Changelog
🆑
spellcheck: Fixed a minor grammar mistake in the RD's job description
and the encrypted cache crate.
/🆑
## About The Pull Request
I woke up today and thought 'what would be easy thing to do today so I
can say I've done something?'. Then I remembered I saw several gangtool
usages the time I split radio up, and I could remedy those. 7 hours
later, device.dmi is split in a folder of its own, and I've also given
unique sprites to door remotes and landing desginators.
## Why It's Good For The Game
The device.dmi was kind of a mess.
## Changelog
🆑
/🆑
## About The Pull Request
Implements half of this (with some minor changes):

The ultimate goal of this is to split our attack chain in two:
- One for non-combat item interactions
- Health analyzer scanning
- using tools on stuff
- surgery
- Niche other interactions
- One for combat attacking
- Item hit thing, item deal damage.
- Special effects on attack would go here.
This PR begins this by broadining tool act into item interact.
Item interact is a catch-all proc ran at the beginning of attack chain,
before `pre_attack` and such, that handles the first part of the chain.
This allows us to easily catch item interaction and cancel the attack
part of the chain by using deliberate bitflag return values, rather than
`TRUE` / `FALSE`*.
*Because right now, `TRUE` = `cancel attack`, no matter what, which is
unclear to people.
Instead of moving as much as possible to the new proc in this PR, I
started by doing some easy, obvious things. More things can be moved in
the future, or technically they don't even need to move in a lot of
cases.
## Changelog
🆑 Melbert
refactor: Refactored some methods of items interacting with other
objects or mobs, such as surgery and health analzyers. Report if
anything seems wrong
/🆑
## 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™️
## 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.
/🆑
## About The Pull Request
Reopened#78997
Larger patch for bitrunning that addresses a few issues.
- Two new antagonists: cyber tac and netguardian
- Quantum server emag opportunity
- Modular mob packs: Like random spawners, but for groups
- Antag spawning fixed: vdom antags now have up to a 10% chance to spawn
based on domains loaded
- Virtual domains are no longer all fullbright by default, only the
outdoorsy ones
- Actually deletes legion map file, since it was removed in #79424
<details>
<summary>images</summary>
The netguardian prime


The glitch effect - this mob is being mutated

Cyber tac (t2 antagonist)

</details>
## Why It's Good For The Game
- Bitrunning antagonists are so incredibly rare that it's underwhelming
to play as one for the solid second they offer if you even get the role
- Bitrunners had basically no traitor route to follow, they became
assistants with black outfits
Fixes#79465
<details>
<summary>More info</summary>
Bitrunners don't have any type of traitor options. If they're made into
traitors, there's nothing bitrunner related they can do, and their
access is particularly bad so it's like they're a worse assistant. I've
coupled this with the bitrunning antagonist system, which is now
fixed.\. Bitrunners can now attempt to coax these entities to come onto
the station, however they are not given any form of allegiance for doing
so (and are quite counterable).
Previously, vdom antagonists relied on so many factors to spawn that it
basically wouldn't happen. Now, it runs on the server each time there is
a map loaded, with increasing probability as the round progresses. This
builds up the list of spawnable antagonists, of which two are new,
including an entirely new giant mech megafauna. This is the first
"megafauna-esque" basic mob in the game. Its AI is bad, it's really only
meant to be player controlled, but this does mean an admin can spawn
them. Being mech, they are very counterable with ion rifles and the
like.
Several refactors, rewrites, and overall bug fixes are included in this
PR.
Lastly, I added a framework for making bitrunner maps more random, the
modular mob spawning system, which works in conjunction with random
crate locations.
</details>
## Changelog
jlsnow301, infraredbaron
🆑
add: Bitrunning Patch 1 features a host of changes!
add: Added randomized mobs to virtual domains, which will be indicated
with a unique icon.
add: New emag interaction with the quantum server. Antags will spawn
more frequently, and they can hack themselves onto the station. You have
been warned.
add: Both living and dead players can now see which mob is going to
spawn an antagonist in the vdom.
add: Two new vdom antagonists: Cyber Tac and the NetGuardian. These
unlock at specific thresholds.
balance: You can no longer stack copies of the same ability with
bitrunning disks.
balance: Some of the disk items have been replaced with stronger
versions.
fix: You can no longer spy on crew using the advanced camera console on
syndicate assault.
fix: Fixed the spawning mechanism of virtual domain antagonists. You
should now have a chance of playing as one. This chance increases as
more domains are completed.
fix: Vdom antagonists shouldn't spawn at the end of the run any longer.
fix: The preference for vdom antagonists has been changed to factor in
the new types. Check your preferences!
fix: The quantum server will now show its balloon alerts to all
observers.
fix: Random domains should be fully random again.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## 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>
## About The Pull Request
Atomized #78997
Broke up duplicate signal usage - though they do the same thing, this is
convention & it makes it easier to debug
Removed custom alert subtypes in favor of just setting values directly
Removed some unnecessary vars like the console ref from the server
Since I'm just copying this over, it has added exam text for net pods,
which fixes an issue reported to me in Discord
## Why It's Good For The Game
Code improvement
## Changelog
🆑
add: Added some clarity to the range of netpods (4 tiles) in their exam
text.
/🆑
## 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.
/🆑
## 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>
## 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>
## 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.
/🆑
## About The Pull Request
The next round of small changes to how bitrunning works - mostly from
feedback, bug reports etc.
- The loot crate delivery spot is now a buildable machine (the
byteforge), making it replaceable in the event of a disaster
- Same for netpods and quantum consoles. These boards are now
researchable and buildable.
- New icons for the byteforge and the health monitor
- Some bug fixes around despawning avatars
- Reimplements one of the bitrunning unit tests
<details>
<summary>Pictures ⬇️</summary>
Host monitor

Byteforge

Spawning a crate

</details>
## Why It's Good For The Game
Bitrunning bug fixes and personal requests
Fixes#78571
Fixes an issue reported in discord - players stuck as gondola spawn
## Changelog
🆑
fix: Added extra checks to bitrunning domain cleanup so avatars are
deleted properly.
add: Quantum servers now look for a new machine called a byteforge to
spawn loot on- no longer on an invisible landmark. This should make the
rooms rebuildable after disasters.
add: *Most* bitrunning machinery is now researchable and buildable via
circuits in the engineering protolathe.
/🆑
<!-- 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
small tweaks for bitrunning
- ability disks grant a huge power spike which should let me balance
megafauna health more closely to the real thing
- added a check for bit avatars to skip dynamic midround checks
- more info for netpods mostly
<!-- 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
fixes#78513fixes#78575
<!-- 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. -->
🆑
add: Netpods and quantum servers now have more examination info
fix: You no longer lose antag status if you receive it in the vdom.
fix: Beach bar shouldn't have visible atmos piping anymore.
fix: Adds more lighting to the vaporwave vdom level.
balance: Buffed vdom megafauna health to compensate for new ability
disks.
/🆑
<!-- 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. -->