Commit Graph

13602 Commits

Author SHA1 Message Date
Rohesie
eda7c6ca55 Overlay lighting component (#52413)
Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑
2020-08-22 14:56:38 +12:00
Rohesie
584580d664 to the base (#52917) 2020-08-21 22:48:02 +02:00
Rohesie
7859721611 Explosions SS runtime fix + code cleanup (#52894)
* runtime fix

* turf references are immortal
2020-08-21 21:57:29 +02:00
Qustinnus
87c4df3880 Food refactor part 1: Bread destruction and processable element (#53047) 2020-08-20 21:07:05 -03:00
msgerbs
5caca0385b Fix broken span class tag in mutations and other locations. (#53064) 2020-08-20 16:53:02 -03:00
ArcaneMusic
1352bbbb88 Arconomy Balance Pass 2: Market Tendency (#52974)
Price inflation is now based upon averages, and is now uncapped from 5.
Civilian budget is no longer the worst budget to pay out from.
Medical Civilian bounties are no longer chees-able in seconds.


* I'll pick this up later because it's going to need a UI with keyed lists

* Updated market crash and average inflation values.

* Alright, I'm confident now.

* Make the market crash end at the beginning of the event end

* And on the 2nd day, the lord spoke, "Compile"

* Division by zero protection.

* That should have been a max, smhing my smhead
2020-08-20 12:47:43 -03:00
Dennok
69db5d2900 [READY] for Z debug. Industrial lift (not shuttle edition) (#52397) 2020-08-20 03:23:35 -03:00
Fikou
6a9c990435 fixes to shuttle smoothing (#53060)
plastitanium walls now smooth with windows
    fixes airlocks not having a smoothing group, now plastitanium/titanium walls will smooth with the
    fixes plastitanium walls not smoothing with syndie walls
2020-08-20 02:40:00 -03:00
Fikou
7c7ef11e57 adds bonesetter to omnitool settings (#53040)
* adds bonesetter to omnitool settings

* oops

* reminder
2020-08-19 22:13:41 -04: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
Wallemations
db3fe53cf8 Baseball bats have a 1% chance to be deformed on creation (#53051) 2020-08-19 16:15:04 -03:00
Ziiro
7d852a961f Allows xenos to use ladders properly (#53044) 2020-08-19 16:11:44 -03:00
uomo
180ef034ba A bunch of tweaks to holsters. (#53031)
Regular holsters:

Can no longer hold pulse carbines.
Can now hold toy pistols.
Detective's holster:

Can no longer carry ALL ammo box types, it's crazy this was possible.
Can now carry all handguns instead of only revolvers, their ammo, the mini e-gun, and the toy pistol and its magazines.
Chameleon holster:

Can no longer hold pulse carbines.
Can now hold all the ammo of guns it can hold (handguns and revolvers), the toy pistol and its magazine, and the small energy crossbow.
Operative holster:

Can now hold... basically everything gun related. All guns, all ammo (except ammo boxes), all grenades.

Descriptions of all holsters changed to reflect this.
2020-08-19 15:58:40 -03:00
Krysonism
b8e128f17b New breathtaking medical stack: the mourning poultice! (#52968)
New type of medical stack, obtainable from botany: the mourning poultice.

These poultices convert 10 brute and 10 burn into oxy per application, and can be used on corpses as well as the living.

It takes 20u bungotoxin, 20u aloe juice and 20u cellulose to create one stack.

I have split all the existing medical stacks into their own dmi, stacks_medical.dmi.
2020-08-19 15:25:10 -03:00
uomo
e0520a2e10 Utility belts can now hold airlock and decal painters. (#53027) 2020-08-19 15:21:39 -03:00
ATH1909
829f305b6d bruh moment (#52661) 2020-08-19 10:38:25 -04:00
NightRed
12f8b03249 Shatter glass by slapping the floor (#52916) 2020-08-18 22:40:07 -03:00
TiviPlus
0ab4f38605 Diagonal macro thingu (#52927) 2020-08-18 22:35:33 -03:00
Rohesie
25f670f8de Opacity refactor (#52881)
Moves all opacity var manipulation to a proc which sends a signal.
    light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
    has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
    Some opacity-related sight procs optimized as a result of this.
    Some variables moved to the object's definition.
    A define or two added into the mix for clarity.
    Some code cleaning, like turning booleans into their defines.
    One file renamed for clarity.

Changelog

cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl
2020-08-19 13:24:20 +12:00
ATH1909
0c1d72e333 Adds reminders as to which cult structures make which cult items (#52637)
Said reminders are present in both the descriptions of those cult structures and in the stack recipe menu for runed metal.
2020-08-18 22:22:19 -03:00
tralezab
728d1ca524 cleanup the corpse file, cleanup stationstuck component, adds stationstuck to the reanimated skeleton (and zombie, why not) (#52940)
all living spawners in corpse.dm are now in ghost_role_spawners. I hate having to search two different files to HOPEFULLY find which ghost role I need to edit.

Added a disclaimer about giving guidance or at least stationstuck component to stuff so this doesn't happen again

Cleaned up stationstuck. Man, I know I made this, but damn I did kind of a shit job
2020-08-18 22:20:25 -03:00
Bampotio
a334bafee9 Adds floral somatoray to botany belt (#53010)
Makes it so you can store the floral somatoray in the botany belt
2020-08-18 20:39:55 -03:00
Qustinnus
f54de4a2b8 refactors resist act to be on atom level (#53016) 2020-08-18 20:30:44 -03:00
Rohesie
245dbb0ec7 embed runtime (#52912) 2020-08-17 20:09:56 +02:00
ishitbyabullet
1da0b5547e Minor Away Mission Fixes (#52672)
Fixes a few minor issues in the pre-existing away missions as well as removing some bloat from one of them. I also asked for permission to do this.
2020-08-16 23:55:20 -03:00
Arkatos1
b6b9caad10 Bible Radial (#52919) 2020-08-15 11:48:37 -07:00
Arkatos1
2d68ac7339 Small TGUI tweaks and fixes (#52955)
* LaborClaimConsole cleanup

* UI tweaks
2020-08-15 11:38:13 -07:00
Fikou
8ecc06083a adds ascension achievement (#52757)
adds ascension achievement
2020-08-15 11:34:12 -07:00
silicons
16eb86ddcf Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR (#51459)
Instruments and sound channels refactor.
2020-08-15 10:39:46 +02:00
CRITAWAKETS
da354ba4e2 Removes singularity, tesla, TEG and Mrs. Pacman. Changes supermatter overcharge delam. (#52873)
About The Pull Request

This PR removes the tesla and Mrs. Pacman from the game. The title is actually misleading, the TEG and singularity are still in the game but inaccessible and the singularity no longer has its generator.

Field generators and tesla coils have been kept because shocking your fellow man is the greatest sensation of power in the world.

The overcharging delamination for the supermatter has been replaced by the release of 2500 mols of tritium at 500,000 kelvin. An engineer who's really hateful of the station can use this for fusion, if they desire. Otherwise, its a tritium fire in engineering alongside the explosion. This will probably be changed in the future to be more potent since the explosion will pretty much just space all the tritium away.

Singularities no longer produce radiation. Now, keeping one is less about making power and more about making a statement, especially since you need to delaminate an SM shard for it.
Why It's Good For The Game

Having power optimized for one generator (SM+Turbine) will allow balancing to be feasible, also oranges wanted this. The other generators may later return but with tweaked values and different roles.
Changelog

🆑
del: Nanotrasen has removed their outdated teslas, singularities, TEGs and Mrs. Pacman generators from their servers and warehouse.
/🆑
2020-08-15 10:42:08 +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
ShizCalev
d22909e35f Merge pull request #52920 from CRITAWAKETS/test-ur-peearrs
Fixes lattice and operating table smoothing.
2020-08-13 17:36:29 -04:00
Critawakets
4d6c51c5e1 Fixes lattice and operating table smoothing. 2020-08-13 15:43:11 -04:00
kingofkosmos
3263decaad Personalized combat messages part 2 (#52890)
Adds more "personalized" combat messages for all participants in a fight: the attacker, the victim and the spectators
2020-08-13 11:34:57 -03:00
LemonInTheDark
f66dc66ae5 Fixes tesla coil hell contraptions (#52889)
Removes the ability for tesla coils to generate power with more then 85% efficiency.
Cleans up the remainder of my zap_act refactor, making the proc better fit its usecase and removing some unneeded code.
Adds a check in the tesla coil zap() proc that makes sure we're not trying to use power that's not there.
Removes some seemingly complex math from said proc, replaces it with a static 20% draw * the efficiency.
2020-08-13 11:32:27 -03:00
Rohesie
b0726e032b Icon smooth refactor (#52864)
bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.

    canSmoothWith list turned into a bitflag list.

    smoothing_groups list added to substitute the type path list.

    smoothing procs turned into atom procs, refactored and optimized a bit.

    smooth directions redefined in order to fit in 8 bits for a future smoothing system

    some variable names changed, foreseeing a second smoothing system

    SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.

    SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.

    Does very minor code cleanup.

    Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.

    Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.

Could be tested a bit to see if I missed any icons not properly smoothing.
2020-08-13 14:03:49 +12:00
ArcaneMusic
71660f8f10 Adds the Account Registration Machine. (#52745)
This adds the Account Registration Machine to the game, it's obtained at the computerized recordkeeping tech (Rather far in to the tech tree) and only obtained from the security lathe to prevent access from being too widespread, because I don't trust players have access to this until at LEAST half the shift has gone by. What this enables you to do is to create new accounts for blank IDs. The accounts won't have a parent payment account until actually assigned a job by a card console, but for all intents and purposes they'll act and interact like a standard, station bank account.
2020-08-12 18:43:08 -03:00
Fhaxaris
50655bfb1b Fixes sticky tape spam (#52869)
* Fixes sticky tape spam

* ok
2020-08-12 14:21:18 -03:00
Time-Green
b96829252e Plumbing teleporters (#51881)
* Makes the plumbing RCD accept every object

* Adds simple plumbing teleporter

* Polishes plumbing teleporters

* Fixes runtime

* this to src

* circuitboard doesnt need anchoring

* Fixes overlay flickering being weird

* Makes the Chemical Recipient's positioning less awkward

* Comments and documentation

* uh

* Fixes dme

* Revert "uh"

This reverts commit af6f30089f9f31d527f6ab3e2b1c72cf6ab6d60d.

* Update code/_globalvars/lists/construction.dm

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* Update code/game/objects/items/RCD.dm

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* Update code/modules/plumbing/plumbers/_plumb_machinery.dm

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* uncasts loop

* update icons

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2020-08-12 11:37:55 -04: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
tralezab
7286a53a4f Removes annoying references from admin keycard airlocks, makes the descriptions more helpful for finding the correct door (#52846)
No more cheese and titanic keycards, they are now yellow and blue. The descriptions now point out which keycard they require in their description, because players are very forgetful and when you are clueless in space station thirteen the first thing you do is examine.
2020-08-11 22:30:14 -03:00
Paxilmaniac
0b99c5edb5 Fixes Fly Swatters Not Obliterating Spiderlings (#52857)
* snap.ogg

adds spiderlings to the list of things the swatter is strong against

* oops

forgot a comma

* epic phonepost webedit

changes one word in the item description
2020-08-11 22:27:27 -03:00
Jared-Fogle
00c593026b You can now craft cable restraints directly from the radial menu (#52614) 2020-08-11 21:54:22 -03:00
Jared-Fogle
55f38384f9 Remove reinforcement chromosomes (#52613)
Removes reinforcement chromosomes completely.
2020-08-11 21:35:12 -03:00
Jared-Fogle
e8c4b99ada Adds a sprite for advanced medkit medibots (#52775) 2020-08-11 20:02:41 +02:00
Timberpoes
8d2ebb14e8 Fixed runtime involving crew pinpointers by removing indestructibility from non-nuke pinpointers (#52845)
Remove invulnerability from crew pinpointer
2020-08-11 12:18:08 -03:00
Timberpoes
b8fcec9db0 Intercoms now have appropriate attack_tk_grab response (#52835)
Due to issues with item interaction code, this PR means the intercom is now viewable with telekinesis but is not interactable unless adjacent.
2020-08-11 12:16:35 -03:00
Jared-Fogle
3cf450d564 Give mood buff for defibbing someone (#52798) 2020-08-11 11:55:46 -03:00
LemonInTheDark
7b2ee45841 Adds a signal for storage exit and insert, uses it to make trading cards zoom properly (#52737)
* Adds a signal for storage exit and insert, uses it to make trading cards shirk properly

* Adds storage param
2020-08-11 10:47:18 -03:00
Critawakets
f47b2d4b2d Removes a bunch of powergens.
removes the tesla and mrs pacman, makes the TEG and singularity inaccessible.
2020-08-11 08:33:57 -04:00