## About The Pull Request
I didn't realize that default aggro range for mobs is 9, so tendrils
would try to attack you with their whips and spikes despite you being
completely out of their range, which looks pretty funny.
I've fixed this by separating out aggro ***grab*** range and aggro
sustain ranges, lowering latter to 5 for tendrils, and adding checks for
target distance for both abilities it has. The Thing also had a similar
behavior but used rather jank code for that (which I don't think even
worked), so I've modified it to use the new system as well.
## Why It's Good For The Game
Stationary mobs probably shouldn't try to attack mobs completely out of
their reach
## Changelog
🆑
fix: Tendrils no longer try to attack you when you're out of their reach
code: Cleaned up The Thing's aggro code
/🆑
## About The Pull Request
I've been a player on Roguetown for a while, and a small thing I noticed
I missed a lot was the feature of displaying character headshots in the
examine text. As such, i've ported this in a fairly straightforward way
from Ratwood Keep.
The headshot will grow bigger on mouseover and shrink again when the
mouse moves away.
Headshots will be always hidden for someone who has an unknown identity
(masked and without standard ID).
There is an option toggle to not view chat headshots, should you prefer
to not see them.
## Why It's Good For The Game
Improves immersion, making it much quicker to see someone's headshot in
a situation instead of needing to examine them closer.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="565" height="400" alt="image"
src="https://github.com/user-attachments/assets/1b1df66e-63ac-4e8d-be2d-36bcd3461724"
/>
<img width="593" height="393" alt="image"
src="https://github.com/user-attachments/assets/abd355e7-969b-42af-8eff-ded9acc1d52a"
/>
<img width="660" height="137" alt="image"
src="https://github.com/user-attachments/assets/5e890a80-f1a4-453a-8cbf-c96ea6ff0ace"
/>
<img width="613" height="293" alt="image"
src="https://github.com/user-attachments/assets/6024f190-4a1c-4daf-a6b5-d1ba0705c65c"
/>
</details>
## Changelog
🆑
add: Headshots now display in examine chat box. A toggle is added to
options to disable this if you so desire.
/🆑
## About The Pull Request
See title and proof of testing.
## Why It's Good For The Game
Listen, I've been racking my brain on how to do this since I first coded
this species. I finally figured out a way. Besides, I think the
component itself will prove useful for any future stuff. This adds more
protean content that I feel people will enjoy.
## Proof Of Testing
<img width="381" height="387" alt="dreamseeker_UezPpr0cxQ"
src="https://github.com/user-attachments/assets/cd876c0b-0cde-4f30-878f-2da4ae0332e0"
/>
Also I won't lie, hardlight stuff for the suits is kind of a task on
itself on needing to piece together. That's one icon event that can't
just be solved by sane conventional methods.
## Changelog
🆑
add: Proteans can temporarily transform their wearers to look more like
them.
/🆑
## About The Pull Request
Moves the deep lore proc to the parent for guns.
Adds deep lore to some of the pistols.
Rewrites the deep lore for the stun baton and contractor baton.
Repaths the Liberator pistol to a more sensible path name.
Rechambers the Regal Condor to .45, because I was today years old when I
learned that the Tiger Cooperative are _[radical Christian
extremists](https://github.com/tgstation/common_core/blob/cf1edb9f770e7d3c38ca894e951ab5ac50395a47/Governments%20and%20Organisations/Corporations/The%20Syndicate/The%20Syndicate.md?plain=1#L73)_.
I just thought they were nutso about changelings, I didn't know they
also think they're God's ubermensch. Anyway, that freak who started the
cult would chamber their relic pistol in .45 and you know it.
## Why It's Good For The Game
I love dumping large amounts of text into the code base that will
rarely, if ever, be noticed by the player. It's also the means by which
I can summon forth my good friend Hatterhat to contribute to this
codebase. Like a carrot on a stick.
If I post enough, one day he'll PR flashforge mines like he promised me.
## About The Pull Request
When bitrunners attempt to leave their domain via the ladder, they will
fail if there is an active, living bitrunning glitch antagonist within
the domain. Other methods of leaving such as death or taking the red
pill are unaffected.
they can also leave if the crate's delivered
sorta a sister PR to #95934
## Why It's Good For The Game
enter domain -> get alert about bitrunning glitch -> leave -> turn off
domain
What a fun gameplay loop, for everyone involved.
You'll fight the glitch and you'll like it. (liking it
[pending](https://github.com/tgstation/tgstation/pull/96138))
You can still leave if you REALLY, REALLY need to at the cost of a
little brain damage, but otherwise the literal only obstacle that will
ever be in your path should be something you have to engage with.
## Changelog
🆑
balance: Bitrunners can't back out of domains via the ladder while
bitrunning glitches remain in them
/🆑
## About The Pull Request
Refactors teleporter interference into an item flag, refactors
teleporter interference checks to check your contents for items with
this flag rather than doing a hard check for a bag of holding. Currently
this flag is only used by BOH and SMOH, replicating current (intended)
behavior
Closes#96170
## About The Pull Request
Adds the meta color-scheme tag to the player panel and ticket panel
windows so it'll use your OS dark mode setting if applicable
## Why It's Good For The Game
I was asked for this because it's easier on the eyes
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="663" height="628" alt="player panel"
src="https://github.com/user-attachments/assets/74a9f1f4-09c6-41eb-ab7f-2bd9e7ecfc05"
/>
<img width="752" height="512" alt="ticket"
src="https://github.com/user-attachments/assets/427e5118-58c4-47a8-b776-64d93cddb3cb"
/>
</details>
## Changelog
🆑
admin: ticket panel and player panel now support dark mode
/🆑
## About The Pull Request
Completely removes individual inventory UI handling from mob and HUD
code and moves it to slot datums.
``/datum/inventory_slot`` now is responsible for displaying items on the
player UI and does so through vis_contests as opposed to screen_loc -
which ensures that wide items will display properly rather than be
offset to the right.
Centralized, slot_id based handling allows us to significantly simplify
inventory and HUD code (see how many lines were removed) as you no
longer need to individually track all items for both the HUD owner and
the observer, and makes it easier for us to fully datumize inventory
handling in the future.
Also fixes a bug where observers would see players' storage UI and have
the items linger on-screen after its closed.
## Why It's Good For The Game
Makes working with inventories and HUDs easier, fixes visual issues with
wide items, I need this for human rendering refactors.
## Changelog
🆑
refactor: Refactors inventory UI to be completely datum and
vis_contents-based
fix: Observers should no longer see doubled up inventory UIs
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
- The area type for lizard gas on icebox had `requires_power = FALSE`
which means when the APC ran out nothing happened, which is dumb because
there's an APC and an SMES and a deployable generator the power is
clearly supposed to matter
- Because the ruin spawns on the station Z level the circuit imprinter
auto connects to the station ore silo, this doesn't make sense and the
lavaland version doesn't do it so it doesn't anymore
## Why It's Good For The Game
Fixes#5370
## Proof Of Testing
I spawned in and set the APC charge to 0 and verified that the area
actually loses power and lights go out/machines turn off, then I went
and put some mats into the station ore silo and verified that the
circuit imprinter in the gas station didn't have them
## Changelog
🆑
fix: fixed icebox lizard gas having infinite power
fix: fixed icebox lizard gas circuit imprinter connecting to station ore
silo
/🆑
## About The Pull Request
Gives the voidwalker darkvision
## Why It's Good For The Game
Why wasn't this a thing before??
It should have been a thing before.
Oh well, minor oversight.
## Changelog
🆑
qol: gives the voidwalker nightvision. Why wasn't this a thing before??
/🆑
## About The Pull Request
Adds a non-patrolling subtype of honkbot for the casino shuttle to use.
Fixes#96201
## Why It's Good For The Game
He's supposed to be spreading joy to the evacuees, not running away roam
the halls.
## Changelog
🆑
fix: The honkbot on the casino emergency shuttle has been told not to
abandon its post.
/🆑
## About The Pull Request
Main changes
- `handle_mutations` is gone, DNA Injectors are now managed via a status
effect
- `handle_diseases` is gone, disease stages are just handled via life
signal
- `handle_bodyparts` is gone, it was unused and in the future any
implementations should use a life signal
- `spec_life` is gone, the main content of it is now in `human/Life`,
most children implementations now use life signal, zombie tongues now
handle zombie groans
- Life signal was split in two (pre and active)
Other changes
- DNA injector code was cleaned up considerably
- HARS now alerts admins when you inject someone else with it like
Monkey
- `COPY_DNA_SE` is no longer mistakenly unused (meaning stuff like
transformation sting no longer copies "active mutations")
## Why It's Good For The Game
Across the course of a full round we spend the same amount of time doing
literally nothing in life as we spend on handling human breathing.
Now in the context of a full round this is 8 seconds. Which in the grand
scheme of things, not a whole lot, but if we can get a tiny performance
gain from... not doing literally nothing (especially when we can do
these things cleaner with signals) that's a win in my book
## Changelog
🆑 Melbert
refactor: Refactored dna injectors (both the ones that change appearance
and activate mutations), report any oddities with them like failing to
revert your appearance or mutations not applying correctly
code: Ever so slightly changed how diseases tick, report any oddities
code: Ever so slightly changed how some species mechanics tick, like
golems and slimes, report any oddities
code: The code behind printing appearance modifying dna injectors from
genetics has changed, report any oddities
code: Some backend transformation sting code changed slightly, report
any oddities
code: Zombie "idle" groaning is now tied to the tongue rather than the
species itself
admin: Force-injecting someone with HARS give an admin alert, the same
as force-injecting someone with Monkey
fix: Several methods of copying DNA (including transformation sting)
mistakenly copied "active mutations", this has been fixed
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
## About The Pull Request
Because patrols do not send anything material via the pad, they never
register `contribution` naturally, and thus runtime when their cube is
created.
Makes patrol bounties register ID `contribution` when they begin
tracking an ID's movements.
## Why It's Good For The Game
I did thousands of credits of unpaid labor before i realized these
weren't working
## Changelog
🆑
fix: Patrol bounties properly pay those who complete them
/🆑
## About The Pull Request
A few tweaks regarding diamonds and bluespace crystals with regards to
ore vents.
With the quantity of bluespace crystals and diamonds that have been
reintroduced to the game, in an attempt to maintain their status as the
rarest tier of material to obtain for the station, both materials have
been removed from the standard pools of ores that can spawn into
boulders. What this **means** is that it can't roll as a primary
material for a boulder, providing 25-10 sheets worth of material.
**However,** diamonds and BS crystals are now available from all tapped
vents as an artifact boulder spawn. These artifact boulders will spawn
at a flat 7% chance, previously set as a random range of 0-10% randomly
per vent. Because this chance was never communicated to players, I think
it's fine at this point to split the difference, lock it in at 7%
(Considering that we're adding more things onto the artifact boulder
outcomes as is, I've elected to throw it to a slightly higher chance,
based purely on vibes). For clarity, these two artifact boulders add a
flat 1-5 sheets of their respective material to the boulder on spawn,
the same as mining a single tile of their respective ore from a wall.
Additionally, the overlays when scanning an ore vent will now show a
flashing icon to represent the rare chance that these two materials may
spawn. Text has been added to the examine for ore vents to explain this
behavior.
Boss vents may still spawn diamond and bluespace crystals, but at a
lower weighting than all other materials.
Due to diamonds and BS crystals being removed from the standard ore vent
weightings, their distributions within the ore vent mineral distribution
used on roundstart has been shifted, while otherwise keeping a similar
distribution of minerals across vents, according to the rough intent of
what minerals should show up at what rarities.
As previously stated, these two artifact material boulders add their ore
to the boulder itself, meaning that you may also want to pick out
artifact boulders in order to do limited chemical boosting for up to 50%
more materials.
## Why It's Good For The Game
Diamonds and bluespace crystals are intended to be rare, valuable, and
desirable enough to go out of your way to obtain. Ore vents ideally
should have had some sort of built-in scaling that tweaked the amount of
that specific material they produced, but I never got around to
implementing that and as a result they've been really, REALLY common for
the last while. One of the design goals of the new mining PRs that have
been released recently as to try and reintroduce some rarity and
desirability into these high tier minerals by adjusting their
availability while not completely locking them off from the rest of the
game.
This was a compromise to also still provide some utility to doing ore
vents with the reintroduction of ores being more common from
wall-mining. Wall diamonds and bluespace crystals will still exist, but
this way completing a small collection of ore vents will help to supply
the station with materials, where it's the quantity, not the quality of
vents that provides the best value, while noting you're still going to
be recieving these drops somewhat rarely unless optimizing your factory
output.
## Changelog
🆑
balance: Non-boss ore vents may no longer contain bluespace crystals and
diamonds.
balance: All ore vents now have a flat 7% chance to spawn an artifact
boulder.
balance: There are now 2 new artifact boulder types, which may contain
1-5 sheets worth of bluespace crystals or diamonds respectively. These
boulders may have their rare ore boosted via chemical boosting.
balance: ore distribution in vents have been adjusted to accommodate for
bluespace and diamonds being removed from vents accordingly.
spellcheck: Ore vents now explain the artifact boulder mechanic on
examine.
/🆑
## About The Pull Request
For every living, connected bit avatar remaining in the simulation, the
`do_after()` for leaving the simulation as a bitrunning glitch ghost
role is multiplied by 5. The base timer remains at it was, two seconds.
Additionally, there is an exception in place for the "Island Brawl"
domain, which is the FFA with infinite respawns. It still multiplies by
5 for each active bitrunner, but that multiplier is reduced by 1 for
each death, so you likely only have to kill one wave of bitrunners for
normal escape time.
Additionally, because of necessity for the exception and also basic good
sense, bitrunning points are no longer component-based on specific turfs
in the domain, and are held in the server. It never should have been a
component, it had no reason to be one. This, as a consenquence, also
fixes that you could completely softlock any domain using points by
simply crowbarring the turf that the crate was yet to spawn on.
## Why It's Good For The Game
Yesterday, I saw one of the lamest things I've ever seen in the game. A
bitrunning glitch spawns in, walks literally right by two bitrunners as
they ask who he is, and leaves the simulation to go on a killing spree
unburdened. There was extenuating circumstances in that situation, but
it still was a miserable breakdown of what I think the intended gameplay
of a bitrunning glitch is, and shows how ridiculously easy it is to
simply not engage with the intended hurdle in your path. The
primary(and, really, only) job of a glitch is to kill bit avatars, and
this PR makes it significantly more difficult to just... walk by them to
go on your killing spree on station. Work, then play.
## Changelog
🆑
balance: For every living, connected bitrunner remaining in a domain,
bitrunning glitches will take five times longer to escape.
fix: You can no longer softlock any virtual domain that uses points by
crowbarring the reward turf before the crate spawns.
/🆑
## About The Pull Request
`def_zone` can hold a zone or a bodypart. In the case of a simple
stabbing or shooting, it sends a bodypart. That bodypart is the bodypart
of the domain actor. When we call `apply_damage()` on the real-world
body, we send the bodypart of the domain actor in `def_zone`, which
somehow has no runtimes or checks and ends up successfully dealing
damage... to the actor. Again. This doesn't always shield the original
body, as `def_zone` is not guaranteed to be sent as a bodypart(or at
all), so you could be killed in real life by certain attacks still, but
for the grand majority of attacks this meant that the real body was
invincible and the actor took double.
## Why It's Good For The Game
fixes#93081
## Changelog
🆑
fix: Bitrunners no longer take double damage in-domain, and do take
damage to their real bodies
/🆑
## About The Pull Request
Adds the Synth Persocomm to both cybernetic brains. Allows automatic
connection of ID to internal computer as well with the ID in your ID
slot. No more linking it via janky methods (though you still can).
Fixes the bug with spawning as lone infil as a synth. No more bugged
uplink in your brain computer.
## Why It's Good For The Game
If my brain is half computer I should be able to use it as a computer.
Fixes multiple issues with the Persocom and adds it to organics with an
augmented brain.
Also bugfix good.
## Proof Of Testing
<img width="1622" height="823" alt="image"
src="https://github.com/user-attachments/assets/9d259d09-2347-4bee-a61a-e873d3eb8b7e"
/>
<img width="1449" height="647" alt="image"
src="https://github.com/user-attachments/assets/be36fdc7-fbcc-43d6-99d1-e0a7d5fc6dc8"
/>
<img width="1463" height="838" alt="image"
src="https://github.com/user-attachments/assets/18b2dd39-c05e-43fc-bac5-00da4d642fca"
/>
<img width="1520" height="789" alt="image"
src="https://github.com/user-attachments/assets/f63fd2a2-bf3b-4652-9e92-32baff97f36d"
/>
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
fix: Uplink location being set to the Persocom when playing as a synth.
It will now fall back to one of the other options.
add: Small persocom update. Automatic ID imprinting and PDA theme
application on spawn. Ghost roles will not automatically imprint their
ID. Don't imprint it as a Persistence role or Ruggero will punch you.
add: Persocom to cybernetic brain options.
add: Additional EMP effects such as stuttering and jittering to the
surplus brain to bring it in line with the cortical brain. EMP effects
are tripled compared to the cortical brain. Woe.
/🆑
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
## About The Pull Request
My antagonists are many. My equals are none. In the shade of tendrils,
they said Lavaland could never be conquered. In the land of wizards and
operatives, they said Space could never be humbled. In the realm of
wolves and snow, they said Icebox could never be tamed. Now they say
nothing. They fear me; like a force of nature, a dealer in thunder and
death. I say, “I am the Captain.” I am emperor.
## Why It's Good For The Game
<img width="292" height="152" alt="image"
src="https://github.com/user-attachments/assets/eb4dc06a-1ce6-4244-a067-ead41b5735e0"
/>
<img width="1395" height="632" alt="image"
src="https://github.com/user-attachments/assets/a21c4a22-3bfc-4023-ab59-5a1cad57ba52"
/>
We have pirates in 17-19th Century gear. The HoS has a Shako from the
19th Century. Let the King of Kings get in on that action.
## Changelog
🆑 theselfish, INFRARED_BARON
add: The Captain now has a Bicorne, and matching attire...
/🆑
# About The Pull Request
Restores Protean self-surgery, which was broken by the TG surgery system
rework. The rework introduced required_bodytype gating on all mechanical
surgery operations and an OPERATION_SELF_OPERABLE flag requirement for
self-targeting. Protean limbs use BODYTYPE_NANO, which was never added
to any of these checks, leaving Proteans unable to access the synth
flavored surgery operations they're intended to have and locked out of
self-surgery entirely.
The fix adds BODYTYPE_NANO to the required_bodytype of all six
preparatory mechanical operations in operation_generic_mechanic.dm
(unscrew shell, open hatch, screw shell, prepare electronics,
unwrench/wrench endoskeleton) and to the two prosthetic organ/feature
manipulation operations in operation_organ_manip.dm.
Synths were already handled by a prior Nova edit that added
BODYTYPE_SYNTHETIC; this PR extends the same treatment to Proteans and
logs it with a Bubber Edit comment.
As a drive-by shooting fix, I also changed a persistent "Orginal" [sic]
typo in BUBBER/NOVA EDIT comments across six surgery operation files.
These were copied verbatim from the original Nova edit and propagated
into every subsequent edit comment in the directory.
# Why It's Good For The Game
Proteans are a Bubberstation-original species with self-surgery as
intended functionality. The TG surgery rework silently broke this
without any corresponding fix being applied downstream. A surgeon could
still operate on a Protean using organic surgical tools but this is
sub-optimal and annoying.
# Proof Of Testing
Spawned as Protean, laid down on a table, applied surgical drapes,
worked through the full mechanical surgery chain on myself. Do you
really need a screenshot of me laying on a table?
🆑
fix: Protean self-surgery now works correctly after the TG surgery
rework broke it
fix: Surgeons can now use mechanical tools on Proteans as intended,
consistent with Synth behaviour
spellcheck: Fixed "Orginal" typo in NOVA/BUBBER EDIT comments across six
surgery operation files
/🆑