Commit Graph

3245 Commits

Author SHA1 Message Date
SkyratBot
bcb5fbc83c [MIRROR] TGUI Communications console (#1286)
* TGUI Communications console

* fix

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-10-14 17:45:53 +01:00
SkyratBot
b8d9874c27 [MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342)

Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.

* Converts all A && A.B into A?.B

Co-authored-by: ZeWaka <zewakagamer@gmail.com>
2020-10-13 23:19:25 +02:00
SkyratBot
6e08e3cd8d [MIRROR] Adds a living time config to the panic bunker (#1289)
* Adds a living time config to the panic bunker (#54341)

* Adds a living time value to the panic bunker, so you can keep people out based on time spent playing the game

* updates the admin verb, and enables %minutes% as an option

* Makes a proc call more clear

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

* than

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

* Adds a living time config to the panic bunker

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
2020-10-13 23:04:07 +02:00
SkyratBot
380ee5a3d0 [MIRROR] Adds new accidents to the omen component and makes it an admin smite (#1219)
* Adds new accidents to the omen component and makes it an admin smite (#54063)

The omen component now has a 15% chance when walking through an airlock to have it try to crush you and a 15% chance when walking next to an open turf to throw yourself into it alongside the existing 15% chance to get crushed by a vending machine and 50% chance when you trip over to crack your skull open.

It is also an admin smite with an option to make it permanent.

Allows airlocks to override safties for a single close() proc call, forcing a crush.

* Adds new accidents to the omen component and makes it an admin smite

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-10-09 18:29:54 +02:00
SkyratBot
666c1a108a [MIRROR] Some shuttes rework. Allow many shuttles of one template to work at the same time. (#1162)
* Some shuttes rework. Allow many shuttles of one template to work at the same time. (#53993)

* add replace button to shuttle panel

load button now only load new shuttle

* shuttle teplate loads as shuttle

* new shuttle console connects to shuttle

* new navigation computer connect to shurrle

* docking_port id now unique

add count to id if id already in work

* many docks from one base tenplate

* up

* fix unregister

* up

* up

* up

* block multiple shuttle loading

* return preview button

* up  id generation

* Some shuttes rework. Allow many shuttles of one template to work at the same time.

Co-authored-by: Dennok <Deneles@yandex.ru>
2020-10-05 22:31:15 +01:00
SkyratBot
ec5324bc1a [MIRROR] [READY] Highlander mode now includes silicons (#1122)
* Merge pull request #53702 from zxaber/kiltborg

[READY] Highlander mode now includes silicons

* [READY] Highlander mode now includes silicons

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
2020-10-02 19:10:58 +02:00
SkyratBot
c1dccf5870 [MIRROR] Adds Cross-Server Communication Network Option (PAID* CODE) (#1096)
* Adds Cross-Server Communication Network Option (PAID* CODE) (#54070)

* Adds Cross-Server Communication Network Option (PAID* CODE)

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
2020-10-01 12:25:58 +02:00
Gandalf
8f9d2a6b10 Loudsay and font formatting. [SEMI-MODULAR] (#1033)
* aaaa

* Update readme.md

* undo tickets

* Update adminpm.dm

* Update admin_verbs.dm

* sss
2020-10-01 03:00:00 +02:00
SkyratBot
ada67ac929 [MIRROR] Ports soup, snacks, icecream, salads and meat to newfood (#1074)
* Ports soup, snacks, icecream, salads and meat to newfood (#54028)

Ports soup, snacks, icecream, salads and meat to newfood

* Ports soup, snacks, icecream, salads and meat to newfood

* Update true_changeling.dm

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-30 14:37:15 +02:00
SkyratBot
ac7b25e9bf [MIRROR] JATUM (#1045)
* JATUM (#53831)

Adds the JATUM serialization system. Inspired by @ RemieRichards. Allows for easy serialization and deserialization of trivial datums.

Also adds a missing html_encode.

* JATUM

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-09-29 12:33:17 +02:00
SkyratBot
df3c9f87cb [MIRROR] Restyles Stat Panel, Adds Subpanel Sub-Categories (#1044)
* Restyles Stat Panel, Adds Subpanel Sub-Categories (#53947)

I re-styled the CSS for the stat panel in hopes to make it look nice, and I also added the ability to use sub-categories (currently a single level) of verbs using a . (period), an example being Admin.Fun instead of the previous Admin - Fun. This now results in a sub-category being automagically generated in the stat panel.

* Restyles Stat Panel, Adds Subpanel Sub-Categories

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
2020-09-29 12:31:56 +02:00
SkyratBot
98568e191a [MIRROR] Enforce preserving parent proc return values across ui_act call stacks (#999)
* Enforce preserving parent proc return values across ui_act call stacks (#53964)

All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.

* Enforce preserving parent proc return values across ui_act call stacks

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-26 17:17:59 +02:00
SkyratBot
621a822227 [MIRROR] Separates mothpeople antennae into a mutant bodypart (#976)
* Separates mothpeople antennae into a mutant bodypart

* we

* Update moth_wings.dmi

Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-25 14:38:52 +02:00
SkyratBot
f0070e854b [MIRROR] Emergency Shuttle Toggle (#975)
* Emergency Shuttle Toggle (#53912)

Admins now have the option to enable or disable the shuttle(located in the admin tab).
Disabling the shuttle will basically pause it where it is, regardless(unless game is over). Until the admins enable it again. It will resume exactly back to where it was and continue from there. This is great for events. You can't recall or call the shuttle while it's disabled.

Admins also now get the option when calling the shuttle to disable the recall of said shuttle unless they cancel it or select enable shuttle.

* Emergency Shuttle Toggle

Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-09-25 13:59:23 +02:00
SkyratBot
18f4fb5029 [MIRROR] Fix skill related runtimes in mindless mobs. (#965)
* Fix skill related runtimes in mindless mobs. (#53691)

Fixes related to mindless mobs using skills

* Fix skill related runtimes in mindless mobs.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-24 20:33:19 +02:00
SkyratBot
96d5d8a319 [MIRROR] Fix verbs tab not getting updated in certain instances (#937)
* Fix verbs tab not getting updated in certain instances (#53876)

There are a number of methods of assuming direct control of mobs or giving other players direct control. I have made sure these now appropriately update verbs.

Shamelessly ripped the functionality from /mob/dead/observer/verb/reenter_corpse() - It seemed to do what I wanted to accomplish in the same context.

I couldn't find any other method to refresh the verbs tab.

* Fix verbs tab not getting updated in certain instances

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-23 13:55:50 +01:00
SkyratBot
7979f4d1b0 [MIRROR] Fully removes devil and affiliated shitcode (#922)
* Fully removes devil and affiliated shitcode (#53612)

Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.

* Fully removes devil and affiliated shitcode

* weh

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-23 10:00:29 +01:00
SkyratBot
4b6cc9d088 [MIRROR] Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#830)
* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#53305)

* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-09-17 02:05:30 +01:00
Azarak
fb6720c7f9 [SEMI-MODULAR] Customization (#675)
* 1

* a

* aaa

* aa

* aint got no pancake mix

* hhh

* aa

* hhh

* taurssss

* aaa

* organ partss

* genitals wip

* aaaaa

* h

* a

* mutation dna

* fixed limbs rendering

* mammols

* and thats wings and snouts

* a

* markings except they dont render yet oooooh

* woo lots of markingas

* Body marking sets!

* loadout part 1

* marking re-write. part 1 of loadout

* Loadouts, fully functional, but no customization

* Loadouts readyy

* Default features + savefiles

* Examines

* Fixes genital visibility

* Fixes husking colors

* Fixes very custom loadouts

* Fixed organ colors and bepis icon states

* Fixes genitals save/load

* Species part 1

* Just markings

* Voxes!

* Vox fixes, more validation, better randomisation

* markings refactor, languages

* Some fixes

* Missing accessories, some fixes

* Fixes, underwear toggles, examine for kinky bits

* updates code to master

* travis travis travis

* does this help???

* traaaavis

* Update species.dm

* Inches

* missing whitelines

* small fix

* more small fixes

* Preview preference bug fix

* commentomodularization

* Update tails.dm

* hoo boy

* Update preferences_savefile.dm

* Update species.dm

* Lizard fix!

* Update sprite_accessories.dm

* Update code/modules/mob/living/carbon/human/emote.dm

Co-authored-by: Gandalf <jzo123@hotmail.com>

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: Gandalf <jzo123@hotmail.com>

* Update code/modules/mob/living/carbon/human/emote.dm

Co-authored-by: Gandalf <jzo123@hotmail.com>

* Update code/modules/mob/living/carbon/human/species.dm

Co-authored-by: Gandalf <jzo123@hotmail.com>

Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-09-16 03:40:00 +02:00
SkyratBot
496811ef6c [MIRROR] Optimize stat panel and fix guardian verbs (#804)
* Optimize stat panel and fix guardian verbs (#53463)

Optimizes stat panel code for better performance, including icon caching and removing some unnecessary processing
Also fixes #53432
fix #53381
fix #53724
Changelog

add: icons are back on alt clicks
fix: horrible performance from alt clicking turfs with multiple objects
tweak:browser should notify the SS when it's ready to receive data

* Update statbrowser.html

* Apply suggestions from code review

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

* hidden = TRUE

* almost ready

* Browser should notify when ready to receive data

* Apply MSO's suggestions

* reset cache if something in it gets deleted

* Fix runtime

* fix my stupid code

* send href_token when adding admin tabs

* fix an issue with cyborg suit topic

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

* Optimize stat panel and fix guardian verbs

Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
2020-09-15 09:17:31 +02:00
SkyratBot
2812a145d4 [MIRROR] The BEAUTIFUL Supplypod Renaissance Part 5: An Ode To Admins Everywhere (total UI overhaul) (#741)
* The BEAUTIFUL Supplypod Renaissance Part 5: An Ode To Admins Everywhere (total UI overhaul)

* Update tgui.bundle.js

* Update tgui.bundle.js

Co-authored-by: Emmanuel S <mrdoomboyo@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-12 00:50:51 +02:00
SkyratBot
e60b9706b5 [MIRROR] Remove references to old singularity machines (#744)
* Remove references to old singularity machines (#53509)

Removes the singularity generator and the particle accelerator. The former had no sprite, and the latter only existed because of a leftover type path. This does not affect gameplay at all.

Removes the "Start Singularity" verb that was only intended for debug use.

Fixes #53508.

* Remove references to old singularity machines

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-09-11 23:15:33 +02:00
SkyratBot
a1ac3a6b42 [MIRROR] Fixes admin tickets displaying as improper nouns (#696)
* Fixes admin tickets displaying as improper nouns (#53485)

Admin tickets were having "the" prepended to them when displayed in the status tab, because ahelps are treated as datums and BYOND likes to help out and treat them as nouns when printed. This resolves that.

* Fixes admin tickets displaying as improper nouns

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-09-09 08:13:00 +02:00
SkyratBot
eda2759f6c [MIRROR] Make Cinematic verb cancellable (#655)
* Make Cinematic verb cancellable (#53411)

* Make Cinematic verb cancellable

Co-authored-by: Tad Hardesty <tad@platymuus.com>
2020-09-06 05:52:50 +02:00
SkyratBot
5cda3c66e8 [MIRROR] Makes admin view obey the overlay limit. (#613)
* Makes admin view obey the overlay limit (#53293)

Caps admin view at 68x68, or 37, in order to prevent it creating more then 100 overlays, causing the parallax system to crash due to exceeding our overlay hardcap of 100

* Makes admin view obey the overlay limit.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-09-02 03:08:02 +02:00
SkyratBot
100d18a011 [MIRROR] Admin controlled shuttles improvements (#610)
* Admin controlled shuttles improvements (#53237)

This PR improves options for admin controlled shuttles - all shuttle controls can be admin-locked, and players must request authorization so the shuttle can move or for controls to unlock. Before this PR, authorization request always redirected admin staff to control the CentCom ferry, even if request came from a shuttle elsewhere, which was a little odd.

Authorization request will now properly prompt the staff to control that specific shuttle, and now they also have quick option to unlock/lock the shuttle. Could come handy in events to restrict player movement.

Last change, escape pods no longer start as admin controlled, as they cannot be launched without atleast code red anyway. They instead properly state they are just locked.

* Admin controlled shuttles improvements

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2020-09-02 03:06:28 +02:00
SkyratBot
71fff07a8a [MIRROR] select equipment now includes basic plasmaman outfit (#608)
* select equipment now includes basic plasmaman outfit (#53335)

* select equipment now includes basic plasmaman outfit

Co-authored-by: Fikou <piotrbryla@onet.pl>
2020-09-02 03:04:52 +02:00
SkyratBot
41788d096e [MIRROR] Overhauls discord verification system (#588)
* Overhauls discord verification system (#53289)

This completely replaces the previous verification system, for one that
will interoperate with a discord redbot instance that uses the cogs
located at you github.com/optimumtact/orangescogs

This cuts out several steps in the system, but it also leaves alone the
existing notify system (which just uses a file list of discord ids) as a
record of who to notify

SQL changes required for the new database system

Version 5.10, 7 August 2020, by oranges

Changes how the discord verification process works.
Adds the discord_links table, and migrates discord id entries from
player table to the discord links table in a once off operation and then
removes the discord id on the player table

The user connects to any tg server, and uses the "Verify Discord
Account" verb, this generates a six word one time use token, with a 4
hour time validity period (defined as 4 hours from the timestamp value)
in the discord links table.

This one time token, and the ckey of the user are stored in
discord_links

At this point the entire DM side is done, this is all it does

* Overhauls discord verification system

Co-authored-by: oranges <email@oranges.net.nz>
2020-09-02 02:47:22 +02:00
SkyratBot
c4c9dfabf6 [MIRROR] Fix various issues with browser statpanel (#580)
* Fix various issues with browser statpanel

* a

Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 02:42:40 +02:00
SkyratBot
ec09510459 Bools and returns super-pr (#53221) (#565)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-30 05:12:59 +02:00
SkyratBot
d36c3eb8cc [MIRROR] Adds bread smite and transformation animation helper. (#560)
* Merge pull request #53180 from AnturK/bread

Adds bread smite and transformation animation helper.

* Adds bread smite and transformation animation helper.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-08-29 20:32:26 +01:00
SkyratBot
1c1ce7b055 [MIRROR] Browser Status Panel (#548)
* Browser Status Panel (#53112)

* Browser Status Panel

Co-authored-by: Couls <coul422@gmail.com>
2020-08-29 20:26:27 +01:00
SkyratBot
af5c48e16e [MIRROR] Fix admin shuttle adjust anoucement times (#523)
* Fix admin shuttle adjust anoucement times (#53172)

* Fix admin shuttle adjust anoucement times

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-08-26 01:41:02 +02:00
SkyratBot
465085004b [MIRROR] Adds a new admin smite, Dock Pay. (#510)
* Adds a new admin smite, Dock Pay. (#53138)

* Adds a new admin smite, Dock Pay

* Adds a new admin smite, Dock Pay.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-08-25 01:33:57 +02:00
SkyratBot
12cd35c594 Crit status refactor (#53117) (#500)
Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-25 00:11:20 +02:00
SkyratBot
4fc38df10d [MIRROR] Changing how fast the emergency shuttle arrives now gives a more accurate estimate (#482)
* Changing how fast the emergency shuttle arrives now gives a more accurate estimate (#53129)

* Changing how fast the emergency shuttle arrives now gives a more accurate estimate

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-08-23 20:49:14 +02:00
SkyratBot
77abf57467 [MIRROR] Makes vv css work on local (#440)
* Makes vv css work on local (#53067)

* Makes vv css work on local

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2020-08-20 19:02:43 -04:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)

Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
d2778728a5 [MIRROR] Removes "availible" mispellings in codebase (#427)
* Removes "availible" mispellings in codebase (#53046)

* AVAILABLE

* Rebuild tgui

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Removes "availible" mispellings in codebase

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-19 20:14:11 -04:00
SkyratBot
e06d6f577a [MIRROR] Adds an admin force wardec button to the antag panel. (#398)
* Adds an admin force wardec button to the antag panel. (#52967)

If nukies have spawned, the war button exists and war has not been declared, the check antag panel now has a button to force war. This bypasses the crew and time limit. Made by admin request.

* Adds an admin force wardec button to the antag panel.

Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
2020-08-19 03:30:30 +02:00
SkyratBot
c0847d7efb [MIRROR] tgchat: Fix asay (#371)
* Merge pull request #53011 from stylemistake/tgui-chat-fix-asay

tgchat: Fix asay

* tgchat: Fix asay

Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
2020-08-17 23:31:43 +02:00
SkyratBot
971b0ba1de [MIRROR] tgchat: Hotfixes, Message Annotations (#364)
* tgchat: Hotfixes, Message Annotations (#52947)

This PR changes the message pipeline a little bit to support list-based messages, which can be annotated with custom data. Function signature of to_chat was slightly changed as well:

// Plain text message
to_chat(client,
  type = MESSAGE_TYPE_INFO,
  text = "foo")

// HTML message
to_chat(client,
  type = MESSAGE_TYPE_INFO,
  html = "<span class='notice'>foo</span>")

Old to_chat format is still supported, but handle_whitespace, trailing_newline and confidential flags have no effect. confidential flag could still be revived though, if there is enough merit in it, for example to filter out confidential messages when saving a chat log.

The reason for using /list and not /datum, is because lists are plain faster, and there are minimal data transformations - these lists are fed directly to json_encode and sent to tgchat.

Plain text messages do not need to be HTML-escaped, which makes them safer and more performant than HTML messages. Plain text messages can be made interactive (or formatted with CSS) by custom-handling them in javscript based on message type and annotations.

It would be impossible to annotate every single message in the game (at the moment of writing, there are 9447 to_chat calls in the code), but it could be done selectively, for only those messages that are hard to classify by span classes (and there are still A LOT of them).
Please annotate more messages. Thank you.

    Fixes #52943
    Fixes #52908
    Fixes #52816

Changelog

cl
add: tgchat: Unread message count is now smarter and won't increase on other tabs if you have already read the same message in the active tab.
add: tgchat: Admin PMs are now properly annotated and can be filtered into separate tabs.
fix: tgchat: Fix: Highlighted message overlay no longer blocks clicks. Clicking a highlighted (F) link should work as it should.
fix: tgui: Fixed NTOS bluescreen due to calling .includes() on a stylesheet href which could be null on certain browsers.
code: tgchat: Chat schema bumped to version 5. All chat-related settings were reset to avoid breakage.
/cl

* tgchat: Hotfixes, Message Annotations

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-17 14:48:28 +02:00
SkyratBot
d9b246cca9 [MIRROR] tgchat (#342)
* tgchat (#52426)

Replaces goonchat with a tgui based chat panel

    Fixes #52898
    Fixes #52663

It is as fast as goonchat was (if not faster in certain circumstances), and is very extensible. It has all the necessary code for sorting messages into categories, which means that one of the next features will be multiple tab support.

Additional features that you will get with tgchat right now:
    Massively faster server-side performance compared to goonchat, especially if batching multiple messages to one client.
    Message persistence across rounds and reconnects. (All messages are stored client-side in IndexedDB)
    More robust scroll tracking. If you scroll up, it will not change the scroll position on new messages like goonchat did.
    Multiple message combining. (Currently set to combine up to 5 messages over last 5 seconds).
    If using the highlighting feature, it highlights the whole message as well as the matching word.
    "Now playing" widget, with preview of the song title, a knob for adjusting the volume and a stop button.

Architecture is as following:
```
to_chat() -+
           |
        SSchat
   (queue, batching)
           |
  window.send_message()
           |
           v
+-------------+
| tgui-panel  |
|+-----------+|
|| tgchat    ||
|+-----------+|
+-------------+
```

Subsystem is basically goonchat, but without all the garbage that slows the servers down (string concatenation, double urlencoding, sanitizing, etc). Now, instead of all that, it's being slowed down by json_encode in /datum/tgui_window/proc/send_message, which IMO is completely worth it, and allows sending various templates and widgets to tgchat.

/datum/tgui_window abstracts the whole window away from you, establishes a nice message-passing interface between DM and JS, with two message queues on each side, automatically loads js/css assets for you, basically does everything. You as a developer only have to worry about sending/receiving messages and write javascript.

tgui-panel is a slimmed down version of tgui, and functions as a container for various widgets, and tgchat is one of them. It of course can be expanded with more stuff.

It's also a separate entry point and a JS bundle, so it's not bloating the main tgui bundle, and is currently sitting at about 230kB.

* tgchat

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-14 23:30:16 +02:00
SkyratBot
e8bfe6eb68 [MIRROR] [Ready] CDN browser assets! (#312)
* [Ready] CDN browser assets! (#52681)

Rewrites the asset_cache system to handle sending assets to a CDN via a webroot.

see https://github.com/MrStonedOne/tgstation/blob/asset-cdn/code/modules/asset_cache/readme.md

Fixed a lot of bugs with assets, removed some dead code.

Changes:
    Moved asset cache code to transport datums, the currently loaded one is located at SSassets.transport, asset cache calls made before the config is loaded use the simple browse_rsc transport.
    Added subsystem call for when the config loads or reloads.
    Added a webroot CDN asset transport. assets are saved to a file in a format based on the file's hash (currently md5).
    Assets that don't use get_asset_url or get_url_mappings (such as browser assets referred to by static html files like changelog.html or static css files) can be saved to browse_rsc even when in cdn asset mode by setting legacy to TRUE on the datum returned by register_assets
    Added a system for saving assets on a cdn in a hash based namespace (folder), assets within the same namespace will always be able to refer to each other by relative names. (used to allow cdn'ing font awesome without having to make something that regenerates it's css files.).
    The simple/namespaced asset cache datum helper will handle generating a namespace composed of the combined md5 of everything in the same datum, as well as registering them properly.
    Moved external resource from a snowflake loaded file to a config entry, added it to resources.txt
    To ensure the system breaks in local testing in any situation that wouldn't work in cdn mode, the simple transport will mutate the filenames of non-legacy and non-namespaced assets and return this with get_asset_url.
    Simple transport's passive send of all roundstart assets to all clients is now a config that defaults to off. this is to break race conditions during local testings from devs accidentally relying on this instead of using send() properly.

cl
refactor: Interface assets (js/css/images) can now be managed using an external webserver instead of byond's one at a time file transfer queue.
admin: Adds admin verb toggle-cdn that allows admins to disable the external webserver asset transport and revert to the old system. Useful if the webserver backing this goes down (thanks cloudflare).
config: New config file, resources.txt, (must be loaded by an $include statement from the main config)
server: The external_rsc_urls.txt config has been moved to the main config system.
/cl
Porting notes:

Interface webpages must refer to their assets (css/js/image/etc) by a generated url, or the asset must register itself as a legacy asset. The system is designed to break in localtest (on simple/legacy mode) in most situations that would break in cdn mode.

Requires latest tgui.

The webserver must set the proper CORS headers for font files or font awesome (and other fonts) won't load.

/tg/'s webserver config: https://gist.github.com/MrStonedOne/523388b2f161af832292d98a8aad0eae

* [Ready] CDN browser assets!

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2020-08-12 11:32:37 +01:00
SkyratBot
4209fbf095 [MIRROR] Fixes admin add component log (#286)
* Fixes admin add component log (#52840)

* Fixes admin add component log

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2020-08-11 22:46:09 +02:00
SkyratBot
46953e4d46 [MIRROR] CentCom Galactic Ban DB: Bigger and Better Edition (#247)
* CentCom Galactic Ban DB: Bigger and Better Edition (#52588)

Admins will now be able to look up a player's bans from several other servers via the player panel.

My hope is that porting this to as many servers as possible will encourage more servers to make their bans publicly viewable so they can be included in this system. Direct access to a server's database is not required (or even supported).

Supported servers:

    BeeStation
    /vg/station
    OracleStation
    FTL13
    Fulpstation
    TGMC

Planned support (WIP):

    World Server
    Yogstation
    Halo: SSE
    Any other server willing to make their bans publicly visible.

API: https://centcom.melonmesa.com
Source: https://github.com/bobbahbrown/CentCom
Changelog

cl ike709 and bobbahbrown
add: Admins can now see your bans on (some) other servers.
/cl

* CentCom Galactic Ban DB: Bigger and Better Edition

Co-authored-by: ike709 <ike709@users.noreply.github.com>
2020-08-10 07:49:28 +01:00
SkyratBot
ee324ab3c2 [MIRROR] Cleanup up all instances of using var/ definitions in proc parameters. (#240)
* Cleanup up all instances of using var/ definitions in proc parameters. (#52728)

* var/list cleanup

* The rest of the owl

* plushvar bad

* Can't follow my own advice.

* Cleanup up all instances of using var/ definitions in proc parameters.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-08-07 18:26:21 +01:00
SkyratBot
38c75c7573 [MIRROR] Ghost Pool Protection Admin Button (#226)
* Ghost Pool Protection Admin Button (#52683)

* Ghost Pool Protection

* okay

* Update tgui.bundle.js

* just a bit of feedback

* temporarily

Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>

* Update GhostPoolProtection.js

* Update tgui.bundle.js

* my devserver broke

* okay done for real

* conflict resolution bundle

* Rohesies dope review

Co-authored-by: Rohesie <rohesie@gmail.com>

Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>

* Ghost Pool Protection Admin Button

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-07 01:39:43 +01:00
SkyratBot
4394b6f971 [MIRROR] Adds an atmos debugging tool and excited group visualizer (#185)
* Adds an atmos debugging tool and excited group visualizer (#52395)

* Adds an atmos debugging tool and excited group visualizer

* rebuild moment

* yarn install -> yarn run build

* Sigh

* Fixed UI, did not test, needs a rebuild.

* Proper flexing

* Adds varied colors, improved ui courtusy of stylemistake:

* Fixes a runtime, updates tgui

* added superconductors, cleaned up some shitcode, removed a clashing color

* Woop

* Speed

* rebuild

* Adds a tick count

* begone auto-update

* color defines

* rebuild moment

* color improvements, fixes updating

* adds another preprocesser define to handle showing max shares in the ui

* test of application system?

* patches up some display issues, allows for smooth flowing from one group to another

* overlay-ified

* client testing

* dmi moment

* plane master

* it fucking works

* size change

* passthrough

* rebuild moment

* adresses review concerns, toggles active turf vis on when testing

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Adds an atmos debugging tool and excited group visualizer

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-03 16:37:24 +02:00
SkyratBot
b7e1bd1973 [MIRROR] Revert "CentCom Galactic Ban DB" (#135)
* Merge pull request #52565 from tgstation/revert-52519-centcom

Revert "CentCom Galactic Ban DB"

* Revert "CentCom Galactic Ban DB"

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2020-07-31 00:29:30 +02:00