Commit Graph

3218 Commits

Author SHA1 Message Date
LemonInTheDark
566c1697de Merge pull request #53180 from AnturK/bread
Adds bread smite and transformation animation helper.
2020-08-27 21:56:23 -07:00
Couls
e7f99e3b8b Browser Status Panel (#53112) 2020-08-27 15:28:03 -07:00
AnturK
3786b56680 comments and cleanup 2020-08-26 11:47:48 +02:00
AnturK
79a5866967 Adds bread smite and transformation animation helper. 2020-08-26 11:47:42 +02:00
Jordan Brown
239a356e46 Fix admin shuttle adjust anoucement times (#53172) 2020-08-25 11:30:27 -07:00
ArcaneMusic
4c64bcfb3c Adds a new admin smite, Dock Pay. (#53138)
* Adds a new admin smite, Dock Pay
2020-08-24 15:09:57 -07:00
Rohesie
3a1020e47d Crit status refactor (#53117) 2020-08-24 07:41:00 -07:00
tralezab
5747441cb5 Changing how fast the emergency shuttle arrives now gives a more accurate estimate (#53129) 2020-08-23 05:15:14 -03:00
AnturK
ba7c9e170f Makes vv css work on local (#53067) 2020-08-20 20:18:05 +03:00
Jared-Fogle
45c14f6330 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
2020-08-20 09:11:28 +12:00
tralezab
6a25b30b12 Removes "availible" mispellings in codebase (#53046)
* AVAILABLE

* Rebuild tgui

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-19 23:57:37 +03:00
skoglol
1137100999 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.
2020-08-18 22:02:11 -03:00
Aleksej Komarov
fe5d51d355 Fix asay 2020-08-17 17:04:05 +03:00
Aleksej Komarov
64dcf44cc6 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
2020-08-17 10:38:38 +12:00
Aleksej Komarov
0e1b20e6db 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.
2020-08-14 13:21:40 +12:00
Kyle Spier-Swenson
8df93ba39e [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
2020-08-12 13:51:43 +12:00
AnturK
7dff0d66ad Fixes admin add component log (#52840) 2020-08-11 11:12:21 -03:00
ike709
4b529e30cf 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
2020-08-10 08:33:11 +12:00
Timberpoes
19c3bbde31 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.
2020-08-07 12:23:42 -03:00
tralezab
c26a134945 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>
2020-08-06 18:00:55 -03:00
LemonInTheDark
092af76b5d 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>
2020-08-03 09:15:08 +02:00
oranges
9fb883f66d Revert "CentCom Galactic Ban DB (#52519)"
This reverts commit 0f5652bc0b.
2020-07-29 09:11:38 +12:00
ike709
0f5652bc0b CentCom Galactic Ban DB (#52519)
* CentCom Galactic Ban DB

* Sanitize and config

* Apparently TG has a http_request datum

* Tweaks

* An excellent suggestion

* Turns out BYOND is better at JSON parsing than I thought it was

* Fun fact: 4 out of 5 UIs don't bother to do this
2020-07-28 13:11:38 -04:00
Jared-Fogle
2b14436488 Add check timer sources debug command (#52417)
* Add check timer sources command

* Recognize linked list implementation
2020-07-28 12:36:53 +02:00
Rohesie
93a37dfe88 Reference tracking (#52403)
* ref tracking

* legacy

* legacy procs

* fixes

* tweaks

* clarity comments

* wth
2020-07-28 11:56:27 +02:00
Kyle Spier-Swenson
e8ba2038a1 adds pipelining to cross-server comm messages (#52447)
* adds pipelining to cross-server comm messages

One server blocking at the network level should not delay the other servers getting their message.

* Update adminhelp.dm

oh fun.

* try 3?

* Fuck it, string proc refs!

* Update adminhelp.dm

* Update adminhelp.dm
2020-07-26 13:38:16 -04:00
skoglol
c344a461f7 Merge pull request #52377 from Ryll-Ryll/antag
All antag types are now recognized for admin chat
2020-07-24 06:13:18 +02:00
Ryll Ryll
46dd89b07a [READY] Wounds part 2: Piercing wounds, dismemberment changes, housekeeping (#51786)
* pierce the heavens

* starts doing projs

* continue pierce

* before armor

* before sharpness redefine

* rename sharp defines, before further implementation

* finishing undoing atk_type back to sharpness

* neatens up sharpness defines, FALSE -> SHARP_NONE

* more piercing, removes brute damage bleed, bubblegum no longer wound

* starts letting embeds get in on the fun

* half with embed

* work on dismembering

* continued embed work

* more moving bandaging to limbs

* more dismemberment work

* removing embed pierce stuff

* tweaking bullets

* more docs and work on dismemberment

* spans, piercing, guns

* dismemberment and scar fixes

* bee changes

* bullets embedding

* more bullet and dismember work

* dismemberment, surgery, piercing, formaldehyde,

* pleases travis

* pierce smite

* nicer on blood

* Auto stash before rebase of "tgstation/master"

* more neatening

* wounds only consider up to 35 damage, wounds on l6 and 762

* updates hulk

* balance

* defines

* lower slug to 50 brute to accommodate wounds

* adds differentiation for having flesh/bones/both in mobs

* moves scar descs to json, renames organic_state

* excises removed healing skill

* fixes logs, inconsistencies, some balance changes

* untab

* slight compress

* a

* kills pointed global list

* dmdoc

* halfway through roh

* finishes roh review

* okay NOW i finished roh's reviews

* roh roh roh your boat

* gently down the stream

* global lists

* list ops, fix scanner for bone gel improvised fix

* travis moment

* sounds added and moved

* pellet clouds can join the fun fully, slight gun balancing for wounds

* doc moment

* unconflicts myself

* update hulk

* Update code/_onclick/item_attack.dm

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

* crying ascii face

* final rohview

* oops

* final final

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-23 23:19:30 -03:00
ShizCalev
4b6500fb67 Makes all anchored changes use setAnchored(), COMSIG_MOVABLE_SETANCHORED now only sent if an AM's anchored var has changed for more reliable usage. (#52254)
* Converts everything to use setAnchored() + other fixes

* Fixed singulo debug

* singulo again

* forgot to move the vv_edit proc

* caught that this time :)

* changes

* Update code/game/atoms_movable.dm

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

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-21 02:20:26 -03:00
Ryll-Ryll
d092851a4c fix comma 2020-07-20 22:21:29 -04:00
Ryll-Ryll
dca567b119 antaggy 2020-07-20 22:12:02 -04:00
ShizCalev
58077a9516 Sorts client playtime panel alphabetically (#52264) 2020-07-19 17:23:20 +02:00
ShizCalev
39c5af0fc7 Merge pull request #52276 from kriskog/tickets
Fixes some adminhelp issues
2020-07-18 00:44:12 -04:00
Ryll-Ryll
1f31064c3e Merge remote-tracking branch 'tgstation/master' into who-named-this-damned-proc 2020-07-16 21:43:14 -04:00
Aleksej Komarov
0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
skoglol
7ff34fc128 excessive 2020-07-16 16:08:01 +02:00
skoglol
fcf1f25301 sound back 2020-07-16 12:43:23 +02:00
skoglol
0194169631 Oh we got several procs 2020-07-16 12:36:28 +02:00
skoglol
7d3af73d12 Fixes some adminhelp issues 2020-07-16 11:57:40 +02:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
ShizCalev
9d846517d9 Fixes Admin Help Tickets not showing the name of the admin who generated a ban. (#52195) 2020-07-14 20:14:38 -04:00
skoglol
06c5a7afdf Merge pull request #51854 from MrDoomBringer/supplyprettypod
Please check out this EPIC OFFICIAL PR TRAILER before reading (very important)
https://youtu.be/4RckVdx20oQ
the video is kinda autistic

dont forget to upvote
About The Pull Request

All sprites and epic meme videos made with love by yours truly
Except for the 2 missile sprites. Those were taken and modified from NSV13 who in turn ported them from TGMC
nupod_all_decals

Anyways, this adds:
New pod, reverse-pod, and target indicator sprites
Pod-ground collision effects (impact craters basically)
Cool looking vapor trails a la the half-life 2 headcrab shells

And also:
Fixes seethrough pods not actually working
Makes reverse-mode a bit more predictable
Has some minor code improvements with how supplypod-reverse-mode works
2020-07-12 13:24:37 +02:00
skoglol
8fcd9d81ed Merge pull request #52157 from Ryll-Ryll/sick-kicks
Adds smite to tie someone's shoelaces together
2020-07-12 11:39:45 +02:00
Ryll-Ryll
7f15be7f68 Merge branch 'master' into who-named-this-damned-proc 2020-07-11 23:30:49 -04:00
Ryll-Ryll
fc0b247738 rename 2020-07-11 23:23:23 -04:00
Jordie
61d5549ac3 fix missing comma and argument name in edit query (#52127)
Co-authored-by: Jordie0608 <=>
2020-07-12 03:15:01 +10:00
Ryll-Ryll
d64a45aa0b pranked 2020-07-11 00:57:12 -04:00
MrDoomBringer
719d3a1f45 first pass
WIP overlays


icon upd8


more


need to figure out whats going on with extractionpods


compile


the icon update


more!!


why are skillcapes broken


boat lmao


seethrough fix


Second drive-by


Code cleanup and improvements

Specifically surrounding contractor pods and reverse mode working properly
accidently left in an extra dmi whups


do the impossible see the invisible


new effect booster pack


MFW MRW Linter fail
2020-07-06 23:44:02 -04:00
Bobbahbrown
787d44e077 html moment (#51956) 2020-07-06 22:35:06 +02:00
ShizCalev
5d42fcfcbb Fix some admin areacoord messages (#51865) 2020-06-27 10:16:10 -07:00