## About The Pull Request
This PR addresses an issue where netpod healing effects persisted under
certain conditions (Issue #80715). Specifically, when a netpod is
destroyed with a player inside, the embryonic stasis effect improperly
continued. This adds another cases where the user is teleported out by
other means (not currently a known issue).
## Why It's Good For The Game
Fixes an in game exploit / bug
Fixes#80715
## Changelog
🆑
fix: Having a netpod destroyed will no longer grant you permanent
healing.
/🆑
Productionizes #80615.
The core optimization is this:
```patch
- var/hint = to_delete.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
+ var/hint = to_delete.Destroy(force) // Let our friend know they're about to get fucked up.
```
We avoid a heap allocation in the form of copying the args over to a new
list. A/B testing shows this results in 33% better overtime, and in a
real round shaving off a full second of self time and 0.4 seconds of
overtime--both of these would be doubled in the event this is merged as
the new proc was only being run 50% of the time.
## About The Pull Request
I've been reminded to do that by Mothblocks.
## Why It's Good For The Game
Who would have thought that an oddly specific signal that is only sent
when the pill is red was bad design.
## Changelog
N/A
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
If your bitrunning avatar somehow acquires and consumes a red pill, they
will be disconnected from the Matrix.
Note that this, like the 5% chance to receive a red pill message, only
happens with pills with the fully red pill sprite (pill4). As far as I'm
aware, only custom pills dispensed from a ChemMaster can have this
sprite.
## Why It's Good For The Game
hehe funny reference
proof of testing:

I also tested consuming normal and red pills in the non-bitrunning world
to ensure that they still transfer chems, that red pill messages still
work, and that they don't break anything.
## Changelog
🆑 ATHATH
add: If your bitrunning avatar somehow acquires and consumes a red pill,
they will be disconnected from the Matrix.
/🆑
<!-- 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
Does what it says on the tin. We don't have any "special" sources of
clone damage left in the game, most of them are rather trivial so I
bunched them together into this PR.
Notable things removed:
- Clonexadone, because its entire thing was centered around clone damage
- Decloner gun, it's also centered around cloning damage, I couldn't
think of a replacement mechanic and nobody uses it anyways
- Everything else already dealt clone damage as a side (rainbow knife
deals a random damage type for example), so these sources were removed
<!-- 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
Consider the four sources of normal damage that you can get: Brute,
Burn, Toxins and Oxygen. These four horsemen of the apocalypse are very
well put together and it's no surprise that they are in the game, as you
can fit any way of damaging a mob into them. Getting beaten to death by
a security officer? Brute damage. Running around on fire? Burn damage.
Poisoned or irradiated? Toxin damage. Suffocating in space? Brute, burn
and oxygen damage. Technically there's also stamina damage but that's
its own ballpark and it also makes sense why we have a damage number for
it.
Picture this now: We have this cool mechanic called "clone pods" where
you can magically revive dead people with absolute ease. We don't want
it to be for free though, it comes at a cost. This cost is clone damage,
and it serves to restrain people from abusing cloning.
Fast forward time a bit and cloning is now removed from the game. What
stays with us is a damage number that is intrinsically tied to the
context of a removed feature. It was a good idea that we had it for that
feature at the time, but now it just sits there. It's the odd one out
from all the other damage types. You can easily explain why your blade
dealt brute damage, but how are you going to fit clone damage into any
context without also becoming extremely specific?
My point is: **clone damage is conceptually a flawed mechanic because it
is too specific**. That is the major issue why no one uses it, and why
that makes it unworthy of being a damage stat.
Don't take my word for it though, because a while ago we only had a
handful of sources for this damage type in the game. And in most of the
rounds where you saw this damage, it came from only one department. It's
not worthwhile to keep it around as a damage number. People also didn't
know what to do with this damage type, so we currently have two ways of
healing clone damage: Cryotubes as a roundstart way of healing clone
damage and Rezadone, which instantly sets your clone damage to 0 on the
first tick. As a medical doctor, when was the last time you saw someone
come in with clone damage and thought to yourself, "Oh, this person has
clone damage, I cannot wait to heal them!" ?
Now we have replacements for these clone damage sources. Slimes? Slime
status effect that deals brute instead of clone. Cosmic heretics? Random
organ damage, because their mechanics are already pretty fleshed out.
Decloning virus? The virus operated as a "ticking timebomb" which used
cloning damage as the timer, so it has been reworked to not use clone
damage. What remains after all this is now a basically unused damage
type. Every specific situation that used clone damage is now relying on
another damage type. Now it's time to put clone damage to rest once and
for all.
Sure, you can technically add some form of cellular degradation in the
future, but it shouldn't be a damage number. The idea of your cells
being degraded is a cool concept, don't get me wrong, but make it a
status effect or maybe even a wound for that matter.
<!-- 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. -->
🆑
del: Removed clone damage.
del: Removed the decloner gun.
del: Removed clonexadone.
/🆑
<!-- 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. -->
## 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
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!
/🆑
## 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
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
/🆑
## 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.
/🆑
## About The Pull Request
- `apply_damage` is now uniform, handled, in a single place. At the
living level.
- Fixes people being held at gunpoint from being unable to flinch from
taking damage.
- Fixes a few signals (explodable, glass jaw) of apply damage maybe
potentially not having effects if the passed hit zone was a bodypart and
not a def zone.
- Fixes regenerator component always halting regeneration no matter what
damage taken.
- Fixes pressure damage being unaffected by `brute_mod` despite what
documentation claims.
- Signalizes the `check_species_weakness` proc on species.
## Why It's Good For The Game
The copy+paste of this proc made it awful, awful to maintain or add
features to. And also made it very bug prone.
This just takes a step forward in making sustaining damage a lot more
consistent, not only across all mobs, but across all methods of...
taking damage. Unarmed attacks, hulk, item attacks, etc.
## Changelog
🆑 Melbert
fix: People held at gunpoint can now flinch when being hit.
fix: Regenerating mobs no longer stop regenerating no matter hit with
what.
fix: Pressure damage is now properly modified by a mob's brute damage
modifier.
fix: Fixes some occasions which some effects (glass jaw, explodable worn
items) won't respond to hits.
refactor: Refactored core code related to mobs sustaining damage.
/🆑
## 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
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.
/🆑
## About The Pull Request
- Reworks transformation sting.
- Transformation sting is now temporary, lasting 8 minutes (number not
final) in humans.
- If used on a monkey, it lasts forever instead.
- While the target mob is dead or in stasis, the duration will not
progress, making it functionally infinite until revived and taken off
stasis, where it will resume its timer where it left off.
- Chemical cost reduced to 33
- DNA cost reduced to 2
- Removes TRAIT_NO_TRANSFORMATION_STING, instead just checks for
TRAIT_NO_DNA_COPY
- These were essentially the same traits, so I just combined the two
- Organizes some trait lists alphabetically
- Adds TRAIT_STASIS, to allow for reacting to mobs entering and exiting
stasis via COMSIGS
- Everything that checks IS_IN_STASIS now checks HAS_TRAIT TRAIT_STASIS,
which is probably more performant, so that's a bonus.
## Why It's Good For The Game
A lot of people don't like the current iteration of Transformation
Sting, me included
Right now it's only use is for a meme - you make the entire station into
felinids until you get lynched, and that's it.
It's not really a healthy ability for ling's current kit, so this pr
attempts to soft rework it to make it a bit more in line with how ling
should be acting - turning it into a source of short term confusion
between people, or using it on a body to cover your tracks.
This accomplish it two fold - One, it is now cheap enough to use twice
in rapid succession, allowing for quick on-the-spot "BE CONFUSED"
situations while you abscond. Two, as mentioned in the last paragraph,
you can poke a body of someone you murder to obfuscate the crime scene
and maybe help out in taking over someone's identity.
## Changelog
🆑 Melbert
balance: Transformation sting now lasts 8 minutes, down from permanent.
However, the effect is paused for dead and stasis mobs, making it
permanent SO LONG AS they stay dead or in stasis. The effect is also
permanent if used on a monkey.
balance: Transformation sting now costs 33 chemicals, down from 50.
balance: Transformation sting now costs 2 dna points, down from 3.
fix: Transformation sting works on monkeys again.
refactor: Refactored a bit of human randomization.
/🆑
<!-- 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. -->