Commit Graph

35759 Commits

Author SHA1 Message Date
Watermelon914
bb8bcd2473 Made admin circuits more abstract, they no longer end up in the contents of the shell. (#62630)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-11-08 14:55:19 -08:00
GoldenAlpharex
54c30da324 Fixes numeric prefs not working with TGUI dropdowns that might return a string instead of a number (#62653) 2021-11-08 14:54:22 -08:00
Iamgoofball
d336655c88 Fixes the issues with the ban video by moving the link to ban appeals to after the video. (#62675)
About The Pull Request

See title.
Fixes #62672
Why It's Good For The Game

Allows us to keep the excellent ban video while nullifying the issue raised in #62672
Changelog

cl
admin: The banning video is now shown before the ban appeals link, instead of after, to improve visibility of the ban appeals link.
/cl
2021-11-09 10:40:02 +13:00
esainane
b6f761468e [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)
About The Pull Request

Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.

This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.

Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.

Some implications of this setup were:

    You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
    You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.

Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:

endless-stack-of-intercoms

Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!

Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used

Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.

Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.

tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game

fml
Changelog

cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl
2021-11-09 10:02:34 +13:00
Fikou
3755f2ec71 refactors injecting mapping helpers, adds an element injector (#62622)
Refactors injector mapping helpers.
2021-11-08 19:36:01 +01:00
Ghom
97a41f4902 Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists from randomized recipes. (#62611)
* Blacklists some reagents that are about unobtainable short of RNG seeds and antagonists but are still synthetizable from randomized recipes.

* Update toxin_reagents.dm
2021-11-08 19:29:33 +01:00
Mothblocks
6b3103e612 Add the known alts panel, which prevents suspicious login logs for whitelisted ckeys (#62520)
* Known alts panel

* Add notice before opening panel

* DB_MINOR_VERSION

* Better ban panel default

* Revert dbconfig

* Add TTL

* Add qdels
2021-11-08 20:43:52 +11: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
tralezab
c8f343789b anonymous names fixes (#62497)
the "Stations?" theme now properly describes what its extra does

fixes runtimes with anonymous names! i'll point em out
2021-11-07 19:15:24 +00:00
AndrewL97
1ef73dbc37 Map load unit testing and directory whitelisting - Mojave Sun is a really cool downstream, like and subscribe for longer PR names. oranges was here and made this github PR name much longer, thereby proving once and for all that upstreams do add value to the downstream not just endless amounts of refactoring because we can't write any api's in a modular fashion the first time around so have to update them later to be modular. Anyway do you think a taco counts as a sandwich? (#62620)
About The Pull Request

This is a fix for map not load anymore because of security changes
Why It's Good For The Game

Maps are good as they encourage gameplay and differentiate ss13 from a classic MUD game
Changelog

cl
add: unit test for map load
add: directory param to map load + whitelist for data and _maps
add: advertising for mojave sun in tg commit logs
/cl
2021-11-07 21:30:49 +13: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
AxieTheAxolotl
73f4208f9f Fixes Centcom suit stuff (#62613)
For some reason, the new icon I made for the CC suit just disappeared off the face of the earth, why? I do not know. How? I also do not know, but I have fixed it.

Also, the helmet and gas mask's icons didn't work. Why? Again, do not know. But I've fixed it by brute-forcing their icon paths and states, prob not the most efficient way, but it works. :V
2021-11-07 03:12:29 +00:00
Timberpoes
479dcd295e Makes dash actions and Bluespace Prophecy trauma utilise teleport code instead of forced movement code. (#62471)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-06 20:03:51 -07:00
Ghom
7d8eb8b35c Fixes emissive appearances of vending machines being removed when the wire panel is opened/closed (#62592)
Replaces a cut_overlays() call with cut_overlay(panel_type) EDIT: moved the panel overlay to the update_overlays proc
2021-11-06 23:06:16 +00:00
GoldenAlpharex
5025ed3620 Makes maps be able to load correctly again (#62623)
This PR fixes a bunch of the code for load_map_config(), documenting it better and removing a deprecated (I hope) parameter that was also a security concern along the way, while also making another proc for just loading the default map config, which is supposed to always be functional.
2021-11-06 18:39:25 +00:00
Tony
2b1870e718 Fixes cold seiver absolutely murdering rad patients (#62572) 2021-11-05 20:46:09 -07:00
Y0SH1M4S73R
977b05787b tgui: Color matrix editor (#62413)
* adds the color matrix editor

* weakrefs and add_atom_color

* a little ui polish
2021-11-05 21:39:14 +02: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
TheFakeElon
3de38b11b8 [s] Security vulnerability patch (#62568)
About The Pull Request

In my personal, subjective opinion; trialmins should not, in fact, be able to read and delete server/box configuration files on a whim.

cl
server: Patches multiple(?) arbitrary file related vulnerabilities
/cl
2021-11-05 13:31:13 +13:00
ReinaCoder
954b4b4334 Makes the Disco Elysium jumpsuits non adjustable 2021-11-04 20:09:12 -04:00
GuillaumePrata
0d267158ee Security starts with tablets. (#62537) 2021-11-04 20:07:12 -04:00
Ghom
be4bf6a643 Converts the champagne cork item to a projectile. (#62261)
* Replaces the champagne cork item with a projectile.

* Rubbish.

* bullet/reusable

* dir2angle, not angle2dir

* More amusing ricochets.
2021-11-04 19:59:02 -04: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
ArcaneDefence
1f1883ed2e Improves the visible message from plasmaburnt limb (#62542) 2021-11-04 03:25:09 -07:00
CocaColaTastesGood
135b6d83b0 Fixes exploit that allowed players to disable the safety of holodeck consoles without the proper conditions being followed (#62563)
About The Pull Request

As the title says. Players were able to disable the safety of the holodeck without the console being emagged, and without being a robot.
Why It's Good For The Game

I think it would be interesting to add some sort of replacement to this, like players with high gamer skill could disable the safety.
Changelog

cl
fix: Fixes an exploit that allowed players to disable holodeck safety without following the proper conditions
/cl
2021-11-04 18:08:41 +13:00
John Willard
0e66990943 You can unpack bibles into new altars of the gods (#62234)
* You can unpack bibles into new altars of the gods

* fix to a thing i caused before i screw things up

* balloon alert

* Update book.dm

* Revert "Update book.dm"

This reverts commit 4c6483a7a4efc1eb940cbd120838eade7d7ec784.
2021-11-03 20:02:27 -07:00
MrMelbert
070873db97 Dormant Ferocity name fix (#62539) 2021-11-03 21:25:37 -04:00
GuillaumePrata
700975c7ad AtmoZphere also display the temperature in K (#62533) 2021-11-03 21:21:42 -04:00
AndAllThatJazz
1059081de9 fluid ducts dont duplicate now (#62532) 2021-11-03 21:20:46 -04:00
Stonetear
f610ec93f2 Adds feedback when successfully emaging a generator (#62524)
* Adds a span_notice when emaging a PACMAN

* Adds feedback when successfully emaging a generator.
2021-11-03 21:19:16 -04: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
Sealed101
49d8a96f26 feex (#62511)
this includes the anti-drop implant issue as well
2021-11-03 20:38:07 -04:00
CocaColaTastesGood
e93d89f1da [s] Fixes exploits (#62549)
Removes an unsanitized to chat to world.
2021-11-04 09:07:20 +13: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
Y0SH1M4S73R
9036c91504 Adds the assembly shell (#62307)
Adds the assembly shell, which can be attached to wires and other assemblies like proximity sensors, timers, etc. Because assemblies already have screwdriver interaction that gets overriden by the shell component, the regular assembly screwdriver interaction can also be performed with right-click. This can be seen on examine.
While currently, circuits can interact with wires and such using remote signalers and the radio component, this has its limits, such as the possibility that someone else uses the same frequency/code combo. With the assembly shell, you can put all your circuit logic into the attached assembly.
2021-11-02 21:28:11 +00: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
UnokiAs
a02c62d748 Syringe guns new sprite and become bulky (#62443)
This PR change the syringe gun sprite, the syringe gun is now bulky and can only be placed on back slot or suit storage with labcoat, medical windercoat and biosuit.
2021-11-02 12:37:45 -03:00
John Willard
a4a310ee53 Changes accessory dmi files to be on the accessory instead of jumpsuit (#62503) 2021-11-02 02:50:25 -07:00
Watermelon914
c2c464b26d Made integrated circuits duplicatable (#62302)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-11-02 02:30:42 -07:00
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
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
Ryll Ryll
bc2d0629bd Adds shaking soda cans, buffs throwing soda cans at people (#62170)
About The Pull Request

This started out as a joke on discord about buffing the throw damage of soda cans (have you ever had one thrown at you? they hurt!!), that ended up also growing into a feature I've wanted to add for a while- shaking soda cans for pranks!

https://streamable.com/ra7ctd
Note: This PR shows the user getting a positive moodie from a can going off on a wall, that was fixed after the video was recorded

Right clicking on an unopened soda can will shake it and raise its fizziness level, as will throwing soda cans at things. When you go to open a soda can, an RNG check is made based on how fizzy the soda is from being mishandled, with a failed check making the soda spray all over you and give you a negative moodlet (and everyone who sees it happen a milder positive moodlet!)

The throwforce for an unopened can of soda has been set to 12, slightly higher than a standard floortile (10) and equal with toolboxes. As mentioned before, though, every time you throw a soda, its fizziness rises, meaning each throw is more likely to burst it and kill the damage value. This puts it in a perfect spot where it's not worth stocking up on sodas just in case you get into a fight (cause you could just use floortiles, which stack up to 50), but seeing a nearby unopened can of soda and throwing it at your enemy could be an interesting addition to environmental combat.

You can try to detect if a can of soda is fizzed up by examining it twice rapidly. Depending on how fizzed up the soda is, you may be able to detect said levels of fizz, allowing you to ask for another untouched soda.
Why It's Good For The Game

Shake up a soda a whole bunch, give to someone in a crowded room of people, give everyone a positive moodie when the rube opens the can!
Changelog

cl Ryll/Shaps
add: Added shaking soda cans! Take an unopened soda can and right click it in hand to shake it all around, increasing its fizziness.
balance: Having an unopened soda can hucked at you will actually hurt quite a bit, around the level of a toolbox. This also has a chance of bursting the soda can on impact, leaving it useless as a weapon after.
/cl
2021-11-02 15:05:38 +13:00
dragomagol
3e9e8233cd fixes names for securing ivanov board (#62487) 2021-11-01 17:37:10 -07: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