Commit Graph

8274 Commits

Author SHA1 Message Date
SkyratBot
fcfdbfc975 [MIRROR] Fix colossus finale firing like 100 fewer projectiles than it should be [MDB IGNORE] (#21969)
* Fix colossus finale firing like 100 fewer projectiles than it should be (#76202)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/51863163/b7d831db-dd38-4a60-b8e3-9a02c0101d40)

## Changelog

🆑 Melbert
fix: The colossus's finale attack is now 100x more lethal, because it
was firing 100x fewer projectiles than intended
/🆑

* Fix colossus finale firing like 100 fewer projectiles than it should be

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-23 16:10:08 -07:00
SkyratBot
e03e6e9436 [MIRROR] Fixes a runtime when attacking non-carbon mobs with a cuffsnapper [MDB IGNORE] (#21968)
* Fixes a runtime when attacking non-carbon mobs with a cuffsnapper  (#76190)

## About The Pull Request

The cuffsnapper component now checks to make sure the target is a carbon
before running the rest of the cuffsnapping process on them.

target.handcuffed is checked (handcuffed is defined on carbon), but
nowhere is it actually asserted that the target is a carbon, so a
runtime would occur when attacking non-carbon mobs.
## Why It's Good For The Game

This runtime fix was brought to you by https://runtimes.moth.fans
## Changelog
🆑
fix: attacking non-carbon mobs with a cuffsnapping object will no longer
runtime.
/🆑

* Fixes a runtime when attacking non-carbon mobs with a cuffsnapper

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-06-23 16:09:21 -07:00
SkyratBot
1beff3980c [MIRROR] Air Sensor are Craftable, Removed from RPD UI, Have New Linking System [MDB IGNORE] (#21964)
* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System (#75869)

## About The Pull Request

**1. Craftable & Removed from RPD UI**

1. Air sensor's are now craftable
2. You can turn them on/off with hand. Even though turning off the
sensor will change it to a diffrent type[from `obj/machinery/air_sensor`
-> `obj/item/air_sensor`] it's I/O port's are sill preserved when
turning them on although you have to assign it a new name again which is
usefull if you want to change the sensor's purpose in game.
3. They can now only be deconstructed by a welding tool and should be
wrenched in place to turn them on.
4. Turned off air sensor's once unwrenched can be picked up like any
regular item
5. Air sensor's are removed from the RPD UI because they don't go with
pipes so it logically doesn't make sense to group them with pipe related
device's

Removed unused code in the process

https://github.com/tgstation/tgstation/assets/110812394/3439a0f3-9c48-43ac-8f4b-98135435ec13

**2. New ID System**
The problem with air sensor's is that each sensor is assigned a unique
ID which is then stored in `GLOB.objects_by_id_tag` list. Each sensor
name it's assigned based on the gas it's trying to sense(for naming only
even though it can detect other gases) So if 2 sensor's having the same
ID are made they will overwrite each other in this list leaving one
sensor orphaned in the world which cannot be referenced because it's
value was overwritten by a new sensor having the same ID in this list.

The Solution? Rather than having all atmos computer's look up sensor's
from this 1 global list make each computer keep track of all sensor's
it's responsible for in it's own local list[which i called
`connected_sensor's`] this way 2 sensor's can have randomly generated
names in the global `GLOB.objects_by_id_tag` list but the computer will
know what sensor to look up in this list based on the stored sensor ID's
in the `connected_sensor's` list

Basically what i am getting at is now you can make as many air sensor's
as you wish but you will know have to connect that sensor to the
computer using a multitool.
Notice in the video how i made 2 sensor's called `Supermatter Chamber
Sensor's`] and every time you try to connect an sensor which has the
same name[`Supermatter Chamber Sensor's` in this case] they will
ovewrite the old sensor in it's list as shown in the video

https://github.com/tgstation/tgstation/assets/110812394/b5283c3b-c8a1-4b94-a6a8-8ba7a0007615

**Why it's good for the game**
![Screenshot
(247)](https://github.com/tgstation/tgstation/assets/110812394/6a7eb501-4414-4f01-a6ef-3e9b70f4af06)

I agree. Also air sensor's taking up a full Tab/Section in the RPD UI
wasted a lot of UI space so that's removed now. Also making the air
sensor's wrenchable and pickable item's was also requested in
https://github.com/tgstation/tgstation/pull/72019#issuecomment-1355499873
so you relate them to device's like meter's

Another huge issue was that the number of air sensor's you can make in
the world was limited because each sensor in the world must have a
unique ID but that's finally fixed now so yeah make as many sensor's as
you want.

## Changelog
🆑
add: air sensor's are craftable
refactor: air sensor's can now be turned off by hand and can only be
deconstructed by a welding tool
refactor: removed `Params()` proc
qol: unwrenched air sensors can be picked up & recycled like regular
item's
del: air sensor are removed from the RPD UI
qol: air sensor's are no longer restricted by their unique ID's which
mean you can craft as many air sensors as you want.
/🆑

---------

Co-authored-by: Time-Green <timkoster1@ hotmail.com>

* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
2023-06-23 16:06:45 -07:00
SkyratBot
7eedc90a99 [MIRROR] The honorbound trauma now makes use of the relay_attackers element. [MDB IGNORE] (#21961)
* The honorbound trauma now makes use of the relay_attackers element. (#75908)

## About The Pull Request
Whoever made the relay_attackers element, thank you for streamlining the
bucketload of signals that had to be registered for everything that
counted as an attack. It's very much needed.

Beside, I only had to add a few flags to be sent by the
ATOM_WAS_ATTACKED signal, so that stamina and shoving doesn't
automatically make the attacker guilty.

Oh, one more thing I have forgot to mention. Currently medical staff is
immune to "guilt" altogether, while the comments suggest they should be
affected by declaration but not attacking. This PR also covers that
issue.

## Why It's Good For The Game
This will fix #75904.

## Changelog

🆑
fix: Fixed the honourbound trauma not reacting to attacks from basic
mobs
fix: Fixed the "Declare Evil" spell not working against the medical
department.
/🆑

* The honorbound trauma now makes use of the relay_attackers element.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-06-23 16:06:06 -07:00
SkyratBot
47ddd30381 [MIRROR] Makes Godwoken Syndrome VoG commands ignore spam filter [MDB IGNORE] (#21956)
* Makes Godwoken Syndrome VoG commands ignore spam filter (#76146)

## About The Pull Request
they're basically forced speech and should not account for the spam
filter

## Why It's Good For The Game
fixes #55392

## Changelog
🆑
fix: fixed Godwoken Syndrome VoG commands triggering the spam filter
/🆑

* Makes Godwoken Syndrome VoG commands ignore spam filter

---------

Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
2023-06-23 16:03:46 -07:00
SkyratBot
8f2c771b5f [MIRROR] Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do. [MDB IGNORE] (#21953)
* Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do. (#76020)

Changed hardcoded matter bins values to use defined
`SHEET_MATERIAL_AMOUNT` for following stuff: autolathe, protolathe, mech
fabricator and component printer.

`Material Access Bar` and `MaterialIcon` used for protolathes, circuit
printers and etc. now also use defined `SHEET_MATERIAL_AMOUNT`, via
static ui data, to prevent same issues in future.

Also changed some notes in /// parts just because why not.

* Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-06-23 15:34:52 -07:00
SkyratBot
85203fcc2f [MIRROR] Fixes and adds an element for TC reimbursement. [MDB IGNORE] (#21950)
* Fixes and adds an element for TC reimbursement. (#75816)

## About The Pull Request

Fixed being unable to reimburse syndicate spawners via uplinks. This
includes nukie reinforcements, cyborgs, and holoparasite injectors.

Turned TC reimbursement into a bespoke element.

Tuned demon's blood message when there's no ghosts to pick to be a
little more understandable and sensible.

## Why It's Good For The Game

> Fixed being unable to reimburse syndicate spawners via uplinks. This
includes nukie reinforcements, cyborgs, and holoparasite injectors.

This bug was, to my knowledge, introduced with bubby traitors when
uplinks were turned into components, as the code no longer supported it
due to what I presume to be an oversight, since there's plenty of
references to it ingame still.

> Turned TC reimbursement into a bespoke element.

Seemed like the best way of doing this. Since for some godforsaken
reason attackby() is one-way only (no attackto() ), the uplink component
sends a signal to any item hit with it instead.

## Changelog

🆑
fix: Fixed being unable to reimburse syndicate spawners via uplinks.
This includes nukie reinforcements, cyborgs, and holoparasite injectors.
refactor: Turned TC reimbursement into a bespoke element.
spellcheck: Tuned demon's blood message when there's no ghosts to pick
to be a little more understandable and sensible.
/🆑

* Fixes and adds an element for TC reimbursement.

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-06-23 15:33:48 -07:00
SkyratBot
60e1129616 [MIRROR] Fix cyborg autofire [MDB IGNORE] (#22005)
* Fix cyborg autofire (#76240)

## About The Pull Request

Nothing implies this has to be an `iscarbon` check anywhere

Closes #76211

## Changelog

🆑 Melbert
fix: The Syndicate Assault Cyborg can autofire their LMG
/🆑

* Fix cyborg autofire

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-23 15:51:34 +01:00
SkyratBot
76e3348760 [MIRROR] Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait) [MDB IGNORE] (#21958)
* Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait)

* fix

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-22 20:21:36 +00:00
SkyratBot
529b8b4464 [MIRROR] Lighting object oddities [MDB IGNORE] (#21945)
* Lighting object oddities (#76009)

## About The Pull Request

Fire stacks status effect no longer uses a weakref for the mob light, I
am pretty sure there was no real reason to use a weakref there.
Deleted weird luminescent glow dummy, now it just uses the standard
moblight obj.
Put all /obj/effect/dummy/lighting_obj together in a single file and
added a comment explaining why they exist.

(I severely dislike the /obj/effect/dummy typepath, but I am very much
unsure if just replacing all of them with /obj/effect/abstract would
break shit)

## Why It's Good For The Game

Code organization good

* Lighting object oddities

* Update kindle.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-20 14:06:48 -07:00
SkyratBot
068089fb52 [MIRROR] Standardize Welder Fuel Usage [MDB IGNORE] (#21943)
* Standardize Welder Fuel Usage (#76021)

Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel

After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.

resolves #55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑

* Standardize Welder Fuel Usage

---------

Co-authored-by: Couls <coul422@gmail.com>
2023-06-20 09:39:49 -07:00
SkyratBot
48f31f0eb1 [MIRROR] Adds the current server name from the config to the world status [MDB IGNORE] (#21939)
* Adds the current server name from the config to the world status (#76014)

## About The Pull Request
Adds the server name from the configuration to the world's status topic.

## Why It's Good For The Game
We don't currently expose the server's short name (e.g. `Sybil`,
`Manuel`) anywhere. This fixes that. This is mostly to support external
tools.

* Adds the current server name from the config to the world status

---------

Co-authored-by: Nick <nick@nfreader.net>
2023-06-20 09:39:26 -07:00
SkyratBot
3d4b8e19ba [MIRROR] Fix further/MetaStation [MDB IGNORE] (#21944)
* Fix further/MetaStation (#76158)

## About The Pull Request

Typo fixes. Further and fixes MetaStation's default name to match the
JSON.

## Changelog

🆑 LT3
spellcheck: Fixed a few typos
/🆑

* Fix further/MetaStation

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-20 09:32:47 -07:00
SkyratBot
a863e7787d [MIRROR] Unit tests now catch decals in walls/space [MDB IGNORE] (#21862)
* Unit tests now catch decals in walls/space

* the fuck

* vr

* vr

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-06-20 10:28:46 -04:00
SkyratBot
bcb7bcc5c5 [MIRROR] Food gets stink lines when about to go rotten [MDB IGNORE] (#21925)
* Food gets stink lines when about to go rotten (#76038)

## About The Pull Request

Title says it all, food that decomposes gets stink lines halfway
through.

![image](https://github.com/tgstation/tgstation/assets/82850673/ae90220c-4b27-49dd-873a-6f349055f891)

![image](https://github.com/tgstation/tgstation/assets/82850673/c982055d-ed69-4935-bda5-7851836fad2c)

Moldy messes always gets stink lines.

## Why It's Good For The Game

1. It's funny
2. It's a visual indicator for food going bad which is kinda nice

## Changelog

🆑
add: Food now gets stink lines when going bad. Uh oh, stinky.
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Food gets stink lines when about to go rotten

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-06-19 17:34:53 -04:00
SkyratBot
4a451d4e24 [MIRROR] Removes some boilerplate from transforming component [MDB IGNORE] (#21885)
* Removes some boilerplate from transforming component

* conflicts

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-19 17:14:10 -04:00
Tom
15b7c7bf71 removes sneaky merge conflict marker (#21919)
remove marker
2023-06-19 17:00:29 -04:00
SkyratBot
e10c569414 [MIRROR] Acid particles (+unsorted acid/burning/thermite component changes) [MDB IGNORE] (#21874)
Acid particles (+unsorted acid/burning/thermite component changes)

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 15:19:40 +00:00
SkyratBot
b416eaa605 [MIRROR] Burner can be crafted from any open container [MDB IGNORE] (#21832)
* Burner can be crafted from any open container (#75978)

![image](https://github.com/tgstation/tgstation/assets/3625094/042ef40c-512f-40c5-8e65-a7dc842108fd)

## About The Pull Request

Expands the options for making burners (makeshift igniters) by requiring
any open container (bottles, cans, cups) instead of beaker subtypes.

## Why It's Good For The Game

Makes ghetto recipe a bit more ghetto-friendly

## Changelog
🆑
qol: Chemical burner can be crafted from any open container, not just
beakers
/🆑

* Burner can be crafted from any open container

* null modular icon

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 16:04:02 +01:00
SkyratBot
7bac58e2fc [MIRROR] Renames COMSIG_ITEM_ATTACK_OBJ to COMSIG_ITEM_ATTACK_ATOM [MDB IGNORE] (#21916)
* Renames COMSIG_ITEM_ATTACK_OBJ to COMSIG_ITEM_ATTACK_ATOM

* conflicts

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 14:51:14 +00:00
SkyratBot
94aff1857c [MIRROR] Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements [MDB IGNORE] (#21872)
* Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements (#75913)

## About The Pull Request

This standardizes fugitive hunter IDs, making all hunter packs use the
same subtype and giving them to hunters who would spawn with no ID at
all.

The badass flaming ID color that the OG Bounty Hunter team got are now
the standard for fugitive hunter IDs. Additionally, these IDs now come
with a radical skull trim.

(Spacepol Officers don't get the badass flaming skull ID, and instead
get a more modest Police Officer ID).

**These IDs come with access, too. Airlocks, bolt buttons, shuttle
controls, and shutters on all of the hunter shuttles now require a
hunter's ID to operate.**

While I was in the area doing mapping stuff to get the accesses in
place, I made a few other very minor changes to the shuttles. These
include:

- The Bounty Hunter shuttle now has an oxygen dispenser. Two walls have
been moved to make space.
- The Russian Hunter shuttle now gets enough oxygen tanks to share with
everyone.
- The Psyker Hunter spawners now have proper spawner menu text. This was
due to duplicate-but-not-really subtypes existing, and me mistakenly
putting the wrong ones there in a previous PR.
- The cut ai wire helpers from the Russian/Psyker shuttles have been
extended to the Bounty/Spacepol shuttles.
- Every hunter shuttle now has a shuttle pinpointer on it somewhere, and
is no longer exclusive to a single Bounty Hunter's loadout.
## Why It's Good For The Game

Some of the hunter IDs would spawn without trims or coloration, and some
hunters wouldn't spawn with IDs at all. Now, everyone gets a credible,
cool-looking ID that lets everyone know what you're here to do at a
glance.

One of these is a crazed larper with an unregistered firearm, the other
is a certified bounty hunter.

As for the hunter access, it's pretty nonsensical that anyone can just
walk into the hunter ship and set up shop. At least the pirates get
turrets! Not to mention, it's hard to balance or give hunters new
equipment in good conscience when their entire domain is public-access
and anything they can't carry is considered forfeit to the crew. Now it
can be used as a base of operations, storage area, etc. more securely.

Locking down the shuttle with accesses isn't going to stop a determined
gamer with a toolset, but it'll at least make it more interesting and an
actual risk. If the fugitives want to try and loot/hijack the shuttle,
it will require the effort of taking down one of their hunters first.

While hunters stand out for the differences/imbalances between each
group, I don't see the shuttle pinpointer as something that contributes
positively to the OG bounty hunter's uniqueness. There's no reason why
the other hunters shouldn't also be able to track their ship.

* Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-06-18 15:21:47 +01:00
SkyratBot
bbf349ce34 [MIRROR] Machine's correctly eject signaller's attached to it's wires [MDB IGNORE] (#21836)
* Machine's correctly eject signaller's attached to it's wires (#75928)

## About The Pull Request

Fixes #72053
the signaller is made part of the machine's `component_parts` now so it
doesn't get moved out when `dump_inventory_contents()` is called like in
the case of microwave when it has finished cooking
This fix also applies for other machine's that call this proc

Fixes #72132
Clear's out the `holder` & `connected` vars from the signaller when the
wire's get destroyed allowing the signaller to be picked up

## Changelog
🆑
fix: microwave's(after it has finished cooking) & other machine's that
spit out contents don't spit out assemblies/signallers attached to it's
wires.
fix: signallers can be picked up if you attached them to a machine's
wire & later deconstructed that machine without detaching it first.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>

* Machine's correctly eject signaller's attached to it's wires

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
2023-06-18 14:57:02 +01:00
SkyratBot
c5f16715fb [MIRROR] Adds runtime safety into cinematic code to stop everyone locking up [MDB IGNORE] (#21827)
* Adds runtime safety into cinematic code to stop everyone locking up (#76025)

## About The Pull Request

Separates these two sections of cinematic code out in their own procs to
add some runtime protection.

![image](https://github.com/tgstation/tgstation/assets/51863163/b664d887-1aea-45e7-85f2-aa2e6c997c83)

This keeps happening and I have really no idea why. There shouldn't be
any `null`s in this list of weakrefs. I asked Lemon a while ago and they
said it was a bug in some other code. So I'm just doing this instead.
Because I don't know where to hunt down that issue and try-catches
aren't real.

Closes #76024

## Why It's Good For The Game

Runtiming in these procs is really bad because it handles setting all
mobs to `notransform`. Which blocks all movement and acting and stuff.

## Changelog

🆑 Melbert
code: Adds some runtime safety to Cinematic code
/🆑

* Adds runtime safety into cinematic code to stop everyone locking up

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-18 14:51:47 +01:00
SkyratBot
124ff7955c [MIRROR] Improves mob resizing (and UpdatePaths). [MDB IGNORE] (#21726)
* Improves mob resizing (and UpdatePaths).

* updatepaths

* conflicts

* update modular

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 14:23:05 +01:00
SkyratBot
6dfe17306c [MIRROR] Pulls apart the vestiges of components still hanging onto signals [MDB IGNORE] (#21738)
* Pulls apart the vestiges of components still hanging onto signals

* update modular

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 13:18:23 +00:00
SkyratBot
da5da42a18 [MIRROR] Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?) [MDB IGNORE] (#21884)
* Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?) (#76000)

## About The Pull Request

- Refactors the stun absorption list into a status effect

- Does a fair bit of cleanup around stun code

Weird thing involved in this.
Check out this define.
`IS_STUN_IMMUNE(source, ignore_canstun) ((source.status_flags & GODMODE)
|| (!ignore_canstun && (!(source.status_flags & CANKNOCKDOWN) ||
HAS_TRAIT(source, TRAIT_STUNIMMUNE))))`
Notice anything odd about it?
It only checks for `CANKNOCKDOWN`.
What does this mean?
Well, *every single* one of the stun procs used this macro for checking
stun immunity. Which means every method of stun checked the
`CANKNOCKDOWN`.
This means that, say you have a mob which has `CANSTUN` but not
`CANKNOCKDOWN`.
Intuitively this means that the mob cannot be knocked down, but can be
stunned.
But instead, this means the mob can't be stunned either.
This doesn't affect humans, they have all the status flags, but it does
affect some other mobs.
Alien adults (not queens) have `CANUNCONSCIOUS|CANPUSH`. Before, they
didn't have `CANKNOCKDOWN`, so they were fully immune to stuns and
sleeps. But now, they can be knocked unconscious.
However, overall it doesn't change much, as most mobs that flipped off
`CANKNOCKDOWN` flipped off the others too.
For consistency though it makes sense for these flags to work as they
imply.

- `incapacitate` didn't have a signal, now it does

## Why It's Good For The Game

More consistent, better code? I may use this in the future.

## Changelog

🆑 Melbert
refactor: Refactored Stun Absorptions (Bastard Sword, His Grace)
refactor: Refactored Stun Immunity. Note this means that some mobs
which, prior, were immune to all forms of incapacitation are now
vulnerable to some. Notably, adult non-queen xenomorphs are now
vulnerable to falling unconscious.
/🆑

* Refactors the worst list ever, Stun Absorptions, into status effects + makes status flags more accurate (making certain mobs more vulnerable to incapacitations?)

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-18 14:18:06 +01:00
SkyratBot
06b9606beb [MIRROR] Fixes stowing suit storage jetpacks when retracting modsuit chestplates [MDB IGNORE] (#21888)
* Fixes stowing suit storage jetpacks when retracting modsuit chestplates (#75844)

## About The Pull Request

This is a bizare bug I discovered while trying to develop another
feature, so let's just get into the reproduction steps:
- Wear a modsuit and extend it's parts
- Put a jetpack in the suit storage slot and turn it on. Currently, the
only jetpack that fits in the storage slot on TG is the captain's
jetpack.
- While the jetpack is activated, deactivate your modsuit using the UI,
which stows the jetpack into your storage module automatically.
- This fails to unregister some signal thing because it can't find the
user.

My fix *could* be shitcode, so any feedback would be appreciated.

Jetpack activation and deactivation signals now pass a user.
`/datum/component/jetpack/proc/activate(datum/source, mob/user)`
`/datum/component/jetpack/proc/deactivate(datum/source, mob/user)`

Some jetpack `pre_move_react` thing now has a check to see if it's
argument is null.
```
if(!trail)
	return FALSE
```

## Why It's Good For The Game

Stops a crash/runtime.
## Changelog
🆑 stonetear
fix: jetpack signals now pass a user argument. This fixes an error when
automatically stowing a captain jetpack into your modsuit.
/🆑

* Fixes stowing suit storage jetpacks when retracting modsuit chestplates

---------

Co-authored-by: Stonetear <89315023+Stonetear@users.noreply.github.com>
2023-06-18 14:03:59 +01:00
SkyratBot
5d904e1b9a [MIRROR] Fixes coin values [MDB IGNORE] (#21889)
* Fixes coin values (#76066)

## About The Pull Request

This brings coins values back from being severely undervalued after
#75437. Coins are supposed to be made of and worth 400 units of mats,
but the numbers weren't updated and so they were made of significantly
less than that.

## Why It's Good For The Game

Brings coins back to what they're supposed to be worth.
## Changelog
🆑
fix: After destroying unfathomable quantities of excess coins, their
value is back to what it's supposed to be!
/🆑

* Fixes coin values

---------

Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
2023-06-18 14:03:28 +01:00
SkyratBot
9ae188c939 [MIRROR] Glass jaw quirk minor oversight fix [MDB IGNORE] (#21890)
* Glass jaw quirk minor oversight fix (#76088)

## About The Pull Request

The knock out message will no longer appear if the quirk holder is
already unconscious

## Why It's Good For The Game

Less confusing combat messages!

## Changelog

🆑
fix: Glass joes will no longer appear to get knocked out, while already
knocked out.
/🆑

* Glass jaw quirk minor oversight fix

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-06-18 14:03:04 +01:00
SkyratBot
8b7bdc4959 [MIRROR] Shuttle events [MDB IGNORE] (#21917)
Shuttle events

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-18 15:02:04 +02:00
SkyratBot
cefedcfec2 [MIRROR] Fix debug code in progressbar.dm [MDB IGNORE] (#21910)
* Fix debug code in progressbar.dm (#76106)

## About The Pull Request
exceptions need to be thrown

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* Fix debug code in progressbar.dm

---------

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2023-06-18 13:42:36 +01:00
SkyratBot
7b94ae1c04 [MIRROR] Sorts the Greyscale Configs files [MDB IGNORE] (#21891)
* Sorts the Greyscale Configs files

* fix

---------

Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-18 14:34:07 +02:00
SkyratBot
0cd356125a [MIRROR] Fixes a sneaky antag tell with RDS / adds policy support [MDB IGNORE] (#21881)
* Fixes a sneaky antag tell with RDS / adds policy support (#76071)

## About The Pull Request

Fixes being able to tell you are a special role via RDS

Adds policy support to RDS

## Why It's Good For The Game

Someone informed me that RDS was a 100% accurate antag tell you rolled a
delayed spawn antag (like headrev), and that's... a little bad, you can
usually insinuate you may be a headrev but straight up knowing isn't
ideal - doesn't keep everyone on equal playing field.

And while I was there I was like "y'know people might want to set policy
for this" so yeah

## Changelog

🆑 Melbert
fix: Fixed a cheeky way RDS revealed you were an antag before you
actually got antag. Sorry, you know who you are.
config: RDS now has policy.json support, to allow customization of the
roundstart "anti-grief" message.
/🆑

* Fixes a sneaky antag tell with RDS / adds policy support

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-17 11:43:15 -07:00
SkyratBot
e495d90e55 [MIRROR] Plasma flower MOD core from the lavaland patch of eden ruin [MDB IGNORE] (#21824)
* Plasma flower MOD core from the lavaland patch of eden ruin

* Fixes the merge conflict

* Okay, keep your secrets

---------

Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-06-17 11:08:09 -04:00
SkyratBot
0be2943238 [MIRROR] Fixes a possible dupe bug with looming [MDB IGNORE] (#21879)
* Fixes a possible dupe bug with looming (#76059)

## About The Pull Request

Title.
Adds a second amount check to once the do_after() is done to prevent a
possible epic dupe minecraft pay to win server lag machine server crash
glitch.

## Why It's Good For The Game

Bugs are bad

## Changelog

🆑
fix: You can no longer make extra cloth when looming cotton by spamming
do afters.
/🆑

* Fixes a possible dupe bug with looming

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-06-16 17:31:23 +01:00
SkyratBot
5b155fae44 [MIRROR] Blacklist sansufentanyl from medical allergy quirk [MDB IGNORE] (#21876)
* Blacklist sansufentanyl from medical allergy quirk (#76067)

## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/76063. The whole
mechanic of having HMS https://github.com/tgstation/tgstation/pull/75035
is that you have 6 pills to live. If you spawn allergic to those pills
that's going to be a quick end for you.

## Changelog

🆑 LT3
fix: Sansufentanyl won't roll as a potential extreme allergy for
Hereditary Manifold Sickness
/🆑

* Blacklist sansufentanyl from medical allergy quirk

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-16 17:22:55 +01:00
SkyratBot
c0ef533cad [MIRROR] Stops particle holders from appearing on context menu [MDB IGNORE] (#21867)
* Stops particle holders from appearing on context menu (#76006)

## About The Pull Request

Basically, due to carbons using KEEP_TOGETHER, particles were appearing
on the context menu which is annoying. I have no idea why it behaves
like this.
Buuut, giving particle holders the KEEP_APART flag does fix this.

closes https://github.com/tgstation/tgstation/issues/75641

## Why It's Good For The Game

Bugfix good

## Changelog

no

* Stops particle holders from appearing on context menu

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-06-16 10:52:35 +01:00
SkyratBot
9706be5b93 [MIRROR] fix comment in ECS/DCS [MDB IGNORE] (#21733)
* fix comment in ECS/DCS (#75912)

* fix comment in ECS/DCS

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2023-06-15 00:20:13 -07:00
LovliestPlant
372f1c243b Records Console Formatting Support (#21686)
* The Goods

- Preserves whitespace (linebreaks) when viewing records consoles.
- Ditto for printed rapsheets.
- Removes the requirement of logged crimes for printing rapsheets.

* Update RecordPrint.tsx

* merge conflicts
2023-06-15 00:18:11 -07:00
SkyratBot
5e1b6599be [MIRROR] Adds some parenthesis to some bitwise operations [MDB IGNORE] (#21829)
* Adds some parenthesis to some bitwise operations  (#76002)

## About The Pull Request

A set of parenthesis a day keeps weird order of operations away

## Why It's Good For The Game

Might be causing bugs?

## Changelog

🆑 Melbert
fix: Maybe fixes minor bugs in disease cure, revolution, hooded suit
code
/🆑

* Adds some parenthesis to some bitwise operations

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-14 21:44:47 -07:00
SkyratBot
5807f593f4 [MIRROR] Heretic runes are easier to click through and have a windup for clearing them [MDB IGNORE] (#21852)
* Heretic runes are easier to click through and have a windup for clearing them (#75868)

Heretic runes no longer have every single transparent pixel set to 1
alpha, to make it easier to click on objects.

Clearing heretic runes with mansus grasp takes 0.4 seconds of standing
still, to prevent you from accidentally clearing it in combat.

Added code for effect remover element to use a windup if set.

* Heretic runes are easier to click through and have a windup for clearing them

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-06-14 21:40:17 -07:00
SkyratBot
df7455f2a4 [MIRROR] Named barrels [MDB IGNORE] (#21850)
* Named barrels (#75976)

![dreamseeker_qLlw7wAl94](https://github.com/tgstation/tgstation/assets/3625094/747f61a0-533f-4cc2-ac61-2901d2d3afb4)

## About The Pull Request

Barrels are nice stationary reagent containers, but it's hard to use
many of them because they're non-transparent and to see the reagents
with science glasses, you need to open the lid.

Now you can name barrels to not mistake them.

## Why It's Good For The Game

You don't need to open the barrel to figure out what you're going to get
from the tap.

## Changelog

🆑
qol: You can name barrels with a pen now, changing its icon
/🆑

* Named barrels

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-06-14 21:39:09 -07:00
SkyratBot
a7336df57f [MIRROR] The destabilization of your eigenstate can no longer be paused by stripping naked [MDB IGNORE] (#21811)
* The destabilization of your eigenstate can no longer be paused by stripping naked (#75982)

## About The Pull Request

The destabilization of your eigenstate can no longer be paused by
stripping naked.

## Why It's Good For The Game

one of the stages of the eigenstasium od's status effect is causing your
items to teleport off of you

this early returned out if you had no items to teleport off of yourself

and it did this before the line of code that increments the status
effect's progress counter

so if you had no items to teleport, you'd never progress to the later
stages of the status effect

## Changelog

🆑 ATHATH
fix: The destabilization of your eigenstate can no longer be paused by
stripping naked.
/🆑

* The destabilization of your eigenstate can no longer be paused by stripping naked

---------

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2023-06-14 13:25:20 -07:00
SkyratBot
81eb0402b0 [MIRROR] Piracy Inc. Space Extension Interdyne and Ghetto Edition: Adds two new pirate gangs Ex-interdyne Pharmacists and The Grey Tide [MDB IGNORE] (#21804)
* Piracy Inc. Space Extension Interdyne and Ghetto Edition: Adds two new pirate gangs Ex-interdyne Pharmacists and The Grey Tide (#75802)

* Piracy Inc. Space Extension Interdyne and Ghetto Edition: Adds two new pirate gangs Ex-interdyne Pharmacists and The Grey Tide

---------

Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-14 13:23:54 -07:00
lessthanthree
d6b093ec87 Remove cursed, vending machine gibbing/squishing [NO GBP] (#21779)
no squish, no problem
2023-06-11 23:37:08 -04:00
SkyratBot
79febdf95d [MIRROR] New planetary exclusive random event/unfavorable situation, Chasmic Earthquake [MDB IGNORE] (#21778)
* New planetary exclusive random event/unfavorable situation, Chasmic Earthquake (#75864)

## About The Pull Request

https://github.com/tgstation/tgstation/assets/28870487/2451bc69-db1e-420d-9a18-2f899ca65427

This introduces a new unfavorable situation (non-antagonist random
events that dynamic triggers under certain circumstances), restricted to
planetary maps (Icebox). An earthquake occurs, felt by everyone on the
map, forming a fault that tears the a hole somewhere on the station.

The fault zone is indicated by shaking tiles, which gives a chance
(about 30 seconds) for you to move your machinery/property/crewmembers
out of the way. If you're on those tiles when the fault forms, get ready
to take a nasty fall.

Anything caught in the fault zone as it collapses inward will be
destroyed, violently, _before_ being dropped down into the z-level
below.

![image](https://github.com/tgstation/tgstation/assets/28870487/56916c9f-c8da-4ffb-9d8b-7e940e92bbc2)

These can also happen as a random event, however their rarity is on-par
with that of a meteor storm.

This also adds a helper for finding a midpoint turf between two provided
turfs, thanks to ZephyrTFA.

This idea basically possessed me over the course of a few days, and I
found myself unable to work on anything else until I had it complete.
I'm glad its done.
## Why It's Good For The Game

Gives Icebox its own big "environmental disaster" event. I'm hoping it
isn't received as being too destructive, but mind that this is meant to
be an equal to the dreaded meteor storm.

Also makes it so that unfavorable events aren't a coinflip between a
portal storm/rod on planetary maps.
## Changelog
🆑 Rhials
add: Chasmic Earthquake random event, exclusive to Icebox. Tears a huge
chasm in the hull of the station. Watch out for shaking tiles!
sound: Adds sounds for distant rumbling, metal creaking, and rubble
shaking.
imageadd: Achievement icon for getting sucked up in an earthquake chasm.
/🆑

* New planetary exclusive random event/unfavorable situation, Chasmic Earthquake

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-06-11 20:02:20 -07:00
SkyratBot
7537ed425e [MIRROR] Assistants get a liver trait + Officer's sabre banes against them [MDB IGNORE] (#21763)
* Assistants get a liver trait + Officer's sabre banes against them (#75933)

## About The Pull Request

Assistants get a new liver trait, maintenance metabolism. This trait
only lets them process maintenance drugs, grey bull, and pump-up for 20%
more time and gives them a probably-positive 2 minute moodlet when
ingesting these.

The officer's sabre has gained a small amount of bloodthrist for
assistants!

Fixed liver masters being unable to inspect the liver of scientists.

## Why It's Good For The Game

> Assistants get a new liver trait, maintenance metabolism. This trait
only lets them process maintenance drugs, grey bull, and pump-up for 20%
more time and gives them a probably-positive 2 minute moodlet when
ingesting these.

This trait is pretty much entirely here for the actual
liver-identification of assistants the sabre uses, though I didn't want
to just add an empty trait so I gave it the above effects as pretty damn
harmless effects. I'm sure the maints will dislike even this so I'm open
to anything.

> The officer's sabre has gained a small amount of bloodthirst for
assistants! Or at least their livers.

I find the concept of the sabre having a bane against assistants
amusing, and it wouldn't hurt to give them something that may help
against tiders. As a smidgen of fairness, the detection is tied to the
liver - if they want to take less damage they can have it replaced,
though the captain can also help with that by disemboweling organs. The
liver being used for something that isn't reagents processing might be a
bit controversial, but like I said, I'd rather have that than have it
permanently, intrinsically tied to a job.

> Fixed liver masters being unable to inspect the liver of scientists.

Ballmer metabolism quacks like a duck, traits like a duck, and thus
should be able to be duck inspected by the duck master, since there is
no practical difference between it and other 'official' metabolisms.

## Changelog

🆑
add: Assistants get a new liver trait, maintenance metabolism. This
trait only lets them process maintenance drugs, grey bull, and pump-up
for 20% more time and gives them a probably-positive 2 minute moodlet
when ingesting these.
add: The officer's sabre has gained a small amount of bloodthrist for
assistants!
fix: Fixed liver masters being unable to inspect the liver of
scientists.
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Assistants get a liver trait + Officer's sabre banes against them

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-06-10 19:43:38 -07:00
SkyratBot
ff12ce83f4 [MIRROR] Late adjustments to my previous move_loop PR. [NO GBP] [MDB IGNORE] (#21730)
* Late adjustments to my previous move_loop PR. [NO GBP] (#75778)

## About The Pull Request
Lemon guy was a bit too late in reviewing #75732 because it got already
merged by someone else, and I too hadn't managed to make some adjustment
to that PR in time.

This PR applies suggested changes, turns a simple proc into a macro, and
makes it so that also waddling, squeaky shoes and swivel chair sounds
don't running when moved by conveyor belt.

This doesn't stop squeaking from happening when other
conveyor-belt-moved objects or mobs cross its tile. That'd be hacky and
I'm not here to fight sfx-spamming machines.

## Why It's Good For The Game
These are changes that should have been included in #75732 but couldn't.
See that PR for the general idea.

## Changelog

🆑
fix: waddling, squeaky shoes and swivel chair sound effects no longer
run when moved by conveyor belt.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* Late adjustments to my previous move_loop PR. [NO GBP]

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2023-06-10 19:27:42 -07:00
SkyratBot
6a88a61190 [MIRROR] Fixes links to AI doc [MDB IGNORE] (#21750)
* Fixes links to AI doc (#75940)

Arm rewrote this file in c500ccb9ea but
never updated the links to the new file name

MUH UX REEEEEEEEE

* Fixes links to AI doc

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-06-11 00:41:00 +01:00
SkyratBot
6a4d88b731 [MIRROR] It's Nice To Be Unique: Adds new quirks to pick up! [MDB IGNORE] (#21694)
* It's Nice To Be Unique: Adds new quirks to pick up!

* fix

---------

Co-authored-by: Charlotte <98856144+orthography@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-07 16:01:24 +00:00