Commit Graph

3810 Commits

Author SHA1 Message Date
SkyratBot
bdb6a1088e [MIRROR] Fixes the AI painting manager showing invalid choices and the search function (doesn't fix lag) [MDB IGNORE] (#25443)
* Fixes the AI painting manager showing invalid choices and the search function (doesn't fix lag) (#80114)

## About The Pull Request
Exactly what it reads on the tin.

## Why It's Good For The Game
#79495 broke more than a few things alas. This will fix #79619.

## Changelog

🆑
fix: Fixed the AI painting manager showing invalid choices.
fix: Fixed the painting manager search function.
/🆑

* Fixes the AI painting manager showing invalid choices and the search function (doesn't fix lag)

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-12-05 02:31:42 -06:00
SkyratBot
9c60ff1de1 [MIRROR] Removes Clone Damage [MDB IGNORE] (#25429)
* Removes Clone Damage

* Update blackbox.dm

* Modular

* Update schema

* Update database_changelog.md

* More modular deprecated clone things

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-12-04 23:01:54 -05:00
SkyratBot
11b8413ff6 [MIRROR] Micros bucketJoin with operator"" [MDB IGNORE] (#25274)
* Micros bucketJoin with operator"" (#79949)

## About The Pull Request

We make timers a lot. Making a unique string for each of them wastes
time (string churn).
It also means we have to do an extra ref() in the bucketJoin proc.

If we instead throw all the shit we care about in a list and just read
off it later, we get pretty decent savings ((0.013 | 0.022) -> (0.009,
0.012)) (It was way worse when ref() was hyper expensive) It's not much,
but since timers are hot I think it's worthwhile.

It also lets us add further debug information, if we want it.
Could optimize this further if we had less stuff in the list, depends on
what we want displayed as it was on insertion and what we want displayed
as it was at moment of print.

Also also this is 100% the reason I did 515 in the first place and I
need to be free

## Why It's Good For The Game

Uhhhhhhhh more flexability in timer readouts? Cost I was worried about
is mostly gone cause ref() got better I think

* Micros bucketJoin with operator""

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 03:46:57 -05:00
SkyratBot
e06ec3e714 [MIRROR] Bumps compile to 515 [MDB IGNORE] (#25257)
* Bumps compile to 515 (#79134)

## About The Pull Request

LSP supports it, let's GOOOOOO
I've removed the 515 tests since they're stable, alongside the libcall
wrapper. left the rustgcall wrapper cause yaknow memes
Just removed all the 515 and 514 particular define wrappers. gaming

## Changelog
🆑
server: Minimum compile version has been bumped to 515. clients still
support 514 but we're gonna start using 515 restricted features for
serverside now.
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Bumps compile to 515

* Fixes a TGS regression in its API

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-12-02 21:48:21 -05:00
SkyratBot
f82a437b18 [MIRROR] [NO GBP]Gives the singularity more processing time [MDB IGNORE] (#25351)
* [NO GBP]Gives the singularity more processing time (#80004)

## About The Pull Request
Sets rhe singulo SS processing weight to 350, from 50.
## Why It's Good For The Game
The round is going to end, and the singularity is the center of
attention. No one cares about the simplemobs in lavaland or whatever.
Lets the singularity have more opportunity to say fuck.
## Changelog
🆑
code: The singularity processing is a bit more important than the other
subsystems.
/🆑

* [NO GBP]Gives the singularity more processing time

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-12-01 17:07:54 -05:00
SkyratBot
20fa5e6e2c [MIRROR] Removes some done todos (and ones that I think are dumb) [MDB IGNORE] (#25362)
* Removes some done todos (and ones that I think are dumb) (#80017)

## About The Pull Request

Most of these are mine that I just forgot about, only one I think anyone
cares about is the one in mobs.dm about making delta time match
subsystem yielding, but I think it's a bad idea so it's gone

Oh also, replaces an old comment of mine with an actual explanation
(it's about the icon cache and shit)

* Removes some done todos (and ones that I think are dumb)

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-11-30 20:10:54 -06:00
SkyratBot
c9cccd9229 [MIRROR] Fixes failure state indication message [MDB IGNORE] (#25325)
* Fixes failure state indication message (#79988)

This is actually determining if the item was deleted before it had a
chance to Initialize.

* Fixes failure state indication message

---------

Co-authored-by: oranges <email@oranges.net.nz>
2023-11-28 19:37:26 -05:00
SkyratBot
290dd34fd0 [MIRROR] rolls Heavy Sleeper into the new All Nighter quirk, which carries extra... baggage [MDB IGNORE] (#25298)
* rolls Heavy Sleeper into the new All Nighter quirk, which carries extra... baggage (#79725)

## About The Pull Request

Removes the Heavy Sleeper quirk and rolls its effects into the brand new
All Nighter! On top of the effects of sleeping longer, All Nighter gives
you permanent bags under your eyes as well as a permanent -3 moodlet.
## Why It's Good For The Game

I've been wanting for a way to get bags under your eyes for a while, I
think it'd be a fun visual aspect that can aid with RP and whatnot. I
rolled heavy sleeper into all nighter because the two are both quite
similar, and I didn't feel heavy sleeper quite justified itself on it's
own.

Here's what the bags look like currently on a variety of skin tones and
species:

![dreamseeker_Vlc4rDlHaJ](https://github.com/tgstation/tgstation/assets/37246588/9bb5ba08-f5c7-4976-9f44-8b9993e2162e)

## Room for Improvement

Currently drafting for a few reasons. looking for input on all this
stuff

- [x] bag sprites could be improved
- [x] bags don't work well on moths/grayer skin tones. cest la vie?
- [x] should heavy sleeper stay? ultimately all I want is bags here, is
there a better way of doing this?
- [x] all quirk elements are not properly applied and removed via VV (no
need for input, i can figure this out myself)

## Changelog
🆑
add: the All Nighter quirk!
remove: Heavy Sleeper (functionality has been rolled into All Nighter)
/🆑

* rolls Heavy Sleeper into the new All Nighter quirk, which carries extra... baggage

* Adds back heavy sleeper

* Reorganizes these quirks

* Fixes same icon being used for both quirks

---------

Co-authored-by: wesoda25 <37246588+wesoda25@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-28 02:34:03 -05:00
SkyratBot
e23d563544 [MIRROR] makes verb callbacks not execute if the original client disconnected [MDB IGNORE] (#25287)
* makes verb callbacks not execute if the original client disconnected (#79964)

## About The Pull Request
currently verb callbacks still execute if the usr at the time of their
creation got deleted or had their client disconnected before they got
invoked. this can cause issues if the verb being deferred assumes usr
exists, now the callback will return instead of calling its proc if its
invoked after usr is deleted or disconnected.
## Why It's Good For The Game
less runtimes
## Changelog
🆑
code: verb callbacks will no longer execute if the original client
disconnected
/🆑

---------

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

* makes verb callbacks not execute if the original client disconnected

---------

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-11-28 00:06:44 -05:00
SkyratBot
84e42fd0eb [MIRROR] Removes some code soul (IF YOU ARE COPY PASTING THIS...), replaces it with a macro [MDB IGNORE] (#25272)
* Removes some code soul (`IF YOU ARE COPY PASTING THIS...`), replaces it with a macro (#79935)

## About The Pull Request

Replaces all instances of `SSblackbox.record_feedback\("tally",
"admin_verb", 1, (.+)\)` with `BLACKBOX_LOG_ADMIN_VERB($1)`

This makes so the funny comment isn't necessary.

It also reveals one location which someone did not heed the comment, the
`debug_controller` proc copy+pasted the line but did not change the
fourth argument. PEOPLE DON'T READ!

* Removes some code soul (`IF YOU ARE COPY PASTING THIS...`), replaces it with a macro

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-11-27 01:02:37 -05:00
SkyratBot
6627b1a9c1 [MIRROR] Refactors Parrots into Basic Mobs (ft. Ben10Omintrix/Kobsamobsa) [MDB IGNORE] (#25100)
* Refactors Parrots into Basic Mobs (ft. Ben10Omintrix/Kobsamobsa)

* UpdatePaths

* Modular, cleanup, porting parrot commands into the new system

* makes poly slightly less of a dick

* Update parrot.dm

* Update parrot.dm

* Update tgstation.dme

* Revert "Update tgstation.dme"

This reverts commit a8b40c4aba524c271db02c271089664649dea1eb.

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-20 09:57:34 -05:00
SkyratBot
34668922b0 [MIRROR] Fixes the admin painting manager [MDB IGNORE] (#25127)
* Fixes the admin painting manager (#79842)

## About The Pull Request
I mucked this up a few weeks ago, wrote the fix, then got busy and
forgot about it. This fixes the bluescreen that appears when admins try
to look at the painting manager.

## Changelog
🆑 Tattle
fix: admin painting manager works again
/🆑

---------

Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Fixes the admin painting manager

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-11-19 14:55:08 -05:00
nevimer
f2b71e7686 Merge remote-tracking branch 'skrat/master' into upstream-nov-19-2023
# Conflicts:
#	_maps/skyrat/automapper/templates/deltastation/deltastation_armory.dmm
#	code/modules/mob/living/simple_animal/guardian/guardian.dm
#	html/changelogs/archive/2023-11.yml
#	modular_skyrat/master_files/code/datums/traits/neutral.dm
#	modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm
#	modular_skyrat/modules/mold/code/mold.dm
#	modular_skyrat/modules/mold/code/mold_mobs.dm
2023-11-19 14:16:20 -05:00
Ephemeralis
9ebb2b1d56 The Bird Is The Word: Avian Traits quirk for tweeting, chirping, and shrieking (#25063)
* Add Avian Traits perk, allowing characters to sound like birds

* Ensure only one racial speech quirk is taken to prevent weirdness

* Add racial trait definitions for canine & avians, plus species helper macros

* Remove duplicate trait & tidy up defines

* Proper overload

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-18 10:39:54 -05:00
SkyratBot
c045caebae [MIRROR] Fixes sending stuff to "Old" Chat [MDB IGNORE] (#25088)
* Fixes sending stuff to "Old" Chat (#79819)

## About The Pull Request

This functionality was removed in #79479
(e1c6cfdce8), and we should still be
supporting the old chat anyways because it contains a plethora of useful
BYOND information that we still can really leverage (such as the
built-in profiler and stuff like that) and it's going to be painful to
do that if you have to keep spamming `fix-chat` to see OOC/ASAY while
alternating every damn time.
## Why It's Good For The Game

It's ugly but we still need it. There's a reason why we still have it.
## Changelog
🆑
fix: "Old Chat" (AKA: The old-styled non-TGUI raw-HTMLesque chat that
you might see when it prods you with the "Failed to load fancy chat!"
issue) should now get all text messages as expected.
/🆑

* Fixes sending stuff to "Old" Chat

---------

Co-authored-by: san7890 <the@san7890.com>
2023-11-18 10:13:39 -05:00
SkyratBot
77e701948f [MIRROR] Adds a Chat Reliability Layer [MDB IGNORE] (#25068)
* Adds a Chat Reliability Layer (#79479)

## About The Pull Request

Everyone knows that chat will just eat your messages now and then, isn't
that annoying?
What if SSchat was smart enough to keep track of your messages and
notice when you didn't get one?
Well, now it can!
## Why It's Good For The Game

Chat messages poofing into the aether is bad, really bad.
## Changelog
🆑
add: Chat Reliability Layer
code: TGUI chat messages now track their sequence and will be resent if
the client notices a discrepenency
/🆑

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>

* Adds a Chat Reliability Layer

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>
2023-11-17 17:49:57 -05:00
SkyratBot
df26dfaf03 [MIRROR] Fixes to the Galactic Material Market regarding market quantity. [MDB IGNORE] (#25022)
* Fixes to the Galactic Material Market regarding market quantity. (#79307)

## About The Pull Request

This PR makes a fix to market quantity of materials on the GMM. In
short, when you buy sheets, they get removed from the market's pool of
available resources.
When buying resources, they now shift up and down based on a fraction of
their inherent base_market_quantity, and not their current quantity,
preventing situations where a material can fully deplete all its stock
forever. I've also tweaked the numbers to try and keep those changes
from swinging too far wide as a result of this change.

Respecting quantity of materials should additionally help to decrease
the quantity of bike rounds in-game as well as the rare but horrifying
billion credit round.

## Why It's Good For The Game

Respecting quantity of materials should additionally help to decrease
the quantity of bike rounds in-game as well as the rare but horrifying
billion credit round. Also, I namely just completely missed this during
the original PR and I've been out of state for a few weeks so I've been
meaning to get around to fixing this.

Fixes #79116. Fixes #79247.

## Changelog

🆑
fix: The Galactic Material Market now respects quantity of materials
purchased, removing them from the market when bought and preventing you
from ordering more than are available at a given time.
/🆑

---------

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

* Fixes to the Galactic Material Market regarding market quantity.

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2023-11-15 07:06:49 -05:00
SkyratBot
73bdd7341a [MIRROR] TGUI Destructive Analyzer [MDB IGNORE] (#25005)
* TGUI Destructive Analyzer (#79572)

## About The Pull Request

I made this to help me move more towards my goals [laid out
here](https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA) which currently doesn't
have much interest.

This makes the Destructive Analyzer use a little neat TGUI menu instead
of its old HTML one. I also touch a lot of science stuff and a little
experimentor stuff, so let me explain a bit:
Old iterations of Science had different items that you can use to boost
nodes through deconstruction. This has been removed, and its only
feature is the auto-unlocking of nodes (that is; making them visible to
the R&D console). I thought that instead of keeping this deprecated code
around, I would rework it a little to make it clear what we actually use
it for (unhiding nodes).
All vars and procs that mentioned this have been renamed or reworked to
make more sense now.

Experimentor stuff shares a lot with the destructive analyzer, so I had
to mess with that a bit to keep its decayed corpse of deprecated code,
functional.

I also added context tips to the destructive analyzer, and added the
ability to AltClick to remove the inserted item. Removing items now also
plays a little sound because it was kinda lame.
Also, balloon alerts.

## Why It's Good For The Game

Moves a shitty machine to TGUI so it is slightly less shitty, now it's
more direct and compact with more player-feedback.
Helps me with a personal project and yea

### Video demonstration

I show off connecting the machine to R&D Servers, but I haven't changed
the behavior of that and the roundstart analyzers are connected to
servers by default.

https://github.com/tgstation/tgstation/assets/53777086/65295600-4fae-42d1-9bae-eccefe337a2b

## Changelog

🆑
refactor: Destructive Analyzers now have a TGUI menu.
/🆑

* TGUI Destructive Analyzer

* Modular

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-14 09:19:08 -05:00
BurgerLUA
89097503fb Reverts "Subverts Democracy and destroys the Meta-Icebox-Delta voting cycle by adding negative voting multipliers to recently played maps. (#554)" (#710)
## About The Pull Request

Reverts #554

## Why It's Good For The Game

Ok so basically since the PR, people haven't really been voting anymore
because they feel like their vote doesn't matter as much (It literally
and technically doesn't) and as a result, people have been only voting
for meme-tier maps like Tramstation and Birdshot because one guy who
isn't planning on voting next round spams 'VOTE BIRDSHOT
YEAAAAAAAAAAAAAAH" and that's the only time people vote.

A unironic cycle of Icebox-Metastation-Deltastation is better than an
ironic cycle of Kilo-Tram-Birdshot.

## Changelog

🆑 BurgerBB
del: Removes the 75% weight for recently played maps.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->
2023-11-14 01:42:05 -07:00
SkyratBot
2e7ad10f7e [MIRROR] Lemon fixes ci [MDB IGNORE] (#24942)
* Lemon fixes ci (#79384)

## About The Pull Request

Sets up moveloops to better catch issues with duplicated loops

Letting people modify the timer var AND have it track what bucket we're
in was a bad idea.
So instead let's store the queued time separate. Also makes
allowed_to_move return true/false instead of flags

This fixed? the null loop issue locally, I honestly have no damn idea
why. I'm gonna be working on the rest of ci here, left trackers so if it
pops up between now and merge I'll know what the issue is.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@ gmail.com>

* Lemon fixes ci

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@ gmail.com>
2023-11-12 11:25:49 -05:00
SkyratBot
07378a986a [MIRROR] Code cleanup for qdel [MDB IGNORE] (#24919)
* Code cleanup for qdel (#79568)

## About The Pull Request
I want to put my hands in the engine. If you don't want me touching this
I am not hurt if its closed

Added 2 early returns and removes single letter vars
## Why It's Good For The Game
Code improvement
## Changelog
N/A nothing player facing

---------

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

* Code cleanup for qdel

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2023-11-11 00:59:48 -05:00
SkyratBot
3effeb131a [MIRROR] Fixes Mock Clients Leaking Into Production [MDB IGNORE] (#24917)
* Fixes Mock Clients Leaking Into Production (#79640)

Basically, every time we made a new client interface, we would add it to
`GLOB.directory` (new behavior introduced in (#79348
(88bb3afcce)).
This would mean that we would pass in junk mock clients into the vote
processing feature instead of actual legitimate clients, as well as a
slew of unintended consequences elsewhere wherever we access
`GLOB.directory`.

We would create mock clients in stuff like
`randomize_human_appearance()`, which is legitimately used and called in
a slew of places where we want random humans, which allows junk to enter
in directory per the aforementioned point.

Anyways, let's just... not let's add it to the directory if we aren't
running unit tests. I also made the vote processing code a bit more
strict juuuuuuuust in case

* Fixes Mock Clients Leaking Into Production

---------

Co-authored-by: san7890 <the@san7890.com>
2023-11-10 20:27:09 -05:00
SkyratBot
bbd547ec95 [MIRROR] Targeting Datums Renamed (and global) [MDB IGNORE] (#24885)
* Targeting Datums Renamed (and global) (#79513)

## About The Pull Request

[Implements the backend required to make targeting datums
global](6901ead12e)

It's inconsistent with the rest of basic ai for these to have a high
degree of state, plus like, such a waste yaknow?

[Implements
GET_TARGETING_STRATEGY](d79c29134d)

Regexes used:
new.*(/datum/targetting_datum[^,(]*)\(*\)* -> GET_TARGETING_STRATEGY($1)

Renamed all instances of targetting to targeting (also targetting datum
-> targeting strategy)

I've used GET_TARGETING_STRATEGY at the source where the keys are
actually used, rather then in the listing. This works out just fine.

## Why It's Good For The Game

Not a misspelled name through the whole codebase, very slightly less
memory load for basically no downside (slight cpu cost maybe but not a
significant one.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Targeting Datums Renamed (and global)

* Update dogs.dm

* Modular

* Modular

* Modular

* Merge skew?

* Revert "Merge skew?"

This reverts commit 0889389ab5cb5c56655f1860d9173ba87efe9a22.

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-09 16:37:48 -05:00
SkyratBot
509abef418 [MIRROR] Removes unused vars from cargo & economy. [MDB IGNORE] (#24882)
* Removes unused vars from cargo & economy.

* Update supply.dm

* Update supply.dm

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-09 09:15:18 -05:00
SkyratBot
2b5cfd484f [MIRROR] Adds a user type to integrated circuits, refactors the list pick component. [MDB IGNORE] (#24827)
* Adds a user type to integrated circuits, refactors the list pick component. (#79412)

## About The Pull Request
Added a user type to integrated circuits that can't be stored as a user
type but can be typecasted to entity. Useful for components that
directly ask for an input from the user, like the list pick component.

Refactored the list pick component to use this user port and to also
send failure signals whenever a success signal is not sent.
Removed the triggered port for the list pick component.

Also fixes a runtime that occurs with the list pick component if the
list passed in only contains null values.

## Why It's Good For The Game
Can't force a prompt onto people who haven't interacted with your
circuit.

## Changelog
🆑
add: Added a user type to integrated circuits
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Adds a user type to integrated circuits, refactors the list pick component.

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2023-11-06 21:21:54 -05:00
SkyratBot
bb12e38b78 [MIRROR] Makes paraplegic no longer exclusive with spacer/settler [MDB IGNORE] (#24816)
* Makes paraplegic no longer exclusive with spacer/settler (#79515)

## About The Pull Request
Pretty self explanatory, gets rid of the restriction on using paraplegic
with these quirks.

I'm going to very tentatively call this a qol, since I can't fathom this
really being much of a mechanical help for anyone. But I wouldn't
complain if people disagree
## Why It's Good For The Game
Space-born people would likely be able to function fine without legs in
little to no gravity, and both of them, lore wise, could have been
paralyzed later in life. It doesn't really make sense for them to be
exclusive.

In terms of balance, I don't believe either combination meaningfully
negates any of the downsides of the quirks. I can't really think of any
potentially abusable mechanics that this restriction is preventing.
## Changelog
🆑
balance: paraplegic is no longer exclusive with spacer or settler or
spacer. Broken legs don't discriminate!
/🆑

* Makes paraplegic no longer exclusive with spacer/settler

---------

Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
2023-11-06 14:27:27 +00:00
SkyratBot
0a6ee83429 [MIRROR] Split persistence into subfiles [MDB IGNORE] (#24797)
* Split persistence into subfiles

* Skyrat Edits

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-05 05:26:41 -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
c767a149a4 [MIRROR] Initializes on_finish_callbacks in the JPS move loop [MDB IGNORE] (#24788)
* Initializes on_finish_callbacks in the JPS move loop (#79505)

## About The Pull Request

The on_finish_callbacks list in `/datum/move_loop/has_target/jps` was
not initialized. Usually, when you add something to an uninitialized
list, it gets initialized and the item gets added to it. However, the
`CALLBACK` wrapper is around `new /datum/callback`, this fails.

This meant on_finish_callback was not a list, therefore at the end of
pathfinding, its contents could not be iterated and invoked. This PR
fixes this problem by initializing the list.

## Why It's Good For The Game

Closes #79383
Blob minions rally and punch again.

## Changelog

🆑
fix: Basic mobs using JPS can move again
/🆑

* Initializes on_finish_callbacks in the JPS move loop

---------

Co-authored-by: Profakos <profakos@gmail.com>
2023-11-04 20:58:34 -04:00
SkyratBot
20c5dea5fb [MIRROR] [NO GBP] Retain filtering capabilities for paintings [MDB IGNORE] (#24776)
* [NO GBP] Retain filtering capabilities for paintings (#79504)

## About The Pull Request
Fixes a little whoopsie from #79495 which got rid of the ability to
filter paintings

## Why It's Good For The Game
Filtering good

## Changelog

:cl:Tattle
fix: paintings can once again be filtered
/🆑

Co-authored-by: tattle <article.disaster@ gmail.com>

* [NO GBP] Retain filtering capabilities for paintings

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
2023-11-04 00:15:35 -04:00
SkyratBot
df1a3670d8 [MIRROR] Caches data for paintings we have saved [MDB IGNORE] (#24766)
* Caches data for paintings we have saved (#79495)

## About The Pull Request
We got some reports about a server lagging, the cause was determined to
be TGUI. Potato figured out it was the painting manager, and I was able
to recreate the lag by just quickly scrolling through the 1200+
paintings on Manuel via a curator console. Please don't do this btw.

## Why It's Good For The Game
Allow people to scrub through the painting gallery without lagging the
server.

## Changelog
🆑 Tattle
fix: you should now be able to scrub through the library without lagging
the server
/🆑

---------

Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: san7890 <the@ san7890.com>

* Caches data for paintings we have saved

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-11-03 19:36:16 -04:00
StrangeWeirdKitten
57afa02033 Merge remote-tracking branch 'skyrat/master' into upstream-11-1-2023 2023-11-01 13:39:33 -06:00
SkyratBot
ca931ecdc6 [MIRROR] Improved nightshift check on security level change [MDB IGNORE] (#24695)
* Improved nightshift check on security level change (#79369)

## About The Pull Request

Modifies the security level change proc to only fire the nightshift
subsystem if the subsystem is running, and if a lighting change is
required. If a lighting change is required, nightshift has its next fire
set 7 seconds after, so announcements and sounds don't stack.

## Why It's Good For The Game

Nightshift is only updated when required, eliminating nuisance
announcements when levels unrelated to red/delta are selected.

## Changelog

🆑 LT3
code: Changing security levels will only trigger the nightshift
subsystem if lighting changes are required
/🆑

* Improved nightshift check on security level change

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-31 10:24:12 -07:00
SkyratBot
1a2ddececa [MIRROR] new space ruin, the biological research outpost [MDB IGNORE] (#24662)
* new space ruin, the biological research outpost (#79149)

## About The Pull Request

![2023-10-21 18 02
39](https://github.com/tgstation/tgstation/assets/70376633/5829e939-3b04-465f-a186-095ceb360bba)

adds this ruin to space ruin pool
this is a shady (as NT always is) bioresearch outpost that got fucked up
by an experiment
this has like some puzzle aspect to it since you gotta find keycards and
shit and press buttons to unlock shield gates
this ends with you fighting a heart which if you defeat, destroys the
blockade that prevents you from entering the outpost vault

also you can no longer literally just cut indestructible grilles or
unanchor indestructible windows

### new puzzle elements or something idk
variant of pressure plate that you cannot remove and it sends a puzzle
signal
cooler red puzzle doors that look very foreboding or something idk
theyre for this ruin
also puzzle blockades, which are indestructible dense objects that are
destroyed if they receive a puzzle signal
and also buttons and keycard pads for puzzles

https://github.com/tgstation/tgstation/assets/70376633/c98807ec-1e7b-49c4-a757-cdbb76a1b566

https://github.com/tgstation/tgstation/assets/70376633/9d5d9dd1-5868-44e6-a978-5ea57b30c298

stuff that throws electric shocks in a pattern, ignores insuls and only
knocks down, and no you cannot just run past

https://github.com/tgstation/tgstation/assets/70376633/5772917c-a963-48a4-a743-b0f610801d25

### enemies
living floor, it can only attack stuff on top of it and it attacks until
the victim is dead
it is invincible to all but a crowbar, and it cannot move, and it
remains hidden until a victim is in range

https://github.com/tgstation/tgstation/assets/70376633/aa1d54f6-b259-4e58-9d44-e393d2131acf

living flesh, it can replace your limbs with itself
the conditions for that are; the limb must have 20 or more brute, victim
must be alive and dismemberable, the limb may not be torso or head, or
the limb may not be living flesh
alternatively it can replace a missing limb
these are all checked with every attack
they have 20 hp
the limbs in question will sometimes act up, while passively draining
nutrition, arms will randomly start pulling nearby stuff, legs may step
randomly
limbs when detached, turn into mobs and reactivate AI 2 seconds later.
if the host is shocked, all living flesh limbs will detach, or if the
host dies they will also do that

https://github.com/tgstation/tgstation/assets/70376633/765cc99e-c800-4efb-aabe-d68817bbd7ae

## Why It's Good For The Game

ruin variety is cool i think
also the other things i added should be useful for other mappers for
bitrunning or whatever

also bug bad for that one fix
## Changelog
🆑
add: living floor, living flesh, and other stuff for the bioresearch
outpost ruin
add: bioresearch outpost ruin
fix: you may not defeat indestructible grilles and windows with mere
tools
/🆑

---------

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

* new space ruin, the biological research outpost

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-10-31 01:35:11 -04:00
SkyratBot
40943ced25 [MIRROR] Adds a few extra params to blackbox dynamic threat logs. [MDB IGNORE] (#24635)
* Adds a few extra params to blackbox dynamic threat logs. (#79344)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Adds the roundstart pop count and the calculated max threat to blackbox
logging of dynamic threat.

This allows for identifying lowpop shifts and more intelligent analysis
of dynamic threat.

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

I need this added to better track what's going on when analysing threat
distribution, as all threat stats will bias low with the inclusion of
lowpop shifts capping max threat.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

No player-facing changes.

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

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

* Adds a few extra params to blackbox dynamic threat logs.

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-10-28 20:06:38 -04:00
StrangeWeirdKitten
704bc0017e Merge remote-tracking branch 'skyrat/master' into repo-upstream-memes 2023-10-28 16:03:33 -06:00
SkyratBot
99da88db82 [MIRROR] Reworks the styling of the announcements and expands major announcements to also be colourable. [MDB IGNORE] (#24596)
* Reworks the styling of the announcements and expands major announcements to also be colourable.

* Skyrat edits

* Skyrat edits

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-25 22:22:52 -07:00
nevimer
10772c60ff Merge remote-tracking branch 'skrat/master' into upstream-oct-25-2023 2023-10-25 20:26:56 -04:00
SkyratBot
25cd74e9a3 [MIRROR] Light dreaming refactor + new dream [MDB IGNORE] (#24499)
* Light dreaming refactor + new dream (#78996)

## About The Pull Request

Makes it so new dream types can be more easily added to the game with
effects within them beyond just some text being displayed if you want. I
added a dream that plays a random sound file available in the game files
to demonstrate how it's used. Mainly I wanted this out of the way for
another thing I'm working on.

I also made it so if the sound subsystem fails to reserve a channel it
throws a runtime since this happening is likely always going to result
in a bug, like it did while I was testing this.

## Changelog

🆑
add: New dream that plays sound at you
/🆑

* Light dreaming refactor + new dream

---------

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2023-10-21 18:19:51 -04:00
SkyratBot
b0fe14e526 [MIRROR] Adds Custom Announcement Dividers [MDB IGNORE] (#24471)
* Adds Custom Announcement Dividers

* Skyrat custom announcements

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-20 14:42:09 -07:00
SkyratBot
1dd5011776 [MIRROR] Adds pathmaps, refactors pathfinding a bit [MDB IGNORE] (#24414)
* Adds pathmaps, refactors pathfinding a bit (#78684)

## About The Pull Request

Implements /datum/pathfind/sssp, which generates /datum/path_map

/datum/path_maps allow us to very efficently generate paths to any turf
they contain from their central point.

We're effectively running the single source shortest paths algorithm.
We expand from the center turf, adding turfs as they're found, and then
processing them in order of addition.
As we go, we remember what turf "found" us first. Reversing this chain
gives us the shortest possible path from the center turf to any turf in
its range (or the inverse).

This isn't all that useful on its own, outside of a few niche cases
(Like if we wanted to get the farthest reachable turf from the center)
but if we could reuse the map more then once, we'd be able to swarm
to/from a point very easily.

Reuse is a bit troublesome, reqiures a timeout system and a way to
compare different movables trying to get paths.
I've implemented it tho. I've refactored CanAStarPass to take a datum,
/datum/can_pass_info. This is built from a movable and a list of access,
and copies all the properties that would impact pathfinding over onto
itself.

There is one case where we don't do this, pathing over openspace
requires checking if we'd fall through the openspace, and the proc for
that takes an atom.
So instead we use the weakref to the owner that we hold onto, and hold
copies of all the values that would impact the check on the datum.

When someone requests a swarmed path their pass info is compared with
the pass info of all other path_maps centered on their target turf. If
it matches and their requested timeout isn't too short, we just reuse
the map.

Timeout is a tricky thing because the longer a map exists the more out
of date it gets.
I've added a few age defines that let you modulate your level of risk
here. We default to only allowing maps that are currently
being generated, or finished generating in our tick.
Hopefully this prevents falling into trouble, but consumers will need to
allow "failed" movements.

As a part of this datumized pass info, I've refactored pathfinding to
use access lists, rather then id cards directly. This also avoids some
dumbass harddel oppertunities, and prevents an idcard from changing mid
path.

Did a few things to the zPass procs, they took args that they did NOT
need, and I thought it'd be better to yeet em.

If you'd all like I could undo the caching/can_pass_info stuff if you'd
all like. I think it's useful generally because it avoids stuff changing
mid pathfind attempt, but if it's too clunky I could nuke it.

Oh also I added optional args to jps that constricts how it handles
diagonals. I've used this to fix bot paths.

## Why It's Good For The Game

Much of this is redundant currently. I'm adding it because it could have
saved hugglebippers, and because I get the feeling it'll be useful for
"grouping" mobs like bees and such.
We're doing more basic mob work currently and I want to provide extra
tools for that work.

https://github.com/tgstation/tgstation/assets/58055496/66aca1f9-c6e7-4173-9c38-c40516d6d853

## Changelog
🆑
add: Adds swarmed pathfinding, trading accuracy for potential
optimization of used correctly
fix: Bots will no longer take diagonal paths, preventing weirdo looking
path visuals
refactor: Refactored bits of pathfinding code, hopefully easier to add
new pathfinding strategies now
/🆑

* Adds pathmaps, refactors pathfinding a bit

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-10-18 03:31:21 -04:00
SkyratBot
17a7b8f2fb [MIRROR] Starlight Control (Aurora works now, space gas doesn't touch starlight, narsie ending effects) [MDB IGNORE] (#24406)
* Starlight Control (Aurora works now, space gas doesn't touch starlight, narsie ending effects) (#78877)

## About The Pull Request

[Implements a setter for starlight
variables](af34f06b41)

I want to start to modify starlight more, and that means I need a way to
hook into everything that uses it and update it, so we can modify it on
the fly.

This does that, alongside removing space overlays from nearspace (too
many false positives) and making the aurora modify all turfs projecting
starlight, rather then all turfs in an area.

Do still need to figure out handling for the starlight color usage in
turf underlays tho (I gave up, we just keep it static. I'll fix it
someday but the render_relay strategy just doesn't work with its masking
setup)

[Reworks how starlight overlays
work](9da4bc38e2)

Instead of setting color on the overlays directly, we instead store an
object with our current settings in every mob's screen, and
render_target it down onto our overlays.

This lets us update overlay colors VERY trivially. Just need to set
color on the overlay var. Makes modifying starlight a lot cheaper.

It doesn't work on area overlays, because suffering, and it MIGHT induce
extra cost on clients. if it does we can do something about that, we'll
play it by ear

[Removes parallax starlight
coloring.](5f701a1b13)

I'm sorta iffy on the color, the effect can be real oppressive in some
cases, and I'd like to use starlight color for more events in world, and
having it vary can make that looking nice hard.

[Adds some visual effects to narsie being
summoned](a423cfcb2b)

As the rune drawing progresses space (starlight and parallax) go from
normal to greyscale. Then, right about when narsie shows up, starlight
becomes vibrant red.

It's a nice effect. I wanna do more shit like this, I think it'll
improve vibes significantly.
## Why It's Good For The Game

Can't embed it because of github's upload limit, can show a
[link](https://cdn.discordapp.com/attachments/458452245256601615/1160821856358645860/2023-10-08_22-31-22.mp4?ex=65360e99&is=65239999&hm=680e33e4e0026b89e132afc50c04a648a24f869eb662f274a381a5de5c5a36f2&)
for the narsie stuff

Here's
[one](https://cdn.discordapp.com/attachments/326831214667235328/1160813747196141568/2023-10-08_22-34-10.mp4?ex=6536070c&is=6523920c&hm=f8d571d1013da89887f49f3fec99f632251eeeac83085aa7dde97009aee3922f&)
for the aurora too.

This gives us more pretty starlight shit, and the ABILITY to do more
pretty starlight shit. I'm pretty jazzed, and I hope people use this
proc more (keeping in mind that it's pretty hard on the lighting system,
and needs significant delay between changes)
## Changelog

🆑
add: Narsie summoning has had some effects added to space and starlight
del: Removes the link between spacegas color and starlight. It was a
slight bit too vibrant and I think impacted the vibe too wildly to be
incidental.
fix: The aurora event actually... works now. Space lights up and all
that
/🆑

* Starlight Control (Aurora works now, space gas doesn't touch starlight, narsie ending effects)

* Update space.dm

* Update shuttles.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-18 01:23:18 -04:00
SkyratBot
2a0e96df8c [MIRROR] Announcement CSS hotfix [NO GBP] [MDB IGNORE] (#24413)
* Announcement CSS hotfix [NO GBP] (#79052)

## About The Pull Request

I forgot light mode exists half way through making PR
https://github.com/tgstation/tgstation/pull/78995, apparently. Also
fixes the weird spacing on shuttle evac calls and dark mode alert text,
reduces the padding on either side of announcements.

![image](https://github.com/tgstation/tgstation/assets/83487515/3af555c0-24b6-425f-819a-25766e1238ba)

![image](https://github.com/tgstation/tgstation/assets/83487515/f5a1546c-567d-4d42-87af-5f5a1d8dc535)

![image](https://github.com/tgstation/tgstation/assets/83487515/05d9d5a4-7692-44ff-84c6-5abd0a1d915d)

## Changelog

🆑 LT3
spellcheck: More announcement CSS fixes, now including light mode
/🆑

* Announcement CSS hotfix [NO GBP]

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-17 20:36:52 -07:00
SkyratBot
7cf7be4b7b [MIRROR] Tram v6/Transport Subsystem [MDB IGNORE] (#24399)
* Tram v6/Transport Subsystem

* Update icon_smoothing.dm

* Update utility.dm

* defines/icon

* Update airlock.dm

* Update door.dm

* Update airlock.dm

* Update airlock.dm

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-17 15:16:46 -07:00
SkyratBot
e2027683f5 [MIRROR] Reduces the average delay between random events, cleans up event subsystem code [MDB IGNORE] (#24378)
* Reduces the average delay between random events, cleans up event subsystem code

* Update events.dm

* Update events.dm

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-17 01:23:16 -04:00
SkyratBot
2f90410e7a [MIRROR] Fixes announcements font scaling [MDB IGNORE] (#24357)
* Fixes announcements font scaling (#78995)

## About The Pull Request

Creates CSS spans for priority announcement and minor announcement so
they scale properly with the player's chosen font size

![image](https://github.com/tgstation/tgstation/assets/83487515/0706891d-05e9-4f00-b24f-ebf37efdd18d)

## Why It's Good For The Game

Fixes https://github.com/tgstation/tgstation/issues/78875

## Changelog

🆑 LT3
fix: Fixed font scaling for announcements
/🆑

* Fixes announcements font scaling

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-15 23:05:15 -07:00
BurgerLUA
f6bda1ac07 Subverts Democracy and destroys the Meta-Icebox-Delta voting cycle by adding negative voting multipliers to recently played maps. (#554)
Draft because controversial.

## About The Pull Request

Your vote for a map only counters 75% if the vote was a recently played
map.
The last 4 rounds are considered recently played maps (not the last 4
maps, which means that if the cycle (from most recent to least recent)
was "icebox, delta, delta, meta, biodome", it will only count icebox,
delta, meta.
If a map was voted for twice in the last 4 rounds, it cannot be chosen.

## Why It's Good For The Game

It sucks seeing server status and the map rotation is just:

ICEBOX, DELTA, META, ICEBOX, DELTA, META, TRAM, ICEBOX, DELTA, META,
ICEBOX, DELTA, META, TRAM with the occasional biodome, limastation, or
burgerstation map vote because it's lowpop and it seems only lowpop
people like those maps.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑 BurgerBB
add: Your vote for a map only counters 75% if the vote was a recently
played map (recently refers to the last 4 rounds).
add: If a map was voted for twice in the last 4 rounds, it cannot be
chosen.
/🆑
2023-10-15 22:11:56 -04:00
SkyratBot
aa19d9a5f2 [MIRROR] Pipe gas visuals [MDB IGNORE] (#24224)
* Pipe gas visuals (#78217)

## About The Pull Request

Primarily this pr is all about getting pipes to have a visual display
for the gas within them. A couple other things of note have been done to
make that easier though:

- A sprite generator that outputs to a dmi has been made for all pipe
variants and the layers. This is because I didn't want to work with
hundreds of pipe sprites just to do minor changes. In the future I would
like to generate things like this during a github action but for the
moment this is just a helper you can use for generating the pipe dmi
files.
- Some minor reorganization of the code in the pipe dm file.
- Some doc comments on things that bothered me

## Why It's Good For The Game

Gives a bit of visual feedback when working with pipes that should
hopefully make people more comfortable around them if they can easily
see if the pipes are empty or are filled with an unknown gas mixture.
Can also serve as a warning to those keeping an eye out for things like
plasma floods.

🆑 ninjanomnom
add: Pipes now have a colored visual display that shows their contents
at a glance.
/🆑

~~The colors for gases could stand to be better, if anyone wants to
suggest alternatives to what I've used please do as I put only a bare
minimum of thought into each choice.~~ I've switched to using the gas
colors defined in tgui constants.

![dreamseeker_2023-09-26_07-32-56](https://github.com/tgstation/tgstation/assets/1234602/0a3a5636-c9b9-4046-83b9-0d116f8232d1)

* Pipe gas visuals

---------

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2023-10-09 09:52:23 -04:00
SkyratBot
2dfb6231b0 [MIRROR] Fixes runtime on initalizing science programs [MDB IGNORE] (#24215)
* Fixes runtime on initalizing science programs (#78842)

Datums don't have location, so there's no z level to search here.

* Fixes runtime on initalizing science programs

---------

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2023-10-09 07:40:32 -04:00
SkyratBot
c5c79aa929 [MIRROR] Adds respawn config option forcing respawn as another character slot [MDB IGNORE] (#23943)
* Adds respawn config option forcing respawn as another character slot (#78459)

## About The Pull Request

Adds an option to the respawn config which forces you to pick another
character (slot) before you respawn.

## Why It's Good For The Game

Just an idea i'm throwing out there, not necessarily pushing for it to
be enabled on any servers.

Respawning as an alternative character can be a good way to make people
less frustrated at dying, particularly if paired with the cooldown
config that already exists:

"Oh shucks, I died and got my head cut off and got absorbed and got
spaced by some changeling. I won't be able to finish my project or
whatever. At least in 15 minutes I may be able to join as my botanist
character to try something else rather than having to wait an hour and a
half for the round to tick over."

Also nice for downstream support.

(Obviously you can just, *ban* people who respawn as the same character,
use an honor system, but codifying it seems better than not.)

## Changelog

🆑 Melbert
config: Adds a config option for player respawning that enables
respawns, but forces you pick a new character.
config: "NORESPAWN" has been replaced with "ALLOW_RESPAWN 0". Unlimited
respawns is "ALLOW_RESPAWN 1" and character limited respawns is
"ALLOW_RESPAWN 2".
/🆑

---------

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

* Adds respawn config option forcing respawn as another character slot

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-10-07 16:45:23 -04:00