Commit Graph

37960 Commits

Author SHA1 Message Date
itseasytosee
506ecc7445 Being in combat mode hits your target with the surgical tool during an ongoing surgery. (#69489)
This is how it worked at some point, I couldn't find what messed it up.
This makes sense, and kills the very odd strategy of starting any surgery on yourself in order to make yourself completely immune from people trying to attack you with scalpels, energy swords, knifes, glass shards, and in fact, any sharp item.
Also, this kills ai monkeys being able to preform surgery on people out of raw monkey spite. Surgery should also probably require IS_ADVANCED_TOOL_USER, but that's a PR for a different day.
2022-08-29 11:35:19 -07:00
itseasytosee
2dabd1d7e2 Monkeys no longer "don't seem like themselves" (#69453)
A feature originally intended to make it clear to others when a player was being controlled by an AI, made no sense as soon as monkeys became a human subtype 2 years ago. This is solved by the implementation of a non-player species var, which can be applied to monkeys to suppress this text, without also then creating the cationic examine line as long as they have an AI controller.
2022-08-29 11:33:06 -07:00
ShizCalev
1030e4a834 anomalies will try to not spawn on lava / plasma rivers (#69389)
* anomalies will try to not spawn on lava / plasma rivers

* outdoors
2022-08-28 23:08:44 -04:00
ZeWaka
6d03cb417b remove unnecessary list copy (#69511) 2022-08-28 23:03:55 -04:00
LemonInTheDark
482daf9be5 Unit tests range suck (#69352)
* Unit tests range suck

Ok so we currently rely on some undefined behavior in energy_ball code
Namely, the range() family will return turfs in least/greatest get_dist

This is VERY useful for optimizing the tesla, but it's also undefined,
and lummy could change it any day now.

So let's at least unit test it so if it breaks we can remove it
2022-08-28 18:12:02 -07:00
Tim
4b6a67844c Add new chems to plants that allow foam effects (#69221)
Adds a 10% Fluorine gene to Corpseflowers, and a 5% Sulfuric Acid gene to Novaflowers
2022-08-28 18:45:37 -05:00
tattle
124b20d349 Adds steam to the coffeemaker + fix (#69505)
Co-authored-by: tattle <article.disaster@gmail.com>
2022-08-28 16:25:03 -04:00
Mooshimi
eb88a6525a Chem Master 3000 depowered sprites pathing (#69434)
* they want to see broken icons

* they wanna see the depowered sprites instead...

* kill unused broken chem master icons

* we're getting smarter as we go boys

* Update chem_master.dm
2022-08-28 16:23:11 -04:00
sergeirocks100
b2c61cef2f Improves glove finger cutting. (#69461) 2022-08-28 08:27:23 -07:00
OrionTheFox
0dee69b976 Resprites Trekkie Uniforms, adds Voyager Uniforms, adds Trekkie Costume Crate (#68871)
Added a Star Trek Costume Crate and updated the Star Trek uniforms to modern sprite standards, as well as adding Voyager uniforms!
2022-08-27 23:39:07 -03:00
tattle
16c0d47c99 Fixes chocolate and scotch eggs showing error sprites (#69463)
Fixes chocolate and scotch eggs showing errors

Co-authored-by: tattle <article.disaster@gmail.com>
2022-08-27 22:27:31 -04:00
MrMelbert
fa57972f5c Quickie mob_harvest component code improvement to follow guidelines (#69466)
* Quickie mob_harvest code check

* Review
2022-08-27 22:27:12 -04:00
tattle
10eba6482d Gives gibtonite back its icon (#69477)
gives gibtonite back its icon

Co-authored-by: tattle <article.disaster@gmail.com>
2022-08-27 22:25:03 -04:00
Timberpoes
92396364a0 Adds unit test for reagent transfer and fixes infinite reagent transfer bug. (#69487)
About The Pull Request

Fixes #69483

#69432 broke reagent transfer.

image

As we can see above, we've gone from removing reagents 100% of the time, to removing reagents only when methods is truthy and thus they get added to r_to_send. methods is not always truthy. Infact, more often than not it's NULL.

As a result, common reagent transfer methods just broke, duplicating reagents.

Sometimes this has interesting consequences, like in reagent reactions: https://tgstation13.org/parsed-logs/terry/data/logs/2022/08/26/round-189263/game.txt

image

This is what my search bar looked like highlighting the 1000+ explosions.
image

This adds a unit test to make sure reagent transfer actually works, then fixes the bug by caching reagents to be removed and removing them in a batch later on.
Why It's Good For The Game

Infinitely looping explosions tend to be loud and obnoxious. This kills the player. This also kills the server.
Unit tests are cool because my test is an absolute unit and I'm in awe at the size of that lad.
Changelog

cl
fix: Fixes reagent transfer not properly emptying the source of reagents when transferring to a target.
/cl
2022-08-28 00:22:36 +12:00
GoldenAlpharex
bc83fc1e9f Makes the game start faster by optimizing round-start manifest injections (#69393)
* Massively optimizes the manifest_inject() proc by relaying the creation of the Security Records pictures to be on-demand

* Implements the change in the Security records and improves the photo's resolution as well

* Implements the change in the Medical records and improves the photo's resolution as well

* Updates the usage of the photos in human code

* Actually makes AI holograms still work with this new change

* Makes the appearance_holder a static variable, to avoid having to re-instanciate it all the time

* Uses the mutable_appearance instead of a static atom/movable/screen

* Less static atom/movable/screen stuff in the AI code too

* Removes my funny comment :(

* Removes some redundant null checks

* Updates the documentation for get_flat_human_icon() and get_flat_existing_human_icon()

* Removes get_id_photo() as it's no longer used
2022-08-26 16:25:48 -07:00
Tastyfish
e9d4eb45d1 [MDB IGNORE] Improves status display even more, makes the brig door timers based on status displays (#69153)
This PR was originally just going to be a re-factor of brig doors to be based on status displays, as a big chunk of their code was duplicating the exact same appearance, but then I realized "Cell 1" would have marqueed for being 6 characters and ended up doing the second half of the status display overhaul I meant to do a while back.

So firstly:

Yes, brig doors are now subtypes of status displays.
The main improvement out of that refactor, other than a lot of code trimming, is that the on-screen timer updates its readout as you set it, which looks nice.
Also handled various states in a more consistent way in some edge cases.
The timer now also displays the cell's actual name instead of the internal ID on the top line.
Now for status displays:

Long ago, I wanted the marquee to be continuous but the math required knowing the actual measured text width, though without a user that is impossible.
I recently realized the scope of the text usable on status displays (no formatting, or icons) is so narrow, I can cheat it like crazy into a small lookup table and a looping function.
No, this method can't possibly extend to runetext.
So now the marquees loop seemlessly without any gaps! In fact behind the scenes they loop the very first pixel possible, and still done as a one-and-done animate() sequence as before. (click the preview below if you want to see it smoother)

Status displays are now a bit more colorful and have gapless marquee text.
Brig door timers were massively refactored behind the scenes. Door control should still work as before but be mindful.
2022-08-26 16:53:57 -06:00
John Willard
f0b71cb84a Fixes double define of multilayer cable examine (#69460)
* One of the examines for multilayer cables were meant to be on the ``multiz`` subtype, since it's only for multiz stuff.
2022-08-26 08:21:29 -07:00
Mothblocks
6b49d1db45 Massively optimize space turf initializations (~20 seconds on Meta to ~3 seconds) (#69079)
* Massively optimize space turf initializations

* Add comment
2022-08-25 22:30:45 -07:00
Pickle-Coding
79605fdd39 Open turfs no longer care about hotspots when they reach melting point. (#69269)
Removes /turf/open/burn proc. This removal will cause the parent proc to get called when it gets called on an open turf, without the hotspot check.

Lemon notes:
This does actually change a lot, but I want it anyway
It was initially like this because only hotspots could be a source of melting. when I changed that with my linda refactor, I kept the no hotspot requirement because it A: was close to the same behavior, and B: in theory meant less excited group rebuilds.

I have since decided that rebuilds like that especially in the context of hotspots are ok.
2022-08-25 21:07:15 -07:00
Jacquerel
bcadead566 Chasm Fishing (#69252)
Adds the capability of fishing in chasms.
Chasms contain Chasm Chrabs, which are cute little crustaceans you can eat or put in an aquarium.
More importantly, chasms contain everything which has ever fallen into a chasm.
Falling into a chasm is no longer instant permanent round removal... as long as someone is willing to do some fishing, which means your chances of return haven't necessarily increased that much.

Potential rescuers (or people lamenting about how they dropped their necropolis chest into a hole) should also beware, chasm crabs are actually young Lobstrosities and there's a rare but not insubstantial chance that you'll fish one of them up instead, which won't make it very happy.

If you somehow come back to life inside a chasm (generally only likely by being a changeling or some admin interference, but perhaps you have some kind of implant which does it) you'll climb back out again, so holes are no longer a way of disposing of a changeling for good. You think The Thing would be defeated if you threw it down a hole?
Ethereals can't manage this because falling into a chasm causes too much damage and they simply smash on the way down.

add: You can now fish in chasms, and might manage to catch things that careless miners have dropped in there.
add: If your pole is long enough to reach into a deep hole, you might catch crabs.
balance: Changelings can climb out of chasms if you throw them into one.
imageadd: An icon of a nice little crab, who will grow up into something less nice.
add: You can craft fishing equipment from various lavaland materials, so that Ashwalkers can fish up dead miners before you.
add: You can sometimes find worms while digging up tiles, if appropriate for that material.
2022-08-25 20:13:36 -07:00
John Willard
1e5083f427 Fixes strange reagent, and possibly other chems too (#69432)
Fixes starnge reagent, and possibly other chems too

* remove_reagent() was being called before expose_multiple() was, which meant people were being exposed to chemcials that had 0 volume in them, something that was needed for something like strange reagent to work.
2022-08-25 23:08:40 -04:00
John Willard
53081eeca6 Cult shades can now use Cult communion channel. (#69404)
* Lets shades snowflake be able to use cult comms

* Cult shades have their hands blocked while in a shard, which makes them completely useless when put in someone's bag. Sorta like a pAI, they should be able to contact for help when the person who has them is in trouble.

* accidentally put it on the wrong action
2022-08-25 22:44:24 -04:00
Mothblocks
6f1e20c698 Fix incorrect shove collision log (#69451)
Showed up in logs with the shover completely lost.
2022-08-25 22:35:37 -04:00
tralezab
ef3098631c ghouls now have Fakedeath (#69443) 2022-08-25 19:28:41 -07:00
ShizCalev
0d832d9327 Makes APCs set lights to low power mode when < 30% (when equipment power turns off) (#69374)
* Makes lights turn to lower power mode when an APC's charge goes below 30%

* had a last minute change and forgot to simplify this

* Cleanup

* async
2022-08-25 18:49:56 -07:00
John Willard
3f7adcd78c Fixes breaking eggs into glasses (#69431) 2022-08-25 18:52:32 -04:00
tattle
7aac506aa0 Split mining.dmi (#69442)
* split mining.dm

* Remove a pair of unused icons

* From merge conflict

Co-authored-by: tattle <article.disaster@gmail.com>
2022-08-25 17:13:14 -04:00
MrMelbert
20bbe7cd17 Fixes runtime from bookshelves being maploaded in after SSlibrary is done instantiating (#69425)
* Fixes runtime with bookshelves loading.
- If a bookshelf is maploaded after the library subsystem is instantiated, it runtimes due to shelves_to_load being null, and no books are loaded. So, if a bookcase is maploaded after SSinit is done initializing, just load the shelf in init.

* Needs to be asyncronous.
2022-08-25 17:07:47 -04:00
ShizCalev
4dd5296cb7 Allows you to directly interact with beakers inserted in a PanD.E.M.I.C. with droppers and syringes (#69322)
Allows you to directly interact with beakers inserted in a PanD.E.M.I.C. with droppers and syringes
2022-08-25 13:07:42 -07:00
MMMiracles
acc846f0c9 adds sheep (#69318)
* adds funny sheep (need non-placeholder sprites still)

* indent this

* code suggestions

* components all the way down

* async

* sprites + reference

* think i did this right

* Update code/datums/components/mob_harvest.dm

Co-authored-by: san7890 <the@san7890.com>

* steal shiz's suggestion pt1

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

* steal's shiz's suggestion pt2

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

* steal's shiz's suggestion pt3

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2022-08-25 09:02:09 -04:00
distributivgesetz
2f9716d4e9 [MDB IGNORE] Fix ticket machines behaving unexpectedly and causing runtimes (#69406)
* Adds a unique ID to the ticket machine in an icebox ruin, preventing it from getting mixed up with the HoP's.
* Adds more text on examining ticket machines and the tickets from them, allowing people to know what position in queue they are.
* Tickets now properly display their number, and is named after their position in queue.
* Adds more user alerts to certain actions around the ticket machine, such as when there are no more people in queue.
2022-08-25 07:18:15 -04:00
ShizCalev
da323ad2c5 Misc cell fixes (#69373)
* Fixes APCs runtiming from their cell being destroyed.
2022-08-25 06:24:07 -04:00
distributivgesetz
589460244b Fixes weakref resolving in View Variables not working (#69375)
m
2022-08-25 01:24:44 -04:00
AIUNBOLT
e4eb3e430a the express supply console now requires general cargo access instead of QM access (#69312)
* remove the access requirements

* cargo access  instead of qm access

* Update expressconsole.dm
2022-08-25 01:17:16 -04:00
MidoriWroth
7354466b42 Food Expansion 4! The great salad update and more (#69355)
About The Pull Request

This is my fourth food expansion PR, adding and changing quite a few things.
This PR will:

    Add 7 different types of salads
    Add a new ingredient supply beacon box called 'Salads', which includes ingredients used for the salad recipes
    Give cherry jelly its own container, and allow jelly to be ordered from the produce console
    Make cherry jelly actually nourish you when consumed
    Add paçoca, a Brazilian peanut candy requested by @GuillaumePrata
    Add mashed potatoes
    Add shepherds pie
    Add Cullen skink
2022-08-24 21:16:12 -07:00
Tim
473bd3804e Fix cult ghosts needing to breath (#69424)
Fixes #69415

This adds a trait to the cult ghost so they no longer need to breath and thus are immune to gas effects.

Why It's Good For The Game

Ghosts don't need to breath.
2022-08-24 20:23:14 -07:00
san7890
8a64803988 Revert "Fixes Fucked Job Requirement Displays" and "Converts Job Hour Requirements System To HOURS Define" (#69426)
* Revert "Fixes Fucked Job Requirement Displays (#69368)" and Revert "Converts Job Hour Requirements System To HOURS Define (#68856)"

This reverts commit 6f2354e694 and 5b77361d39.
2022-08-24 23:00:20 -04:00
Vanadiom
223a7f8457 Fixing Molotovs (so they actually set people on fire) to burn with style, grace and the heat of the revolution. (#69301)
* Fixes Molotovs by not making them splash from parent's ``throw_impact()``, handled instead by ``smash()``, after we do our Molotov-related activities.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-08-24 22:59:20 -04:00
ShizCalev
9670bd85e5 Fixes cowboy boot runtime (#69418) 2022-08-24 18:55:11 -07:00
Jacquerel
b5902ce969 Fixes runtime when throwing held simplemob (#69272)
The first step (after validation) of throwing an object is to place it on the ground.
Placing a "mob holder" object on the ground causes it to release the held mob and delete itself.
A runtime would then occur as you tried to throw something which just deleted itself.

I overrode on_thrown on /obj/item/clothing/head/mob_holder so that it calls release instead of dropItemToGround and returns the held mob instead of the item.
The result is that you can now walk around with a backpack full of mice and throw them at people, just like in real life.
2022-08-24 18:50:27 -07:00
Mooshimi
8b83d887d7 Re-remove mention of shock resist from sec modsuits (#69421)
/datum/mod_theme/security

607
2022-08-24 21:36:28 -04:00
tattle
d91390a447 [IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1) (#69416)
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine
Moves Halloween, Christmas, and misc holiday items to obj/holiday
Moves lollipops to obj/food
Moves crates, closets, and storage to obj/storage
Moves assemblies to obj/assemblies
Renames decals.dmi to signs.dmi ...because they're signs and not decals
Moves statues, cutouts, instruments, art supplies, and crayons to obj/art
Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys
Moves guns, swords, shields to obj/weapons
2022-08-24 20:49:35 -03:00
tattle
b83c7deee4 Splitting some meat files (+ bonus fixes) (#69386)
* split up meat.dm

* minor coffeemaker fixes

* putting pig meat in its place

Co-authored-by: tattle <article.disaster@gmail.com>
2022-08-24 17:45:22 -04:00
vincentiusvin
cfddfb5c8c [NO GBP] Fix NT Frontier Partner Typo & Better Experiment Descriptions For Ordnance (#69408)
* Fix typo

* Better descriptions

* Fix errant the

* Better perf hint
2022-08-24 17:38:33 -04:00
san7890
4c4cd801ce Allows Brig Subtypes To Be Usable for Departmental Orders (#69411)
* Allows Brig Subtypes To Be Usable for Departmental Orders

Hey there,

I saw an odd thing on IceBox the other day, where they couldn't deliver the departmental order crate because they were trying to open it in `/area/station/security/brig/upper` and not `/area/station/security/brig`. When they went down a z-level and opened it in the correct area, it worked perfectly fine. However, I think it's a bit obtuse, and this sort of thing might only get worse as multi-z maps become more dominant. So, let's apply a code solution by making the areas list read off typesof for the department_delivery_areas for security crates.

* typesof didn't actually work, we go explicit now
2022-08-24 17:36:04 -04:00
Tastyfish
5857c95180 [MDB IGNORE] Adds elevator floor indicator (#69413)
* Adds lift floor indicator

* bump stuck ci
2022-08-24 17:33:33 -04:00
san7890
ab1d99dc56 Adjusts Charcoal Stylus Crafting Time to use SECONDS (#69414)
Hey there,

I was code-diving looking, and apparently we have these nifty pencil analogues. However, they used a decisecond time define instead of the nice SECONDS macro, which is not nifty. Let's fix that real fast.
2022-08-24 17:27:48 -04:00
LemonInTheDark
ace622fbec Replaces a manual destroy call with qdel (#69400)
detach is called on Destroy so this is safe
2022-08-24 14:06:36 -07:00
Imaginos16
1d8e10b536 New Fax Resprite by Imaginos! (#69397)
imageadd: Resprites fax machines!
2022-08-24 08:36:17 -04:00
Y0SH1M4S73R
57b10fcb64 Bumps auxlua to 1.2.1 (+ several other ui fixes and qol tweaks) (#69271)
* preparations for self-referential list conversion

* additional changes for the auxlua 1.1.1 update

* fixed a type in `SS13.await`

* bumps auxlua to 1.2.0

* bumps auxlua to 1.2.1
2022-08-23 23:21:39 -07:00