Commit Graph

12 Commits

Author SHA1 Message Date
Leland Kemble 057cb60a96 Finishes up the remnants of surprise barricades (#94894)
## About The Pull Request

Some full barricades still managed to crop up in places they shouldn't
due to unnoticed barricade spawners, these have now been replaced by new
crude barricade spawners(so it keeps 20% chance to not be there) where
relevant and the maplint has been updated to keep them out of where they
don't belong

## Why It's Good For The Game

If a door is barricaded it should be visible

## Changelog
🆑

map: The last full wooden barricades on top of dense objects have been
excised

/🆑
2026-01-23 01:03:08 +00:00
Hatterhat c0f8e7bb5c Multiload Second Pass (ft. Speedloaders Will Be Real In 2025) (#92854)
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.

To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).

Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.

Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.

Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).

## Why It's Good For The Game

The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.

More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.

## Changelog

🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-09-20 08:10:35 +10:00
SmArtKar b4061f1800 [MDB IGNORE] Blood Refactor Chapter 2: Collector's Edition (#91054)
## About The Pull Request

Refactors most of blood handling code untouched by #90593 and completely
rewrites all blood decals, components and reagents.

- Blood types now have behavioral flags which allow them to control
where they leave decals/DNA/viruses. Oil no longer transfers DNA and
viruses with it, while podpeople water-blood doesn't leave visible
decals on turfs and items, but still can be picked up by DNA scanners.
- Multiple blood types have received unique handling - liquid
electricity blood now glows in the dark, oil trails are flammable and
lube ones are slippery. Oil blood can be restored with fuel, lube with
silicon and slime with stable plasma (as normal plasma already passively
regenerates their blood), instead of everything using iron. Saline
solution only supplements on iron-based blood and won't do anything to
help with bloodloss for species who rely on different blood types.
(Roundstart this applies only to Ethereals)
- All blood logic has been moved away from the blood reagent itself into
a blood element that is assigned to the blood reagent by default, and to
any reagent that's drawn from a mob as their "blood" (in
``transfer_blood_to``). This means that blood you draw from lizards will
be green and have lizard's blood description instead of mentioning red
blood cells, Ethereal "blood" will actually contain their DNA and genes,
etc.
- Refactored all blood decals. Blood states are no more, everything is
now handled via blood DNA. Credits to MrMelbert and Maplestation, as a
significant amount of code has been taken from
https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his
followup PRs. Oil and xenomorph splatters are now subtypes of blood,
blood drying is now animated, blood trails now curve and can be
diagonal.
- Rewrote bloodysoles and bloody_spreader components, credits to Melbert
again for the former, while latter now makes more sense with its
interactions. Bloody soles no longer share blood DNA with your hands.
- Ported Melbert's bloody footprint sprites and bot-blood-spreading
functionality.
- Removed all species-side reagent interactions, instead they're handled
by said species' livers. (This previously included exotic blood
handling, thus the removal)
- Slightly optimized human rendering by removing inbetween overlay
holders for clothing when they're not needed.
- Blood-transmitted diseases will now get added to many more decals than
before.
- Cleaned up and partially refactored replica pods, fixed an issue where
monkeys/manipulators were unable to harvest mindless pods.
- Exotic bloodtype on species now automatically assigns their blood
reagent, without the need to assign them separately.
- Clown mobs now bleed (with colorful reagent instead of blood during
april fools), and so do vatbeasts (lizard blood)
- Implemented generic procs for handling bleeding checks, all sorts of
scanners now also correctly call your blood for what it is.
- Podpeople's guts are now lime-green like their organs, instead of
being weirdly greyish like their water-blood. (Their bleeding overlays
are still grey, as they're bleeding water)
- Slimepeople now can bleed. Their jelly is pale purple in color, but
their wound overlays copy their body color.
- Injecting/spraying/splashing/etc mob with a reagent preserves its
data, so you could theoretically recycle fine wines from someone's
bloodstream
- Fixed burdened chaplain's sect never actually giving a blessing when
applying effects, and giving a blessing when nothing can be healed.
Inverted check strikes again.

- Closes #91039 

#### Examples

A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


![dreamseeker_BSP7FE9pRB](https://github.com/user-attachments/assets/45711fa0-ae65-4ec2-9e89-753fa7dd876f)

![dreamseeker_zyv9ssh5VN](https://github.com/user-attachments/assets/7b112854-b7e3-4bfe-b78b-199a55b5b051)
2025-05-31 19:38:07 -05:00
Pepsilawn 9950ef6831 Adds a maplint for disposal bins/chutes without accompanying trunks. (#90888) 2025-04-29 15:08:16 +00:00
Bloop 3d01e86e29 There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request


This PR:

- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.

- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.

- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.

- For the admins: Adds a clown blood smite.

My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.

I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.

This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
2025-04-28 00:57:59 -05:00
MrMelbert bbb94de166 Repaths heavy crowbar so people don't map it in accidentally (#88384) 2024-12-08 22:13:24 +01:00
carlarctg e57eddbb32 Adds rare chance for surgery trays to become medical toolboxes (#88276)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Surgery trays now have a small chance to become medical toolboxes.
Autopsy trays can become coroner toolboxes.


![image](https://github.com/user-attachments/assets/a6f6182b-5840-4494-8326-ea88f76e195b)

They work basically the same, just that they can't be rolled around and
don't slow you down when walking around.

Medical toolboxes are fairly weak, but coroner toolboxes are pretty
strong.

Added a 1 in 1.000.000 chance for a toolbox to have four latches.

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

> Surgery trays now have a small chance to become medical toolboxes.
Autopsy trays can become coroner toolboxes.
> They work basically the same, just that they can't be rolled around
and don't slow you down when walking around.

The idea of going to the surgery room and finding a _medical toolbox_
instead of a surgery tray is inexplicably amusing to me.

> Medical toolboxes are fairly weak, but coroner toolboxes are pretty
strong.

Healers and hurters!

> Added a 1 in 1.000.000 chance for a toolbox to have four latches.

peak absurdity is reached

~~next pr will include brown toolboxes, which clip to your belt~~

credit 2 @SmArtKar for sprites

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
carlarc, smartkar
add: Surgery trays now have a small chance to become medical toolboxes.
Autopsy trays can become coroner toolboxes.
add: Added a 1 in 1.000.000 chance for a toolbox to have four latches.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2024-12-06 23:56:52 +01:00
Jolly b6234d2c13 [MDB IGNORE] Map lints the layer var and scrubs it off our maps (#84385) 2024-07-01 11:09:25 -06:00
Jolly 084f56938c [MDB IGNORE] Adds a map lint against using dir-var and icon-var edited windoors (#81272)
## About The Pull Request
Title.

Another big updatepaths PR thats been on my radar for awhile.

The dir banned var edit is self explanatory. However, I banned
icon_state from them as well as there are a big handful of windoors that
are either regular, and look like security doors, OR are their mirrored
counter part (a south right door var edited to look like a south left
door).

## Why It's Good For The Game

Avoid mapping sins like this


![image](https://github.com/tgstation/tgstation/assets/70232195/e672f64f-5bba-46f2-9043-c702497d08b2)

## Changelog

N/A to players
2024-02-07 18:20:21 -07:00
Rhials fd1b2fe3cf Modular room hole patching (#80207)
## About The Pull Request

This patches some holes in the station_l_crates modular mapping piece

The highlighted areas would render as open space, ventilating the Sunset
Saloon virtual domain in the process.


![image](https://github.com/tgstation/tgstation/assets/28870487/ea48ebe9-e0dc-4f02-a8a3-fdbca72d0fc8)

These open areas have been replaced with:


![image](https://github.com/tgstation/tgstation/assets/28870487/a7543b9a-d9cf-4130-bb3f-d94a74bf683b)
## Why It's Good For The Game

Fixes a problem that can ruin your bitrunner gamer sesh.

Closes #80163 
## Changelog
🆑 Rhials
fix: Sunset Saloon virtual domain should no longer sometimes spawn with
holes in the floor.
/🆑
2023-12-10 18:23:55 -07:00
Profakos bb781627ab The maintenance crate spawning crate is now a spawner (#80083)
## About The Pull Request

`/obj/structure/closet/crate/maint` was a type of crate that spawned a
completely different crate, and then deleted itself. I have decided to
swap this out for an actual spawning effect.

I have also did some subtypery to remove some duplicate code that
handled randomly opening the spawned closet/crate (through I am not that
satisfied with
`/obj/effect/spawner/random/structure/closet_empty/crate/with_loot` as a
sensible typepath name, I would like to ask for suggestions). I also
removed a loot define, because it was no longer needed as its contents
were used on a single page.

## Why It's Good For The Game

Things that act like spawners should be spawners.

Maybe this fixes the CI issue on northstar where a mousetrap box gets
deleted before it initializes during create and destroy? It was placed
above a spawner that spawned one of these self deleting crates. I am
unsure, I could not replicate this issue during testing.

## Changelog

Nothing player facing.
2023-12-03 15:46:58 -07:00
Jeremiah ec135f1250 Adds generic modular rooms (#79419)
## About The Pull Request
Atomized portion of the bitrunning content patch #78997. Anyone can use
these, they are not bitrunning specific. Comes with a few biomes in
sizes 7x7, 9x9, 11x11

<details>
<summary>images</summary>

![Screenshot 2023-10-30
192227](https://github.com/tgstation/tgstation/assets/42397676/9f04a701-4ead-490d-b88a-ed1c9715a35a)

![Screenshot 2023-10-30
192238](https://github.com/tgstation/tgstation/assets/42397676/a0726152-23df-4e7e-822e-4ff3d7b542c4)

![Screenshot 2023-10-30
192248](https://github.com/tgstation/tgstation/assets/42397676/39e505e6-cb02-44a9-a195-0c67b892537f)

![Screenshot 2023-10-30
192257](https://github.com/tgstation/tgstation/assets/42397676/12aacbc0-15cf-430b-82a9-f8702a991610)

![Screenshot 2023-10-30
192307](https://github.com/tgstation/tgstation/assets/42397676/a4bbbf4f-13eb-4901-b0bc-879a2a958b5c)

![Screenshot 2023-10-30
192318](https://github.com/tgstation/tgstation/assets/42397676/5bb2005a-931a-4a3c-828a-18863f8c969f)

![Screenshot 2023-10-30
192327](https://github.com/tgstation/tgstation/assets/42397676/24d966eb-dd19-4b18-99b4-cffd70275c54)

![Screenshot 2023-10-30
192337](https://github.com/tgstation/tgstation/assets/42397676/a71f0f0b-0acc-492e-992f-c7b85e42b518)

![Screenshot 2023-10-30
192358](https://github.com/tgstation/tgstation/assets/42397676/5b3c38e0-ff30-4143-b720-a79b1f8095d8)

![Screenshot 2023-10-30
192412](https://github.com/tgstation/tgstation/assets/42397676/93e9abd6-bb19-4115-944a-6a939de2a585)

![Screenshot 2023-10-30
192424](https://github.com/tgstation/tgstation/assets/42397676/91fdccfe-59b9-4b45-8a90-e255331b179f)

![Screenshot 2023-10-30
192436](https://github.com/tgstation/tgstation/assets/42397676/9d2f028a-cf70-44f5-bd28-42b7c5b686f1)

![Screenshot 2023-10-30
192445](https://github.com/tgstation/tgstation/assets/42397676/bcdd82a6-39e0-480f-a7e0-afef0838a89c)

![Screenshot 2023-10-30
192456](https://github.com/tgstation/tgstation/assets/42397676/dc48263b-df3e-477b-bac1-d7c318e07a72)

![Screenshot 2023-10-30
192544](https://github.com/tgstation/tgstation/assets/42397676/aaaf843e-ca37-48f8-a9ae-2d949d8f8b4e)

![Screenshot 2023-10-30
192555](https://github.com/tgstation/tgstation/assets/42397676/af16c147-9b39-4b79-a857-873ec775595b)

![Screenshot 2023-10-30
192612](https://github.com/tgstation/tgstation/assets/42397676/60f7224b-9e6f-403f-80e1-7b16e332793e)

![Screenshot 2023-10-30
192625](https://github.com/tgstation/tgstation/assets/42397676/a5276ab7-1e14-46f6-b4e5-fd66dce1146f)

![Screenshot 2023-10-30
192639](https://github.com/tgstation/tgstation/assets/42397676/58b7d04c-0ea1-419a-9550-3185976250a8)

![Screenshot 2023-10-30
192650](https://github.com/tgstation/tgstation/assets/42397676/03728cef-9c61-4a28-bb15-8ce04ed8df2c)


![Screenshot 2023-10-30
192659](https://github.com/tgstation/tgstation/assets/42397676/144f7439-7a95-457b-a0e4-d15caf72ae58)

![Screenshot 2023-10-30
192708](https://github.com/tgstation/tgstation/assets/42397676/a8682ee9-c932-432a-ba50-6017bb836bc3)

![Screenshot 2023-10-30
192718](https://github.com/tgstation/tgstation/assets/42397676/42c98805-6085-4a87-8951-0e7876704f17)

![Screenshot 2023-10-30
192738](https://github.com/tgstation/tgstation/assets/42397676/8fb346cb-0855-470b-bb14-94ae32f021f3)

![Screenshot 2023-10-30
192750](https://github.com/tgstation/tgstation/assets/42397676/43c503fb-9eaf-406b-8c17-7671b39a26c9)

![Screenshot 2023-10-30
192800](https://github.com/tgstation/tgstation/assets/42397676/c87b22f5-78d6-4840-ae0f-e6d010fe6f65)

![Screenshot 2023-10-30
192812](https://github.com/tgstation/tgstation/assets/42397676/31fefea1-701e-429a-9bed-b7a8b55d6b6d)

![Screenshot 2023-10-30
192821](https://github.com/tgstation/tgstation/assets/42397676/300f10bf-8623-4749-9b57-f8e227198f34)

</details>

## Why It's Good For The Game
Adds some replay value, just slot in the modular root and select a
preset
## Changelog
N/A nothing player facing
2023-11-13 01:42:57 +01:00