Commit Graph

2718 Commits

Author SHA1 Message Date
SkyratBot
bb7b80d30a [MIRROR] Makes the turbine core part remove references on deactivation [MDB IGNORE] (#25871)
* Makes the turbine core part remove references on deactivation (#80593)

## About The Pull Request
The delete the world test was showing that the turbine's non-core parts,
the compressor and outlet were causing runtimes, so I made the
deactivation of the core remove the references from the secondary
turbine parts
## Why It's Good For The Game
Less harddels means less lag, hopefully

No changelog since nothing player facing

* Makes the turbine core part remove references on deactivation

---------

Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
2023-12-27 09:46:53 -05:00
Gandalf
9361376345 PDA update (Messenger works while dead, Microwave works, etc). (#80069) [REMIRROR] (#25829)
* PDA update (Messenger works while dead, Microwave works, etc). (#80069)

This is an update that touches many more things all at once (compared to
my other PRs) meant to make PDAs in general feel more consistent and not
take away from one of the experiences we want to encourage: interaction
between players.

1. Replaced all checks of a 'pda' with a 'modular pc'. This means
technically (though not done in-game currently) other modpcs can hold an
uplink, and microwaves can charge laptops.
2. Speaking of microwave, they now don't break and require
deconstruction if the cell is removed mid-charge.
3. When a Mod PC is out of power, it will now allow the Messenger to
work (which now also doesn't consume any additional power), if the app
exists on the PC. Here's a video demonstration

https://github.com/tgstation/tgstation/assets/53777086/7ae12f81-a271-49b8-95fa-2ba54d2e2d1f

4. Flashlights can't be turned on while the cell is dead
5. I replaced a bunch of program vars with ``program_flags`` and renamed
``usage_flags`` to ``can_run_on_flags``.
6. Added a debug modPC that has every app installed by default. Mafia
had some issues in the past that were unknown because Mafia wasn't
preinstalled with any tablet so was never in create & destroy nor in any
other unit test. This was just an easy solution I had, but PDAs should
get more in-depth unit tests in the future for running apps n stuff- I
just wanted to make sure no other apps were broken/harddeling.

Currently when a PDA dies, its only use is to reply to PDA messages sent
to you, since you can still reply to them. Instead of just fixing it and
telling players to cope, I thought it would be nice to allow PDA
Messenger to still work, as it is a vital app.
You can call it some emergency power mode or whatever, I don't really
mind the reason behind why it is this way.

When I made cells used more on PDAs, my main goal was to encourage
upgrading your PDA and/or limiting how many apps you use at once, I did
not want this to hit on players who use it as a form of interaction.
This is the best of both worlds, I think.

The rest of the changes is just for modularity, if some downstream wants
to add tablets, phone computers, or whatever the hell else, they can
still get just as far as PDAs should be able to get to, hopefully.

🆑
add: PDAs with a dead power cell are now limited to using their
Messenger app.
fix: Microwaves now stop charging PDAs if the cell was removed
mid-charge.
fix: Microwaves can now charge laptops.
fix: PDA Flashlights can't be turned on while the PDA is dead.
fix: You can now hold a laptop up to a camera (if it has a notekeeper
app installed) like PDAs already could.
/🆑

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

* ok

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-12-24 23:20:11 +00:00
SkyratBot
9a3fb5c5c1 [MIRROR] FOV is Dead (Long Live FOV) [MDB IGNORE] (#25600)
* FOV is Dead (Long Live FOV)

* Update _megafauna.dm

* Update _vehicle.dm

* FOV Hotfix: Actually offsets gameplane render relays

* removes redundant visual_shadow

* removes GAME_PLANE_UPPER references

* Update mob_movement.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-23 17:47:07 +00:00
SkyratBot
dd80cef2da [MIRROR] Fire Alarm Lights (Lit version) (Also lumin cleanup) [MDB IGNORE] (#25677)
* Fire Alarm Lights (Lit version) (Also lumin cleanup) (#80384)

## About The Pull Request
[Removes redundant uses of
luminosity](dd4ec1fc73)

I had a bunch of these left over from an old pr, sweep sweep (Made
redundant because mobs can see through all byond darkness now)

[Starts working on the fire alarm
lighting](b555ba00c6)

Dimmer but wider fire alarms, dimmer but MUCH wider lights. The idea is
to highlight fire alarms while providing a not pitchblack but vibey
space.

## Why It's Good For The Game

https://github.com/tgstation/tgstation/assets/58055496/5058bab4-0b04-4891-82d7-e3130711e5d0

Looks nice

## Changelog
🆑
fix: Fire alarms no longer cause pitch blackness, instead creating a
dark but not black red light.
/🆑

* Fire Alarm Lights (Lit version) (Also lumin cleanup)

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-12-17 10:03:45 -05:00
SkyratBot
f5bbf0c139 [MIRROR] Delamination variants are now locked in after the countdown is reached [MDB IGNORE] (#25645)
* Delamination variants are now locked in after the countdown is reached (#80324)

## About The Pull Request

Does what it says on the tin.
## Why It's Good For The Game

This effectively changes one and only one thing:

The "All Within Theoretical Limits" achievement is easier/fairer to get
with this. Previously, if you edged a crystal with the gas composition
method to get a resonance cascade, you had to make sure that your gas
composition stayed until it left the explosion point, which made the
achievement extremely finnicky and unfun to get this way. Regular
delaminations won't really be affected, because yeah. It's at the
explosion point. What are you going to do about it?

This makes the achievement easier to cheese, but honestly, in my opinion
as person who added the achievement, meh. If people feel like this isn't
good for the achievement, say something in the comments.

Closes #79528

## Changelog
🆑
balance: Delamination variants no longer change once the explosion point
has been reached.
/🆑

* Delamination variants are now locked in after the countdown is reached

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
2023-12-15 17:36:11 -06:00
SkyratBot
f96b1e24b7 [MIRROR] Compromised APCs now flicker their darkblue screen, and it cannot be seen from cameras. [MDB IGNORE] (#25627)
* Compromised APCs now flicker their darkblue screen, and it cannot be seen from cameras.

* Update atom_hud.dm

* Update hud.dm

* Update apc.dm

---------

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-12-15 11:18:02 -05:00
SkyratBot
903cf1d211 [MIRROR] Holiday Supermatter [MDB IGNORE] (#25575)
* Holiday Supermatter (#80254)

## About The Pull Request

Adds some festive season cheer to the SM. Santa hat not included.

![xmas_sm](https://github.com/tgstation/tgstation/assets/83487515/ccd42eea-2282-40aa-8a0e-8fe8f4a1dadc)

## Changelog

🆑 LT3, Majkl-J
image: SM now has holiday lights
image: You can now put a santa hat on the SM
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Holiday Supermatter

* Update code/modules/power/supermatter/supermatter.dm

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-12-12 19:03:15 -05:00
SkyratBot
a4e0b1c66c [MIRROR] Update cable coil examine text [MDB IGNORE] (#25557)
* Update cable coil examine text  (#80232)

## About The Pull Request

Change examine description to properly indicate how to actually change
cable layering (via using cable coil in hand).
Also hints that there are other applications for this item.

* Update cable coil examine text

---------

Co-authored-by: Vorpal Void <60776130+vorpal-void@users.noreply.github.com>
2023-12-11 21:03:16 -05:00
SkyratBot
b15b16976a [MIRROR] Attack chain refactoring: Broadening tool_act into item_interact, moving some item interactions to... atom/item_interact / item/interact_with_atom [MDB IGNORE] (#25516)
* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`

* Patches up merge skew (#80197)

## About The Pull Request

Yeah #79968 (1e76fd70b4) was not
compatible with master but no one said anything on the PR so i got
jebaited into merging it. The code should be up to the same standards
per the documentation I read (preventing thwacking the target in certain
situations while not returning anything in other situations)

master will definitely compile now though

* Patches up merge skew

* Merge conflicts

* Modular adjustments

* Removes this entirely duplicated proc...

* Update tool_override.dm

* Update weldingtool.dm

* Update tool_override.dm

* Update tool_override.dm

* Nope. Copy paste begone.

A skyrat edit is so much easier to deal with here

* Update brand_intelligence.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-09 08:22:19 -05:00
SkyratBot
41ea46d5f2 [MIRROR] Scopes NODECONSTRUCT_1 from flags_1 to obj_flags [MDB IGNORE] (#25496)
* Scopes `NODECONSTRUCT_1` from `flags_1` to `obj_flags`

* Update bitfields.dm

* Modular

* Update rack.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-08 23:24:46 -05:00
SkyratBot
53c3282f7e [MIRROR] Nar'Sie Only Ends The Round After Specific Proc Is Called [MDB IGNORE] (#25464)
* Nar'Sie Only Ends The Round After Specific Proc Is Called (#80127)

## About The Pull Request

Addresses at least one aspect of
https://github.com/tgstation/tgstation/issues/80125#issuecomment-1839262085

Nar'Sie will no longer end the round unless a specific proc is invoked.
There is a button in the VV Dropdown (although it is painful to get to
because the icon is so long) to invoke this proc (which is confirmation
guarded). Calling this proc directly via Atom Proccall will also give
you a confirmation prompt as well.
## Why It's Good For The Game

We trivially need to know what Nar'Sie looks like at times or just need
to access some variables about it, this greatly lowers the odds that the
whole round will be completely wacked out just because of this. It also
provides a nice QoL for admins to spawn in Nar'Sie and then varedit the
image to be of a cute kitty cat, and only after their setup is complete
can they start to torture players.
## Changelog
🆑
admin: Spawning in Nar'Sie will no longer automatically trigger the
round-ender, you need to specifically start this chain of events through
the new VV Dropdown Option "Begin Nar'Sie Roundender".
/🆑

* Nar'Sie Only Ends The Round After Specific Proc Is Called

---------

Co-authored-by: san7890 <the@san7890.com>
2023-12-06 00:54:21 -05:00
SkyratBot
4c01e3f805 [MIRROR] Demotes the "electrical conductivity" flag from flags_1 to obj_flags [MDB IGNORE] (#25381)
* Demotes the "electrical conductivity" flag from `flags_1` to `obj_flags` (#80033)

## About The Pull Request

Code to handle this flag only ever existed on the `/obj` sublevel, so
there's no need for it to be on the `/atom` level `flags_1`. There was
probably a point in time in which mobs or turfs conducted electricity
but there's zero code for it anymore so we truly just live in a society
now.
## Why It's Good For The Game

Frees up a slot on `flags_1` (which is really nice actually), proper
scoping of certain bitflag stuff, etc.
## Changelog
Not relevant to players.

I may have screwed something up, will be doing a few passes on this
myself to ensure all the search and replaces went alright but we should
be good™️

* Demotes the "electrical conductivity" flag from `flags_1` to `obj_flags`

* Modular

* Update misc.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 07:58:26 +00:00
SkyratBot
2c8f0151a4 [MIRROR] Adds INTJ skillchip [MDB IGNORE] (#25223)
* Adds INTJ skillchip (#79902)

## About The Pull Request

Adds a new skillchip, it lets you taste food by examining it.

![image](https://github.com/tgstation/tgstation/assets/7483112/666ab42e-2918-43e5-835c-99c71a552325)
This has all of the effects of tasting food (various moodlets based on
quality and food type) and can also trigger food allergies if you have
them, however it does not consume the food nor give you any nutritional
benefit.
You can buy it from a vendor or sometimes it spawns in maintenance.

## Why It's Good For The Game

The players are constantly clamouring for more additions to our most
loved and useful feature, skill chips.
<details>

![intj](https://github.com/tgstation/tgstation/assets/7483112/58de56aa-b4bc-48fc-8c22-fa9c7a74314b)

</details>

## Changelog

🆑
add: A new skill chip can be found in maintenance or purchased from the
vendor, allowing you to experience food in new and exciting ways.
add: Abductors also have access to this incredible power, simply using
their genius level brains.
/🆑

* Adds INTJ skillchip

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-11-23 19:02:29 -05:00
SkyratBot
3fa98bd2cc [MIRROR] Adds UPSIDE_DOWN movetype for negative gravity / makes Atrocinator affected by less things [MDB IGNORE] (#25155)
* Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things (#79785)

## About The Pull Request

Fixes #79764

I was going to tackle this issue by slamming `TRAIT_NO_SLIP_ALL` on
Atrocinator users and calling it a day, but like, that didn't feel
proper.

So I thought hey, we could just give them the flying movetype, even
though they technically aren't flying it means they're unaffected by
things that flying would make you unaffected by.

Nope, this means the mob technically "negates gravity", so no falling
and no feetsteps.

Let's try floating - this give us feetsteps but no falling upwards.

So instead of going back to square one, with `TRAIT_NO_SLIP_ALL`, I
decided to go for the more complex route of just adding a movetype.

Hence, move type `UPSIDE_DOWN`. This covers situations where a mob would
be "floating" above the ground, but still walking. ...Negative gravity.

This means overall the Atrociator acts more as you'd expect - you don't
slip on ice, you don't trigger bear traps or mouse traps, you can walk
over railings, unaffected by conveyor belts, etc.

## Why It's Good For The Game

Makes the Atrocinator a lot more consistent with how you'd expect for it
to work.

Admittedly it is a bit niche use of movetypes, but it can possibly be
expanded to more things in the future, who knows? I applied it to mobs
on meat spikes (even though they don't move), just for proof of concept.

## Changelog

🆑 Melbert
fix: Atrocinating mobs will now behave more as you'd expect. Meaning
they don't slip on wet patches, can't trigger bear traps / landmines /
mouse traps, ignore conveyors, and can walk over tables and railings.
fix: Floating mobs are unaffected by conveyor belts, acid (on the
ground), glass tables
fix: Floating mobs won't squish stuff like roaches anymore
fix: Fixes bear traps triggering on floating / flying mobs
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2023-11-20 17:10:59 -05:00
SkyratBot
b557e89855 [MIRROR] More standardization for ghost notifications (READY) [MDB IGNORE] (#25104)
* More standardization for ghost notifications (READY) (#79596)

## About The Pull Request
I'm still not satisfied with how ghost notifications work. This gives
every notification with a source (99% of all notifications, in other
words) a link to jump/orbit. Currently, notifications with "play"
interactions would only get the interact link, so jumping to the source
was pretty annoying.

It removes posting the entire message in the alert tooltip, as some got
pretty lengthy and it didn't seem to fit. To replace this, they will
always use headers

After:

![image](https://github.com/tgstation/tgstation/assets/42397676/debfce52-3627-4a43-8663-33d61d893161)

![image](https://github.com/tgstation/tgstation/assets/42397676/01f299ae-dc6a-45f8-a97a-cb2c815088b2)

![image](https://github.com/tgstation/tgstation/assets/42397676/99567376-063e-458e-af2a-2dd4306747cc)

NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference
seems to be whether it's a turf. The result shaves off some redundant
lines of code, since most-every usage of notify_ghosts uses
NOTIFY_ORBIT.
## Why It's Good For The Game
More standardization for the ghost notification system. Adds a few alert
headers that never had them. All in all, makes it easier for creators to
throw alerts at ghosts
## Changelog
🆑
qol: Nearly every ghost alert should now feature a "VIEW" button, even
those with click interaction.
del: Ghost alerts no longer show the entire message in the tooltip,
instead have been replaced with titles.
/🆑

* More standardization for ghost notifications (READY)

* Modular

* Update outpost_of_cogs.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-19 11:25:32 -05:00
SkyratBot
aebd6740c4 [MIRROR] Fixes delam counter incorrect reset on delam [MDB IGNORE] (#25113)
* Fixes delam counter incorrect reset on delam (#79805)

## About The Pull Request

Fixes the delam counter being off by 1 when a delam happens, it should
reset to 0 next round, not 1.

## Changelog

🆑 LT3
fix: Delam counter will correctly show 0 the shift after a delam
/🆑

* Fixes delam counter incorrect reset on delam

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-11-19 08:51:41 -05:00
SkyratBot
34f28b66b2 [MIRROR] Add prior material amount check to turbine part upgrade [MDB IGNORE] (#25032)
* Add prior material amount check to turbine part upgrade (#79742)

## About The Pull Request

Currently, upgrading turbine parts will use materials every time the
user clicks on it while the upgrade process is active.
The user will now spend a certain amount of materials regardless of the
number of clicks.
## Why It's Good For The Game

It doesn't make sense to spend more materials for the same result.
## Changelog
🆑 mogeoko
fix: Turbine parts will now use an amount of materials no greater than
needed for the upgrade
/🆑

* Add prior material amount check to turbine part upgrade

---------

Co-authored-by: mogeoko <109075486+mogeoko@users.noreply.github.com>
2023-11-15 21:27:34 -05:00
SkyratBot
dd5ac5c780 [MIRROR] Removes weird arg in machinery get_room_area [MDB IGNORE] (#24993)
* Removes weird arg in machinery `get_room_area`

* Update light.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-14 04:16:54 +00:00
SkyratBot
dbd9dfa66b [MIRROR] All vehicles can no longer cross Force Fields [MDB IGNORE] (#24841)
* All vehicles can no longer cross Force Fields (#79553)

## About The Pull Request

Fixes #78625

The check only applied to mecha vehicles, when in reality there
shouldn't be any vehicle that can freely transverse containment fields,
since that vehicle will have a mob in it, which itself shouldn't be
allowed to traverse containment fields.
## Why It's Good For The Game

Makes behavior more consistent and expectable.
## Changelog
🆑
fix: All vehicles (such as VIMs operated by a mouse or a lizard) will no
longer be able to phase through containment fields.
/🆑

* All vehicles can no longer cross Force Fields

---------

Co-authored-by: san7890 <the@san7890.com>
2023-11-07 03:18:54 -05:00
SkyratBot
596b2f050e [MIRROR] Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls [MDB IGNORE] (#24804)
* Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls

* Update supermatter.dm

* Modular

* More modular

* Update cortical_borer_egg.dm

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-05 22:01:17 -05:00
SkyratBot
761cdc3d20 [MIRROR] Station announcements cleanup [MDB IGNORE] (#24792)
* Station announcements cleanup

* Fix diffs

* Space indentation

* skyrat edits

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-05 01:58:16 -05:00
SkyratBot
eb75696ae9 [MIRROR] [NO GBP]Fixes tesla zaps. [MDB IGNORE] (#24698)
* [NO GBP]Fixes tesla zaps. (#79398)

## About The Pull Request
Closes #79297
Closes #79312

Due to the new cutoff parameter being added to tesla_zap() (from
#78310), and most callers used positional arguments instead of keywords,
the zap flags was getting fed the shocked_targets list and maybe other
junk. This caused a bunch of unusual phenomena. This is fixed by using
keyword arguments.

Tesla zaps that use the grid were significantly weaker in terms of
damage than they're supposed to be. This was a byproduct of trying to
convert everything to joules and removing unnecessary power multipliers.
This is fixed by reverting the damage scaling and zap power of zap
sources that aren't based on grid. Technically this will cause the zaps
from other sources to have less power, but these tend to not be able to
put power on grid, so this wouldn't have any change other than what a
grounding rod displays. Doesn't really matter.

Logs machine explosions from zap_act. Not the most helpful log (would
take a lot of effort to add an extra parameter to pass the source), but
better than nothing.

Probably other stuff I did, lol.
## Why It's Good For The Game
Stops zap fuckery. Admins can now find the explosions when a 9GeV engine
decides to go haywire or whatever.
## Changelog
🆑
fix: Fixes tesla zaps being weird.
admin: Logs explosions from explosive zaps.
/🆑

* [NO GBP]Fixes tesla zaps.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-10-31 10:29:50 -07:00
SkyratBot
a32c7ed2da [MIRROR] Partially reverts ghost announcements [MDB IGNORE] (#24564)
* Partially reverts ghost announcements (#79221)

## About The Pull Request
#79139 turned out to be quite annoying, it wasn't taken into account
that these alerts can stack (ie: spiders).

Of course, I poked around the code and found some inconsistencies in the
process. For instance, there were usages of Topic for custom action
behavior which could've been consolidated. There were other instances
where jump (the default action) doesn't give a link at all, which I
think it should anyway, since the screen toast gives you this.

I've standardized it more, meaning you can use "NOTIFY_PLAY" without
writing a custom link and topic handler (for instance, MMIs)
## Why It's Good For The Game
Fixes #79198
Fixes #79195
## Changelog
🆑
fix: Ghost alerts have been tuned down a bit.
/🆑

* Partially reverts ghost announcements

* Update cortical_borer_egg.dm

* Update cortical_borer_egg.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-24 20:24:13 +00:00
SkyratBot
682e4cbdfb [MIRROR] Don't play SM dusting noise for emitter beams [MDB IGNORE] (#24496)
* Don't play SM dusting noise for emitter beams (#79140)

## About The Pull Request
Shifts the dusting sound to not happen for EVERY projectile, to instead
only projectiles which would deal damage to the supermatter. Introduced
by #79024.
## Why It's Good For The Game
I assume this wasn't intentional in which case bugs bad, I squash bug
## Changelog
🆑
fix: Kisses and emitters no longer make the SM crystal scream so much.
/🆑

* Don't play SM dusting noise for emitter beams

---------

Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
2023-10-21 15:16:53 -04:00
SkyratBot
27d894493b [MIRROR] Makes supermatter charged singularity damage the eyes of viewers [MDB IGNORE] (#24451)
* Makes supermatter charged singularity damage the eyes of viewers (#79044)

## About The Pull Request

Mostly made this for the component for admin abuse but let's put it on
supermatter singulo as well. Screaming as your eyes fail you while your
station is being consumed seems like it would be !!fun!!

## Changelog

🆑 ninjanomnom
balance: It damages your eyes to look at the supermatter singularity
/🆑

* Makes supermatter charged singularity damage the eyes of viewers

* Modular compiler errors

---------

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-20 03:45:46 +00:00
SkyratBot
b6da56408e [MIRROR] A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc [MDB IGNORE] (#24430)
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024)

## About The Pull Request

- Refactored `bullet_act`. Adds `should_call_parent` and refactors
associated children to support that.
   - Fixes silicons sparking off when hit by disabler fire.
- Desnowflakes firing range target integrity and cleans up its
bullet-hole code a bit.
- Cleans up changeling tentacle code a fair bit and fixes it not taking
off throw mode if you fail to catch something.
   - The Sleeping Carp deflection is now signalized
- Nightmare projectile dodging is now signalized and sourced from the
Nightmare's brain rather than species
- Refactored how cardboard cutouts get knocked over to be less
snowflaked / use integrity
- Also adds projectile `on_hit` `should_call_parent` and cleans up a bit
of that, particularly their arguments.
- On hit arguments were passed wrong this entire time, it's a good thing
nothing relied on that.

## Why It's Good For The Game

This is cringe.

1863eb2cd8/code/modules/mob/living/carbon/human/_species.dm (L1430-L1442)

Bullets should overall act more consistent across mob types and objects.

## Changelog

🆑 Melbert
fix: Silicons don't spark when shot by disablers
fix: Changelings who fail to catch something with a tencacle will have
throw mode disabled automatically
fix: Fixes occasions where you can reflect with Sleeping Carp when you
shouldn't be able to
fix: Fixes some projectiles causing like 20x less eye blur than they
should be
refactor: Refactored bullet-mob interactions
refactor: Nightmare "shadow dodge" projectile ability is now sourced
from their brain
/🆑

* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc

* Modular changes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-19 22:18:41 -04:00
SkyratBot
13c3014498 [MIRROR] [NO GBP]Fix tesla coil zaps. [MDB IGNORE] (#24447)
* [NO GBP]Fix tesla coil zaps. (#79061)

## About The Pull Request
Fixes tesla coil zap cutoff being scaled high when it didn't need to.
Tesla coil zaps didn't scale with the old power scaling before it got
removed, so the tesla coil zaps got nerfed due to the scaling changes of
zap effects. This PR does not fix the fact that tesla coil zaps will
deal less damage though. An easy clean fix doesn't seem possible, and
adding a damage multiplier is cringe.

For fixing tesla coil zap damage, the only reasonable solution seems to
be to unscale almost every other zapper (the vast majority of them don't
seem to be able to power the grid, so it doesn't matter), and then
scaling zap damage scaling back up. I haven't setup my development
environment yet, so I'll fix that in another PR.
## Why It's Good For The Game
So the tesla coil doesn't need unreasonably high requirements to zap
properly.
## Changelog
🆑
fix: Fixed tesla coil zaps cutting off too early.
/🆑

* [NO GBP]Fix tesla coil zaps.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-10-19 20:54:56 -04:00
SkyratBot
1f3e1c3753 [MIRROR] Fix APC cell removal runtime [MDB IGNORE] (#24427)
* Fix APC cell removal runtime (#79077)

## About The Pull Request

Someone implemented `Exited` but didn't remove this code, it's not
necessary and all it does is runtime now.

* Fix APC cell removal runtime

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-10-19 03:41:22 -04:00
SkyratBot
08c99f9478 [MIRROR] Improves code for power usage of energy weapons [MDB IGNORE] (#24323)
* Improves code for power usage of energy weapons

* Modular update

* This comment was wrong, it was 10 before

* One last modular

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-14 01:35:36 +00:00
SkyratBot
e6d08225d2 [MIRROR] General code maintenance for rcd devices and their DEFINE file [MDB IGNORE] (#24300)
* General code maintenance for rcd devices and their DEFINE file

* Update window.dm

* Update window.dm

* Update window.dm

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-12 14:46:29 -04:00
SkyratBot
ae2c7f8fbb [MIRROR] Basic Constructs: parent type + Harvester [MDB IGNORE] (#24258)
* Basic Constructs: parent type + Harvester (#78807)

## About The Pull Request

I kind of hate cult as a whole, but I like these little guys. Let's
basic-ize them.

This PR begins the process with the harbinger of the Red Harvest, the
Harvester! Their actual capabilities have been changed very little,
except that most of their unique properties have been moved to
components and elements. The basic parent type of constructs has also
been set up to make the next bunch of conversions easier.

- Constructs capable of repair now receive the healing hands component.
Healing hands has been extended, to allow the healing particles to come
in custom colors, and to allow it to print the target's health if the
target is not a carbon.
- Repairing constructs also receive a new element: Structure repair is a
lighter-weight variant on healing hands that allows repairing clicked-on
atoms of specified types.
- Constructs capable of damaging walls, meanwhile, receive the wall
smasher element.

Harvesters in specific have two special elements:
- The existing "amputating limbs" element, making them instantly rip a
limb off of any carbon they attack. As before, if they attempt this on a
carbon with no arms or legs, the harvester will hear Nar'Sie's call to
bring the victim to her.
- A new "wall walker" element, allowing them to walk through walls of
specified type (cult walls for harvesters) and allowing them to drag any
atom through as well.

Other than laying the groundwork, there's not much else here. I started
with Harvesters specifically because they are only ever
player-controlled, which makes things easy.

I'm not completely happy with the use of healing hands here - it gets
the job done, but currently loses a bit of the previous flavor (a
healing beam as a visual; printing the target's health in cult span). I
may extend it further to allow this behavior.

I've included an UpdatePaths script, even if these things shouldn't be
mapped, just in case something fucky is going on on a downstream. You
never know.
## Why It's Good For The Game

Constructs, currently, occupy _19_ spots on the simple animal list. This
is something close to 10% of all the remaining ones. Also, like
everything to do with cult, construct code is janky, old, and
desperately in need of updating. This is the first step.
## Changelog
🆑
refactor: Harvester constructs have been updated to the basic mob
framework. This should have very little impact on their behavior, but
please report any issues.
/🆑

---------

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

* Basic Constructs: parent type + Harvester

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-10-10 18:37:00 -04:00
SkyratBot
0c9149bf35 [MIRROR] Refactor gib code to use bitflags and have documentation [MDB IGNORE] (#24143)
* Refactor gib code to use bitflags and have documentation

* Modular updates

* Modular updates

* Modular updates

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 15:00:17 -04:00
SkyratBot
f5eb6b48b8 [MIRROR] [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. [MDB IGNORE] (#23887)
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. (#78310)

## About The Pull Request
Zap strength is now measured in joules. Scales everything to account for
this.

NT CIMS will now display the zap power transmission in watts, instead of
a modifier. This will allow you to actually see how much power the
supermatter is generating accurately, without knowledge of hidden
multipliers. NT CIMs will also show the internal energy gain from heat
in eV/K/s, so you can easily figure out how internal energy gain works,
and how much energy gain it actually gives. The internal energy
measurement will also adjust its prefix. Internal energy is now a
measure of internal energy, rather than internal energy density,
removing the "/cm^3".

Here is what it looked like:
![Screenshot
(25)](https://github.com/tgstation/tgstation/assets/58013024/781323d4-db91-4a78-9a46-8152022993ed)

This image was created on an earlier commit where the numbers were wrong
due to a hidden multiplier that got removed later, so keep that in mind.

Also fixes inactive supermatters unnecessarily scaling delta time. The
high energy (>5GeV) additional zaps now also scale with delta time.

The code in this PR is absolute garbage trash and there are some major
issues, so I'm drafting this for now.
## Why It's Good For The Game
Makes it more clear what the factors add, and also how much power the SM
is releasing. Zap strength being measured in joules will simplify a lot
of things, making power balance more clear rather than guessimating.
Adjusting the prefix for internal energy is just the natural thing to
do. The per cubic centimeter part of internal energy would imply it is
energy density, however it is functionally not. It would probably
confuse people thinking the volume of the turf or the size of the
supermatter actually matters for what the internal energy does, when it
does not (except for gas absorption I guess, which changes heating/mol
requirements, but nothing else), so I am removing that part.
## Changelog
🆑
qol: NT CIMs shows how much power the supermatter is releasing.
qol: NT CIMs internal energy will adjust its prefix.
qol: Energy displays (such as multitooling grid) will use the full range
of SI prefixes available, up to the peta prefix if you somehow managed
to reach that.
del: Removes the per cubic centimeter part of internal energy.
fix: Fix unnecessary delta time scaling on inactive supermatters.
fix: Fix high energy zaps not scaling with delta time.
fix: Fixes grounding rods lying about potential power you can generate.
code: Convert supermatter_zap() and tesla_zap() zap_str argument unit to
be in joules, and scales everything that uses that argument.
/🆑

* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-09-24 23:24:04 -07:00
lessthanthree
4e0b194313 [MANUAL MIRROR] Supermatter Surge Event (#23811)
* Supermatter Surge Event (#78244)

## About The Pull Request

Adds a new random event, Supermatter Surge.

For the duration of the event a powerloss inhibition is added, causing
the crystal to retain more of its internal energy. Engineers have to
keep the crystal stable for a few minutes until it passes.

The amount of additional heat is balanced around a roundstart nitrogen
engine with no freezers running (*icebox has freezers because planetary)
so that even the most basic setup can reasonably be responded to.

The event requires at least 3 engineering crew (or one CE) to run.

engine_alert3.ogg is a shortened version of bloblarm.ogg

## Why It's Good For The Game

Adds an engineering related event that while isn't too difficult to
respond to, makes the SM less of a 'set it and forget it' piece of
equipment in the round. The gas properties reduce heat generation as it
depletes during the event progression, so it remains relatively under
control compared to a massive 10K+ SM fire.

It creates a series of events that engineers can respond to in their own
way, be it adding more cooling, throwing in freezers, using a borg with
a fire extinguisher or whatever else they can think of.

## Changelog

🆑 LT3
add: New random event: Supermatter Surge
code: Individual supermatter crystals can have custom gas properties
/🆑

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>

* remove Skyrat modular

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-09-19 13:22:48 -07:00
SkyratBot
22090011f3 [MIRROR] Adds a new component so that items that are "attached" to walls will now drop/deconstruct on turf destruction. [MDB IGNORE] (#23722)
* Adds a new component so that items that are "attached" to walls will now drop/deconstruct on turf destruction. (#77417)

## About The Pull Request

Adds a new component, called wall_mounted, which applies on the
wallframe objects on construction, as well as a number of wall frame
objects and structures to cover mapped in, roundstart objects of the
like.
I might have forgotten a few, but this covers the vast majority that
players will run into in a given round.

This will cover wall destruction, turf explosion, the whole nine yards,
and call that object/structure/machine's deconstruct proc. We have some
special handling for intercoms as well since they're apparently items.

So most basic case is this: You have a wall. that wall holds a sign. If
you examine the wall, it tells you that the wall is currently supporting
the **Example Sign**. It tells you that if the wall is damaged or
destroyed, the sign will **fall off the wall.** So, if you were to
welder, bomb, or hulk your way through that wall, it would call the
deconstruct() proc on that sign, and fall off the wall, leaving an item
sign at the foot of the wall.

## To-Do

- [x] Stop breaking all wallmounts when operating shuttles (Signal
conflict with COMSIG_TURF_CHANGED 😔)
- [x] Confirm that the ~~deconstruct~~ designated proc of each wallmount
falling is sane for the intended object
- [x] Clean up the contents of the wall_mounted component to reduce
copy-paste on object init.
- [x] Add it to more stuff that may just not have a directional helper?
- [x] ~~Change how APC construction is handled to make it easier!~~
- [x] ~~Don't accidently nerf malf AI into the ground I guess~~

## Why It's Good For The Game

Closes #22283.
Helps close more of #47526.
Closes #54983.
Closes https://github.com/wall-nerds/wallening/issues/90.

All of these objects are "wall mounts". It stands to reason that they're
mounted to the walls they appear to be attached to. This attempts to
rectify them by giving them a turf link to the turf they're mounted to,
and then upon changes to that turf, dropping or breaking that object.
It'll need a little more polish to get to 100%, since I can see a few
more issues to iron out first, but I'm dropping this here for now to get
some feedback and put some fire under me to get this completed.

## Changelog

🆑
add: Wall mounted objects (Things like APCs, Air Alarms, Light switches,
Signs, Posters, Newscasters, you name it) will now fall to the ground
and break or deconstruct when their attaching wall is changed or broken.
/🆑

* Adds a new component so that items that are "attached" to walls will now drop/deconstruct on turf destruction.

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2023-09-17 14:38:26 -04:00
SkyratBot
3f6b96e000 [MIRROR] second pass over the SC/FISHER code, incl. bitflags and PDAs [MDB IGNORE] (#23705)
* second pass over the SC/FISHER code, incl. bitflags and PDAs

* Update flashlight.dm

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-09-15 12:28:44 -04:00
SkyratBot
78884b97fa [MIRROR] Fixes infinite power exploit. [MDB IGNORE] (#23696)
* Fixes infinite power exploit. (#78321)

Fixes an exploit that allows tesla coils to duplicate >7GeV supermatter
zaps. Does this by dividing the new zap value by the power multiplier
instead of blindly halving it.
## About The Pull Request
Tesla coils no longer exponentially duplicate >7GeV supermatter zap
power.
## Why It's Good For The Game
Prevents this from happening:

![DA66945A-8135-472F-BA9B-EA387A831469](https://github.com/tgstation/tgstation/assets/58013024/1dadc9a5-8790-4a84-8d42-0ad9f176eb9f)
## Changelog
🆑
fix: Fixes tesla coils duplicating the power of >7GeV supermatter zaps.
/🆑

* Fixes infinite power exploit.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-09-14 23:36:49 -07:00
SkyratBot
dd6f51d9b6 [MIRROR] Supermatter Delamination Balance Changes (Real) [MDB IGNORE] (#23670)
* Supermatter Delamination Balance Changes (Real) (#77996)

## About The Pull Request

lord forgive me I fucked up the merge conflict

The supermatter delamination countdown timer (how long it takes to go
boom-boom after hitting 0 integrity) has been lowered from 30 seconds to
13 seconds.
Removing a sliver from the supermatter, the traitor objective, will
further lower that down to 3 seconds.
Changes the wording on the mood effects from the supermatter
delaminating slightly.
The crystal uses SPAN_COMMAND on its final countdown, which means it
talk bigger.

## Why It's Good For The Game

Currently I feel that the supermatter delamination countdown overstays
its welcome. Ideally it provides tension to get the hell out, or perhaps
to make a risky last second play to try and save the supermatter.
However right now its at 30 seconds, which gives no danger of staying in
engineering right up to integrity 0, and keeps the tension at a high
note for too long, almost to the point of awkwardness. 13 seconds is a
good balance between get-the-fuck-out while still giving some leeway for
engineers to escape and crewmembers to jump in lockers, and feels quick
enough to give that danger that the supermatter should provide.
Additionally, removing a sliver from the supermatter lowers the cooldown
to 3 seconds. Right now this is one of the harder tasks a traitor can be
tasked with, while giving relatively little payoff sabatoge-wise. To the
point where I have seen engineers just let the traitor do it, as the
debuff it gives to the supermatter is minor. Now it makes the
supermatter delaminate almost immediately after hitting 0 integrity,
which means it will likely catch some engineers in the blast if a
traitor did it stealthy. This also makes it more risky to try and fix a
delamination if the engineering/security team did not stop the sliver
from being removed. All meaning succeeding at this task should be more
rewarding and damaging.
Finally the mood descriptions for the mood effects you get when a
supermatter delaminates have been changed. Currently they are pretty
gamey, and represent what the player might be thinking more than their
character. Additionally they were not very descriptive of where they
came from, which could be confusing.

## Changelog

🆑 Seven
balance: The supermatter delamination countdown has been lowered from 30
to 13 seconds
balance: Removing a sliver from the supermatter further lowers that down
to 3 seconds
balance: The supermatter crystal uses bigger text on its final countdown
spellcheck: Some supermatter delamination related mood descriptions have
been edited to explain the mood effect better
/🆑

---------

Co-authored-by: Shadow-Quill <44811257+Shadow-Quill@ users.noreply.github.com>

* Supermatter Delamination Balance Changes (Real)

* Update scram.dm

---------

Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com>
Co-authored-by: Shadow-Quill <44811257+Shadow-Quill@ users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-09-12 19:47:25 -07:00
SkyratBot
e45f17efae [MIRROR] John Splintercell: a gun that is only good for shooting out lights [MDB IGNORE] (#23650)
* John Splintercell: a gun that is only good for shooting out lights

* Removes this flashlight nonsense, we don't need copy pasted procs for something this simple

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-09-12 16:57:44 -04:00
SkyratBot
7decf9c031 [MIRROR] Adds lag compensation for the supermatter zaps and some antagonists. [MDB IGNORE] (#23632)
* Adds lag compensation for the supermatter zaps and some antagonists. (#78174)

## About The Pull Request
Adds delta time scaling for changeling chemical generation, xenomorph
plasma generation, xenomorph resin healing (up to 8 seconds per tick to
prevent weird instant heal phenomena in extreme cases), and revenant
essence generation. This delta time scaling is based on the world's time
and the respective subsystem's last fire. This will help keep these
generation smooth even when their respective subsystem lags, preventing
lag from ruining the antagonists rounds. This can still slow down if the
actual world is slowing down, but that's fine because the rest of the
world will typically be slowing down proportionately so it's fair.

Fixes supermatter zap rate not scaling with its internal energy
properly. Ghilker forgot to scale the time reduction by seconds. It
should be much faster at higher energy levels, making the transition
between 0 and 5 GeV more smooth.

Supermatter zap power generation will scale by the world's delta time
between the supermatter's last zap, making power generation more
consistent even when atmos lags. Also prevents the supermatter zap rate
scaling from also scaling the power generation by extreme amounts,
keeping it linear and consistent for the first 5 GeV (>5GeV has cringe
power multipliers, but I'm going to ignore that for this PR, because I
want this to mainly be a consistency thing rather than a balance thing).
A 1.5GeV supermatter will be able to generate around 800kW* of power. I
forgot exactly what goal of power we want the roundstart SM to produce,
so I might change the scale if I find the target power generation.

* - By generate 800kW of power I mean the energy the actual zaps
contain. Tesla coils don't collect 100% of it. I'll test later to see
how much an actual roundstart SM will output to grid (ignoring SMES),
and I'll try to keep it as close as possible to what it was before this
PR assuming no lag.
## Why It's Good For The Game
Subsystems can disproportionately lag a lot more compared to the rest of
the subsystems and game. This can ruin antagonist rounds as it can slow
their chemicals, plasma or whatever generation grinding to a halt. The
delta time scaling will significantly reduce the impact of lag for these
antagonists, allowing them to play more normally even while the
subsystems their generators run on are lagging.

Supermatter zap rate was supposed to fire every 2.5 or something seconds
at 1.5GeV according to comments on older commits. I just assume they
accidentally forgot to scale their time reduction by seconds, as doing
that made it work accordingly.

For supermatter zap power generation delta time scaling, kinda same
reasoning as for the antagonists. We don't want power generation to stop
because atmos ss is being slow. Scaling between the zaps also prevents a
nonlinear boost to power generation making it even more absurd at higher
energy levels.
## Changelog
🆑
balance: Supermatter zap power generation scales with the delta time
between its last zaps, preventing faster zapping from scaling power
generation to extreme levels.
fix: Fixes supermatter zap rate not scaling properly. It should zap much
faster at higher energy levels as intended.
qol: Changeling chemical generation scales with the world's delta time,
making its rate independent of subsystem lag.
qol: Revenant essence generation scales with the world's delta time,
making its rate independent of subsystem lag.
qol: Xenomorph plasma generation and resin healing scales with the
world's delta time, making their rates independent of subsystem lag.
/🆑

* Adds lag compensation for the supermatter zaps and some antagonists.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-09-11 12:27:53 -04:00
lessthanthree
764c955722 Singularities are no longer invisible (#23610)
from TG master
2023-09-10 21:46:35 -04:00
SkyratBot
fd811029b9 [MIRROR] Supermatter delam common radio alert cooldown [MDB IGNORE] (#23577)
* Supermatter delam common radio alert cooldown (#78104)

## About The Pull Request

Changes the supermatter radio alert to be less spammy while the crystal
is healing during recovery.

If the crystal is in a state of fast healing (defined as 3% per minute,
about half of a crystal's 6%/min recovery at 293K) we're in a situation
where the engineers have prevented the delam and the crystal is
returning to normal.

In these situations the Common radio channel doesn't need to be reminded
every 60 seconds that the crystal is more than fine and on its way back
to 100, a cooldown is started for the Common channel alerts. Engineers
continue to get the integrity update every 60 seconds as usual on their
departmental channel.

The cooldown is only applicable to when the crystal is healing, if
integrity starts dropping again below the emergency point Common will be
alerted.

The command span is added for the final countdown only (from
https://github.com/tgstation/tgstation/pull/77996)

## Why It's Good For The Game

The SM alerting on Common every 60 seconds as it heals leads to alarm
fatigue and you tune it out. It should only be alerting Common when
there is imminent danger to the crew or that the danger has passed.

## Changelog

🆑 LT3
qol: Supermatter common channel alerts are less frequent if the
crystal's integrity is rising rapidly
/🆑

* Supermatter delam common radio alert cooldown

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-09-07 19:02:34 -07:00
SkyratBot
87bfa7a61a [MIRROR] Fixes typo 'transfered', olive oil reaction repath [MDB IGNORE] (#23469)
* Fixes typo 'transfered', olive oil reaction repath

* Modular

* Update condiment.dm

* Update recipes_guide.dm

* Update _cup.dm

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-04 08:49:33 -04:00
SkyratBot
2a250b66ea [MIRROR] Move some job related achievements into the job achievement category [MDB IGNORE] (#23494)
* Move some job related achievements into the job achievement category (#78092)

## About The Pull Request

Read title, this only affects the UI and not the database as far as I am
aware
## Why It's Good For The Game

The jobs category is painfully empty, only being home to four
achievements total. Meanwhile we have a ton of achievements inside the
miscellaneous category, a lot of which are not miscellaneous
achievements at all. Right now I just wanna focus on moving around
achievements from existing category to existing category though. This
improves achievement category spread overall by a small but necessary
amount.
## Changelog
🆑 distributivgesetz
code: Moved some job-related achievements from the misc category to the
jobs category.
/🆑

* Move some job related achievements into the job achievement category

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
2023-09-03 15:28:56 -04:00
SkyratBot
e3f8dd884e [MIRROR] Better alert/announcment sounds and Status displays [MDB IGNORE] (#23481)
* Better alert/announcment sounds and Status displays

* skyrat edits

* Update status_display.dmi

* Update flavor_misc.dm

* Update communications.dm

* skyrat edits

* Update status_display.dmi

* Update _sm_delam.dm

* typo

* Update status_display.dmi

* Update status_display.dmi

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-09-03 00:43:12 -07:00
SkyratBot
91837e26b4 [MIRROR] Progress bars & cleaning particles will centre on the tile occupied by large icon objects [MDB IGNORE] (#23394)
* Progress bars & cleaning particles will centre on the tile occupied by large icon objects (#77940)

## About The Pull Request

Do_after bars always draw based on the top-left corner of the targetted
atom, for atoms with sprites that are larger than 32x32 this gives them
a weird offset instead of being centred, which bugs me.
I have tried my best to figure out a way to reverse this which does not
interfere with atoms which use pixel_x/pixel_y to visually appear to be
on a different tile.

## Why It's Good For The Game

Before:

![image](https://github.com/tgstation/tgstation/assets/7483112/a1127695-58fa-40fc-aa0a-6bc8a0589e74)
he hates how you missed him completely 😦

After:

![image](https://github.com/tgstation/tgstation/assets/7483112/deb4fbb8-e286-46b4-84a7-82b65b4f1eee)
now you're cleaning his feet 🙂

## Changelog

🆑
image: progress bars and cleaning particles are now centered on the tile
occupied by the target, if it is a big sprite
/🆑

* Progress bars & cleaning particles will centre on the tile occupied by large icon objects

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-08-28 23:40:16 -04:00
SkyratBot
c8bbdbed80 [MIRROR] Adds an achievement for saving a cascading SM from the final countdown. [MDB IGNORE] (#23358)
* Adds an achievement for saving a cascading SM from the final countdown. (#77900)

## About The Pull Request

Adds the "All Within Theoretical Limits" achievement. You get the
achievement for standing inside the engine room at the time where the SM
crystal heals from 0% health (when the crystal says "Crystalline
hyperstructure returning to safe operating parameters. Harmonic
frequency restored within emergency bounds. Anti-resonance filter
initiated"), and waiting until the SM heals to at least 25% health.

## Why It's Good For The Game

This rewards engineers who stay behind and try to save the engine even
in the most dire circumstances.

## Changelog
🆑 distributivgesetz
add: Add an achievement for saving a cascading engine from the final
countdown.
/🆑

* Adds an achievement for saving a cascading SM from the final countdown.

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
2023-08-27 10:37:07 -07:00
SkyratBot
456741610b [MIRROR] Multitool can be used to access APC/Teslacoil/SMES/emitter internal wires [MDB IGNORE] (#23337)
* Multitool can be used to access APC/Teslacoil/SMES/emitter internal wires (#77790)

## About The Pull Request
adjusted /obj/machinery/power/multitool_act to no longer return
successful for all return paths. allowing attack_chain to continue and
eventually hit the machine's attackby function and access machine wires

## Why It's Good For The Game
Multitool opens wire UI on doors and air alarms, it should be consistent
with other machines with wires.

## Changelog
🆑
fix: multitool can be used on APC/Teslacoil/SMES/emitter if it has
exposed wires.
/🆑

* Multitool can be used to access APC/Teslacoil/SMES/emitter internal wires

---------

Co-authored-by: Redbert <109347230+Deadgebert@users.noreply.github.com>
2023-08-25 22:43:53 -04:00
OrionTheFox
dcd3fce15f Removes Obsolete, Unused, and Unmaintained overrides (#23232)
* Remove unused override comments and fix a few I found

* remove lighting icon overrides (obsolete)

* remove laz/borg overrides (obsolete)

* Remove the catch-all e-gun override, manually overrides the two severely out of date sprites that we ACTUALLY have updates for

* oop

* removes obsolete surgery table sprite (probably technically too close to Bay's to be using actually)

* Love un-updated pathing

* oop

* this back icon wasn't even on this gun ever was it

* didn't notice this override >:(
2023-08-22 13:15:24 -07:00
SkyratBot
910841c007 [MIRROR] Fixes cost values of RCDs [MDB IGNORE] (#23203)
* Fixes cost values of RCDs (#77650)

## About The Pull Request

fixes cost values to be 1:1 of what the construction would have costed
in manual construction for the RCD. also changes all decaseconds to
seconds in code for clarity.

the biggest change is windows, they used to cost more than they needed
for manual construction:

grille - 4mu - 1 iron sheet - 100% efficiency
directional normal window - 6mu - 1 glass sheet - 66% efficiency
directional reinforced window - 9mu - 1 reinforced glass sheet - 66%
efficiency
fulltile normal window - 12mu - 2 glass sheets - 66% efficiency
fulltile reinforced window - 15mu - 2 reinforced glass sheets - 80%
efficiency

this PR fixes all of these to be 100% efficient by lowering their matter
costs, among some other items like racks or reflector frames.

## Why It's Good For The Game

consistency for material costs is good. most of these incorrect material
values are also for things that don't matter, like racks or reflector
frames. also decaseconds are gross looking in code

## Changelog

🆑
fix: Some RCD constructs took more material than manual construction.
The RCD cost should be consistent in comparison to manual construction
now.
/🆑

* Fixes cost values of RCDs

---------

Co-authored-by: iwishforducks <65363339+iwishforducks@users.noreply.github.com>
2023-08-19 12:12:23 -04:00