Commit Graph

13349 Commits

Author SHA1 Message Date
Timberpoes 1152f4f15a Exempts non-deadminned admins from all the chat filters so they can break the server rules and get banned if they want to. (#62944)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-19 23:18:11 -08:00
Jeremiah 99541855b5 Hotfix: Vendor, Crafting, Mulebots (#62863) 2021-11-19 13:47:39 -08:00
Bond 1357bf74b9 prevents mindswaping into ghost poly (#62554)
About The Pull Request

Closes #62465

Also makes ghost poly technically designated as a boss in the code as their sentience type, as far as I can tell this doesn't actually change anything other than the ability to make it sentient, but it also makes sense for a creature effectively incapable of death to be designated as a boss in the code.
Why It's Good For The Game

As funny as it is, mindswapping (blood into a rainbow slime extract gives you a mindswap potion) into ghost poly, or otherwise making ghost poly sentient, is an exploit that should be patched. Ghost poly is as fast as a ghost, can move through walls, has godmode, and if you give it a fugu gland it can beat people up. It can also pick up things, such as the nuke disk, which would make nukeops rounds pretty unfair and unfun.
Changelog

cl
fix: Aspiring xenobiologists and ambitious wizards can no longer mindswap into ghost poly or otherwise make them sentient in an attempt to gain godmode + ghost speed + the ability to go through walls.
/cl
2021-11-19 16:05:03 +13:00
necromanceranne 666fcdbd9c Fixes an oversight with tail pulling and the Bad Touch trait (#62784) 2021-11-18 03:05:59 -08:00
ATH1909 5a87d96a41 the ultimate hulk nerf (#62891) 2021-11-18 02:54:55 -08:00
Ghom 911005e03c Makes the "Ian's Adventure" station trait more interesting by making the dog deadchat controllable plus extra lives. (#62617)
About The Pull Request

Makes the "Ian Adventure" station trait more interesting by giving him deadchat control (democracy mode, 3 seconds cooldown on inputs) and a couple extra lives* to survive early round tiding.

*Basically, a new component that respawns the critter when he dies. The component itself is simple enough, but it sends a signal each respawn to allow other datums to expand this behavior how they want. I've contemplated adding a signal that can stop death, dusting and gibbing instead of respawning the mob at first but because death(), dust() and gib() were made with the assertion that the mob is always going to die I've quickly realized it'd require a refactor that's way too big and out of scope.

The deadchat control of corgis only include commands to change and drop hats, "speak" (random lines from the speak list of the mob) and spin (other than cardinal movement) for now. I'd have loved to add more complex commands (like, argumented) that can potentially be relayed to the AI controller, but I guess that'll have to wait until the thing gets refactored a little.
Why It's Good For The Game

"Ian's Adventure" is a really bland station trait at the moment. All it does is move Ian somewhere else at the start of the round. Even by the station traits standard of being small things this is insignificant, and also pretty bad considering Ian is not actually going on an adventure since he lacks the initiative to do anything being an npc dog.
This PR aims to breath fresh air into this station trait and push it toward a slighty more engaging direction, though it relies on observers to work, while still being a small """"cute"""" station trait.
Changelog

cl
expansion: The "Ian's Adventure" station trait now makes Ian deadchat controllable and gives him a couple extra lives (to survive early round tiding)
/cl
2021-11-18 13:13:57 +13:00
Archemagus 24530bfc00 Fixing floorbot (#62878)
Not tested, but YOLOmerge requested
2021-11-17 14:06:50 -08:00
John Willard e688317857 Splits antag huds into their own .dmi file and de-hardcodes antag huds (#62767) 2021-11-17 12:09:05 -08:00
Ghilker ba8dbfb591 nitryl and stimulum merge in nitrium (#62061)
This PR is the first of a few were i'll be merging similar working gases into one.
This time is Nitryl and Stimulum. They'll be merged into Nitrium , a brown gas with both features of the two gases
The main scope is to add dept to atmos by removing bloated content and/or repeated content that has never seen the lights of the day (how many times have you seen both gases made and used at the same time?)
The PR so far:
-removed nitryl
-removed stimulum
-merged them into Nitrium (Nitrium is now made with trit, nitrogen and bz from a minimum temperature of 1500 K)
-made Nitrium have both gases features such as fast movements and sleep and stun immunity but increased damage taken
-Nitrium can make crystals that spread the chemicals with a cloud (is still far more efficient to just breathe the gas)

Less rare gases, going towards a better atmos gameplay loop
2021-11-17 01:56:19 -08:00
Ghom 326e8bfafc Hydroponics Tray USB Port (plus a tiny refactor needed to fit it in) (#62652)
Adds a USB port to constructable hydroponic trays. I had to refactor some hydro tray code, which is kinda old, to fit the USB circuit and the new signals in.
2021-11-15 17:44:22 +00:00
Mickyan 17e4b60a14 Wings negate fall damage from short falls (remake) (#62800)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-14 21:11:39 -08:00
Jeremiah 8946d26155 Simplebot TGUI conversion (#62748)
About The Pull Request

Creates a modular TGUI for simple bots.

Current issues with simplebots:

    They are all HTML

Why It's Good For The Game

    Better looking UI
    Many new tooltips for information
    You can now lock/unlock the controls via UI
    You can now lock/unlock the maintenance hatch via UI
    A little bit easier to catch runaway bots

Changelog

cl
add: All of your favorite simple bot friends aboard the station now have a much better interface in TGUI
qol: You can now lock
/cl
2021-11-15 11:44:26 +13:00
Ghom dac07b5264 Fixes Multi lavaland tumor combat (and possible sources of harddels) (#62540)
This will fix #62065 by adding a new trait that prevents mobs from activating another elite tumor structure until he's won or lost the previous challenge, along with possible sources of harddels by making sure the hard-refs are properly cleared if the mobs get qdeleted.
2021-11-14 10:42:39 +00:00
Ghom 026857414f The detomatix cart now sends forged messages that make PDAs explode if one tries to reply to them instead of detonating them right off the bat. (#62494) 2021-11-14 02:22:30 -08:00
Thunder12345 0ab5f14870 Allows any character to use the body type setting regardless of gender (#62733)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
Co-authored-by: Jared-Fogle <35135081+Mothblocks@users.noreply.github.com>
2021-11-12 23:16:29 -08:00
Cimika/Lessie/KathyRyals ef2f70d344 You can now pull tails, it makes the person happy! (#62763)
About The Pull Request

You can now pull on tails and it makes the person happy! It was supposed to just be felinid but it changed when mothblocks requested I check for tails!
Why It's Good For The Game

Cute interaction with our cat friends. And Lizards. And anything with a tail.
Changelog

cl
add: You can now pull on a felinid's tail to make them happy!
/cl
2021-11-12 15:17:23 +13:00
Cimika/Lessie/KathyRyals bfa1542009 Felinids don't like getting sprayed with water. (#59506)
This PR is an ode to @Ryll-Ryll, who inspired me to try and find fun, silly things to PR to try and make people smile.
About The Pull Request

Felinids now get a SMALL and SHORT mood debuff when getting sprayed with water. The intent of this PR is not to provide content to grief felinid (flashback to the "Felinids hate water" pr), but rather to provide a funny interaction.

Bonus point (Suggested by Ninja) : Getting sprayed with water interrupts do_after. Felinid climbing on your table ? Pssshttt. Straight in the face.

PR with permission from @ninjanomnom
Why It's Good For The Game

Light-hearted fun and a bit of flavour to felinids.
Changelog

cl
add: Felinids don't like getting sprayed with water.
code: Adds a new status effect, incapacitated, which causes your do_afters to stop.
/cl
2021-11-12 11:04:00 +13:00
Mothblocks f3af9d6d9e Fix random names breaking preferences (#62668)
The randomization (specifically from the random names secret) overrode your preferences, this fixes that.
2021-11-10 07:43:15 +00:00
Ghom 7f9454f15b Protects blob structures against bolt of animation (#62690) 2021-11-09 23:04:23 -05:00
Ghom 7d3b98705f Chimps no longer get grumpy when you hug them or throw things with no throw force at them. (#62685)
* Chimps no longer get pissed when you hug them.

* Pun Pun no longer hates hat throwing.
2021-11-09 22:54:05 -05:00
Justice 4348ebf1f8 Cyborgs can now shake up compromised carbons (#62468)
The Hug Module from Medical and Peacekeeper Cyborgs now removes negative stats (the same as a human) from carbons when used on Mode 1. Put in a simple way, this allows the three referred Cyborg types to wake up and remove stuns from carbons with the use of their Hug Module.
2021-11-09 21:35:53 -03:00
Pinta a6c3551511 Fixes Fall Chance Embed Value on Mending Globules (#62557) 2021-11-09 19:22:49 -05:00
LemonInTheDark 71c480574a Locker Shoving Re-Reloaded (#62618)
* Locker Shoving Re-Reloaded

The signals here were weird, converted them to connect loc. I did my best to make sure behavior matched what
existed pre arcane pr
Unshat shove code considerably, believe it or not it used to be worse.
2021-11-09 13:13:59 -08:00
Timberpoes c157d40e17 Overhauls job eligibility checking and improves job debug logging. (#62586) 2021-11-09 12:38:54 -08:00
John Willard ffc8e3bc17 Adds logging for all Silicon rather than just Laws (#62500)
I find stuffing everything in game.log is a real problem when you need to actually find useful information about what happened to a specific Silicon. It's hard to tell what happened to Silicon throughout a round, even when crossreferencing attack/game logs, so having a Silicon log for all the information related to them would be really useful.
For example, a Cyborg can spawn unlinked on Robocop, go Janitor and crowbar someone to death with a Robodoctor AI. When looking through logs, an Admin can easily assume it was a rogue Engineering cyborg who disobeyed their laws to kill someone.
This also isn't adding a whole new log file, more than it is just renaming the law log file to silicon and adding more useful things into it, so it isn't logging bloat (if that's even a concern)
2021-11-09 17:41:45 +00:00
MrMelbert 948d548ed4 Adminwho and the status panel now shows when fellow admins are readied up in pre-game lobby (#62670) 2021-11-09 02:24:51 -08:00
Ryll Ryll dc6ccd3ecc Adds yawn propagation (#62639) 2021-11-08 01:36:27 -08:00
John Willard b39ccd408e Beepsky refactor and Bot code improvement (#62510) 2021-11-08 01:35:54 -08:00
Mothblocks ec95e7cf94 Add healing aura component (#62526) 2021-11-08 01:20:12 -08:00
Ghom b79dd74fd0 Replaces a portion of C-style for loops with the more commonplace for loops, which are faster. (#62624)
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2021-11-07 16:42:41 -08:00
Ryll Ryll 5b119f3ab7 Fixes sleeping carp wave kick dealing insane damage + wounds, fixes neckgrab throws not being harder (#62498) 2021-11-06 21:52:51 -07:00
Seris02 2c43f67d5b custom say emotes, or in other words, radio emotes (#62130)
The format is:
"[radio keys/language keys/etc][the say emote]*[what should be said]"
These are all valid uses:
";screams!*"
";,o taps his mic before saying*testing, testing, one two, one two."
";taps his mic before saying*testing, testing, one two, one two."
(with forked tongue) ";taps his mic before saying*testing, testing, one two, one two."

it also works when not on the radio as well of course, don't worry.

Custom say emotes, or in other words, radio emotes. The format is for example "screams and shoutsdamnit!" with any relevant radio keys, language keys and all that used as normal, for example, ";,o screams and shoutsdamnit!" or you can use just the emote, ie, ";screams!*"
2021-11-04 18:59:05 -07:00
Ghom c3d19e8d83 Deletes unused spookoween file and the related sound folder. Saves what can be saved. (#62518) 2021-11-04 03:32:34 -07:00
SgtHunk eff448fc65 How did this emote go this long being like this (#62522) 2021-11-04 03:27:15 -07:00
John Willard 6c0aba5da4 removes double spaces AFTER symbols (#62515)
* removes double spaces AFTER symbols

* found more
2021-11-03 21:09:35 -04:00
jjpark-kb 15b54c01e7 uses cooldown system for vampire drain (#62460) 2021-11-02 16:00:15 -07:00
ArcaneMusic 08f0ca8a71 Locker based combat, evolved. (#60000)
* Locker bullying, reloaded.

* Start work on refactoring the whole gosh damn thing

* I'm stuck.

* Checkpoint

* Restart work: Lets get this scrap to compile

* Workin on it, having to swtich back to walls project

* Revert "Restart work: Lets get this scrap to compile"

This reverts commit baa1814fd1ed2c86f2009a54a90d9306264762fc.

* Compiles (Check), Signals are backwards (Fix)

* 90% complete yet again I have grown powerful

* I HAVE GOT IT WORKING PERFECTLY

* Removes a small part of commented code

* Perfection*
2021-11-02 15:58:40 -07:00
John Willard 8c2722e372 Shapeshift code improvement (+vent gib fix) (#62444)
* fuck

* Update shapeshift.dm

* fuck it, just check if the old body is in the vents before swapping.
2021-11-02 14:26:34 -07:00
Fikou 29c22f68c7 brain washing now cures up to lobotomy tier traumas (#62426)
About The Pull Request

brain washing cures up to lobotomy tier traumas, instead of surgery
Why It's Good For The Game

if you wash a brain you already surgeried it so its kinda pointless, now the funny very rare item can also be useful and it encourages doing brain washing, leading to more rp opportunities
Changelog

cl
balance: brain washing now cures up to lobotomy tier traumas
/cl
2021-11-02 15:07:45 +13:00
Len Kagamine 0cd057f886 Allows pAI's to print photographs for 10 ram (#62462)
## About The Pull Request
Allows PAI to access a newly inbuilt bluespace printer at the cost of some processing power being diverted to mine for cryptocurrency.

## Why It's Good For The Game
Pai's are perfect travel buddies, but its a shame they cant print out their memories to share with their master. Well now they can! Simply take a picture, select the "Printer" button, and (optionally select an image if multiple are available) Presto! Instant picture. No toner required, its ported directly from an automatic nanotransen printer! Of course, some ram is actually being used for crypto mining for pure NT profit, but who cares? Pictures!
2021-11-01 16:49:56 -04:00
phasenoisepon 5d008107c5 stops aheal from deleting all restraints in target's inventory (#62476)
fixes a corner case with an often used admin command
2021-11-01 12:28:26 -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
RaveRadbury ca0eb2b3f0 changes vampire and dullahan to be config enableable (#62357)
Dullahan and Vampire had some trace of old shitcode that the other Halloween races didn't, preventing them from being added to the config for cases like early Halloween
2021-10-31 19:33:08 +00:00
Timberpoes bb86c015eb Nerfs felipires and dullanids. (#62432)
Vampires and Dullahans have tail and ear mutant_parts defined but set to "None".

Because they're defined at all, the new prefs menu gives preference entries for them.

The /mob/living/carbon/human/dummy/consistent used to set these up has Cat ears and Cat tails defined in its DNA features.

Vampires and Dullahans inherit this dummy setting on the prefs menu, and thus can select cat ears and cat tails on the prefs menu.

Fixes /mob/living/carbon/human/dummy/consistent to not define cat ears and tails.
Fixes the Vampire and Dullahan species to define mutant bodyparts the same as humans, removing their ear and tail entries.
2021-10-29 22:53:07 -03:00
Krysonism 13142fcb1c no more easy slurry (#62330) 2021-10-29 17:24:55 -07: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
AnturK f03fd9dd8a Few minor runtime fixes (#62394) 2021-10-28 19:24:18 -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
MrMelbert 07601f90b2 Removes whitespace from two filenames (#62382)
Renames ice demon.dm -> ice_demon.dm
Renames ice whelp.dm -> ice_whelp.dm
2021-10-28 10:20:06 +01:00