Commit Graph

4019 Commits

Author SHA1 Message Date
Kylerace
e13fe75590 use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
2021-05-24 15:28:02 -04:00
RandomGamer123
c22ea3b9e0 Fixes lockers unlocking without distance checks (#59214) 2021-05-22 23:29:06 -04:00
Kylerace
d8fc3410f4 fixes traps not adding connect_loc in base type (#59196) 2021-05-20 21:49:41 -07:00
Celotajs
190d0a0384 Replace alert usage with tgui_alert (#58419)
Pretty much every alert() call is replaced with tgui_alert, except one I replaced with tgalert as a fallback. If tgui_alert exists, why not use it?
2021-05-20 22:43:27 +12:00
tralezab
67a3ce53af Gives curators a console for printing portraits not in the round onto canvases (#59146) 2021-05-20 03:05:15 -07:00
SgtHunk
4aaaff8c79 Moves secure closet locking to Right click (#58774)
Co-authored-by: Enricode <SgtHunk@users.noreply.github.com>
Co-authored-by: tjatpbnj <tjmayfield05@gmail.com>
2021-05-15 18:32:45 -07:00
Time-Green
9b40043ff0 Fixes geysers being unplungerable (#59088) 2021-05-15 02:00:00 -07:00
EOBGames
4471de4675 Commission Plaques (#58995)
Adds commission plaques- these commemorate the day a station was added to the game (adjusted for SS13 time) and the day it was removed (in the case of removed stations). If I got any of the dates wrong, please feel free to tell me.

They're added to every in rotation station, as well as the Derelict and Runtime Station.

Many thanks to Fikou for providing the git hashes for each commit to add/remove a station:

It's a neat nod to the maps' OOC history, as well as simply being some nice flavour.
2021-05-12 10:49:18 +12:00
MMMiracles
7d7c6c5c30 prevents tram from stealing its own landmarks (#58962)
* stop stealing the landmark please!!!

* better fix
2021-05-09 13:56:48 -04:00
tralezab
16c87a0aad tramprocess only fires on maps with trams (#58940) 2021-05-08 16:16:09 -07:00
ishitbyabullet
4a24f8afaa Lavaland Xeno Nest Fix 1.5 (#58792) 2021-05-08 05:07:25 -07:00
dragomagol
c86aff9a82 The Wallening Approacheth: Adds directional variants to most wall mounts (#58809) 2021-05-08 02:57:36 -07:00
Emmett Gaines
14d337787b Gives the monkey a gun (#58565)
This adds a rare-ish negative station trait that gives Pun Pun a weapon, fills their heart with anger, and bloodies up the location they spawn in. (Yes the weapon is even more rarely a gun)

A request for one of the weapons to be a sign meant that a random sign type was added here as well.
2021-05-08 06:00:59 +01:00
Time-Green
448d9bd841 Geyser rebalancing, gives miners points for discovering geysers (#58859)
Co-authored-by: Matthew J. <GoldenKeyboard@users.noreply.github.com>
2021-05-07 03:55:07 -07:00
Kylerace
08df8798ce (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#58340)
Co-authored-by: Jared-Fogle <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-05-07 03:54:03 -07:00
interestingusernam3
18f5b011d2 Turns existing comments in the file DMdoc comments, adds like one new comment (#58894)
Co-authored-by: Your mother <mothmilk666666666666@tfwno.gf>
2021-05-06 21:02:36 -04:00
MMMiracles
83c841f799 Tramstation: Big Brother Update (#58627)
* tram cameras, science tab on tram, lavaland dock

* adds 2 boxes of beakers + 1 bodybag in the main medical area

* buffers for chem heaters or w/e

* punny puns

* sci stuff
2021-05-06 04:49:53 +02:00
ZeWaka
b86aaf3307 Fixes bitwise flag negation errors. (#58870)
These have been in the codebase for many years. Love, ZeWaka
2021-05-05 01:37:56 -04:00
Seris02
ff2f6abe83 Sort the majority of the rest of the unsorted chat (#58821)
* FINALLY IT IS DONE FUCK

* tip of the round into ooc

* adds cyopod chat messages to the info chat filter

* last one I promise probably, mob spawner messages to info filter

* holoparasite, round will start in x and keybinding conflict to respective filters

* removed motd from constants, made it infoplain surrounded instead

* changed info to infoplain
2021-05-05 05:57:40 +03:00
tralezab
fa83a686c4 Add #cargobus and gauntlets (also modernizes ntchat) (#58609)
* cargobus, start of gloves

* basics of the HAUL gauntlets

* fully mapped in

* almost forgot the gauntlets

* ntnet improvements

* cargo gaunts, tablet cargobus

* excludes body bags

* dmis and map back

* readd icons
2021-05-05 05:56:39 +03:00
cacogen
db8dd61075 RCD repairs grilles before adding windows to them (#58812)
* RCD repairs grilles before adding windows to them

- Grilles need to be clear of unanchored items for a window to fit on them
- Attempting to build a window on a grille with unanchored items on it will automatically move 20 of them to your tile
- If more than 20 items are on a tile, adding the window will fail (but you can just do it again to move 20 more)
- Grilles no longer rely on a subtype to break

* Uses text macro thing for simpler code
2021-05-03 15:02:03 +02:00
Celotajs
574c81a143 Resolve chameleon GAGS item issues (#58808)
This PR fixes issues with the chameleon jumpsuit and sneakers. In addition to that, it properly defines setting for GAGS worn and inhand icons instead of having them be in Initialize() for specific item types. Names for the prisoner jumpsuits and wheelys have also been reverted to how they were before the GAGS PR.
2021-04-30 22:16:18 -07:00
LemonInTheDark
27385e9d70 Converts the atmos senstive component over to connect_loc (#58266)
* Makes all uses of atmos_senstive pass in mapload as context

* Converts atmos senstive to connect_loc, does some general cleanup to the element, and makes it check the state of the tile the thing is on assuming creation didn't happen as a part of map loading

* Updates connect loc to match the new arg list
2021-04-30 18:35:47 -07:00
Kokonut
cfccfc0bb4 Plants don't get their positions ruined when dropped (#58806)
Tiny atomic one line change that makes plants stay in the same place when you drop them.

What's the point of being able to hide in a plant if anyone with basic object permanence can see that a plant that used to be offset off the tile is now centered?
Also I was tired of seeing all the plants in the bar turn really ugly and offset the second Pun Pun gets to them with no way of centering them again.
2021-04-30 17:20:26 -07:00
LemonInTheDark
a924226b50 React optimization + event based processing for tanks, canisters and pipelines (#58418)
* Makes tanks only process when needed, rather then doing it constantly

* Makes portable atmos machines only process when needed, makes adding and removing atmos machinery cheaper, makes the tank processing logic actually work properly

* Makes pipelines only react() when their mix changes, fixes a ton of misuses of update_parents that were causing about 10ms of load for atmos just from reconcile_air()

* Adds in a new reaction framework alongside the old one for profiling related reasons

* whoops

* Cleanup, removes the react profiling code, I've chosen a direction to go here

* Cleans up some code, adds comments describing how to interact with portable atmos machines/tanks and their
mixes, adds a blurb to Atmospherics.md about the topic as a whole, leaves a line of bread for someone to follow
if I get hit by a bus in 2 days (Knock on wood)

* Removes priority from reactions, moves priority groups to the defines file

* whoops

* Converts air_contents to _air_contents, replaces all the out of file things that used it with return_air()

* Replaces the canister air contents uses, converts it back to air_contents, I decided I didn't like the _

* Fixes
2021-04-30 12:29:29 +02:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Fikou
7e3a4f2442 fixes stuff made with bronze sheets deconstructing into tiles or not being able to make bronze golems (#58708) 2021-04-26 16:15:18 -07:00
TemporalOroboros
03164f4fcb Emissive system refactor (#58130)
The emissives system is the system that both lets computer screens and vendors glow in the dark and lets mobs and items block those glows. The current implementation relies on using filters to let mobs and items mask out the glow in the dark overlays on some structures. This is difficult to extend properly without massively increasing maptick. This PR changes the emissives system to use BYONDs native image layering to mask emissive overlays. This should prove to be a more extensible option.

tldr; There exists a system that lets computer screens glow on the dark and lets mobs and items block the glow. It isn't very extensible and this PR attempts to make it more extensible.

How emissive overlays used to work

Currently emissive overlays and the emissive blockers that mask those overlays are handled using a system of inter-masking planes. The emissive overlays and the emissive blockers are placed on separate, hidden plane masters. These are essentially rendering layers and groups. The emissive blocker plane is then used to mask the emissive overlay plane which effectively allows the emissive blockers to block the emissive overlays from being seen. After is has been masked the emissive overlay plane is used to mask the lighting plane, essentially creating holes in the shadows wherever an unblocked glowing thing exists.

Why this is a potential problem

This system works fine. In fact it works great! The computer screens glow, any person or item that winds up on a computer blocks the glow, and everything just works. However, this system runs into some issues when you try to extend it to work on things other than structures. Namely, the current system only supports emissive overlays on structures and emissive overlays that are completely unblockable by any means. As a result, several interesting uses to the system require extending the system.

As a result, if you want to apply emissive overlays to items (which exist between structures and mobs) or emissive overlays to turfs (which exist below structures) you must extend the emissives system to get the emissive overlays and emissive blockers to properly function. Doing this naively, by adding extra emissive overlay and emissive blocker planes and applying all of the relevant masking filters, is not exactly performant.

Maptick is a major contributor to lag and the higher the maptick the more free lag you, the player, get delivered fresh to your client. Trying the naive method resulted in #55782 (1f1b58bb26), an attempt to add glowing carpet to the game. Since the PR revolved around adding glowing carpet it had to extend the emissives system to allow for emissive turfs and emissive blocking structures. Extending the system was done naively as described above and you can see the results. 1.5 times the maptick across the board. Ouch.

So, we know that extending the system in it's current form is impractical. At least if done naively. Thus we are stuck.

tldr; The emissive system currently uses inter-plane masking to allow for emissive blockers to function. This is difficult to reasonably extend without murdering maptick. See #56496 (1f1b58bb26) for the results of naively extending this system.

How emissive overlays are going to work

Alright, so we know that the current system of using planes to let the emissive blockers mask the emissive overlays is difficult to extend in it's current form. The solution is to change how the system works so that it can be extended in a more efficient manner. What we want is a system that allows one set of images to be out masked by another set of images and for the first set of images to be capable of masking the light plane. Preferably, we would also like the ability to interleave the masking effect between emissives and emissive blockers with almost arbitrary layering.

Conveniently, this layering and masking is something BYOND already does to normal items and objects. If we put the emissive overlays and the emissive blockers on the same plane we can use their layers to interleave them almost arbitrarily like any normal structures and items! All we need is a way to mask away the emissive blockers from the resulting rendered plane and we can mask the lighting plane with the remaining emissive overlays.

Luckily, BYOND has provided a single filter that is capable of this task. The color matrix filter. This filter can be used to apply a color matrix to an image! Provided that the emissive overlays and the emissive blockers are different colors we can use a color matrix filter to effectively mask out the emissive blockers from the plane! The resulting emissive plane can be applied as an alpha mask to the lighting plane as it used to, to the same effect. The best part is, we get layering practically for free!

This is exactly what this PR does. It converts the emissives system from the old plane and masking based blocking to a new layer-based system which uses BYONDs native layer handling to mask the emissive overlays.
2021-04-26 15:56:37 -07:00
Celotajs
fb2d71495b Convert jumpsuits, jumpskirts and sneakers to GAGS (#58514) 2021-04-25 17:01:36 -04:00
Mothblocks
7e4de07506 Remove all gamemodes except Dynamic (#58470)
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.

* Remove gamemode references from age checks

* Monkey

* Remove heretics

* Remove BBs

* Refactor uplinks and remove clown ops

* Remove nuke ops

* Removes and refactors cult

* Remove extended

* Remove and move out meteors

* Removes wizard

* Remove sandbox

* Remove changelings

* Remove traitors

* Remove revs

* Remove gangs

* Remove changing mode and voting for new gamemodes

* get_candidates signature fix

* Summon ERT and NERD in their own panel

* Remove some old unneeded age_check stuff

* Fix old signatures of get_uplink_items

* Use Extended like config for dynamic.json

* Fix discounted gear
2021-04-25 01:55:10 -07:00
Seth Scherer
9bceb56c1d Fixes full unrestrained interaction while buckled to a xeno nest. (#58617) 2021-04-23 16:56:49 -07:00
LemonInTheDark
39016d2895 Fixes a bunch of invalid icon states. There's more, but my brain isn't fried enough for that. (#58608)
gibup1 and gibdown1 don't exist
items_and_weapons.dmi doesn't have an icon state called his_grace_ascended, in fact nothing does
items_cyborg.dmi doesn't have an icon state called laser, it  does however have an icon state called
laser_cyborg
no porta_turret has an icon state with the _unpowered suffix, in fact I'm convinced none of them ever have
2021-04-23 02:47:24 -07:00
dragomagol
4b531c9d3e Changes reinforced window deconstruction to right click (#58523) 2021-04-22 22:22:30 -07:00
Seth Scherer
79556c3e61 Allows you to repair trophy cases (the ones found in the library) (#58588)
Apparently you haven't been able to repair these for the last four years.
Fixes #27926 (Trophy cases being perma broken)

All other display cases can be repaired, why shouldnt this one be able to.
2021-04-22 21:30:01 -07:00
GuillaumePrata
7e3418ad22 Tank holders can be anchored and have better examine descriptions. (#58348)
* Tank holders can be anchored

* Better description

* One word

* Requested change
2021-04-22 20:22:46 +02:00
ArcaneDefence
234edc571e Prevents jank directional window opacity bugs (#58577) 2021-04-21 20:10:54 -07:00
ArcaneDefence
d79bad7629 Allows rotating statues (#58462) 2021-04-17 00:06:32 -07:00
Mothblocks
1e848e5738 Move eyestabbing to an element, rather than as part of core combat code (#58358)
Moves eyestabbing off from an item flag that is checked on every item attack to an element.

Kills /obj/item/proc/eyestab, and makes the new element the sole owner.
2021-04-17 00:53:33 +01:00
Ghilker
72badd3105 Insulating gloves gives chunky fingers trait (#58407) 2021-04-15 11:05:42 -07:00
tralezab
7d58d8de6c REOPEN: REVERT: Changes faster fireman carrying from a trait on gloves to a skillchip (#58268)
Co-authored-by: SuperNovaa41 <supernovaa41@protonmail.com>
2021-04-15 00:15:45 -07:00
AnturK
3de3256f25 Fixes initialization getting stuck on paintings. (#58399) 2021-04-14 14:32:57 -07:00
Ryll Ryll
cd378c4860 breaking a mirror is bad for your health (#58381) 2021-04-14 12:09:24 -07:00
Ghilker
f54783fd91 Firelocks can't close if an holofan is placed on their turf (#58332) 2021-04-13 06:36:05 -07:00
Greniza
23c9d1860b Adds a muzzle-breathmask (#58330) 2021-04-12 17:26:25 -07:00
tralezab
09ab61ae05 Four New Sects, small rethemes to first 3 (#57820)
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 22:57:43 +03:00
Emmett Gaines
1c81adac8d Allows the connect_loc element to have a listener different from the tracked object (#58276) 2021-04-10 18:19:57 -07:00
Mothblocks
0d24cdea3c Remove Uncross() and CheckExit(), add connect_loc element to cover the cases we used it for (#58188)
* Remove Uncross(), add create_loc element

* Update on ChangeTurf

* Explicit return

* Hold onto elements and remove TEST_FOCUS

* Remove UNIT_TESTS compile flag

* Follow my own advice.

* Comment about Uncross + CRASH

* Remove /atom/Exit ..()

* Apply suggestions from code review

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>

* Use keyed locs

* Re-add Bump()

* Superfluous check

* Correct change turf signal, remove old continue check

* Fix compile failure

* Fix tests

* Don't create element for fulltile windows

* Correctly unregister old location

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-04-08 15:52:00 -04:00
ATH1909
1b68ca0a34 Placing a fireman carried person onto a table no longer harms them (#58147)
Previously, clicking on a table with a fireman carried person while not in combat mode would start a do_after(), then harmfully smash the person you fireman carrying into the table. This harmful smash has been replaced by your character merely placing the fireman carried person onto the table, like what happens when you click on a table while not in combat mode while you have someone in a grab. You can still click on a table with a fireman carried person while in combat mode to perform a limb smash, if you wish.
2021-04-05 12:54:56 -04:00
Mothblocks
0b016ef2ce RCD now rebuilds existing constructs faster and with less resources (#58029)
* RCD now rebuilds faster

* Reconstructing now costs less

* Fix _

* Remove unused flag, use helper proc

* Add sound

* Remove previously useless, now inaccurate comment

* Add MIN_COMPILER_VERSION warning
2021-04-04 16:29:29 +02:00
tralezab
9339319023 Persistence now cleans up json entries (fixes a lot of runtimes involved) (#58084)
* super duper persistence cleaning

* compiles now, much better written
2021-04-03 00:47:05 -04:00