Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update #204

Merged
merged 297 commits into from
Feb 18, 2025
Merged

Update #204

merged 297 commits into from
Feb 18, 2025

Conversation

Huz2e
Copy link
Owner

@Huz2e Huz2e commented Feb 18, 2025

No description provided.

Y0SH1M4S73R and others added 30 commits February 5, 2025 20:01
)

## About The Pull Request

There are a couple of cases where ghost roles that give the temporary
body component prevent you from returning to the round when they really
shouldn't. The particular cases are:
- You entered a temporary body while you had no body, but could be
recovered via means such as podcloning
- You enter a temporary body, and while in that body, your original body
is permanently removed while your mind could be recovered via means such
as podcloning
- Basketball

This PR addresses those cases by allowing the temporary body component
to operate with a null `old_body`, and allowing the temporary body
component to be given to ghosts whose minds don't have bodies.


## Why It's Good For The Game

Erroneous DNRs caused by code oversights are probably very undesirable
to the playerbase.

## Changelog

:cl:
fix: Joining a minigame or taking certain ghost roles, while you have a
mind without a body, will no longer DNR you, just in case you can be
resurrected by some means.
fix: If your old body is permanently destroyed while you are playing a
minigame or as certain ghost roles, you will still return to your
character's original mind, just in case you can be resurrected by some
means.
fix: The basketball minigame now gives its players and referee temporary
bodies.
/:cl:
## About The Pull Request

ok so `REMOVE_TRAITS_IN` would sometimes run with like `type mismatch:
null -= /list (/list)`

credit to @RikuTheKiller for actually figuring this out and fixing it,
here's their explaination on what caused the issue:
> okay so
> its due to linked traits
> like knocked out which adds other traits
> when knocked out is removed, it sends a removed signal
> but sending that signal modifies the list mid for loop
> so now when it tries to index it on the next iteration with a trait
key thats already gone
> it returns null, and tries to remove a list from a null
> and it runtimes

## Why It's Good For The Game

`REMOVE_TRAITS_IN` is a handy macro, and it'd be nice if it reliably
worked

## Changelog

no user-facing changes
## About The Pull Request

fix image display in `NT IRN` PDA app


<details>

<summary>
Images present!
</summary>


![image](https://github.com/user-attachments/assets/b9a5e733-9bc8-498e-bdaa-3531e0b142e5)
</details>





## Why It's Good For The Game

Bug fixes good

## Changelog

:cl:
fix: fix image display in `NT IRN` PDA app for preview and contents
/:cl:
## About The Pull Request


![StrongDMM_u12oSaxu6Q](https://github.com/user-attachments/assets/72df4f86-f0fb-4254-99c8-85b23701ac91)

(No funny screenshot of me malding in-game this time)

## Changelog
:cl:
fix: Fixed wrong area/wall in Icemoon Underground
/:cl:
## About The Pull Request

Reported by ParadiseSS13/Paradise#27873 ,
shoutout to them

We used to check this in the distant past but it was lost across the
reworks. Kinda important
…time (tgstation#89359)

## About The Pull Request

this adds a new define, `DISABLE_DREAMLUAU` (commented out by default),
which does... exactly what it says on the tin. it fully disables any
dreamluau-related code (the "Open Lua Editor" admin verb is left in,
albeit just giving the user a warning saying Lua is disabled, just so
there's no confusion about the verb itself being missing)

when compiling with OpenDream outside of CI (so dreamluau code will
still be linted), `DISABLE_DREAMLUAU` will be defined by default, tho.

## Why It's Good For The Game

makes OpenDream testing easier

## Changelog

no user-facing changes. or even code changes for most cases.
## About The Pull Request

Adds slips to the list of existing shove stun methods originally set in
tgstation#84640 (wall shoves,
telebaton, mansus grasp), and also reifies this concept as the "dazed"
status effect.

This makes it so that being knocked down from a slip from any source
(e.g. wet floor, clown stuff, lube, foam, oil, butterdog) gives the
dazed visual effect and makes you eligible for being shove stunned. The
status always lasts for 3 seconds even if e.g. slipping on lube knocks
you down for 15, but this can be customized per slip.

## Why It's Good For The Game

Further rewards environmental play and provides another feasible means
of fighting back against better equipped opponents, both in line with
the original PR. Also the visual cue fits well as an immediate signal
that you're dazed and can't get up.

## Changelog
:cl:
balance: slips now make you eligible for being shove stunned
/:cl:

---------

Co-authored-by: Roryl-c <[email protected]>
## About The Pull Request

By putting bought/dead/evolving and fishing it out, you could get a
fishing achievement for any type of fish, which kinda ruined the
challenge of fishing out rare sorts of fishes like Mastadons.

## Why It's Good For The Game

Fishing cheevos should be indicative of what cool fishes you've caught,
not of how much you've cheesed the game.

## Changelog
:cl:
balance: Removed an oversight which allowed you to farm fishing
achievements
/:cl:

---------

Co-authored-by: Ghom <[email protected]>
## About The Pull Request
smallint is 2 bytes, increased it to mediumint which is 3 bytes
Issue has not cropped up yet as theres only 15 flags right now, but
there can be up to 24 in dm side soooo

```
DEBUG-SQL: MySqlError { ERROR 1264 (22003): Out of range value for column 'flags' at row 1 } | Query used: INSERT INTO admin_ranks
 - (rank, flags, exclude_flags, can_edit_flags)
```


my mysql is broken so I havent tested the update query but how bad can
it be :clueless:
## Changelog
🆑
server: An issue where more than 16 admin flags could not exist in the
DB has been corrected
/🆑

---------

Co-authored-by: TiviPlus <[email protected]>
)

## About The Pull Request

The sequel to tgstation#89234

> someone should do the rest at some point

guess what, I'm that someone :3

## Why It's Good For The Game

Same reasoning as the previous PR:

> less cluttered code is nice, and it should in theory be more optimized
as we avoid the need to run min, max, and locate.

## Changelog

No user-facing changes
… in cargo or the security equipment vendor (tgstation#89205)

## About The Pull Request

Misfire chance, gun jamming (currently only on boltaction rifles) and
integrity repairs are now handled by gun maintenance kits. Using a kit
on a gun resets any misfire chance or jamming, and restores the weapon's
integrity back to full.

You can find gun maintenance kits in security equipment vendors, or
order a crate of them from cargo.

You can also make a maint version to retain the improvised nature of the
previous cleaning functionaltiy.

## Why It's Good For The Game

Firstly, clearing misfires was always a little confusing for most
players, as it required a bolt of cloth to fix. That's really on me for
making that as confusing as possible.

We ended up with multiple firearm degradation mechanics, so
consolidating their restoration makes it easier for future code
maintenance.

I disliked that the kits existed but were mostly only for the sake of an
extremely niche interaction. And that interaction was, at best, kind of
niche. Expanding out their use to gun maintenance generally is honestly
better design.

## Changelog
:cl:
refactor: Gun maintenance is now consolidated into a single item, the
gun maintenance kit, rather than multiple different item interactions.
It is handled on the maintenance kit itself, and not in gun code.
qol: You can order maintenance kits from cargo, and get some out of the
security equipment vendor. Helpful if someone spilled acid onto your
disabler. You can also make a makeshift one from maintenance trash.
/:cl:
## About The Pull Request

thanks @MrMelbert for pointing out the mistake in my sleep deprived code
- I accidentally registered `SIGNAL_ADDTRAIT(TRAIT_EXAMINE_SKIP),
SIGNAL_REMOVETRAIT(TRAIT_EXAMINE_SKIP)` instead of
`SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON),
SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)`

also, I accidentally left this in:

```
item.add_traits(list(TRAIT_NO_STRIP, TRAIT_NO_WORN_ICON), REF(src)) // i'd use examine hide but its a flag and yeah
```

after making `TRAIT_EXAMINE_SKIP` a trait, so I added that.

## Why It's Good For The Game

this should work properly

## Changelog

:cl:
fix: Fixed some mistakes I made while fixing the void cloak.
/:cl:
…what the failures are. (tgstation#89284)

This change was requested by Absolucy, of catgirl fame.

## About The Pull Request
The CI is very useful for figuring out if you made any errors with your
changes. Among other things, it runs unit tests on a variety of maps and
BYOND versions, making sure everything still works as expected.

Unfortunately, figuring out the specific errors you got in CI is a bit
of a pain. You could scroll through the individual logs - but the logs
are so long, it'd take forever.

You could also use the annotations section, but that's gets filled with
generic error messages:


![image](https://github.com/user-attachments/assets/0c01374d-65fd-4586-8bea-e71725e3ffe5)

This PR helps on this matter, by adding [a job
summary](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#adding-a-job-summary)
whenever a failure is detected. Here's an example where I intentionally
generated fails:


![image](https://github.com/user-attachments/assets/6f0fd948-125f-4685-9230-20fa48b2b357)

(If you want to see how it looks on your own screen, have a look:
<https://github.com/LikeLakers2/tgstation/actions/runs/13026959405>)

As it is set up currently, each integration test job will generate its
own summary; each summary contains one section per failed test; each
section will contain the associated failure message(s) in a code block.

This system is pretty basic currently (for example, breaking something
across all maps will cause many job summaries to be generated), but it's
a step up from what we had previously. Ideally, I'll come back to this
later, and improve on the job summary output - for example, by merging
identical errors across maps, and having the failures generated as a
singular job summary.

## Why It's Good For The Game
Having all the failures summarized in one place, without generic failure
messages splattered in-between, can make it easier to diagnose issues
detected by CI.
…on#89371)

## About The Pull Request

See title, ding dong the machine gun is gone.

## Why It's Good For The Game

It turned out to be a bad idea to put a mounted MG right next to a
hostile player spawn in a low difficulty domain. Removing it should make
the pirate spawn less capable of wiping the entire bitrunning squad
before they clear the first pack of mobs.

## Changelog
:cl:
map: Removed a mounted machine gun from the Meta Central bitrunning
domain, expect 85% less instant wipes.
/:cl:
## About The Pull Request
Makes it so nodes in an integrated circuit are colored depending on
their category in the component menu.

Before:

![1212121212121212](https://github.com/user-attachments/assets/aec4602f-c837-415f-8f42-0dcfb9e0e4aa)

After:

![452345235345](https://github.com/user-attachments/assets/2a28f471-f0c1-4fda-9727-41db18894cb1)

All categories (BCI has been changed to solid black since this for
contrast purposes)

![e](https://private-user-images.githubusercontent.com/66052067/410190943-b66d26b0-29b5-4b3f-8e65-35e6a44b74d1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg3OTU0OTIsIm5iZiI6MTczODc5NTE5MiwicGF0aCI6Ii82NjA1MjA2Ny80MTAxOTA5NDMtYjY2ZDI2YjAtMjliNS00YjNmLThlNjUtMzVlNmE0NGI3NGQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA1VDIyMzk1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI5MzMxOWUyMzUxMmRkZTQwMThkOTNiNTk3OTEyOTExNWY4NjNkODE0YWJjZjE0MTQwYzM2YTZjYjY0ZGQ4ZDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uRa_SkIjdhzEbedzzLI1hDzOK-vpgC2ZNoQtvxo4ijE)

If I was some sort of tgui magician I'd try to implement a way to add
comment fields, but since I'm nowhere near that, I figured this was the
least I could do.

## Why It's Good For The Game
This makes it far easier to read integrated circuits and remember what
they do. While there's still inherently some amount of confusion due to
the nature of how node-based programming visually works, hopefully
having it so nodes aren't all the same color helps a bit.
## Changelog
:cl: Wallem
qol: Integrated Circuit nodes are now colored depending on their type.
/:cl:
## About The Pull Request


https://github.com/user-attachments/assets/7e81b46b-1ed7-4ef1-b246-0188846711a5


Changed the loot panel style to show items in a similar style to the
regular shift context menu.

Also made the window resize with contents.

## Why It's Good For The Game

Better UX

## Changelog

:cl:
qol: Tile context menu tweaks (Loot panel)
/:cl:
…ache (tgstation#89363)

## About The Pull Request
This PR changes CI to use `actions/setup-node` to setup Node, instead of
using `tools/ci/install_node.sh`. The version given to this action is
the same as specified in `dependencies.sh`.

This fixes the issue of CI not using the node version provided in
`dependencies.sh`. Previously, it was using the system-wide Node, which
at the time of this PR is `v20.18.2`.

This change is NOT applied across all jobs, but is applied at minimum to
any jobs where the game is compiled. For example, any integration test
jobs now use `actions/setup-node` - but the "Remove guide comments" job
is untouched.

This PR has the additional following effects:
* The node install is no longer cached - it is instead downloaded from
<https://github.com/actions/node-versions> (or
<https://nodejs.org/dist/> if that fails). Being that the CI runner
needs to contact Github anyways to obtain the cached Node install, this
should make no difference.
* We no longer have to perform Yarn caching ourselves -
`actions/setup-node` does it for us! However, a side effect of this is
that the Yarn cache uses a different cache key now. I would have set up
the action to pull from the existing cache, but unfortunately that
wasn't an option.

Speaking of caching - the new action, `.github/actions/setup_node`, will
NOT restore the Yarn cache unless the `restore-yarn-cache` input is
`true`. This saves a couple seconds where we need node, but don't need
the yarn cache (such as in integration tests).
tgstation-ci bot and others added 28 commits February 17, 2025 10:07
… changes to the Research Tree. (tgstation#89169)

## About The Pull Request

Introduces 6 new Heretic Sideknowledges.

**Warren King's Welcome:** Starting side-knowledge, Grants to the
Heretic's id Maints and External Airlock access.

**Phylactery Of Damnation:** T1 Knowledge, located between Imperfect
Ritual and Keykeeper's Burden, creates a bottle that can Siphon a small
quantity of blood from your victim, (they'll still feel a tiny prick).


![potion_red](https://github.com/user-attachments/assets/b000300a-2f2c-47f1-9fd3-b9d8e0f4f587)

**Ether Of The Newborn:** T2 knowledge, replaces Curse Of Paralysis slot
in the tree (Inbetween Mark of Madness and Moonlight Amulette).


![potion_green](https://github.com/user-attachments/assets/bc45c69f-4a16-4879-b788-661112e35638)

1 use potion, fully restores the inbiber to full health, removes any
sort of affliction,trauma,disease or implant at the cost of knocking the
user out for 1 minute.

**Codex Morbus:** T3 knowledge, located between Caretaker's Refuge and
Ringleader's RIse.


![codex
gif](https://github.com/user-attachments/assets/8a15dc78-30b9-4a21-93eb-bafbeebd59a4)


![Codex Morbius
Final](https://github.com/user-attachments/assets/04c8739c-5c65-4246-9408-3cbdbc57a164)


Upgrade of the Codex Cicatrix, draws and siphons runes and essences a
bit faster, can be used on a rune to curse a crewmember, provided their
blood is on the rune or on the Heretic.

**Greaves Of The Prophet:** T3 knowledge, located between Entropic Plume
and Wolves Among Sheep.



![Greaves](https://github.com/user-attachments/assets/287b592e-b771-40ed-99b3-25820550d6a0)

They work as magical magboots minus the slowdown; they confer full
immunity to slips (yes, even space lube).

**Rust Sower Grenade:** T2 knowledge, replaces curse of corrosion in the
tree (between Aggressive Spread and Star Blast).



![Rustsower](https://github.com/user-attachments/assets/297f045c-38c3-4ed0-9046-52d797610339)

Eldritch grenade, Releases a smoke that rusts all affected turfs, blinds
whoever doesn't have mask protection and utterly annihilates silicons,
mechs, augs and bots.

Video Showcase: https://www.youtube.com/watch?v=H1GeO7MYFek

**New Blade Path Spell: Wolves Among Sheep**

Video Showcase: https://www.youtube.com/watch?v=2LsmUiQzpzA

- Briefly transforms the surrounding the heretic into an arena.

- Both The Heretic and Crew members caught inside the spell cannot leave
or change z level until the spell expires.

- The arena is impassable to outsiders.

- Everyone caught inside the spell receives a special buff that makes
them immune to most enviromental hazards and all forms of Crowd Control
while blocking teleportation.

- Non Heretics are granted a temporary Heretic Blade and an antag datum.

- Scoring a critical hit grants the winner the ability to leave the
arena, Critting the heretic fully dissolves the spell.

- Critting yourself doesn't remove the debuff.

- The Heretic receives a heal upon critting someone.

- Breaking a blade while inside the arena will rip off your arm
regardless if you are crew or a Heretic.

- 2 minutes cooldown.

- Replaces Furious Steel as the last spell unlocked pre-ascension.


Lastly as you may have guessed, curses have been completely refactored,
they are now bound to the new item (Codex Morbus), are no longer
empowered by blood but require it as a reagent.

Curse of Corrosion and Paralysis have been rebalanced to be slightly
stronger than they were at their base value now that they can no longer
be empowered.

2 new curses have be introduced.

**Curse Of Indulgence:** tanks the target hunger, makes them a carnivore
and drastically increases their hunger decay rate, lasts 8 minutes.

**Curse Of Transmogrification:** Allows the Heretic to change the
target's Race(minus plasmamen for obvious reasons), lasts until the
Codex Morbus is destroyed.

Lastly the Blade Heretic tree has been shuffled a bit to introduce the
new spell.

Stance Of the Torn Champion has been **TEMPORARILY** Removed, it will
come back in a later PR.

Code by me and Xander

Sprites by INFRARED_BARON and OrcaCora.

Lore tibids by NecromancerAnne.

## Why It's Good For The Game

The following is an atomisation of The Heretic Knowledge Rework I'm
currently working on alongside Edge (Heretic's Grandaddy).

Given the whole PR was probably going to be impossibly big to review; I
asked Melbert If could introduce the new knowledges first, so here we
are.

Do not stress the locations of these knowledges in the tree; While they
do fill what few empty slots we still have, it doesn't change the fact
that the Heretic tree is an incomprehensible mess and will soon be
reworked.

**Warren King's Welcome:**

Not having mantainence access as an antag sucks.

Arguably it sucks even more for Heretics as they are required to find
some place discrete in order to be able to cast their rituals.

It's not unusual for the station to be so crowded, that setting up a
base in space is the only option, the external access helps with that a
little bit.

**Phylactery Of Damnation and Codex Morbus**

Explaining them in the same paragraph as they are intended to be used
together.

Curses might as well not exist in their current state.

The process of cursing a crewmember is way too machineous, annoying, and
nowhere near as affective as simply running to your victim and smacking
it with your blade.

All Curses have now been bundled to the new Codex, they no longer
require X reagents, only a drip of the victim's blood.

That's when the phylactery comes into play.

Victims still feel "a tiny prick" upon being juiced, so beware.

**Ether Of The Newborn:** The point of this knowledge is to serve as a
backup plan to "random bullshittery".


It's not really fun rolling one bad trauma or disease and have it
completely invalidate your Heretic round.

We already have potions that either heal or provide remedies against
wounds/limb loss, the Ether is supposed to be an extreme solution, hence
why it causes a 1 minute sleep upon consumption.

**Greaves Of The Prophet:** Heretic to this day is fairly lacking when
it comes to passive immunities or tools we grant to most of our core
antagonists.

Specifically, for a melee-focused antagonist, a total lack of antislip
is kinda lame, being one of the most common defense tools employed by
the crew against newbie antagonist players.

Given these cannot be concealed unlike the traitor counterpart and how
far down the tree they are, i felt like making them lube resistant was a
unique twist and sensible for what's essentialy our core progression
antagonist.

**Rust Sower Grenade:** directly inspired by the 40k Blight Grenades.

The Rust Sower nades serve a double purpose.

1) They introduce a new form of area Denial available to all heretic
paths.

2) They confer to non Rust Heretics a way to deal with the so hated
Silicon Menace.

I'm of the not-so-unpopular school of thought of "Mechs and Silicons
have had it too good for too long".

A massive chunk of our threat roster gets to this day completely shut
down by mechs.

I feel like it was about time to make everything Inorganic feel afraid
again.

To make it a bit more fair, these grenades have a fairly long detonation
timer and have been given a couple of unique SFX.


**Wolves Among Sheep**

Even after the last batch of Changes, Blade Heretic still felt a bit
uninspired to me.

The path is still essentialy just about running at people and stabbing
them in the face.

While that's part of the appreal, I'd reckon it's still lacking a bit on
the eldritch side of things.

Trapping opponents into an arena when they are forced to either engage
you or betray their friends to escape can create some potentially
interesting story-telling.

It also warps the ,oh, so beloathed stun meta we live in by forcing
participants to resort to lethal weaponry.

Ultimately, this is supposed to be a high risk/high reward spell, if you
trap 5 people arm them with heretic blades, and make them all fully stun
immune, you are likely gonna get lynched.

To free up a slot in the tree I **TEMPORARILY** Removed Stance of the
Torn champion, it will come back in my nextish pr, so don't worry about
it too much.

## Changelog

:cl:
add: New Heretic starting Side-Knowdge Warren King's Welcome
add: New Heretic T1 Side knowledge, Phylactery Of Damnation.
add: New Heretic T2 Side knowledge, Ether Of The Newborn.
add: New Heretic T3 Side knowledge, Codex Morbus.
add: New Heretic T2 Side knowledge, Rust Sower grenade.
add: New Heretic T3 Side knowledge, Greaves Of The Prophet.
add: New Blade Path Spell, Wolves Among Sheep.
balance: Heretic curses have been removed from the tree and bundled in
the new Knowledge, Codex Morbus.
balance: Blade Path tree has been shuffled a bit, all spells have been
moved up by one tier to make space for the new spell.
removal: Stance Of The Torn Champion has been removed.
/:cl:

---------

Co-authored-by: Xander3359 <[email protected]>
Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: carlarctg <[email protected]>
Co-authored-by: Ghom <[email protected]>
## About The Pull Request

It's been a while since the last time I did this in tgstation#78852 and I think
we can afford to be a little looser on some items.
This PR _has_ evidently been made with the context that I have another
PR open which removes the ability for you to fast-forward these timers,
however I also think that these changes should stand alone fine even if
we did not end up merging that other one.
This one I haven't pre-cleared with anyone else first though so I'm
prepared to be told my judgement is wrong and bad.

My basic philosophy when considering the reputation timelocks is that we
don't necessarily care considerably about items that are "good" or that
make you really good at killing specifically one person at a time,
winning duels is the expectation for a traitor and their gear.

The reasons we _might_ want to timelock something are instead:
- If it causes widespread destruction such that simply deploying it may
lead to the shuttle being called (Syndicate Bomb, Hacked AI module).
- If it makes you significantly more difficult to kill such that even a
group of people may have to try unusual tactics (Dual Esword, Sleeping
Carp).
- If it creates a second antagonist (allied or not), as another player
is a significant force multiplier (Holoparasites and Spider Toxin).
- If you buy something and it immediately effects the entire station,
even if the impact isn't that high, it might be kind of annoying if it
has no time limit (Blackout and Comms Blackout).

So applying those criteria, here are my proposed changes.

**Timer reduced to 15 minutes:**

- Station Blackout (was 20 minutes)

To be honest this is mostly just so that it matches the other global
service (Comms Blackout). If anything I think this one is actually
frequently _less_ useful than the other one which we made available
slightly earlier.

**Timer removed:**

- Energy Sword, Powerfist, Gloves of the North Star (Previously 20
minutes)

These function as "items that make you really good at killing one
person". They're very _scary_ but they don't turn you into a threat that
can take on a group of people by themselves.

The Energy Sword has a projectile deflection chance but it isn't so
reliable as to consistently overwhelm a group of people. Arguably it's
better _as_ a shield than a primary weapon. It's common pairing (the
ebow) is frankly more dangerous on its own than the esword is, but the
sword is the one with the timelock.
I'm not touching the _Dual_ esword because that one _does_ come with
enough of a block chance that by itself it can be very impactful to how
people need to approach you.

The powerfist is arguably the _best_ weapon for killing one guy, but
doesn't protect you from being shot by a group of people. Ditto north
star.
Plus it's sad that of the iconic traitor items, the revolver has no
timelock and the energy sword does...

- Concealed Mech Weapons Bay (was 30 minutes)

This doesn't give your mech a cool weapon, it only allows you to place
an existing mech weapon you already had onto a surprising mech. By the
time you have a cool mech weapon to use this with it may already have
been 30 minutes anyway, and also you will already be able to build a
mech which is better at combat and which this item is not useful for.
This is largely just an item for gimmicks where one person is caught
unaware that you had something in your back pocket, not a long-term plan
which makes you significantly more dangerous or durable (the most
durable and dangerous mechs don't need this item).

- Holoparasite (was 30 minutes)

While this summons another player, it costs basically your entire budget
and also comes with significant downsides. You could say that rather
than making you harder to kill this actually often makes you
significantly easier to remove from the round. This item is
self-balancing because the other player gets you round-removed after 5
minutes virtually all the time.

- Pizza Bomb (was 15 minutes)

I actually said I removed the timer from this in my last PR but I
didn't?
This is a bomb, but it's really only strong enough to kill and dismember
one person. Your best case requires a group of people to be crowded
around someone opening some pizza and even then a lot of the bystanders
will be heavily wounded but alive. The explosion isn't strong enough to
cause people to want to call the shuttle.

- Bag of X4 (was 20 minutes)

This provides three small bombs that are essentially breaching tools.
You'd have to buy a lot of these to cause enough damage to make someone
want to call the shuttle. C4 already has no timelock and X4 is just a
slightly more directed version of C4 which is more useful for breaking
through a series of walls.

- Combat Bakery Kit (was 15 minutes)

This is a mime-only item which gives you a dangerous baguette and some
throwing croissants, functionally a worse-but-stealthier eblade
basically. This is firmly in the category of "item you use to kill one
guy" and it's not even amazing for that.

- Reverse Revolver (was 30 minutes)

I think this one was just an oversight; we removed the timelock from the
revolver entirely but left a 30 minute one on the clown revolver.

- Kinetic Accelerator Upgrade Mod (was 15 minutes)

This gives miners a shorter-range but infinite ammo gun that they can
use to kill one guy. It's loud and has no defensive benefits. Another
revolver.

- Laser Arm Implant (was 20 minutes)

Being concealable, rechargeable, and difficult to disarm is a good
benefit over the revolver... but it's still basically another revolver
with the same use case as a revolver.
Again I don't think we want to timelock things because they are "good",
only because we think delaying their release into the round would have
some tangible benefit.

- Chemical Dart Gun (was 15 minutes)

This one I am actually the most scared of out of anything I listed here
purely because chems are a world of strange possibilites I don't quite
understand. Still, I am hesitantly classing this as a "cool revolver"
with the additional caveat that as you need time to prep your crazy chem
mixes I am not sure that the 15 minutes on it were really doing very
much anyway.

**Removed from the Uplink**
- Elite Syndicate Modsuit and various previously nukie-only costumes

It's so over.
Actually originally I was just going to remove the timelock from the
non-modsuit costumes but I was convinced while talking about it with
various maintainers that if there's no status symbol attached with
"unlocking" these then they shouldn't be there in the first place and
should return to being a silly team gimmick for nukies as originally
designed.
The Elite Suit itself sounds very cool, but it's functionally not really
much better than other suits you can buy immediately and is also way
more expensive. Removing it from selection is removing a noob trap from
the game.

## Why It's Good For The Game

Timelocks aren't fun, they're _useful_ as a tool for directing behaviour
but we should probably apply them as minimally as possible.
Given the principles outlined above I think these changes make sense.

## Changelog

:cl:
balance: The reputation "time locks" on various items in the Traitor
uplink have been reduced or removed. Effected items include the
holoparasite kit, energy sword, power fist, gloves of the northstar,
pizza bomb, bag of x4, combat bakery kit, reverse revolver, kinetic
accelerator modkit, laser arm implant, concealed weapon bay, chemical
dart gun, and stationwide APC check.
balance: The centcom inspector costume is now more expensive.
del: Several previously nukie-only wardrobe options in the traitor
uplink are now once more only available to nuclear operatives.
del: Spies can no longer receive an elite nuclear operative suit. 
/:cl:
…ew dirt component (tgstation#89497)

## About The Pull Request
tgstation#87102 introduced a new clothing dirt component, which increases tint
when you get spraypainted. This PR expands it to work when you are
spraypainted and applies it to space helmets, gas masks and rad/bomb/bio
helmets, and gives all items a fancy overlay when
spraypainted/peppersprayed.


![dreamseeker_AJf0C79SRv](https://github.com/user-attachments/assets/1e92806a-7f8f-4952-9dfe-7938b18fa2d2)

![image](https://github.com/user-attachments/assets/f4226e64-32a2-4655-8230-e0d338bc43cb)

Spraypainting a person wearing an item with this component randomly
applies 2-3 levels of tint, potentially blinding them until they wash
their helmet or mask.

Additionally, driscoll mask has lost its eye covering, and welding gas
mask gained it - doesn't make sense for former to have it, and for
latter to be missing it.

## Why It's Good For The Game

Bomb suits and bio hoods are already extremely weak, while rad suits are
super situational when there are MODsuits with none of the downsides. 90
degree FOV is extremely punishing and makes them essentially unusable.
Space helmet slowdown was added because they gave pepperspray protection
with no downside, which this PR brings, so there's no reason to keep it
around considering how bad slowdown feels in our game.

Also spraypainting someone's visor is just extremely funny to me.

## Changelog
:cl:
balance: Space helmets and bio/bomb/rad hoods have lost their
slowdown/FOV respectively, but now can have their visor covered by
spraypaint or pepper spray.
balance: Driscoll mask no longer protects your eyes, unlike welding gas
mask which received said protection.
/:cl:
…n#88805)

## About The Pull Request

Returning Use Mode to manipualtors but now manipulator use not the power
of invisible guys but the power of monkey hardworkes. You now can
drug-drop monkey to the manipulator and buckle him to it. After that you
will unlock use mode and manipulator will use manipulated item on living
mob, structure or macinery with using monkey hands.


https://github.com/user-attachments/assets/277bca71-059f-4f59-8e0d-7d17575cf6cf

Also this pr adds wires to manipulator. You can open big manipulator
panel and manipulate with wires to: on/off manipulator, drop item that
manipulator uses, switch what take type, change manipulate mode, switch
only one priority button and calculate throw range.

![Снимок экрана 2024-12-29
203214](https://github.com/user-attachments/assets/b02894be-74f3-4f97-9046-614b4c5bac6e)

Also this PR also fix a bug in which the manipulator ignores objects on
the tile from which he should take them if the object appeared there
using spawn or other non-agreed methods (for example, when frying meat
on a campfire, manipulator does not want to touch the fried meat)

## Why It's Good For The Game

Returns Use Mode to the manipulator to create complex logistics systems.
Adds wires to control manipulators remotely and fixes the manipulator’s
reluctance to touch meat fried at the campfire.

## Changelog

:cl:
add: Big Manipulator now has use mode once again. You need buckle monkey
to unlock this future.
add: Big Manipulator now has wires.
fix: Big Manipualtor now sees objects that appeared on the tile using
spawn or any other means in which the object is not considered to have
moved
/:cl:

---------

Co-authored-by: SyncIt21 <[email protected]>
## About The Pull Request

Scar and uniform sensor examine_more was blocked by holding up a
newspaper or having any sort of mask, but not wearing a suit. Moved scar
examine code to carbon level (where the examine more hint for scars, and
scars themselves are) and made uniform sensor examine respect obscurity
flags.

## Changelog
:cl:
fix: Fixed scars not being examine-able if you wore a mask
fix: Fixed uniform sensors being examine-able even when worn under a
spacesuit.
/:cl:
## About The Pull Request

Port of a fix from
Monkestation/Monkestation2.0#4995

Due to how modular computers worked with the nested tgui stuff, the
SecurEye app wouldn't properly autoupdate whenever a camera it was
watching moved (when there's not any tracking going on)

This "fixes" that issue by adding a new var, `always_update_ui`, to
modular computer programs, which will make the modpc call the active
program's `ui_interact` even after the UI is opened.

## Why It's Good For The Game

bugfix good. if the whole "watch broadcast camera streams on PDA" thing
ever gets ported here, this is a needed fix for that.

## Changelog
:cl:
fix: SecurEye now properly follows moving cameras.
/:cl:
## About The Pull Request

Closes tgstation#89501

## Changelog
:cl:
fix: Fixed pyroclastic slime RRing ghosts
/:cl:
…hanges up bridge/morgue (tgstation#89444)

<!-- 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

Tech Storage is now located right under engineering, with a bridge
connecting EVA and secure tech storage.


![image](https://github.com/user-attachments/assets/d4158ab4-4d82-4b20-911d-81f9b75fffff)

To achieve this, EVA and council chamber swapped places, making the
bridge into a corridor (like on all other maps) instead of a dead end.
HoP also now has a way to enter their office without exiting the bridge
and entering from the public hallway (unless you count maintenance as a
way)


![image](https://github.com/user-attachments/assets/0366131b-3569-4220-b564-9a0cb25303c7)

In place of old tech storage we now have a remapped morgue and an
abandoned brewery with mechanical curtains (similar to ones on Delta,
they essentially act as shutters)


![image](https://github.com/user-attachments/assets/f780f4c5-78be-43ce-ba10-3b5453f7dc1c)

Closes tgstation#89422

## Why It's Good For The Game

Birdshot's layout is rather bad and tech storage is one of the top
offenders, having no right to be located near arrivals so far away from
engineering. Also the morgue is kinda scuffed.

## 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 its 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. -->

:cl:
map: Moved Birdshot's tech storage to be between bridge and engineering,
with a brand old abandoned brewery in its former place.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: 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

Fixes revert_next_map() not actually reverting the map vote. Also added
an admin verb for it for ease of access.

## Why It's Good For The Game

Fix bug, revert map vote without having to poke around in the subsystem.

## Changelog

:cl: LT3
fix: Revert next map command actually reverts the map vote
admin: Admins now have a verb to revert the map vote
/:cl:
## About The Pull Request
Small logical mistake where dupe sources would spawn a new component
everytime a source is being added. The code containing the correct logic
with the source being added to the old component is indented under a
check that it can never pass.

## Why It's Good For The Game
Fixing a backend issue with the component mode.

## Changelog
N/A
## About The Pull Request

I messed up caching

## Changelog
:cl:
fix: Fixed mapvotes spontaneously failing
/:cl:
…tgstation#89509)

## About The Pull Request

Using the organ set bonus system, having a Strongarm implant inserted
into each of your arms lets you pry open airlocks.

## Why It's Good For The Game

People don't often like getting these, since they're out of cargo and
not terribly exciting for the effort. To incentivize getting both
installed and add a bit of a thematic advantage if you do so, they
provide the very useful benefit of door prying ~~which may or may not
get you killed by security because you won't stop opening high-security
airlocks~~.

Engineers will love it!

(Also I want to expand the set bonus stuff beyond just infusions since I
think these kinds of interactions could be quite neat)

## Changelog
:cl:
balance: Having a strongarm implant installed into each arm now allows
you to pry open doors.
/:cl:

---------

Co-authored-by: Ghom <[email protected]>
@Huz2e Huz2e merged commit b197576 into master Feb 18, 2025
2 checks passed
@Huz2e Huz2e deleted the update branch February 18, 2025 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.