Commit Graph

1471 Commits

Author SHA1 Message Date
SkyratBot
ea111b194e [MIRROR] Feeds OOC messages back to client if blocked in validate_client() (#26779)
* Feeds OOC messages back to client if blocked in validate_client() (#81769)

## About The Pull Request

Basically, if your long and well-thought-out OOC message gets eaten due
to your client not being fully initialized, the server will feed back
the message to you so you can copy-paste and try again.

In order to facilitate this, I turned `validate_client` into a proc.
This didn't have the ubiquitous usage that we were hoping for (where it
could be dropped and placed anywhere) and I don't think I liked the
"always exit out of proc" stuff anyhow. Also adds some code niceties.

There's probably a way cooler way to do this with tgui_say and whatever
but I don't use tgui_say (byond command bar my beloved) so we'll cope
with this.
## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/34697715/a96f7168-aad3-4772-9abe-7a6aa2b8779a)

Let me know if I should revert the `span_big()` stuff, I just added it
because I wanted it to be obvious to the player instead of look like a
generic error message.
## Changelog
🆑
qol: If your OOC message gets eaten due to some weird circumstance in
how your message is handled, it will feed the applicable message back to
you so you can copy-paste and try to send it again.
/🆑

* Feeds OOC messages back to client if blocked in validate_client()

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-06 22:27:03 -05:00
SkyratBot
1196e7d629 [MIRROR] Fix job time stuff not detecting the database was down. (#26753)
* Fix job time stuff not detecting the database was down. (#81821)

This comment hasn't been true for 7 years.

* Fix job time stuff not detecting the database was down.

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2024-03-05 17:40:50 -05:00
SkyratBot
f1928357e3 [MIRROR] Fixes smoothing breaking if a map is loaded post init (#26553)
* Fixes smoothing breaking if a map is loaded post init (#81526)

## About The Pull Request

We'd finish a set of atom creation, then try and smooth those atoms The
problem is they might try and smooth with an uninitialized neighbor,
which wouldn't have its smoothing vars parsed.

This fixes that by pooling "to be smoothed" things into a list based off
the source of the init stoppage, which we then release when we're done.

Also fixes things staying in mapload, even during a sleep. This can
cause massive headaches so it's good to avoid.

This has a cost but it's minuscule (on the order of like 0.006s (6ms
over all of init), so I'm happy with it.

## Why It's Good For The Game

Closes #77040

## Changelog
🆑
fix: Maps loaded in after roundstart will no longer have broken
smoothing
/🆑

* Fixes smoothing breaking if a map is loaded post init

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-02-19 01:23:33 +01:00
SkyratBot
5a496e9842 [MIRROR] Micro-Optimize keyLoop's self time (#26513)
* Micro-Optimize keyLoop's self time (#81464)

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

This is a REALLY hot proc, takes up to like 2% of total cpu at highpop
Let's micro it then

First, clients do not go null at random. It's not predictable per say
but it is consistent.
We can use this understanding to remove a bunch of null checks here

For loops are expensive. So rather then doing one each keyLoop, let's
cache the client's intended move direction on the client. Simplifies
some other code too

There is no sense running a turn call if it would have no effect, let's
be more intelligent about this

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

🆑
refactor: Fucks with how movement keys are handled. Please report any
bugs
/🆑

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

* Micro-Optimize keyLoop's self time

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-02-15 17:38:09 -05:00
SkyratBot
40906ad100 [MIRROR] Client colo(u)r no longer uses Client.color, now coloring the render game plane instead (#26470)
* Client colo(u)r no longer uses Client.color, now coloring the render game plane instead (#81328)

## About The Pull Request

Rather than utilizing `client.color`, client color datums now apply
their colors to the render game plane.

This means
1. The player's HUD is no longer affected by client colors. Being
colorblind (in game) no longer makes all hud elements grey as well, only
the world.
2. Overall, less harsh colors.

## Why It's Good For The Game

1. The player's HUD, being an OOC concept, should remain unaffected by
stuff like glasses and blindness. This is how it worked in the past,
before plane cube (IIRC), but it was lost in the transition.
2. Overall just looks a lot better, IMO.

Here's what meson goggles with glasses colors active looks like:

Before:

![image](https://github.com/tgstation/tgstation/assets/51863163/081b69b2-e545-48f8-9016-071107b2c4c1)

After:

![image](https://github.com/tgstation/tgstation/assets/51863163/8a823a82-3953-4889-9594-ccae87843c00)

## Changelog

🆑 Melbert
qol: Glasses colors should be a lot less harsh, and being blind no
longer also blinds your hud.
/🆑

* Client colo(u)r no longer uses Client.color, now coloring the render game plane instead

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-02-11 10:58:41 -05:00
Useroth
22bcdbf5f9 Nova ports batch 1 (#26273)
* Map votes are no longer random (#43)

* Disables the annoying fear of Santa from the claustrophobia quirk (#51)

* Removes the job locks from all armbands except the sec armbands, and reflavors all armbands to not directly state this person is a member of x department (#62)

* [MODULAR] Removes Arbitrary Loadout Restrictions (#58)

* Removes an AM template from NorthStar as well as the prison curtain logic (#72)

* Bilingual now let's you take common (if you don't already have it) (#78)

* Period Era Re-Enactment: Basic autopunctuation (#84)

* [Semi-modular] Gives Xeno-hybrids some xeno-organs in trade for high temperature weakness (#91)

* The Thrill of the Hunt: Hemophage blood digestion changes (#93)

* Removes the ability for shocks to stop your heart (#116)

* Ghost cafe turf fixes (#161)

* ungatekeeps headshots (#170)

* Lo(v)re Wins: Mothic Language return (#186)

* Add Bone Greaves As Foot Clothing For Tribals (#197)

* Saving Private Oversized: Quirk balancing adjustments (#199)

* Over(sized) and Under: Oversized combat adjustments (#202)

* Shuttles no longer bolt their doors on transit (#203)

* Increases PAI description and OOC notes limit (#207)

* Makes headset sounds not insane (WHY DO THEY HAVE A RANGE OF 17 TI:LES?) (#215)

* Add Bone D6 For Tribals. (#217)

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Name <w4rd3nn@gmail.com>
Co-authored-by: Ephemeralis <Ephemeralis@users.noreply.github.com>
Co-authored-by: lila <sheepwiththemask@gmail.com>
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Sable <102194057+Thlumyn@users.noreply.github.com>
Co-authored-by: goobliner <141452834+goobliner@users.noreply.github.com>
Co-authored-by: Lutowski <136726218+Lutowski@users.noreply.github.com>
Co-authored-by: FearfulFurnishing <139661819+FearfulFurnishing@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
2024-01-29 20:13:27 +00:00
SkyratBot
9fe2ef7c99 [MIRROR] Add: 2 Quirks Configs (#26206)
* Add: 2 Quirks Configs (#81033)

This PR adds two new config options for quirks:
- *Flag* `DISABLE_QUIRK_POINTS`
  - When enabled, disables quirk points balancing.
- When enabled, players can select positive quirks without first
selecting negative ones.
- When enabled, the quirk points balance visually hides itself on the
Quirks page.
- *Number* `MAX_POSITIVE_QUIRKS`
- Limits the maximum quantity of positive quirks which players can
select using the Character Preferences page.
  - I ported this from the old `MAX_QUIRKS` define.
- When set to `0`, players won't be able to select any positive quirks,
and they won't appear on the Quirks page.
- When set to `-1`, players will be able to select any quantity of
positive quirks.
  - When commented-out or undefined, the default is `6`.
- When set to `0` or `-1`, the positive quirk balance visually hides
itself on the Quirks page.

There is some downstream repositories asking for the quirks system to be
configurable. Additionally, I always find myself tweaking these values
on my own private servers and I thought it would be nice to share my
edits. Usually I was simply commenting-out sections of this code in
order to get the same result, so it helps to have an official way to
disable quirk points.

🆑 A.C.M.O.
config: Added two new config flags for quirks, DISABLE_QUIRK_POINTS and
MAX_POSITIVE_QUIRKS.
/🆑

* Oh come on

---------

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-01-29 01:56:10 +01:00
SkyratBot
47f8ddd4b9 [MIRROR] Fixes the "Saw this admin message" button not working [MDB IGNORE] (#26107)
* Fixes the "Saw this admin message" button not working (#80908)

## About The Pull Request

Wrong fuckin name brother (also topic doesn't automake textnums into
nums)

## Why It's Good For The Game

Closes #80020

## Changelog
🆑
admin: Confirming that you have read an admin message now uh, works.
it's been 2 years bros
/🆑

* Fixes the "Saw this admin message" button not working

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-01-14 06:35:58 +01:00
SkyratBot
8eeca186df [MIRROR] Cleans up some extra args in Destroy() [MDB IGNORE] (#25907)
* Cleans up some extra args in Destroy() (#80642)

## About The Pull Request

After https://github.com/tgstation/tgstation/pull/80628, these shouldn't
be needed anymore right?

## Why It's Good For The Game

Cleans up some vestigial code

## Changelog
EDIT: Not player-facing.

* Cleans up some extra args in Destroy()

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-12-30 01:21:26 -05:00
lessthanthree
a07989d69a Fix BYOND membership status available to non-members (#25902)
* split byond member from server donator

* Update preferences.dm

* Update preferences.dm

* Update player_ranks.dm

* Update preferences.dm
2023-12-30 02:49:16 +00:00
Useroth
30208d384e Adds a config entry for bypassing the veteran locks on jobs and quirks (#25895)
Adds a config value for bypassing the veteran system for jobs and quirks.
2023-12-29 18:49:31 +00:00
SkyratBot
218fcdb8d5 [MIRROR] adds head of staff job flag [MDB IGNORE] (#25705)
* adds head of staff job flag

* Update jobs.dm

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-24 23:05:59 +00:00
SkyratBot
49daf536b5 [MIRROR] [BOUNTY] Re-adds Contractors [MDB IGNORE] (#25094)
* [BOUNTY] Re-adds Contractors

* I hate copy pasted overrides so much. BEGONE

* Fixes the merge conflict. It's still not gonna work, too many proc redefinition

* The sheer amount of overrides

* This is hell

* remove modular copy of spawn_contractor_partner

* part 2 of spawn_contractor_partner oops

* un-duplicate create_contracts proc

* Remove duplicate contract generate and finish_enter

* something to make the linter stop crying

* Receiving

* removes our contractor stuff in favour of parity

* Update SyndicateContractor.tsx

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-24 22:00:55 +00:00
SkyratBot
0f1761fa40 [MIRROR] Color matrix defines for filters and identity [MDB IGNORE] (#25823)
* Color matrix defines for filters and identity (#80320)

This PR converts the procs `color_matrix_identity`,
`color_matrix_lightness` and `color_matrix_contrast` into
defines/macros. Also adds in defines for common color matrix filters.

I don't like how `color_matrix_identity` is a one-line proc with no arg.
Also these help people identify the sort of color matrix filter is being
used.

* Color matrix defines for filters and identity

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-12-24 20:58:26 +00:00
SkyratBot
55482d6880 [MIRROR] Sign up for Cargorilla from the lobby [MDB IGNORE] (#25572)
* Sign up for Cargorilla from the lobby

* Modular

* Update jobs.dm

* our title screen compat

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-24 20:14:28 +00:00
SkyratBot
4a2a4829b8 [MIRROR] Make spritesheets cacheable by default, killing a lot of overtime in the round start spike [MDB IGNORE] (#25820)
* Make spritesheets cacheable by default, killing a lot of overtime in the round start spike (#80522)

## About The Pull Request
Makes all spritesheets cache by default. This wasn't the case originally
because some spritesheets like vending machines relied on in world
state, but none of them do anymore because that's whack.

Also fixes a bug that would cause half completed caches to break other
stuff. This didn't happen in real gameplay, but would've happened if you
tried to change cachable on anything while you already had a tmp folder.

## Changelog
🆑
fix: Cut down a significant amount of time that caused the start of
rounds to lag.
/🆑

* Make spritesheets cacheable by default, killing a lot of overtime in the round start spike

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-12-24 19:25:58 +00:00
SkyratBot
fc4a1e032e [MIRROR] update blacklisted client byond versions [MDB IGNORE] (#25815)
* update blacklisted client byond versions (#80523)

Also cleans up old ones that don't matter. Since we use 514 client
features so byond forces 514 clients anyways.

Resolves #80504

* update blacklisted client byond versions

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2023-12-24 19:25:52 +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
Bloop
e89b51bff9 [MODULAR] Adds a search function to the loadout menu, and improves readability (#25767)
* Adds a search function to the loadout menu, and improves readability

* Removes the tutorial button that never did anything

* Trims a lot of the fat, deprecated code

Data was being passed to the ui that isn't even being used any more.

* Update preferences.dm
2023-12-22 23:29:27 -05:00
SkyratBot
1885856425 [MIRROR] Adds Mob Tag data to log messages + player panel [MDB IGNORE] (#25366)
* Adds Mob Tag data to log messages + player panel

* Update _logging.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 02:07:16 -05:00
SkyratBot
07683417ef [MIRROR] Deletes area var on clients [MDB IGNORE] (#25358)
* Deletes `area` var on clients (#80037)

## About The Pull Request

Literally nothing wrote to or accessed this variable, in pretty much
_every_ case we just use `get_area(mob)` instead of ever looking at the
client's area (again, ???)
## Why It's Good For The Game

this variable was added 12 years ago and I don't think anyone has ever
novelly used this.
## Changelog
Doesn't matter to players.

* Deletes `area` var on clients

---------

Co-authored-by: san7890 <the@san7890.com>
2023-11-30 20:10:33 -06:00
nikothedude
ad1b182e21 [SEMI-MODULAR] Resonance degradation disorder: The quirk that makes you fear death (#24041)
* h

* fsfesef

* awdad

* asdf

* sew

* AA

* dadaw

* fix ci

* aaaa

* a

* aaaa

* dwaawd

* t

* just style

* voila

* we did it reddit

* a

* topic time

* a few tweaks

* Apply suggestions from code review

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

* more verbose

* piss

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* basic reviews and some better documentation

* TGUI AAAAAAAAAAAAAAAH

* a

* maybe this

* reduce medicine number

* Update code/__DEFINES/~skyrat_defines/quirks.dm

how did i miss this one

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* the great middlewarening

* why did i check for this (hint: i had no reason to)

* final touches

* step 1

* step two

* why are we still here. just to suffer?

* grammar

* me when [single indentation]

* desparation

* some more!

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* finally

* acl

* a

* global moment

* desc moment

* fixes

* I FORGOT TO FUCKING COMMIT IT

* aaghhhh

* aha!

* yahoo

* Makes it work with the transformation sting PR (it won't conflict anymore)

* Updates the string into the proper define, so Niko doesn't notice or have to care that I did this

* k,l

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-11-26 14:18:01 -05:00
SkyratBot
3e38c8b37b [MIRROR] pixel perfect 4x [MDB IGNORE] (#25182)
* pixel perfect 4x (#79660)

## About The Pull Request
Adds pixel perfect 4x and 4.5x scaling. I tested it and it seems to work
though 4.5 scaling causes very slightly distorted pixel sizes. There's
also a bit of letterboxing but I think that happens with all of the
pixel perfect settings.

## Why It's Good For The Game
better fits 4k monitors and isn't stretch to fit

## Changelog
🆑
qol: adds pixel perfect 4x, 4.5x, and 5x
/🆑

* pixel perfect 4x

---------

Co-authored-by: aaaa1023 <74441292+aaaa1023@users.noreply.github.com>
2023-11-21 22:30:26 -05:00
SkyratBot
a373888831 [MIRROR] Nukie Aliases and Some Hairspray [MDB IGNORE] (#25097)
* Nukie Aliases and Some Hairspray (#79653)

## About The Pull Request

Nuclear operatives now receive an alias for their first name, instead of
a default human name. This alias is randomly selected, or can be set in
your name preferences.

![image](https://github.com/tgstation/tgstation/assets/28870487/2584b625-4668-4738-a662-8205476fac2f)

This does not affect Operative Leaders selecting the team's last name.
This means that **operative names are now "[Alias chosen by player]
[Team name chosen by leader]".**

There is a list of default aliases, in case no alias has been selected.
I randomly came up with a bunch of stuff from the top of my head and put
it in a text file. If you think of something better, choose it yourself!

**OH, ALSO:**

There's some hair dye in the Firebase dorms now. Useful if you want to
further differentiate between your Operative/Crew characters, or just
look pretty.
## Why It's Good For The Game

No longer shall nukies be "your character but with a different name".
Now you can give yourself a bit more identity instead of just a random
name.

More customization options means more opportunities for people doing
interesting stuff, and to branch away from the beaten path of boring
meta strats.
## Changelog
🆑 Rhials
add: Nuclear Operatives, in an attempt to appeal to the more "tacticool"
members of their cause, have begun using callsigns to designate
themselves. Check your preferences to set your Operative Alias!
qol: At the request of the more vain members of the cause, hair dye has
been added to the Operative Firebase dorms.
/🆑

* Nukie Aliases and Some Hairspray

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-11-19 00:40:38 -05:00
SkyratBot
3238023f73 [MIRROR] Adds more bitrunning antagonists + fixes (READY) [MDB IGNORE] (#25054)
* Adds more bitrunning antagonists + fixes (READY)

* Update role_preferences.dm

* Update poll_ignore.dm

* Update poll_ignore.dm

* Update cyber_police.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-16 18:50:32 -05:00
SkyratBot
a856e05b35 [MIRROR] Adds a little button to quirks that allows for relatively easy customization [MDB IGNORE] (#24953)
* Adds a little button to quirks that allows for relatively easy customization

* Fixing diffs

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-13 07:37:09 -05:00
SkyratBot
838e9d7194 [MIRROR] Allows TGUI labelled lists to use tooltips, and enables this behavior on preferencelists + adds descs to most character preferences [MDB IGNORE] (#24765)
* Allows TGUI labelled lists to use tooltips, and enables this behavior on preferencelists + adds descs to most character preferences (#79356)

## About The Pull Request

Title.

https://github.com/tgstation/tgstation/assets/59709059/c9fa7d41-6ca4-4b8b-97ec-fdfdd437ce25

## Why It's Good For The Game

The inability to use descriptions in character preferences really limits
the context you can give to readers, which becomes a big problem when
preferences become complicated or laden with policy that must be given
to the reader.
## Changelog
🆑
qol: Character preferences now have descriptions as tooltips - hover
over their names to see them
/🆑

* Allows TGUI labelled lists to use tooltips, and enables this behavior on preferencelists + adds descs to most character preferences

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
2023-11-03 19:40:37 -04:00
SkyratBot
b5c01f9342 [MIRROR] Prettifies Adminwho into an Examine Block [MDB IGNORE] (#24514)
* Prettifies Adminwho into an Examine Block (#79137)

## About The Pull Request

Same vein of #71170 (2d3e7f2383) / #69845
(61d49cb11a) in an attempt to lessen the
number of cruddy "system messages" that just print straight text to
chat.

This could be improved CSS wise but I think a standard examine block
helps a lot while maintaing clarity, see below:

![image](https://github.com/tgstation/tgstation/assets/34697715/7c08fac0-bd10-4297-ac82-c85d02d7d792)

I also heavily refactored adminwho code to not have so much copypasta
while using more `jointext()` and keeping everything a bit more readable
than what it previously was. User-facing stuff should all be the same
(with the addition of an examine block) except in two spots

* Custom header message when no admins are online. I think this is a far
clearer message than having `Current Admins:` and then the message about
adminhelps being relayed to Discord
* There's no tabs per each entry. This was replaced by a bullet point. I
think it's better to read.
## Why It's Good For The Game

As time goes on, I'm more and more peeved by these pretty critical
messages constantly blending in with output from the rest of the game.
This is why balloon_alerts and whatever became so popular to my eyes,
there's just constant junk. I figure that we may as well just keep the
systematic stuff that _must_ live in the chat box looking as neat as
possible.
## Changelog
🆑
qol: Adminwho messages are now in an examine block for heightened
clarity.
/🆑

* Prettifies Adminwho into an Examine Block

---------

Co-authored-by: san7890 <the@san7890.com>
2023-10-22 10:24:18 -07:00
SkyratBot
117c2edc20 [MIRROR] Adds Food Allergies as a counterpart to Medicine Allergies [MDB IGNORE] (#24493)
* Adds Food Allergies as a counterpart to Medicine Allergies (#79118)

## About The Pull Request

Adds food allergies as a counterpart to medicinal allergies.

This is about as you would expect. Eating food you are allergic to
causes Anaphylaxis, which can be cured with epinephrine. If you are not
cured rapidly, you will shortly fall into a coma and die.

There is a preference for choosing your character's allergy.
Not all food types are viable allergen types: Only `"Alcohol", "Bugs",
"Dairy", "Fruit", "Grain", "Meat", "Nuts", "Seafood", "Sugar",
"Vegetables"`.

You also get a dogtag like med allergies.

Minor implementation detail: I added a "dangerous" level of food quality
/ scale, so I gave it to the Death Sandwich.

## Why It's Good For The Game

This was a request, and I saw it fairly harmless, so I said why not.

Similar to Medicine Allergy, it adds a small mechanic to concern
yourself with when you visit the kitchen, encouraging you to get a bit
more familiar with food types before diving into food at the kitchen.

As it is not as impactful as Medicine Allergy, it is only a -2 quirk.

## Changelog

🆑 Melbert
add: Adds Food Allergies as a -2 quirk. You can select which food you're
allergic to or rock a random option.
/🆑

* Adds Food Allergies as a counterpart to Medicine Allergies

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-10-21 15:14:19 -04:00
SkyratBot
34a9897b5d [MIRROR] reload savefile on pref assosciation [MDB IGNORE] (#24382)
* reload savefile on pref assosciation (#78984)

## About The Pull Request

Tells the preferences datum to reload the savefile when we associate to
an already existing one
## Why It's Good For The Game

This trolled me locally for a good hour wondering "why aren't my prefs
updating when I swap out the file"
## Changelog

* reload savefile on pref assosciation

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-10-16 17:35:55 -04:00
SkyratBot
10fb927883 [MIRROR] Added a larger afro hairstyle [MDB IGNORE] (#24344)
* Added a larger afro hairstyle

* Update head_hair_and_lips.dm

---------

Co-authored-by: Cruix <ianjturk@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-15 20:00:20 -04:00
SkyratBot
b178e56ca5 [MIRROR] Dullahan Fixes [MDB IGNORE] (#24302)
* Dullahan Fixes (#78938)

## About The Pull Request

Let's see if these can be like 50% playable by Halloween

Fixes #70890 (mostly)
Also one half of #71020 but does not close it because they still cannot
hear audible messages

There was a list of issues in #70890 which are largely fixed by this,
but some of them were not _bugs_.
Anything which is simply an obvious consequence of "not having a head or
being able to wear anything on your head" isn't and cannot be fixed,
because this species doesn't have a head.
That means that all of these things are still true:
```
Dullahans have no radio
Can't get spaceproofed because without the helmet you still take pressure damage
Can't wear modsuits
Can't wear sunglasses or HUDs
Can't wear clown mask
```

The issue causing everything _else_ is that when we sever the head, we
remove the brain. Removing the brain removes the traits
`TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP`. Without these
three traits, Dullahans are blocked from several important actions.
Easy fix: Make these properties of the dullahan species independent of
whether they have a brain or not. Clearly they can do these things
without brains, on account of not having them.

Additionally I gave dullahans their own head subtype which preserves
internal organs, because their brains and eyes were decaying and giving
them brain trauma and blindness.

Finally, I changed a few things from checks in `spec_life` to signal
responses, because `spec_life` checks for "did I gain a head recently?"
are gross.

## Changelog

🆑
fix: Dullahans can read, strip people, and utilise tools.
fix: Dullahan brains and eyes will not decay while inside their living
severed head.
/🆑

---------

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

* Dullahan Fixes

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-10-12 18:34:57 -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
SkyratBot
5afe9af665 [MIRROR] Converts cursed heart effect into a component. [MDB IGNORE] (#24104)
* Converts cursed heart effect into a component. (#78554)

## About The Pull Request

Fixes #58401
Fixes #58799
Fixes #58800

Converts the manual heart-beating effect of the cursed heart into a
component.

Behavior has mostly been maintained, but polished a bit as compared to
the original cursed heart. Most notably, the action for beating your
heart is now a cooldown action - providing a visual indicator of when
you can beat it again, rather than leaving you guessing. Some better
checks have also been put in place for edge cases such as having your
species changed.

Implementation inspired by the existing "manual blinking" and "manual
breathing" components. Currently only used by the cursed heart and the
(now majorly simplified) effect of corazargh.

My first component, so hopefully I didn't miss anything.
## Why It's Good For The Game

The cursed heart was kind of unusably bad - which may have been part of
the intent, but having to count in your head or spam-click the button is
just annoying. With a visual indicator of when you should beat your
heart, hopefully it will be slightly less awful for the cursed.

The real motivation here was that corazargh's implementation was kind of
a travesty - summoning a cursed heart inside of your body while it was
in your system, then restoring your old heart afterward. This was
error-prone as well as just being ridiculous. Making this effect a
component gets rid of these problems, and leaves space open for new uses
of manual heart beating if anyone feels like being cruel.
## Changelog
🆑
fix: Your heart will no longer be deleted if an admin heals you while
you have corazargh in your system.
refactor: The cursed heart has been streamlined a bit, and now gives you
a visual cooldown for when you can beat your heart again.
/🆑

* Converts cursed heart effect into a component.

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
2023-10-03 21:58:18 -07:00
SkyratBot
4943f17d5d [MIRROR] Fixed spritesheet images for sprite accessories with no icon_state [MDB IGNORE] (#24085)
* Fixed spritesheet images for sprite accessories with no icon_state (#78710)

## About The Pull Request

Some sprite accessories (such as bald and shaved) do not have icon
states, and these are stored as nulls in the GLOB lists. When generating
sprite sheets, nulls were simply returning the basic head icon without
scaling it in the same manner as the other sprites were scaled.

Old:

![Before](https://github.com/tgstation/tgstation/assets/16478175/e095dd8b-2fc2-4f7b-a176-7f0684629428)

New:

![after](https://github.com/tgstation/tgstation/assets/16478175/ea5b4583-58c5-42de-b5ea-367661ebb9e9)

## Why It's Good For The Game

Having some hairstyles be scaled differently in the spritesheets looks
bad.

## Changelog

🆑
fix: Some icons for selecting character preferences are no longer scaled
incorrectly.
/🆑

Co-authored-by: Cruix <discoveryian2@ gmail.com>

* Fixed spritesheet images for sprite accessories with no icon_state

---------

Co-authored-by: Cruix <ianjturk@gmail.com>
Co-authored-by: Cruix <discoveryian2@ gmail.com>
2023-10-03 05:29:50 -04:00
SkyratBot
964fc99589 [MIRROR] Feature: bitrunner, a new supply role (READY) [MDB IGNORE] (#23865)
* Feature: bitrunner, a new supply role (READY)

* Delete bepis.dm

* Conflicts

* Update dynamic_rulesets_midround.dm

* Fixing this invalid icon file path

It was trying to use the aesthetics one

* Bepis is dead

* New digi sprites courtesy of CandleJaxx!!

Now in the correct branch!

* Fixing merge conflict

* bitrunning hotfixes [NO GBP]

* Modular health adjustments

* Revert "Modular health adjustments"

This reverts commit 0ff3c48d398f6c1aac51cdf8fecaf869491bbc86.

* Modular health adjustments

Only this one should be necessary

* The screenshot test

* Bitrunner den for voidraptor (FOR #23865) (#23891)

* no shower in sight

* lets bitrunners actually get to their room and spawn there

* New digi sprites courtesy of CandleJaxx!!

* Revert "New digi sprites courtesy of CandleJaxx!!"

This reverts commit eea9f47de256dd407c78450bc8f2a09b814f93e9.

---------

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

* Removes bitrunning unit tests (#78607)

## About The Pull Request
Removes the fraction of unit tests I thought would be safe.
Not thrilled that I have to exclude ALL unit tests now, but hey.

The issue is that atmos attempts to process on a turf which hasn't
initialized yet.
## Why It's Good For The Game
Other PRs can pass checks now
## Changelog
N/A

* Update birdshot.dmm

* Tweaks the BEPIS category of the bitrunning order console

* Adds back the flashdark that we had skyrat edited in

* Update tgstation.dme

* Fixes Voidraptor bitrunning den not being connected to the powergrid

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-09-29 20:53:36 -04:00
SkyratBot
325b399ba3 [MIRROR] You can now pick the limb you want replaced with the Prosthetic Limb Quirk. [MDB IGNORE] (#23961)
* You can now pick the limb you want replaced with the Prosthetic Limb Quirk. (#78517)

## About The Pull Request

The Prosthetic Limb quirk allows you to pick the limb you want. The
default is still random
## Why It's Good For The Game

Good for character customization, which is always nice. Statics who got
a specific limb replaced can now represent that properly in-game.
Also, this makes the quirk show up on the dummy on the character
customization again. This *does* cause a slight issue where when you
switch to another character, it keeps the previous' skin color, but it's
minor enough that i think the benefits are worth the drawback. If asked
i will make it not appear on the dummy though.
## Changelog
DATA_, with great help from Kapu🆑
add: You can now choose the prosthetic you want with the Prosthetic Limb
quirk.
/🆑

* You can now pick the limb you want replaced with the Prosthetic Limb Quirk.

---------

Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
2023-09-27 18:57:49 -04:00
SkyratBot
32e9778c23 [MIRROR] TTS: Gas Mask muffling, Hailer Mask voice effects, support for more filters that use samplerate, voice effects for lizards, ethereals, and xenomorphs. [MDB IGNORE] (#23942)
* TTS: Gas Mask muffling, Hailer Mask voice effects, support for more filters that use samplerate, voice effects for lizards, ethereals, and xenomorphs.

* Update RecordView.tsx

* Update types.ts

---------

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-27 02:27:56 -04:00
SkyratBot
ab13621437 [MIRROR] Adds logging for first time user connections [MDB IGNORE] (#23889)
* Adds logging for first time user connections (#78525)

## About The Pull Request

Fikou asked me for this and I like fikou.

![image](https://github.com/tgstation/tgstation/assets/58055496/fdf99821-2404-45c4-ac09-85e29589a7ac)

## Changelog
🆑
admin: First time user connections are now logged
/🆑

* Adds logging for first time user connections

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-09-24 23:22:41 -07:00
SkyratBot
e1d49bd0e7 [MIRROR] Culls client/mouse code only used by beam rifles in favor of signals. [MDB IGNORE] (#23754)
* Culls client/mouse code only used by beam rifles in favor of signals. (#78113)

* Culls client/mouse code only used by beam rifles in favor of signals.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-09-17 15:35:22 -04:00
SkyratBot
1edbfcd0f0 [MIRROR] Nuclear operatives can now be other species. Pref toggle to always be human as operative [MDB IGNORE] (#23433)
* Nuclear operatives can now be other species. Pref toggle to always be human as operative

* remove skyrat edit

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-08-31 14:27:59 -07:00
SkyratBot
42c25e5674 [MIRROR] Added sounds for unlocking achievements. [MDB IGNORE] (#23403)
* Added sounds for unlocking achievements. (#77968)

## About The Pull Request
Unlocking an achievement now plays a sound. Which sound is played
depends on the associated preference of the player, found in the Sound
category of the game preferences UI.
The current options are a [glockenspiel
ping](https://freesound.org/people/FunWithSound/sounds/456965/), a
[beeps jingle](https://freesound.org/people/Eponn/sounds/619838/) and a
["tada!"
fanfare](https://freesound.org/people/plasterbrain/sounds/397355/), with
the obvious fourth option to not play a sound at all.

All sounds are from Freesound and are public domain. As such,
attributions are not required. The sounds have been also converted to
.OGG mono 44.1 Khz in accordance to the standards.

## Why It's Good For The Game
Enhancing the player feedback for unlocking an achievement with
choosable sounds.

## Changelog

🆑
sound: Unlocking an achievement now plays a sound by default. You can
change it in the Sound category of the game preferences.
/🆑

* Added sounds for unlocking achievements.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-08-30 16:29:27 -04:00
GoldenAlpharex
1b17b304f2 SQL-Based Player Ranks and Player Ranks Subsystem (#23099)
* Initial draft, most of the stuff is implemented, not really tested or cleaned up yet

* Refactors the handling into a datum-based approach, for more abstraction

* Added migration, properly hooked up the verb to the new system

* Removed some more dead code

* Fixes some missing stuff from the .dme because VSC is stupid sometimes with merge conflicts

* Fixes the schema

* Wow I was really getting tired huh

* A fool, I say, a fool!

* I hate lists of lists I hate lists of lists I hate lists of lists

* I somehow missed this one twice. TWICE!

* This won't actually work if it's defaulting to true, lmao

* Makes it not log stuff if the adding or removing of players is unsuccessful

* Adds a way to update all of the unlock_contents for preferences datums once the donator list is initialized

* Runs update_prefs_unlock_content on mob Login() (hopefully this helps)

* Fixes the bajillion of runtimes caused by my dumb ass trying to make some client calls on ckeys

* Man I was really tired that day

* I had this ready for three hours and forgot to push it
2023-08-29 16:12:01 +02:00
SkyratBot
4d2196c7cc [MIRROR] New Backpack Type: Messenger Bags! [MDB IGNORE] (#23287)
* woo yeah baby

* i find myself of a potent dislike for the antichrist

* she was forced to do data entry

* lmao

* wew

* New Backpack Type: Messenger Bags!

* Update clothing.dm

* Update clothing.dm

---------

Co-authored-by: Snakebittenn <12636964+Snakebittenn@users.noreply.github.com>
Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-08-24 22:47:13 -04:00
SkyratBot
57abd05851 [MIRROR] Separate init_possible_values() from icon generation [MDB IGNORE] (#23221)
* Separate init_possible_values() from icon generation

* Update clothing.dm

* Update lizard.dm

* Modular

* Runtime fix

* Modular adjustments

* Fixes icon offset for undershirt

* Update mutant_parts.dm

* Update mutant_parts.dm

* Fix a merge skew

* Update mutant_parts.dm

* More of a catch-all solution

* Update _preference.dm

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-08-24 21:44:13 -04:00
SkyratBot
edeea24c7e [MIRROR] PDA Messages are once again shown to non-observing dead mobs [MDB IGNORE] (#23254)
* PDA Messages are once again shown to non-observing dead mobs

* Update code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-08-22 02:56:43 -04:00
SkyratBot
1aec547be9 [MIRROR] Use typepaths for the quirk blacklist [MDB IGNORE] (#23208)
* Use typepaths for the quirk blacklist

* Update quirks.dm

* Update quirks.dm

whoops

---------

Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-19 15:50:03 -04:00
SkyratBot
08c4188c61 [MIRROR] Makes client upload limit a config, bumps admin file size upload limit to 5mb (from 2.5mb) [MDB IGNORE] (#23207)
* Makes client upload limit a config, bumps admin file size upload limit to 5mb (from 2.5mb)

* Update client_procs.dm

---------

Co-authored-by: Striders13 <53361823+Striders13@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-19 15:39:08 -04:00
SkyratBot
0614285369 [MIRROR] Revert "Add the ability to use blips as your character's voice" [MDB IGNORE] (#23186)
* Revert "Add the ability to use blips as your character's voice" (#77715)

Reverts tgstation/tgstation#77640

![Discord_iPE1cmuUrY](https://github.com/tgstation/tgstation/assets/4081722/a54a8e7b-ef2b-4f32-9589-bde7b6b2b7d4)

This is causing big problems right now and we've agreed to a, at
minimum, temporary revert so that we can re-approach this at a later
date and do things properly

@ MrStonedOne pls i need that TTS repo im begging you pls

* Revert "Add the ability to use blips as your character's voice"

---------

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
2023-08-18 19:25:06 -04:00
SkyratBot
7456c9be22 [MIRROR] Add the ability to use blips as your character's voice [MDB IGNORE] (#23109)
* Add the ability to use blips as your character's voice (#77640)

## About The Pull Request

- Adds the ability to force your TTS voice to always be blips, default
is still normal speech
- Probably fixes a bug with silicon voices not transferring properly?
There was an entire argument missing from tts_request/New
- Fixes problems I got from the Docker build not working at all. Only
thing interesting is `--no-cache-dir` which was to fix the container
running out of RAM even though I literally just got 64GB of RAM today

Got permission from @ optimumtact as alternative to being able to disable
your voice, CC @ Iamgoofball

## Why It's Good For The Game

I spent two hours trying to find a voice that didn't make me
uncomfortable to use and that was even in the realm of being the voice I
would actually want people to hear. Characters still have distinct
"voices" because the blips are chopped together from the voice itself

## Changelog

🆑
add: You can now set your voice to just blips.
/🆑

* Add the ability to use blips as your character's voice

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-08-16 00:12:33 -07:00