Commit Graph

2140 Commits

Author SHA1 Message Date
Rohesie
3a33f3ae47 Refactors machine_stat and is_processing() to process on demand (#53150) 2020-08-24 17:38:30 -07:00
LemonInTheDark
7614f56d08 Fixes powernets imporoperly rebuilding when a ship moves (#53132) 2020-08-24 23:40:39 +08:00
TemporalOroboros
6e950daccc Defines damage flags. (#53158) 2020-08-24 08:20:33 -03: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
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
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
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
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
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
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
8b05335e19 Adds feedback to the supermatter exploding while in a locker (#52762)
* Adds feedback to the supermatter exploding while in a locker

* Fix z level check
2020-08-10 17:40:05 -03:00
Arkatos1
52ef73b88c Pipe cleaner cable color fix (#52759)
This PR fixes a bug where service cyborgs were unable to set a color of the pipe cleaner cable they possess due to not setting an actual color code for a cable colorization and a duplicit name variable.

Also adds an option for cancelling color choosing input as per maintainer suggestion.
2020-08-10 17:00:38 -03: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
silicons
51dc283773 supermatter anomaly generation can no longer be used to get anomaly cores (#52732)
* fix

* webedit moment yes i'm testing this pr shhhh you didn't see that failed compile

* haha what if i tested my code?
2020-08-06 15:25:45 -03:00
Fikou
613cfae75c adds lightbulb removing skillchip (#52603)
* shawty got low low low low low low

* Update code/modules/library/skill_learning/skillchip.dm

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>

* aaagh

* fuck

* review

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2020-08-06 11:16:02 -03:00
ShizCalev
65bde07627 electrified airlock fixes (#52699)
* Airlock zap fixes

* cleanup

* jaws of life

* removed redundant just_zap var, handled by cooldown checks.

* comments

* cleanup healper
2020-08-04 23:50:28 -04:00
Rohesie
6ff08e1c69 Color standardization, vars moved, and signals (#52574)
Defined all the existing light_color values.
    Moved their definitions to colors.dm
    Made white the default color. It was so already, but that was very obscured.
    Moved the atom light-related variables to the atom definition.
    Wrapped changes to variables such as light_color into procs that report the event through signals.
    Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
    Cleaned up a little bit of code in where new variables were defined before redefinitions.

This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.

There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.
2020-08-04 13:59:48 +12:00
Jared-Fogle
f23dcd2067 Fix pulsing the power wire shocking you repeatedly unless you close tgui (#52541)
* Fixes #52538

* Allow those with insulated gloves to mess with airlocks still

* Fix not being able to interact with insulos

* Fix style qualms

* Add shock immune to should_electrocute
2020-07-30 23:15:12 -03:00
Dennok
b4c275e2ce Try to replace light overlay to vis_contents (#52389)
* Try to replace light overlay to vis_contents

* move glowybit creation in Initialize

* ups

* change mutable_appearance to SSvis_overlays

* set right settings
2020-07-30 06:03:52 -03:00
Dennok
a190d33cdb Move cable radial menu to attack_self. Move recipe crafting to radial menu chose (#52540)
* Move cable radial menu to attack_self

Move recipe crafting to radial menu chose

* Remove loc check in attack_self
2020-07-30 01:21:11 -03:00
Dennok
c327c76c13 Remove cable hubs from handcrafting (#52539) 2020-07-29 10:06:02 -03:00
ShizCalev
ea3c805d65 Fixes anchor varedited solar array assemblies having incorrect pixel offset (#52474) 2020-07-26 13:47:09 -04:00
ShizCalev
50d1430859 Supermatter slivers thrown by bombs / mass drivers will now consume a mob if hit by it. (#52473) 2020-07-26 13:46:28 -04: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
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
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
254536072e [s] sanity checks vv_edit_var() values (#52255)
cl ShizCalev
fix: Added some sanity checking for varedit values.
/cl
* sanity checks vv_edit_var() values

* this should be an or

* one more fix
2020-07-16 10:20:41 +12:00
ShizCalev
15122bd901 Fixes uncorrupted power cells exploding without plasma (#52213)
* Fixes uncorrupted power cells exploding without plasma

* commentary
2020-07-14 20:10:43 -04:00
LemonInTheDark
94dbb3cdb7 Fixes grounding rods not grounding (#52044)
* Fixes bolts not grounding properly due to a pass by ref

* This should obey the order
2020-07-12 13:28:32 +02:00
Ryll-Ryll
fc0b247738 rename 2020-07-11 23:23:23 -04:00
ShizCalev
90fef217c7 Fixes anchored state mismatch for field generators on delta (#52056) 2020-07-10 20:21:12 +02:00
LemonInTheDark
92209dd23a Sweeps up some rarely used and unbalanced sources of research points (#52012)
About The Pull Request

Removes the research point gen modes from tesla coils and rad collectors.
Someone is gonna take some flak for removing these at some point, may as well be me.
Why It's Good For The Game

THE DESIGN DOC DICTACT-

Nah powergen should be valid on it's own, it shouldn't need to rely on other econs to make it worth the work. We can try that later, but not now.
Changelog

cl
del: Removed the research modes from tesla coils and radiation collectors.
/cl
2020-07-07 11:02:33 +12:00
skoglol
f0f788ea32 Merge pull request #51969 from LemonInTheDark/sm-hugbox-moment
Fixes the sm gaining power when not intended
2020-07-04 18:03:21 +02:00
LemonInTheDark
f402f4e4ba Adds some more safety verbs 2020-07-03 23:59:45 -07:00
LemonInTheDark
365dfe1bec Fixes the sm gaining power when not intended 2020-07-01 21:44:00 -07:00
ShizCalev
411dea9542 Merge pull request #51659 from TaG2e/master
Fixes more missing sprites and adds invisible icon
2020-07-01 11:58:17 -04:00
spookydonut
88d1d36aef Removes some var/const that should be defines (#51461)
* Removes some var/const that should be defines

* change requests

* change requests
2020-06-25 03:00:09 -04:00
ShizCalev
872d4bb507 Fixes SM pulling the wrong mobs 2020-06-22 19:05:40 -04:00
TaG2e
8f72395637 Fixes more item icons, conflicts, and default hidden to false 2020-06-20 19:00:36 -05:00
LemonInTheDark
e5547a8f5c Supermatter variable documentation, cleanup, bugfixes. (#51345)
* Makes the supermatter file smaller.

AHAHAHAHHAHA YOU FOOL YOU HAVE FALLEN FOR MY TRAP CARD

* stable build maybe? sm cleanup begins

* The old ones knew

* lemme atomize actually

* I know how to spell ok? OK?

* braindamage

* That'll do it

* That do it?

* There we go

* Wow I should test things

* test?

* I hope that clears it

* Should fix the formatting trouble

* isolates the opening proc

* Lowercase and fixes messed up proccall
2020-06-19 18:48:06 -03:00
WarlockD
12540c7b30 Fixed cyborgs using multi layer cables. (#51714)
* Fixed cyborgs using multi layer cables.

* I guess human's should work on wires too

* Ugh I need to look more at the mob code some day
2020-06-19 11:55:50 -04:00
nemvar
b87f65d95e Converts ALL typepaths to lowercase (#51642)
* Case of lower

* More changes

* Ruins the nice 420 diff, brainfart when doing the second batch of conversions

* More changes

* Next batch. I think

* Converts even more paths

* Restarts bots

* Capital Free Zone

* Come on travis, do something

* Renames areas

* Bots, please stop dying

* Updates CONTRIBUTING.md and updates a few paths I missed.

* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
2020-06-17 20:47:57 -03:00
TaG2e
b9ec327c17 Fixes more missing sprites and adds invisible icon 2020-06-15 01:56:12 -05:00
ShizCalev
cbaf10eea1 Fixes singular cable stacks never showing up properly 2020-06-15 02:07:14 -04:00
MacBlaze1
f28e8e4c3b abusing AIs (#51284) 2020-05-26 14:15:15 -04:00
Timberpoes
8d99381264 Fixes SMES not charging from self-recharging cells. (#51240)
* Check for slime cores and charge based on them

* Spellchack

* Implemented self_rechaging check instead.
2020-05-25 23:34:01 +08:00
nemvar
6ef421be42 Renames a few variables. Also reorders icon fallback order again. (#51060)
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.

* Fixes some comments

* Fixes map issue

* Restart lints

* Properly resolves conflicts
2020-05-25 06:47:19 +02:00