Commit Graph

27663 Commits

Author SHA1 Message Date
GuillaumePrata
1663f3efcb Changes Plasmamen belt tanks volume and the rate that their lungs consume plasma to 1/4 of the previous value. (#62081)
Plasmamen belt tank volume is 24, the extended engineering one is 6 and the emergency internals are 3.
The issue balance wise is that all of those have the same pocket size and can be printed at the same Research tier, this results on smart atmos/engineers printing a plasmamen belt tank and filling it with O2 so their internals can last for almost 2 hours instead of the 24 minutes of the extended O2.

Now they have the same volume but plasmamen lungs were rebalanced to consume plasma at a lower rate. To be clear, it will have no effect on how long the internal last for a plasmamen.

Removes a no skill trick that gives you internals that will last for all shift, you can still make those but it will take a tiny bit of effort now.

Also a small step to make internals balanced.
2021-11-02 02:06:33 -07:00
Horatio22
d982c13b3f Adds garment bags to reduce locker clutter (#62329)
About The Pull Request

Adds garment bags to reduce the giant stack of items in the captain's (and other command) lockers. They function the same way that chembags do and only allow up to 15 non-bulky clothing items to be added to them. They can't be worn on the belt slot or crafted to prevent them from being significantly better than duffel bags. The shoes in the CMO's locker have also been switched for blue ones to reflect the changes made in #62263
Why It's Good For The Game

The captain's locker currently has almost 30 items in it roundstart, and 15 of these are clothing items. Adding a bag for these items reduces the item list when you first open a locker without removing any clothing or requiring a second locker/ dresser.

Here's what the lockers look like with the garment bag:
2021-11-02 16:53:40 +13:00
Coconutwarrior97
bdf1e89871 Fixes issue with catwalk floors being added to each other ad infinitum. (#62236)
## About The Pull Request

You could place catwalk_floors on each other ad infinitum because they were a plating subtype. This changes them to a floor, and sets their intact = false so that wires wont be hidden by undertile/proc/hide. Fixes #62105 .

Also fixes a smaller issue where "remove cover first!" wasn't being outputted to the user when they tried crowbarring a catwalk floor.

Thanks to arm for his help with this!

## Why It's Good For The Game

Fixes  #62105
2021-11-01 18:10:59 -04:00
Mothblocks
0f3c4e51f7 Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed (#62265)
Implements the Modernizing radiation design document ( https://hackmd.io/@tgstation/rJNIyeBHt ) and replaces the current radiation sources with the new system, as well as replacing/removing a bunch of old consumers of radiation that either had no reason to exist, or could be replaced by something else.

Diverges from the doc in that items radiation don't go up like explained. I was going to, but items get irradiated so easily that it just feels pretty lame. Items still get irradiated, but it's mostly just so that radiation sources look cooler (wow, lots of stuff around going green), and for things like the geiger counter.

Instead of the complicated radiation_wave system, radiation now just checks everything between the radiation source and the potential target, losing power along the way based on the radiation insulation of whats in between. If this reaches too low a point (specified by radiation_pulse consumers), then the radiation will not pass. Otherwise, will roll a chance to irradiate. Uranium structures allow a delay before irradiating, so stay away!
2021-11-01 04:20:39 -03:00
Seris02
3e4473887e the PDA will no longer bother you with a 'you can't do this right now' message when closed while resting (#62438)
When you close it while you're laying down, it will no longer give you the message "You can't do that right now!"

There really isn't much more to say, all it does is make it so the message doesn't show up if all you're doing is closing the interface.
2021-10-31 18:17:27 +00:00
Seris02
4bfde8c33b fixes a runtime with dropping advanced cards from wallets (#62440)
fixes a runtime when transferring advanced ids to/from wallets
Fixes #62036
2021-10-31 18:14:53 +00:00
Timberpoes
025018014d Tackles various problems with keyed_list config entries, fixing broken roundstart races and more! (#62359)
While helping RaveRadbury debug some issues with enabling Halloween species early via the brute force method of enabling them in the config rather than the gentleman's solution of testmerging a PR that changes the Halloween date, we discovered something dreadful.

Cloth golems cannot be enabled! Infact, any species with a space in the ID cannot be enabled.

It uses the splitter despite VALUE_MODE_FLAG being set. So a key entry like ROUNDSTART_RACES cloth golem would get parsed as cloth = golem, then entered into the config as cloth = TRUE
NEW AND IMPROVED PART HERE

I've re-written how keyed_list config entries are parsed, splitting it into a number of procs to do some discrete block of logic.

Based on feedback from MSO, he expected that VALUE_MODE_FLAG keyed_list entries could have elements overridden. However, this functionality was not present in the code.

I have implemented it. We now support 3 methods of setting VALUE_MODE_FLAGS.

Implicitly enable the config entry: CONFIG_ENTRY config_key_goes_here
Explicitly enable the config entry: CONFIG_ENTRY config_key_goes_here 1
Explicitly disable the config entry: CONFIG_ENTRY config_key_goes_here 0

There have been functionality changes too. Previously, everything before the first splitter was the key and everything after was the value. However, in ambiguous config entries (Such as ROUNDSTART_RACES cloth golem 0) it would be unclear if the intent was (cloth, golem 0) or (cloth golem, 0) or indeed if the intent was (cloth golem 0, 1).

As a result, there is now the following paradigm in place: Everything after the LAST splitter is the value, everything before is the key and a log_config warning is now given explaining the problem and showing how it was resolved.

[2021-10-27 19:48:12.840] WARNING: Multiple splitter characters (" ") found. Using "cloth golem" as config key and "1" as config value.

This warning will trigger if multiple splitters are present for any keyed_list config entry, and will trigger on implicit VALUE_MODE_FLAGS entries that have splitters. The example above is it triggering on ROUNDSTART_RACES cloth golem - It has detected that there is potential ambiguity between (cloth, golem) or (cloth golem, 1), has picked a sensible option for the data type and has warned about it.

The intent is that no config entry should be ambiguous. It should be clear what is key and what is value when dealing with keyed_list config entries.

There's probably more work to do on other config entries to bring them up to this standard, but this is the thing I'm hitting in this PR.

Similarly, I have improved the validation aspect of keyed_list config entries with additional logging in general.
[2021-10-27 19:47:53.135] ERROR: Invalid KEY_MODE_TYPE typepath. Is not a valid typepath: /mob/living/carbon/monkey

I have added a unit test to make sure species IDs do not contain splitters from the two keyed_list subtypes relating to species.

I have added sanity checking to the race config subtypes since we have a big dick global list of all races sorted by ID, so a race not existing will fail validation and output a meaningful config log entry.

I have removed /datum/config_entry/keyed_list/probability from the code as it is unused with the removal of all game modes except Dynamic.

The config change necessitated the renaming of all golem species IDs. Doing so and renaming the clothgolem.ts file to match has fixed the broken cloth golem page too.
2021-10-29 16:38:00 -03:00
John Willard
88d7dbfc10 removes double spaces before symbols (#62397)
This can apparently cause some bugs on occasions, so I thought I might as well try to kill them all.
2021-10-28 19:25:50 -03:00
esainane
d521116acf Refactor /turf/var/intact (#62331)
Turfs have a variable, intact, which conflates three meanings:

    Determining whether there's something that can be pried out, such as directly with a crowbar or indirectly with a tile stack and a crowbar off-hand.
    Determining whether underfloor pieces are visible.
    Determining whether underfloor pieces can be interacted with - by players with tools, through interaction with effects like chemical acid, or foam.

When plating is hit with a stack of tiles, /turf/open/floor/attackby checks whether the turf is intact, and if so, ends the attack chain regardless of whether or not the attempt to hotswap a turf (with a crowbar) is successful or not. However, turfs which want the underfloor to be visible - such as catwalks and glass - set the intact variable to FALSE, and so can be repeatedly placed over one another, as if they were the first tile to be placed over the plating.

This refactors /turf/var/intact into two distinct variables:

    /turf/var/overfloor_placed, for whether or not there is something over plating.
    /turf/var/underfloor_visible, for whether or not the various underfloor pieces should be invisible, visible, or both visible and interactable.

All references to /turf/var/intact have been replaced with an equivalent overfloor_placed or underfloor_visible reference, depending on which check is appropriate. underfloor_accessibility can take one of UNDERFLOOR_HIDDEN, UNDERFLOOR_VISIBLE, or UNDERFLOOR_INTERACTABLE. This prevents cases such as acid foam or tools phasing through glass floors to affect the underfloor pieces underneath, and covers all kinds of unusual, not-wiring-visiblity usage such as Holodeck completeness, Revenant interaction, or station integrity checking.
2021-10-28 19:14:40 -03:00
John Willard
a5e0ec5f13 Bank machine's process will immediately stop processing if its unpowered/broken. (#62299)
It already returns if the bank machine has no money, I don't see why it would continue if its broken/unpowered.
Also, to be honest, I only made this to make process early return if it isn't siphoning.
2021-10-28 18:55:59 -03:00
Kylerace
bfe0fcc601 breaks my > 1 year long streak of no webedits (#62405)
Removes commented out code left in by accident.
2021-10-28 14:31:22 +01:00
Jeremiah
d618606af0 Refactored spawner window, removed HTML artifact (#62314)
Fixes #61876
I originally went in to edit out the HTML from flavor text. Pulling up the menu, it was just poorly formatted, so I got carried away redoing it.
Issues previously:
HTML artifacts in spawner text were visible, showing opening and closing tags
Spawner menu text was huge, unlabeled, looked very jumbled
Why it's good for the game: 
You can now easily read the spawners menu
Having many spawners available should be easy to scroll through
No more HTML randomly
More error cases handled
2021-10-28 10:37:50 +01:00
Seris02
37562f9372 locker electronics no longer put the electronics inside the locker (#62358)
title
because somehow I never actually tested y'know, opening the locker with it on, apparently I just thought I did
2021-10-28 10:34:35 +01:00
ArcaneMusic
92ea8fe31f double bedsheets have the correct worn sprites. (#62372)
Double Bedsheets have a new icon_state, but in doing so, break their worn_icon_states, as their worn_icon_state was set by the icon_state.

This manually sets their worn icons in order to avoid funny broken sprites.
2021-10-28 10:27:48 +01:00
oranges
2afab49681 Revert "Basic ID cards with job trims can now hold higher level accesses to their own departments. (#62275)" (#62368)
This reverts commit 4d15fbc4f0.

"Basic ID cards with job trims can now hold higher level accesses to their own departments. (#62275)"
2021-10-27 22:10:53 +01:00
Seris02
5cbfef27d1 no more double/triple/etc prize for you (#62347) 2021-10-27 03:19:22 -07:00
Seris02
85795f4764 personal lockers will now allow you to actually un/lock them without swiping ID, ie, normal locker locking (#62341) 2021-10-27 03:14:13 -07:00
Timberpoes
4d15fbc4f0 Basic ID cards with job trims can now hold higher level accesses to their own departments. (#62275) 2021-10-26 13:25:52 -07:00
esainane
e9a9e003a6 Fix RWall smoothing (#62327)
* Fix rwall smoothing

This was broken in daec5002fc. R-walls would update with ~UPDATE_SMOOTHING
after smoothing was complete, causing their smoothing_flags to become NONE.

This effectively meant that all R-walls would smooth exactly once, and any
further updates, such as building a new R-wall next to an existing one,
would fail to update the existing wall.

By keeping distinct the case where the R-wall is no longer intact, and
so should no longer cause smoothing, and the case where no UPDATE_SMOOTHING
is provided so the update should early return, we can avoid overwriting
smoothing_flags unnecessarily.

* RWall: Smooth Neighbours when being destroyed too
2021-10-26 12:52:15 -07:00
NamelessFairy
1238ce2373 Adds the ability to soft filter words, also fixes some word filter bugs (#62158) 2021-10-26 12:45:36 -07:00
esainane
5c17617e5d Firelock opacity consistency (#62328)
Directional firelocks tried to block vision, unlike normal firelocks.
However, being able to stand on the same turf as an opaque object can
allow some really weird behavior - you can see through a closed directional
firelock if and only if you're on the same tile.

This changes it so that directional firelocks do not block vision.

Fixes #62106.
2021-10-25 22:24:28 -04:00
esainane
a72940e2e8 Fix machines breaking on Initialize (#62313) 2021-10-25 18:05:25 -07:00
malton33
37fb6bc6dd Removes "Singularity and Tesla for Dummies" manual book (#62308)
This PR removes the manual "Singularity and Tesla for Dummies" from the game. It also removes it from the two places it spawns: Engineering in DeltaStation and an Ice Ruin.
Also this is my first PR and I have little experience with DM so please be nice
Why It's Good For The Game

The Singularity and Tesla engines were removed from the game a while ago, so having these books in game is unnessessary
Also, opening the book shows a huge-ass "Tesla and singularity engines have been removed!" message front and center.
2021-10-26 00:57:47 +01:00
ArcaneMusic
8173f07b03 Adds new Insect Habitat Icebox Ruin. (#62181)
* Adds new Insect Habitat Icebox Ruin.

* Converts path to area/ruin/ instead of unpowered
2021-10-25 16:21:43 -07:00
John Willard
4d9b55a12c Moves vending prices from /atom to /obj/item (#62243) 2021-10-25 11:12:54 -07:00
MMMiracles
65d676efc5 Adds Hydroponic Door Sprites (#62249)
Adds sprites for the hydroponic doors
2021-10-25 12:37:46 -04:00
Zytolg
0a9404e69b Beds and Benches: The Aesthetic Revolution [re-PR'd With EOB's Blessing] (#62169)
About The Pull Request

Ever since I saw @EOBGames PR this, I've wanted it. I've needed it. I've been delaying some mapwork FOR this. This is an identical PR to #61689, just updated so that it's not conflicting with anything. I've done everything @Krysonism asked for from last time too. That's right spacemen, double beds are back, and more cursed then ever. Cursed to succeed that is!
Why It's Good For The Game

We. Don't. Have. Benches.
Benches are a hallmark of any public space! You can sit on them, sleep on them, stand on them, even sleep on them! Our stations have a ton of chairs, but chairs don't really communicate public that well. Benches do. As for the beds? Well Inept wants them, and you know what? I respect that.


cl
expansion: Sofas now include the Bench Type. These are buildable with 2 metal plates from the crafting menu.
expansion: Beds can now be rotated (flipped), and include the Double Bed Type. Miners can also make Double Pod Beds to really feel like an Alaskan King.
expansion: Bedsheets to match! Try to share those big blankets with a lizard if you see that they're shivering!
code: Stuff that lets you interact with the benches and beds in-game, so that you too can enjoy being a king.
sprites: Ports the Benches and Double Bed sprites from Skyrat
sprites: Flipped Beds
2021-10-25 21:55:13 +13:00
tralezab
51705fcd9d Adds The Secret Brainwashing Technique-Chip (#62295)
Adds a skillchip found in maint that lets you put brains in washing machines, and scrub em back into good health. Brains now get maximum damage if put in a washing machine OTHERWISE.

VERY heavily inspired by this video:
https://www.youtube.com/watch?v=88po7PY14E8

> I believe having a brain successfully washed should give its brainmob an achievement for exposure of this feature.

can be done in a separate pr
2021-10-24 19:47:20 +01:00
Sealed101
b0ecc913f8 Fixes microbomb implants blowing you up anyway on popup close & doubleclicking the action button (#62301)
Title, this probably indeed was a problem for the macrobomb as well. didn't test.
doubleclicking the action button pointed out by @Ghommie
2021-10-24 19:45:03 +01:00
John Willard
84d3a1f077 bounty consoles will now say more things (#62300)
I like it when machines say their actions instead of telling it directly to the user, vending machines are one of my favorite machines of all time for this reason, so I wanted to add a few more machines to it. I don't want this to be overdone, though, so maybe in the future it can be swapped with balloon alerts?
2021-10-24 19:43:53 +01:00
Watermelon914
d6fe5278a6 Makes wizard a high impact ruleset (#62258)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-10-24 10:31:49 -07:00
Coconutwarrior97
08fa0fb1f7 Fixes being able to shock people with wielded mjollnir as a pacifist. (#62238)
Fixes pacifists wielding mjollnir being able to shock people by adding a check in mjollnir's attack. Fixes #62232 .
2021-10-24 10:06:33 +01:00
GuillaumePrata
a8d2536cf6 Fixes space heaters working forever without draining charge. (#62262)
Fixes hydro airlock access issues introduced in PR #62089 .
2021-10-23 17:54:56 -04:00
esainane
caf30ca5ee Project Goon objective: Blacklist RD and Scientist (#62252)
* Project Goon objective: Blacklist RD and Scientist

* Project Goon objective: Blacklist rest of Science
2021-10-23 14:42:42 -07:00
John Willard
2444832efb Roulette wheels now say instead of magically appear with text (#62279)
Small change, makes roulette wheels say their actions, rather than magically have text appear.
This also means it will now show up on runechat.
It's a visible message to everyone, but talks like it's directed at one person, so this should be a say instead of random text that appears on everyone's screen. Makes more sense & it can use runechat now, which is nice.
2021-10-23 20:56:52 +01:00
Mooshimi
54fa35619b cattleprod weight class (#62254) 2021-10-23 11:37:47 -04:00
Seris02
fc36aea489 runtime fix for borgs cryoing with upgrade modules + no more mmi laying around after they cryo, and various other runtime fixes (#62091)
human huds will no longer runtime and die when prefs aren't initalised
SSEconomy will no longer have to deal with pathed jobs inside accounts
Some of the negative/neutral quirks that use the mind have been relegated to last_mind instead for runtime purposes
Mafia saymode will no longer runtime when someone uses it with no current mafia game
Autolathe secondary_attack will no longer runtime/work only because of runtimes
MULTIPLE CHECKS FOR QDELETED STACKS BEFORE ADDING FINGERPRINTS
More player_list client checks
A lazyinitlist for proximity monitors, as they used lazyremove which nulls the list when it hits zero things in it
A check for cigarettes in case temperature exposure causes a reaction that removes all reagents
Catwalks no longer runtime every time someone walks on them
/obj/machinery/atmospherics/components/binary/crystallizer will no longer runtime on secondary_attack if someone can't interact
cyborg models will no longer assume the thing they're inside is a cyborg and runtime when it isn't (cryopods)
When a simplemob falls into nullspace, it will no longer runtime (goliaths falling into chasms and etc)
runtime fix in techweb.dm when using a card without a sanity check
runtime fix with folders when they have nothing in them
runtime fix with glowing eyes when the LAZYADD doesn't get called in regenerate_light_effets() and so doesn't initalise the list
2021-10-22 10:31:07 +01:00
Ghom
f4f1221cf5 Small implant code cleanup. (#62226)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-10-21 11:23:09 -07:00
Seris02
bd8555832d makes it so lockers/crates can have access electronics removed/inserted (#62022)
They can only have electronics inserted if they

are welded shut (if they can be welded)
don't have electronics already and aren't secure
They can only have electronics removed if they

are welded shut (if they can be welded)
are unlocked
are secure (even if they don't have electronics, then it'll create them)
2021-10-21 11:38:31 +01:00
Ghom
bc9d83be44 Fixing issues with contents of some coded or mapped closets exceeding their storage capacity (#62221) 2021-10-20 23:06:20 -07:00
tralezab
d12c784e70 fixes non-widescreen titles not getting auto-centered on bootup (#62160) 2021-10-20 22:35:18 -07:00
Ghom
15c316bdb2 Moves Pun Pun away from the kitchen on Delta (and makes monkeys actually look like monkeys in the map editor) (#62108) 2021-10-20 13:48:38 -07:00
Sealed101
9d19b9b7de Makes the American sausage a sausage subtype & Advanced roasting stick fixes (#62193)
Makes the American sausage a proper subtype of sausage, which makes it actually edible, apparently. It also makes it stick on the advanced roasting stick!
The advanced roasting stick will no longer try to grill itself over a bonfire with a griddle installed, allowing you to use the actual bonfire for your roasting needs.

There was actually a check that was supposed to limit the amount of times you could roast a sausage to a measly 1. It wasn't actually working. This PR removes that in favor of mad cooks creating these:
2021-10-20 13:08:30 -04:00
Ghom
c7d546f053 Removes an unused atom/movable variable last_move_time (#62198)
It's not used anywhere and only takes memory space.
2021-10-20 13:04:55 -04:00
Zytolg
49a7dcacfb Gives the Lavaland Syndie base its own ruin typepath (#62075)
#62003 made it so that /unpowered areas actually do what they say they do. Unfortunately, previous mappers used /unpowered on areas that required powered. /unpowered currently makes it impossible to power a ruin.
Fixes: #62074
There's a lot of these that are probably broken, so I'm gonna go through and check these fixing them as I go.
2021-10-20 17:33:00 +01:00
Coconutwarrior97
778c1b9c57 Fixes an issue where people with the doctor phobia were afraid of hydroponics doors. (#62089)
## About The Pull Request

 Adds a hydroponics airlock type (same icon as medical airlocks), and edits Hydroponics on several maps to replace the old medical doors with the new ones. Fixes #61000

Also edited sheet_types.dm so a hydroponics door assembly can be built, in case anyone decides to give hydroponics entry way doors their own unique icon at some point.

## Why It's Good For The Game

Fixes #61000
2021-10-20 10:31:28 -04:00
MrMelbert
49231e7b0d Removes 2 unused vars from replay days (#62201)
Removes two vars used in replays / demos that don't belong anymore
2021-10-20 12:30:30 +01:00
Mothblocks
363c3de266 Emagging the communications console now lets you purchase dangerous shuttles. Moves some to this system (including Disco Inferno and the Oh, Hi Daniel) (#62056)
Emagging the shuttle will now let you buy dangerous shuttles (anything marked emag_only).

This includes:

Disco Inferno (which returns, at 10,000 credits)
Oh, Hi Daniel (which returns, at 10,000 credits)
Hyperfractal Gigashuttle (which has been moved over, and now costs 10,000 credits)
Grand Corporate Monastery (which has been moved over, and now costs 18,000 credits)
Purchasing a shuttle while it's emagged will censor your name.

Adding the capability for emag shuttles allows for some fun design space. Previously, shuttles like the Disco Inferno and Oh, Hi Daniel were removed for being grief messes, but now that an antagonist is (in most cases) required to purchase, this now becomes an act of in-game chaos, rather than just grief.

This can also help administrative efforts. Buying grief shuttles presently just makes you valid to the crew, which is tough considering the people who buy this are the ones in command. Now, buying grief shuttles not only requires an emag (which a basic griefer cannot get), but can now be deemed as a traitorous act.
2021-10-19 00:44:36 +01:00
Jordan Brown
424ad42ffa External airlock access fixes [MDB IGNORE] (#62191)
Missed from #62161

Fixes lavaland airlock accesses
Fixes needing ACCESS_EXTERNAL_AIRLOCK for ruin airlocks
2021-10-18 21:24:46 +01:00
Jordan Brown
e9a7c9a9c6 Airlock improvements, mainly external [MDB IGNORE] (#62161)
You're in space, unauthorized personnel should not be allowed to instantly jump ship, especially if doing so could vent parts of the station. At the same time, we allow self reentry in "man-overboard" scenarios. The aim is to reduce the potential for accidents without reducing crew safety as well as increase the significance of these exterior airlocks. Also makes antags think a bit as they can't simply yeet themselves into space super easily as a braindead getaway tactic.

External airlocks now have a base req_access of ACCESS_EXTERNAL_AIRLOCKS. This is a non-functional change.
Removed airlock's safety_mode var.
Added external airlock's space_dir var. Indicates the direction anyone can enter from, but only those with access can exit to (unless the other side is considered "safe" (breathable, dense, or shuttle docked)). Cyclelinked airlocks share this value.
Created proc/is_safe_turf from proc/find_safe_turf.
Cycle-link operations now happen in proc/open rather than proc/bumpopen which was causing several triggers to be missed (AI activation, prying, etc...).
proc/try_to_activate_door now takes an argument allowing for a bypass of access requirements.
Downstreams, to port this to your maps, check every public access external airlock has the safety_mode var override removed and the outermost airlock should have space_dir set to the hazardous direction number.
2021-10-18 17:36:38 +01:00