Commit Graph

14471 Commits

Author SHA1 Message Date
tralezab
5171ccd7b3 Add admin tool for adding specific fantasy affixes (#58884)
A new option when using VV on atom movables is to add a custom
fantasy "affixes".
2021-05-07 17:21:58 +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
Celotajs
923870e945 Fix pda overlays (#58892)
Fixes PDA overlays, such as lights, pai and so on
2021-05-06 21:03:25 -04: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
LemonInTheDark
c906c44393 Fixes a fuck ton more harddels (#58779)
Redoes how geese handle eating shit, it was fucking stupid and caused harddels, and while this method is technically slower in the best case, it's a fucking goose
Fixes action related harddels, I hate how they work but at least this way they won't hold refs.
Fixes the hierophont causing its beacon to harddel
Removes the M variable from megafauna actions, it was used like a typed owner and caused harddels, so I burned it
Fixes target and targets_from harddels, replaces all setters of target with LoseTarget and GiveTarget, which should help maintain behavior. I'm not sure if this breaks anything, but if it does we should fix the assumptions that code makes instead of reverting this change
Fixes more area_senstive_contents related harddels, we need to allow the mob to move before clearing out its list.
Fixes marked object harddels (I'm coming for you admin team)
Fixes a language based human harddel
Fixes managed overlay related harddels (This was just emissive blockers, but I think this is a good safety net to have. If we clear the overlay list we should clear this one as well)
Fixes bot core harddels, I hate the fact that this exists but it has no reason to know who its owner is
Adds a walk(src, 0) to simple_animal destroy, it's the best bang for the buck in terms of stopping spurious harddels. Walk related harddels aren't that expensive in the first place, since byond does the same thing I'm doing here, but this makes finding mob harddels easier, so let's go with it
I fixed another source of part harddels, I hate fullupgrade so much
Fixes all the sound loop harddels
2021-05-05 10:57:27 -04: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
LemonInTheDark
4e53d8c4bc Removes some boiler plate from working with atmos code (#58885)
Everything that called turf.assume_air and turf.remove_air was already updating turfs, and all that not tying

the two together did was add more boiler plate, and break things when people forgot about it.

This shouldn't add any overhead outside of hotspots, but I think that's trivial
2021-05-05 01:31:30 -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
Urumasi
187c91fba4 [Ready] *smacks table* Objection! (#57304) 2021-05-04 06:42:51 -07:00
Celotajs
99ce137e6c Convert PDAs to GAGS (#58844)
* Convert PDAs to GAGS

* Leave the clown PDA as it was

Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
2021-05-04 15:37:01 +02:00
Fikou
0e8e403a5b fixes fake chasms not dropping floortiles and borgs having their floor tiles deleted when reskinning (#58853) 2021-05-03 23:50:15 -07:00
Thunder12345
b7cb5cea16 Converts circuitboards to GAGS (#58841)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
2021-05-03 16:53:57 -07: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
Beatrice
f73b89987a Lighter Grammar Fix (#58813)
* Sing -> Singe Replacement

Self explanatory. Replaces sing with singe

* Removes Scorch, Just In Case
2021-05-03 14:55:55 +02:00
Yenwodyah
8b33b8c03a Move SM sliver to layer above the crystal (#58783) 2021-05-03 14:53:48 +02:00
YakumoChen
65b2d83adf Pierced Reality / Singulo toy NO_PIXEL_RANDOM_DROP (#58837) 2021-05-03 05:25:33 -07:00
LemonInTheDark
9d6a7c7045 Fixes gib code creating more then one rot component per gib (#58838)
Co-authored-by: Fikou <piotrbryla@onet.pl>
2021-05-03 05:24:51 -07:00
ATH1909
39a0b96083 removes an unused sticky tape variable (#58856) 2021-05-03 05:15:39 -07:00
Tom
78cba283e8 PDAs reset the alert overlay when you read your messages (#58820) 2021-05-02 02:11:46 -07:00
cacogen
4542430810 RPD can destroy broken disposal pipes (#58814)
Aims to speed up the replacement of broken disposal pipes by making it less demanding on the player. Hopefully this will lead to it happening more often. Does this by:

Allowing the RPD to destroy broken disposal pipes
Automatically destroying broken disposal pipes before trying to secure new ones of the same direction over the top of them
Automatically crowbarring floor tiles while trying to secure disposal pipes over the top of them if a crowbar is held in the offhand

Speeds up the rate at which broken disposal pipes can be replaced.

At the moment to replace a disposal pipe you have to weld each end of the broken pipe. It requires fuel, activation of eye protection and three seconds per end. This becomes time consuming when you have a lot of pipes to replace. It only serves to further disincentivise repair of everything but small breaches.

This PR lessens the requirement to only an RPD and half a second per end. You can also just place a pipe of the same direction over a broken pipe and the ends will be deleted for you. If you place a disposal pipe over a broken pipe that's above a floor tile while holding a crowbar, the floor tile will be removed so the RPD can secure the pipe. All that's left is welding the pipe and replacing the floor tile.

Hopefully this will lead to more people replacing disposals. There's still undesirable difficulty in finding out where pipes went and which ones were used (if you can't figure it out the only solution is making do or looking at the .dmm -- usually it just doesn't get fixed) but that's out of scope for this pull request. Replacing disposal pipes is just one of several jobs involved in repairing hull breaches that players don't want to do. Hopefully this eases the tedium of replacing obvious pipes.
2021-05-01 17:17:48 -07:00
Fikou
c0f9d2e7e8 [READY] Tile Reskinning 2: Epic Winaloo (#58801)
extends the tile reskinning functionality to iron, bronze, plastitanium, carpet and pod floors
makes a bit of tile code better
moves some paths around, like elevator shafts being plating instead of floor
adds rotating as a tile reskinning function available on chapel or side floors for example

lets players customize any rooms they would want much more than it is possible now, allowing for more creativity
2021-05-01 02:20:45 -07: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
Kokonut
e422155475 New carpets & wood, version 2 (#58797)
maxymax13, /vg/station, Citadel Station

I really wanted #58190 (A port of cit tiles, fucking ahewhads) but then nobody gave it mergies so i've redone it except not stale, not merge conflict'd and not using stack crafting instead of tile floofing!
I fully replaced the fugly diagonal one with my own nicer parquet one, adjusted red carpet to be less noisy, and made a damaged state.

Much more customization for wood flooring enjoyers, and it's obtainable ingame, in an out-of-the-way method! Think of the bar remodels you could do with this and some cans of paint! Now all we need is to make the vinyl siding and wood panel siding decals place-able...

3 new variations for wooden tiles are available (large, parquet, and tiled), the same way you color titanium tiles! Remember, use a screwdriver and not a crowbar!
A new red planetary pattern design is available for arcade carpet!
2021-04-30 17:09:38 -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
vincentiusvin
19b7145b79 Borg apparatus now can use hotkeys to drop items; Right click to spill. (#58494)
* scrapped out

* Update code/game/objects/items/robot/robot_items.dm

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

* Update code/game/objects/items/robot/robot_items.dm

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

* Update code/game/objects/items/robot/robot_items.dm

Co-authored-by: AnturK <AnturK@users.noreply.github.com>

* review changes

* small mistake

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2021-04-30 10:21:58 +02:00
ArcaneMusic
52bfb5aa5d tweaks rupee's in-game sprite and adds some failtext to using them like cash. (#58726) 2021-04-29 04:01:09 -07:00
小月猫
dbe702597c PDA Painter can now reset the linked Economy Account (#58784)
* IDs now reset their account when imprinted

ID's can now properly be reused without giving people random economy accounts as the imprinting on the PDA painter now sets the ID's account back to null
2021-04-29 03:43:32 -07:00
ArcaneDefence
f1b2f9b68b Makes more foods finger foods (#58767) 2021-04-29 03:36:43 -07:00
ORCACommander
3cefccf08c Fixed Anesthetic Tank Holder Not Rendering (#58748) 2021-04-28 14:53:58 -07:00
Imaginos16
44b9d744da Adds in-hand sprites for the RSF and Plumberers (#58747)
Does what it says on the tin! I've noticed that the Rapid Service Fabricator and the science/chemistry plumbing devices had no in-hand sprites, and decided "screw it" and made some for them!

New sprites, especially for things that exist but have no in-hands, is awesome!
2021-04-28 00:34:46 -07:00
Seth Scherer
5ba06243bc Adds a new obj_flag that prevents building on objects that shouldn't be built on. (#58719)
Adds a new obj_flag that prevents building on objects that shouldn't be built on.
Adds it to the stasis bed and the sleeper, as well as some machines that become undense when the doors opens (nanite chambers, DNA scanners, suit storage unit, and gulag teleporter).

If I forgot any feel free to lmk.

Fixes #58528 (Operating table + stasis bed memes)

Some objects/machines that aren't dense (or become undense in certain states) shouldn't be able to be built upon, so this flag allows for specifying that you can't build on it.
2021-04-27 17:20:59 -07:00
carshalash
8e2c7766d1 Adds new recipe: Risotto. (#58734)
I realized while playing cook the other day that we did not have risotto as a recipe, I was very disappointed to see we did not have it.

Risotto is good, therefore it is good for the game. Our rice recipes are quite dull so hopefully, this will be a neat new thing to do with it.

Sprites borrowed/stolen from Aurora's Synnono Aurorastation/Aurora.3#2567
2021-04-27 17:08:21 -07:00
ArcaneMusic
8e3d932bbc Corrects a define regarding the amount of mail arriving on station + QOL changes. (#58723)
There was a math error in mail's implementation in the economy SS when I switched it over to delta_time, so that basically the time-based define MAX_MAIL_PER_MINUTE was being multiplied by delta_time. Just one problem, delta_time was being considered in deciseconds as usual, but my chimp brain failed to recognize that, meaning that the maximum amount of mail arriving on station was around 100x more than expected.

This corrects the delta_time variable to think in terms of MINUTE time defines, not just a static decimal multipliers.

Junk mail is funny and good, but you'll never read any of these if you get 200+ letters every shift just like it.

Additionally, adds some fluff text to the examine_more of letters, to let players know that you can use destination taggers to sne and distribute letters once they arrive.

QOL tweak is just to make cargo players and in-game purists lives easier.
2021-04-27 16:56:00 -07:00
Urumasi
9e8293aafe Changes mentions of °K as it doesn't use degrees (#58739)
The Kelvin scale doesn't use degrees as it's an absolute scale, so chem grenades now just show Kelvin instead of Kelvin degrees
2021-04-27 16:14:09 -07:00
Seth Scherer
c1ad087956 Fixes cyborg drinking glass generating infinite amounts of any reagent. (#58638) 2021-04-26 18:41:22 -07: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
Winter Flare
51b8ed2db8 More Food Sorting (#58649)
* Organizing

Moves the following:
Enchiladas, from MEAT, to MEXICAN
Meat Bun, from PASTRIES, to MEAT
Hotdog, from PASTRIES, to SANDWICHES
Melon Bowl, from MISC, to SALADS
Oatmeal, from SALAD, to SOUPS (And changes the object path to match.)

Does the traitorous task of adding the GRAIN tag to Enchiladas. May god have mercy on my soul.

* Adds a trailing new line

Co-authored-by: Winter Flare <7543955+Owai-Seek@users.noreply.github.com>
2021-04-26 16:09:44 -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
tralezab
bdd4e70673 mail fixes 😎 (#58716)
now mail doesn't get sent to... BAD recipients. (Antags arm, just say antags)
fixes incorrect unwrapping message (bad usage of a visible message)
mail recipients wasn't shuffling either. I'm fairly certain this was leading to some people always getting mail and some never getting it.
2021-04-26 15:50:35 -07:00
Fikou
2d36888405 screwdrivers no longer randomize their pixel_y on initialize (#58707)
removes the 75% chance on screwdrivers initialize to have a random pixel_y between 0 and 16

it looks bad now that the screwdriver is centered on the tile
2021-04-26 15:44:15 -07:00
Ghilker
88a9e09fd6 Smarter pipes (#58296)
Smart pipe improvements
Co-authored-by: tralezab <spamqetuo2@gmail.com>
2021-04-26 23:35:08 +02:00
Seth Scherer
41b9551904 Stops hangover station trait from making bottles spawn in the walls/windows/dense objects (#58681) 2021-04-26 01:58:05 -07:00
tralezab
623667dd15 Fixes Chameleon Projector Dummies escaping containers (#58683)
You can see why this is bad from the issue, but it applies a lot of other places you can cram the projector into. Like transit tubes! Or vehicles! Or free escapes from welded lockers! Spooky.
2021-04-26 01:08:28 -07:00
Urumasi
f05aae0323 Fix infinite RCD bug (#58669) 2021-04-25 20:56:31 -07:00