Commit Graph

199 Commits

Author SHA1 Message Date
SkyratBot
c3df3fea14 [MIRROR] Adds a config option for warning clients about older builds (not just older versions) [MDB IGNORE] (#19477)
* Adds a config option for warning clients about older builds (not just older versions) (#73549)

## About The Pull Request

MSO was being tsundere about this and it seemed useful, so here we go

## Changelog
🆑
config: Added a warning build config setting, you can now lightly
repremand but not block clients with older builds but fine major
versions
/🆑

* Adds a config option for warning clients about older builds (not just older versions)

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-02-20 21:08:56 -08:00
SkyratBot
56da631271 [MIRROR] add a stack_trace to config validation checking [MDB IGNORE] (#19207)
* add a stack_trace to config validation checking

* Update general.dm

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-17 09:15:48 -08:00
SkyratBot
3bf3f4e02d [MIRROR] Sends a toast notification when initializations complete. [MDB IGNORE] (#18623)
* Sends a toast notification when initializations complete. (#72465)

## About The Pull Request

Initialization is significantly slowed down by the presence of clients,
though when testing features, you need to join the server. I've been
told that some devs (particularly Mothblocks) are alt-tabbed out of
Dream Daemon while doing dev work, meaning that they are liable to miss
initializations completing, causing an effective slowdown in the dev
cycle. Mothblocks said it would be nice if there was a way to produce a
desktop notification when initialization completes.

I originally intended to add a function to rust_g that would produce a
Windows toast notification with a button allowing you to immediately
launch Dream Seeker. However, I couldn't find a reliable way to detect
if the OS version was Windows 7 or earlier, so running this function on
such an OS would cause a rust panic (which I was told is only a problem
because MSO probably still uses Windows 7).

Fortunately, PowerShell scripts can access the necessary .NET APIs to
produce toast notifications on Windows 10, while also failing more
gracefully than crashing the host process. So I recreated the
functionality I intended in PowerShell.

Toast notifications will only be sent on Windows, if the
TOAST_NOTIFICATION_ON_INIT config flag is enabled, AND there are no
clients on the server.

**Note for downstreams:** If you want the toast notification to have
your downstream's icon, copy it, scale the copy down to 16x16, and
either rename it "tg_16.png" or change that path in the call to
`world.shelleo` to the name of the new file.

Video Demo:

https://user-images.githubusercontent.com/12720844/210492033-963923d7-a1de-4326-9c9f-4f0c0b71d1a5.mp4

## Why It's Good For The Game

This isn't really a line item in the Dev Cycles Initiative, but even if
Mothblocks was exaggerating the benefits, it would still be a
significant speedup in the dev cycles.

## Changelog

No player-facing changes.

* Sends a toast notification when initializations complete.

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
2023-01-10 07:38:08 -08:00
SkyratBot
509b89f45c [MIRROR] Contextual tutorials for swapping hands and dropping items [MDB IGNORE] (#18604)
* Contextual tutorials for swapping hands and dropping items

* Fixes

* Oops

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2023-01-10 14:26:08 +01:00
SkyratBot
26274a342c [MIRROR] Add config for station traits [MDB IGNORE] (#18468)
* Add config for station traits

* Update station.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-09 07:13:20 +00:00
SkyratBot
75c8e0126e [MIRROR] Adds support for non-science techwebs (+Config) [MDB IGNORE] (#17596)
* Adds support for non-science techwebs (+Config) (#71070)

## About The Pull Request

This is an expanding of
https://github.com/tgstation/tgstation/pull/69708

Adds a config to not connect machines to a techweb at the start of a
round
Adds the ability to multitool a server to get its techweb in its buffer,
which can then be used on machines to sync them.
Adds support for some machines to not cry when they don't have a techweb
linked to it, in case they actually don't.

If the config to not have machines connected to the science server is
enabled, research servers will make their own techwebs instead. This is
barebones though and would need more work if this option is used.

For misc stuff:
- I replaced checking ``GLOB.machines`` for research servers, to instead
check ``SSresearch.servers``, where we can use ``as anything``.
- Removed unused vars on the RD server control
- I renamed the operating computer's .dm file to remove the capitalized
letter from it. It's now operating_computer instead of Operations.

## Why It's Good For The Game

This is adding support for 2 different cases that can be used in the
future:
1. Off-station roles, we can make roles like Oldstation have their own
techweb so they don't ruin science's efforts, or use their advanced
research to get things we don't want, or even possibly have some
blacklist webs for ghost roles (like teleporters) so that way we don't
need to have this dance where we have to give them a very specific
amount of materials for them to do things while not being able to get a
teleporter and leaving. I heard discussions that people wanted this a
while back, and one of the main things preventing this from happening is
the lack of support. Hopefully this is encouragement to make it a
reality, because I think it would be a really cool expansion of ghost
roles and a good way to prevent them from messing with the round in
progress.
2. Downstreams who want to do different things with Science. Personally
I made this PR with voidcrew(shiptest) in mind and think this would make
their lives easier. I didn't expand too much on this because I'm leaving
up mostly to the downstreams to figure out what they want to do with
these systems.

## Changelog

This generally isn't really player facing, since most of the changes
would only come into effect if the config is enabled??

🆑
fix: Research servers now only show servers connected to their techweb.
/🆑

* Adds support for non-science techwebs (+Config)

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-11-22 11:47:40 -05:00
Tastyfish
cf86be9d4e [MODULAR] Removes lobby camera remnants (#17073)
Removes lobby eye
2022-10-21 18:30:08 -04:00
SkyratBot
11fc632d38 [MIRROR] Refactor /mob/living/carbon/alien/humanoid to be /mob/living/carbon/alien/adult [MDB IGNORE] (#17044)
* Refactor `/mob/living/carbon/alien/humanoid` to be `/mob/living/carbon/alien/adult`

* update modular

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-10-21 10:42:44 +01:00
OrionTheFox
f8aa27f8d6 Removes obsolete Skyrat_Wiki variable (Fixes CorpReg link) and sets wikiurl default config to the Skyrat wiki (helps test servers/downstreams) (#16197)
* kill skyrat_wiki var

* OPTIONAL COMMIT: Comment "Tidying"(?) and Description improvements

* config i hope i did these right

WIKIURLSKYRAT IS OBOSLETE AND REMOVED

* hnhbg
2022-09-25 18:03:21 -04:00
SkyratBot
00d7e1f375 [MIRROR] Rocking The Boat, er, Map Vote [MDB IGNORE] (#16083)
* Rocking The Boat, er, Map Vote (#69561)

* Rocking The Boat, er, Map Vote

Hey there,

A while ago, I spooke (typo intentional) to some other people. One frustration I heard was the fact that people would sometimes sneak through map votes during the very start of a shift, during a high-paced portion, or just as a meme. People in OOC would then flood the vote, putting in any given station. However, if a vote happens 10 minutes in- and the round goes for 70 minutes and not many of the original players are around, then it's not particularly fair to those who have to play next shift on a map they bemoan.

So, we can rock the vote! If a player isn't particularly chuffed with the hand they are given, they can poll the players to see if they want to change the map as well. If rocking the vote goes through, huzzah, you get the ability to vote for the map again. If it doesn't go through: tough luck. You can rock the vote one time per shift by default, and server operators can change the amount of times you can call to rock the map vote at their discretion. Calling to rock the vote either successfully or non-successfully counts as a "call", and when that limit is exceeded: no more calls.

Does this mean that we will only rotate between two maps because pissants will keep rocking the vote until they get what they like? Maybe? I still see people bemoan getting Tram or shit the bed over IceBox, but I think enough people get sick of bread-on-butter to take the server where it need to go. If operators don't really like seeing only two maps play, they can always adjust the config to ensure it doesn't happen.

* makes the grammar grammar

it would be "Rock the Vote vote" otherwise

* Rocking The Boat, er, Map Vote

Co-authored-by: san7890 <the@san7890.com>
2022-09-11 20:18:14 -07:00
SkyratBot
2bd18adc8a [MIRROR] Cadaver spawner fixes [MDB IGNORE] (#16109)
* Cadaver spawner fixes (#69544)

fix: Fixed a runtime preventing nonhuman cadavers from spawning properly.
config: Cadaver spawners will no longer yell at you when morgue_cadaver_other_species_probability is blank.
config: morgue_cadaver_disable_nonhumans will now properly disable nonhuman races! (It was reversed, woops.)

* Cadaver spawner fixes

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-09-08 08:27:12 -04:00
SkyratBot
d559b94920 [MIRROR] Add silicon human spremacy override config, fixes #68957 [MDB IGNORE] (#15788)
* Add silicon human spremacy override config, fixes #68957 (#69293)

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

* Add silicon human spremacy override config, fixes #68957

Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-08-24 18:12:29 -04:00
SkyratBot
403406fecf [MIRROR] Allows non-human bodies to spawn in the morgue at roundstart [MDB IGNORE] (#15493)
* Allows non-human bodies to spawn in the morgue at roundstart (#68867)

Adds a configurable probability for the cadavers in the morgue to spawn as nonhuman species.

* Allows non-human bodies to spawn in the morgue at roundstart

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-08-09 18:48:09 -04:00
SkyratBot
5cc21edbb1 [MIRROR] Security's Scaling Departmental Accesses - More Pop, More Problems [MDB IGNORE] (#15393)
* Security's Scaling Departmental Accesses - More Pop, More Problems

* Update admins.txt

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-08-05 00:56:52 +01:00
SkyratBot
800369ef9f [MIRROR] AI Lawset can now be specified instead of 'custom' [MDB IGNORE] (#15375)
* AI Lawset can now be specified instead of 'custom' (#68587)

* AI Lawset can now be specified instead of 'custom'

Co-authored-by: Charlotte <98856144+orthography@users.noreply.github.com>
2022-08-04 15:49:11 +01:00
Zonespace
15a223ff2d [MIRROR] Admin lua scripting (#65635) (#15118)
[Ready for Review] Admin lua scripting (#65635)

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

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-07-24 19:55:53 +01:00
GoldenAlpharex
fbbecbdba5 Fixes the issues with the database that have been forcing us to have #10823 test-merged for half a year (#15061)
* Don't try to make a query on a client that doesn't exist

* If this is actually why it's been shitting the bed, I swear to god
2022-07-20 04:12:35 +02:00
SkyratBot
c68fea7cba [MIRROR] Completely removes proc_holders from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code. [MDB IGNORE] (#14666)
* Completely removes `proc_holders` from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code.

* our changes

* yes

* 0

* Update blackmesa.dmm

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-07-01 20:33:30 +01:00
SkyratBot
48ac7b572d [MIRROR] Security Level Datums [MDB IGNORE] (#14504)
* Security Level Datums

* wew

* Update security_level_datums.dm

Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-25 02:04:50 +01:00
SkyratBot
1464f5ec56 [MIRROR] Added further limitations on the sound emitter circuit component [MDB IGNORE] (#14401)
* Added further limitations on the sound emitter circuit component (#67540)

Added limitations on the sound emitter component

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

* Added further limitations on the sound emitter circuit component

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2022-06-19 10:11:49 -07:00
SkyratBot
7a653adfbb [MIRROR] TGUI Say: Upgrades chat input with modern features [MDB IGNORE] (#14375)
* TGUI Say: Upgrades chat input with modern features

* yes

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-17 02:12:42 +01:00
SkyratBot
af8aa232d2 [MIRROR] Makes Playing Lobby Music A Config [MDB IGNORE] (#14220)
* Makes Playing Lobby Music A Config (#67455)

* Makes Playing Lobby Music A Config

Hey there,

Apparently some people don't like listening to the soulful lobby music we have to offer. How unfortunate. This adds a config flag to disable said title screen music. I've heard people who like debugging a lot don't want to get their ears-bleeding via flipflap, but I find it hard to agree.

* ALLOW to DISALLOW

whoops

* FUCK

* MSO's suggestions

I also added a small portion in regards to player preferences in case people weren't aware of that.

* lol

physics burned my brain out on parentheses

Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>

Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>

* Makes Playing Lobby Music A Config

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
2022-06-10 18:01:56 +01:00
GoldenAlpharex
d4b0974aaf [MIRROR] CARGONIA THE FREE: The Quartermaster is now a head of staff. (#67518) [MDB IGNORE] (#14186)
* CARGONIA THE FREE: The Quartermaster is now a head of staff. (#67518)

* The Quartermaster is officially a head of staff, with new accesses, a silver ID, ect ect.
* The HoP lost their cargo-related equipment and access, including the Vault monitor, and frequency.

* wew

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-08 15:28:51 +01:00
SkyratBot
17fcc2aced Purges Mentions/Related Code of Virtual Reality From Config and Mapping (#13672)
Co-authored-by: san7890 <the@san7890.com>
2022-05-17 17:32:18 -07:00
SkyratBot
c8f2c9d98c [MIRROR] Removes log_cloning [MDB IGNORE] (#13581)
* Removes log_cloning (#66912)

Right now there is only 1 source of cloning: pod cloning-- and pod cloning is exceedingly rare. I don't think this warrants its own file anymore with the death of regular cloning a few years back.

* Removes log_cloning

* Removes log_cloning

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-05-17 21:38:27 +01:00
SkyratBot
6059a35c7a [MIRROR] Removes (now unused) sandbox related config and variable [MDB IGNORE] (#13493)
* Removes (now unused) sandbox related config and variable (#66803)

I don't know when we removed sandbox but this datum doesn't exist anymore and this var is unused

Also the config does nothing anymore so might as well throw that out

* Removes (now unused) sandbox related config and variable

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-05-09 21:48:03 -07:00
SkyratBot
9485e35615 [MIRROR] Refactors SSvote, makes votes into datums, also makes vote ui Typescript [MDB IGNORE] (#13448)
* Refactors SSvote, makes votes into datums, also makes vote ui Typescript

* yes

* Update transfer_vote.dm

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-09 01:42:27 +01:00
SkyratBot
b87c7279b0 [MIRROR] Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init. [MDB IGNORE] (#13089)
* Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init. (#66473)

* Adds MC initialization stages. Earlier stages can fire while later ones init.
Removes TICK_LIMIT_MC_INIT config for barely doing anything to speed up init and being inconvenient to work with if fires and inits can happen at the same time.

* Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2022-04-25 14:25:23 +01:00
SkyratBot
b12cf7f5da [MIRROR] Gives traitor logging its own config flag [MDB IGNORE] (#12746)
* Gives traitor logging its own config flag (#66148)

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

* Gives traitor logging its own config flag

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
2022-04-14 04:15:29 +01:00
Spock
d4d9e469a4 [MODULAR] Alert level text changes (#12251)
* Alert level text changes

* Update config.dm

* Update config.dm
2022-04-08 23:24:48 +01:00
Gandalf
f58530db36 Upstream merge 65625 (#12452)
* Pingbus changes and improvements

* Update adminhelp.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-04-01 01:15:48 +01:00
SkyratBot
6e51ad38ef [MIRROR] Changes what appears for urgent ahelps to supportmins. [MDB IGNORE] (#11516)
* Changes what appears for urgent ahelps to supportmins. (#64748)

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

* Changes what appears for urgent ahelps to supportmins.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2022-02-15 23:27:40 +00:00
Tom
da50b21d45 Cleans up and fixes a logging issue. (#11208) 2022-02-05 20:52:04 -05:00
SkyratBot
43c74b2818 Adds a config toggle for granting admin server profile access (#11263)
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2022-02-04 19:37:44 +00:00
SkyratBot
105f0cc610 [MIRROR] Add config entries for PR_ANNOUNCEMENTS_PER_ROUND and STATION_GOAL_BUDGET [MDB IGNORE] (#11145)
* Add config entries for PR_ANNOUNCEMENTS_PER_ROUND and STATION_GOAL_BUDGET (#64368)

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

* Add config entries for PR_ANNOUNCEMENTS_PER_ROUND and STATION_GOAL_BUDGET

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>
2022-02-01 01:31:19 +00:00
SkyratBot
958a9d632d [MIRROR] Logs tool usage [MDB IGNORE] (#11055)
* Logs tool usage

* fix conflict

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2022-01-28 01:57:27 -05:00
jjpark-kb
272384d0fb lobby camera (#10829)
* lobby camera

* Update code/__DEFINES/layers.dm

shouldn't cover up the menu

* make it a subsystem

* adds a setting to disable the lobby eye (per person)

* Update modular_skyrat/modules/lobby_cam/code/lobby_eye_ss.dm

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

* Update modular_skyrat/modules/lobby_cam/code/lobby_eye_ss.dm

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

* Update modular_skyrat/modules/lobby_cam/code/lobby_eye_ss.dm

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

* Update modular_skyrat/modules/lobby_cam/code/lobby_eye_ss.dm

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

* Update modular_skyrat/modules/lobby_cam/code/lobby_eye_ss.dm

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

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-01-27 04:02:34 +00:00
Useroth
eb384bd2d7 Telemetry 'n shit (#10810)
* Refactors dbcore and limits the maximum amount of concurrent async queries to a variable amount (#59676)

Refactors dbcore to work off a subsystem if executed async and limits the maximum amount of concurrent async queries to 25.

This has been tested locally on a mysql docker image and there were no crashes (as long as you didn't run it with debug extools) + data was getting recorded fine.
Why It's Good For The Game

May or may not resolve terry crashes, however, each query creates a new thread which takes up 2mb, preventing the game from using that 2mb. This can lead to ooms if they stack up, e.g. due to poor connectivity. This solves that issue.

maintainer note: this did not actually resolve the crashes, but has value anyway. Crashes were sidestepped fixed by finding out Large Address Awareness works

cl
refactor: Refactors dbcore.dm to possibly resolve the crashes that happen on Terry.
/cl

* Fixes an oversight in database code and cleans up telemetry (#64177)

As it is right now, we never actually clear the temporary list processing_queries
So if the subsystem is for some reason unable to complete a run, we will just whip right back around to it again
If it's been long enough, this could even cause horrific log spam. There was just now a manuel round with roughly 30k undeleted query errors. not good.

But what was actually not deleting you may ask?
Well

When you create a db request, a 5 minute timer starts. after those 5 minutes are up, the request is qdeleted by the db subsystem
This is to prevent the creation of unused requests, and to handle requests that are never cleaned up

Telemetry code was creating all of its db requests inside a for loop that could check tick, and then later
attempting to call them in series

Since requests by default sleep, this almost always lead to undeleted queries, which harddel'd given long enough periods

I've fixed this by moving the data gathering away from the query creation
Why is it good for the game

I was working on atmos code, happy, safe in my delusion, when suddenly I got a ping from tattle freaking out over 200 undeleted queries a second
This resolves that issue, so I can once again live in peace
Changelog

cl
admin: Telemetry code will spam you with undeleted query logs much less often now!
server: Improved how the db subsystem handles undeleted queries, should never have an incident like that again
/cl

* Fixes an error in telemetry queries (#64205)

* Hardsynced time_track.dm with upstream

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-01-19 00:21:07 +00:00
SkyratBot
c33061765b [MIRROR] [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety [MDB IGNORE] (#10620)
* [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety

* updates and fixes

* ffff

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-01-12 03:25:38 +00:00
SkyratBot
df350f0977 [MIRROR] Add config entry to hide the station name in the hub entry [MDB IGNORE] (#10380)
* Add config entry to hide the station name in the hub entry

* Fixing the merge conflicts, I'll update this again once the PR right before is merged.

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-01-03 22:05:45 +00:00
SkyratBot
eb65da1b45 [MIRROR] Amortize the cost of creating preference assets by caching them per git revision on production, reducing best case init times by ~20 seconds [MDB IGNORE] (#10379)
* Amortize the cost of creating preference assets by caching them per git revision on production, reducing best case init times by ~20 seconds (#63503)

Preference asset creation, which while consistently created in early assets, can be requested at any time before then and often is, currently takes about 15 to 25 seconds to produce. Because of extremely hard to reproduce BYOND icon bugs, most of this is done on the same tick.

Lowering the cost of initialization itself is very tricky. Some of it we can theoretically optimize, such as creating humans for antagonists, others we can't, such as the raw cost of icon blending.

Furthermore, adding new icons later down the line would just increase this initialization time even more.

Instead of optimizing the asset creation, which is an uphill battle, this instead chooses to amortize the cost by caching preference assets created per git revision. This means that preference assets will be created, with their long delay, only once whenever the code changes.

This is done on a config, defaulting to on so that production needs no changes, as the whole point of these being made at runtime at all is that it keeps assets/art styles consistent, and PRs making subtle bugs that break preference generation in some way is not uncommon. On development, your git revision will stay the same until you commit, no matter what code changes you make.

* Amortize the cost of creating preference assets by caching them per git revision on production, reducing best case init times by ~20 seconds

* Fixing another conflict :)

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-01-03 21:42:11 +00:00
SkyratBot
c0706f4a41 [MIRROR] Field of View and Blindness improvements [bounty + upstream push] [MDB IGNORE] (#10060)
* Field of View and Blindness improvements [bounty + upstream push]

* Update death.dm

* almost done

* Update fov_handler.dm

* Face mouse when in combat mode, fix

* Fixes the category for the fov admin verb. #63401

* Fixes objects with bad planes and FoV bugs #63412

* pain

* there we go

* face pref

Co-authored-by: Azarak <azarak10@gmail.com>
2021-12-22 14:56:01 +00:00
SkyratBot
a526c6070a [MIRROR] Makes all default job titles, defines. [MDB IGNORE] (#10080)
* Makes all default job titles, defines.

* Makes all default job titles, defines.

* whitespace

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2021-12-18 16:54:03 +00:00
SkyratBot
959f66bf47 [MIRROR] Fixed spelling of possession, Separate, and Cemetery [MDB IGNORE] (#9862)
* Fixed spelling of possession, separate, and cemetery (#63203)

Just fixes some spelling for gangs. I also fixed misspellings for "posession" to "possession". Fixed "seperate " to "Separate" Fixed "Cemetary" to "Cemetery"

* Fixed spelling of possession, Separate, and Cemetery

Co-authored-by: Doctor Pope <84367152+Dr-Pope@users.noreply.github.com>
2021-12-03 16:58:40 -05:00
SkyratBot
d6a1ad473f [MIRROR] Allows players to send more visible adminhelps when no admins are on, which'll definitely alert admins [MDB IGNORE] (#9583)
* Allows players to send more visible adminhelps when no admins are on, which'll definitely alert admins

* db portion sorted out

* now it really is

* should work about fine

* one last touch

* well, one more

* also botched comment

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-11-20 22:41:53 +01:00
SkyratBot
ad008ecfa6 [MIRROR] Adds logging for all Silicon rather than just Laws [MDB IGNORE] (#9346)
* Adds logging for all Silicon rather than just Laws (#62500)

I find stuffing everything in game.log is a real problem when you need to actually find useful information about what happened to a specific Silicon. It's hard to tell what happened to Silicon throughout a round, even when crossreferencing attack/game logs, so having a Silicon log for all the information related to them would be really useful.
For example, a Cyborg can spawn unlinked on Robocop, go Janitor and crowbar someone to death with a Robodoctor AI. When looking through logs, an Admin can easily assume it was a rogue Engineering cyborg who disobeyed their laws to kill someone.
This also isn't adding a whole new log file, more than it is just renaming the law log file to silicon and adding more useful things into it, so it isn't logging bloat (if that's even a concern)

* Adds logging for all Silicon rather than just Laws

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2021-11-09 14:16:27 -05:00
SkyratBot
a31e4bedfa [MIRROR] Tackles various problems with keyed_list config entries, fixing broken roundstart races and more! [MDB IGNORE] (#9131)
* Tackles various problems with keyed_list config entries, fixing broken roundstart races and more! (#62359)

While helping RaveRadbury debug some issues with enabling Halloween species early via the brute force method of enabling them in the config rather than the gentleman's solution of testmerging a PR that changes the Halloween date, we discovered something dreadful.

Cloth golems cannot be enabled! Infact, any species with a space in the ID cannot be enabled.

It uses the splitter despite VALUE_MODE_FLAG being set. So a key entry like ROUNDSTART_RACES cloth golem would get parsed as cloth = golem, then entered into the config as cloth = TRUE
NEW AND IMPROVED PART HERE

I've re-written how keyed_list config entries are parsed, splitting it into a number of procs to do some discrete block of logic.

Based on feedback from MSO, he expected that VALUE_MODE_FLAG keyed_list entries could have elements overridden. However, this functionality was not present in the code.

I have implemented it. We now support 3 methods of setting VALUE_MODE_FLAGS.

Implicitly enable the config entry: CONFIG_ENTRY config_key_goes_here
Explicitly enable the config entry: CONFIG_ENTRY config_key_goes_here 1
Explicitly disable the config entry: CONFIG_ENTRY config_key_goes_here 0

There have been functionality changes too. Previously, everything before the first splitter was the key and everything after was the value. However, in ambiguous config entries (Such as ROUNDSTART_RACES cloth golem 0) it would be unclear if the intent was (cloth, golem 0) or (cloth golem, 0) or indeed if the intent was (cloth golem 0, 1).

As a result, there is now the following paradigm in place: Everything after the LAST splitter is the value, everything before is the key and a log_config warning is now given explaining the problem and showing how it was resolved.

[2021-10-27 19:48:12.840] WARNING: Multiple splitter characters (" ") found. Using "cloth golem" as config key and "1" as config value.

This warning will trigger if multiple splitters are present for any keyed_list config entry, and will trigger on implicit VALUE_MODE_FLAGS entries that have splitters. The example above is it triggering on ROUNDSTART_RACES cloth golem - It has detected that there is potential ambiguity between (cloth, golem) or (cloth golem, 1), has picked a sensible option for the data type and has warned about it.

The intent is that no config entry should be ambiguous. It should be clear what is key and what is value when dealing with keyed_list config entries.

There's probably more work to do on other config entries to bring them up to this standard, but this is the thing I'm hitting in this PR.

Similarly, I have improved the validation aspect of keyed_list config entries with additional logging in general.
[2021-10-27 19:47:53.135] ERROR: Invalid KEY_MODE_TYPE typepath. Is not a valid typepath: /mob/living/carbon/monkey

I have added a unit test to make sure species IDs do not contain splitters from the two keyed_list subtypes relating to species.

I have added sanity checking to the race config subtypes since we have a big dick global list of all races sorted by ID, so a race not existing will fail validation and output a meaningful config log entry.

I have removed /datum/config_entry/keyed_list/probability from the code as it is unused with the removal of all game modes except Dynamic.

The config change necessitated the renaming of all golem species IDs. Doing so and renaming the clothgolem.ts file to match has fixed the broken cloth golem page too.

* Tackles various problems with keyed_list config entries, fixing broken roundstart races and more!

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-10-29 21:07:21 +01:00
SkyratBot
09c2297ad1 [MIRROR] Secret Gateways: Config loaded Away Missions + Anti-observing Z level traits [MDB IGNORE] (#8437)
* Secret Gateways: Config loaded Away Missions + Anti-observing Z level traits

* 0

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-10-04 00:11:28 +01:00
SkyratBot
90ae165e50 [MIRROR] Asset log config (#8400)
* Asset log config (#61687)

Adds config to toggle on/off logging to asset.log

Special thanks to @ TiviPlus who stole it from @ TiviPlus at tgstation/TerraGov-Marine-Corps#8406

* Asset log config

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2021-09-26 01:48:37 +01:00
SkyratBot
fb1a28a55f [MIRROR] Add support for multiple MOTD in config (#8307)
* Add support for multiple MOTD in config (#61589)

## About The Pull Request
Changes "motd.txt" from being hardcoded to being a list of files which are read sequentially.

CC @ MrStonedOne for config changes

## Why It's Good For The Game
On production, our MOTDs contain several individual sections:

- Active Trial Admin threads
- General game information
- MRP specific information

I want to automate number 1, I want number 2 to be shared among all servers, and I want number 3 to be shared among all MRP servers.

* Add support for multiple MOTD in config

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-09-23 01:27:18 +01:00