Skip to content

Commit 54de5a7

Browse files
SmArtKarlessthnthree
authored andcommitted
[MDB Ignore] Refactors pills, patches, and generalizes stomach contents, nothing to see here. (#89549)
## About The Pull Request Currently patches are a subtype of pills, and while they have the ``dissolveable`` var set to FALSE, barely anything checks it (because people don't expect patches to be pills in disguise) so we end up patches being dissolveable and implantable, which is far from ideal. Both have been moved into an ``/obj/item/reagent_containers/applicator`` class, which handles their common logic and helps handling cases where either one fits. As for gameplay changes: * Pills no longer dissolve instantly, instead adding their contents to your stomach after 3 seconds (by default). You can increase the timer by dropping sugar onto them to thicken their coating, 1s per 1u applied, up to a full minute. Coating can also be dissolved with water, similarly -1s per 1u applied. Pills with no coating will work like before. * Patches now only take half as long to apply (1.5s), but also slowly trickle in their reagents instead of instantly applying all of them. This is done via embedding so you could theoretically (if you get lucky) stick a ranged patch at someone, although they are rather quick to rip off. The implementation and idea itself are separate, but the idea for having a visual display has been taken from Monkestation/Monkestation2.0#2558. ![dreamseeker_Ywd4jQcy3t](https://github.com/user-attachments/assets/7ce0e549-9ecd-4a8a-98ea-12e00754bdd9) * In order to support the new pill mechanics, stomachs have received contents. Pills and items that you accidentally swallow now go into your stomach instead of your chest cavity, and may damage it if they're sharp, requiring having them surgically cut out (cut the stomach open with a scalpel, then cauterize it to mend the incision). Or maybe you can get a bacchus's blessing, or a geneticist hulk to gut punch you, that may also work. Alien devour ability also uses this system now. If you get a critical slashing wound on your chest contents of your cut apart stomach (if a surgeon forgot to mend it, or if you ate too much glass shard for breakfast) may fall out. However, spacemen with the strong stomach trait can eat as much glass cereal as they want. Pill duration can also be chosen in ChemMaster when you have a pill selected, 0 to 30 seconds. ![image](https://github.com/user-attachments/assets/1f40210e-74dd-49c2-8093-432a747ac8dd) ## Why It's Good For The Game Patches and pills are extremely similar in their implemenation, former being a worse version of sprays and pills, with only change being that pills cannot be applied through helmets while patches and sprays ignore both. This change makes them useful for separate cases, and allows reenactment of some classic... movie, scenes, with the pill change. As for stomach contents, this was probably the sanest way of implementing pill handling, and everything else (item swallowing and cutting stomachs open to remove a cyanide pill someone ate before it dissolves) kind of snowballed from there. I pray to whatever gods that are out there that this won't have some extremely absurd and cursed interactions (it probably will). ## Changelog :cl: add: Instead of dissolving instantly, pills now activate after 4 seconds. This timer can be increased by using a dropper filled with sugar on them, 1s added per 1u dropped. add: Patches now stick to you and slowly bleed their reagents, instead of being strictly inferior to both pills and sprays. add: Items that you accidentally swallow now go into your stomach contents. refactor: Patches are no longer considered pills by the game refactor: All stomachs now have contents, instead of it being exclusive to aliens. You can cut open a stomach to empty it with a scalpel, and mend an existing incision with a cautery. /:cl:
1 parent d7e7524 commit 54de5a7

File tree

85 files changed

+2228
-1667
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2228
-1667
lines changed

_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@
419419
pixel_x = -8;
420420
pixel_y = 4
421421
},
422-
/obj/item/reagent_containers/pill/patch/synthflesh{
422+
/obj/item/reagent_containers/applicator/patch/synthflesh{
423423
pixel_x = 6;
424424
pixel_y = 2
425425
},

_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -320,9 +320,9 @@
320320
/area/ruin/powered/beach)
321321
"hO" = (
322322
/obj/structure/table/wood,
323-
/obj/item/reagent_containers/pill/lsd,
324-
/obj/item/reagent_containers/pill/lsd,
325-
/obj/item/reagent_containers/pill/lsd,
323+
/obj/item/reagent_containers/applicator/pill/lsd,
324+
/obj/item/reagent_containers/applicator/pill/lsd,
325+
/obj/item/reagent_containers/applicator/pill/lsd,
326326
/turf/open/floor/wood,
327327
/area/ruin/powered/beach)
328328
"hS" = (
@@ -344,7 +344,7 @@
344344
/area/ruin/powered/beach)
345345
"jc" = (
346346
/obj/structure/table/wood,
347-
/obj/item/reagent_containers/pill/morphine,
347+
/obj/item/reagent_containers/applicator/pill/morphine,
348348
/obj/item/storage/fancy/donut_box,
349349
/turf/open/floor/wood,
350350
/area/ruin/powered/beach)
@@ -515,9 +515,9 @@
515515
/area/ruin/powered/beach)
516516
"qy" = (
517517
/obj/structure/table/wood,
518-
/obj/item/reagent_containers/pill/zoom,
519-
/obj/item/reagent_containers/pill/zoom,
520-
/obj/item/reagent_containers/pill/zoom,
518+
/obj/item/reagent_containers/applicator/pill/zoom,
519+
/obj/item/reagent_containers/applicator/pill/zoom,
520+
/obj/item/reagent_containers/applicator/pill/zoom,
521521
/turf/open/floor/wood,
522522
/area/ruin/powered/beach)
523523
"qF" = (
@@ -694,9 +694,9 @@
694694
/area/ruin/powered/beach)
695695
"zm" = (
696696
/obj/structure/table/wood,
697-
/obj/item/reagent_containers/pill/morphine,
698-
/obj/item/reagent_containers/pill/morphine,
699-
/obj/item/reagent_containers/pill/morphine,
697+
/obj/item/reagent_containers/applicator/pill/morphine,
698+
/obj/item/reagent_containers/applicator/pill/morphine,
699+
/obj/item/reagent_containers/applicator/pill/morphine,
700700
/turf/open/floor/wood,
701701
/area/ruin/powered/beach)
702702
"zv" = (
@@ -1343,7 +1343,7 @@
13431343
/area/ruin/powered/beach)
13441344
"Wd" = (
13451345
/obj/structure/table/wood,
1346-
/obj/item/reagent_containers/pill/happy,
1346+
/obj/item/reagent_containers/applicator/pill/happy,
13471347
/obj/item/toy/figure/bartender{
13481348
pixel_x = -8;
13491349
pixel_y = -1

_maps/RandomRuins/SpaceRuins/dangerous_research.dmm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3839,7 +3839,7 @@
38393839
/obj/machinery/light/small/directional/east,
38403840
/obj/item/paper/fluff/ruins/dangerous_research/smith,
38413841
/obj/item/clothing/suit/toggle/labcoat/chemist,
3842-
/obj/item/reagent_containers/pill/stimulant,
3842+
/obj/item/reagent_containers/applicator/pill/stimulant,
38433843
/obj/item/card/id/away/dangerous_research,
38443844
/obj/effect/turf_decal/tile/purple/anticorner/contrasted,
38453845
/turf/open/floor/iron/dark/corner{

_maps/RandomRuins/SpaceRuins/derelict7.dmm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
/turf/open/floor/plating/airless,
153153
/area/ruin/space/has_grav)
154154
"pR" = (
155-
/obj/item/reagent_containers/pill/maintenance,
155+
/obj/item/reagent_containers/applicator/pill/maintenance,
156156
/turf/open/floor/plating/airless,
157157
/area/ruin/space/has_grav)
158158
"qi" = (

_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
/area/ruin/space/has_grav/garbagetruck/medicalwaste)
6464
"hv" = (
6565
/obj/effect/decal/cleanable/dirt/dust,
66-
/obj/item/reagent_containers/pill/maintenance{
66+
/obj/item/reagent_containers/applicator/pill/maintenance{
6767
pixel_x = 3;
6868
pixel_y = 7
6969
},
@@ -268,7 +268,7 @@
268268
/obj/item/restraints/handcuffs/cable/zipties/used,
269269
/obj/structure/closet/crate/trashcart/filled,
270270
/obj/item/reagent_containers/condiment/soysauce,
271-
/obj/item/reagent_containers/pill/mannitol,
271+
/obj/item/reagent_containers/applicator/pill/mannitol,
272272
/turf/open/floor/plating,
273273
/area/ruin/space/has_grav/garbagetruck/medicalwaste)
274274
"xH" = (
@@ -410,7 +410,7 @@
410410
/area/ruin/space/has_grav/garbagetruck/medicalwaste)
411411
"Go" = (
412412
/obj/effect/decal/cleanable/dirt,
413-
/obj/item/reagent_containers/pill/cyanide{
413+
/obj/item/reagent_containers/applicator/pill/cyanide{
414414
pixel_y = 8
415415
},
416416
/turf/open/floor/plating,
@@ -544,7 +544,7 @@
544544
/turf/open/floor/catwalk_floor/iron,
545545
/area/ruin/space/has_grav/garbagetruck/medicalwaste)
546546
"Ok" = (
547-
/obj/item/reagent_containers/pill/cyanide,
547+
/obj/item/reagent_containers/applicator/pill/cyanide,
548548
/obj/effect/spawner/random/medical/minor_healing,
549549
/obj/effect/spawner/random/medical/surgery_tool,
550550
/obj/item/reagent_containers/blood/o_minus,

_maps/RandomRuins/SpaceRuins/infested_frigate.dmm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2005,7 +2005,7 @@
20052005
/obj/effect/decal/cleanable/blood/gibs{
20062006
icon_state = "gib6-old"
20072007
},
2008-
/obj/item/reagent_containers/pill/cyanide{
2008+
/obj/item/reagent_containers/applicator/pill/cyanide{
20092009
pixel_y = -2;
20102010
pixel_x = 6
20112011
},

_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
id = "ruined_infiltrator_shutters"
9696
},
9797
/obj/item/knife/combat/survival,
98-
/obj/item/reagent_containers/pill/cyanide{
98+
/obj/item/reagent_containers/applicator/pill/cyanide{
9999
pixel_y = -2;
100100
pixel_x = 6
101101
},
@@ -720,11 +720,11 @@
720720
/area/ruin/space/unpowered)
721721
"YN" = (
722722
/obj/structure/table,
723-
/obj/item/reagent_containers/pill/morphine{
723+
/obj/item/reagent_containers/applicator/pill/morphine{
724724
pixel_y = 8;
725725
pixel_x = 6
726726
},
727-
/obj/item/reagent_containers/pill/morphine{
727+
/obj/item/reagent_containers/applicator/pill/morphine{
728728
pixel_x = 4
729729
},
730730
/turf/open/floor/mineral/plastitanium/red/airless,
@@ -739,10 +739,10 @@
739739
pixel_y = 3;
740740
pixel_x = 19
741741
},
742-
/obj/item/reagent_containers/pill/stimulant{
742+
/obj/item/reagent_containers/applicator/pill/stimulant{
743743
pixel_y = -2
744744
},
745-
/obj/item/reagent_containers/pill/epinephrine{
745+
/obj/item/reagent_containers/applicator/pill/epinephrine{
746746
pixel_y = 4;
747747
pixel_x = -2
748748
},

_maps/RandomZLevels/SnowCabin.dmm

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2316,6 +2316,15 @@
23162316
name = "Reinforced Soviet Hatch"
23172317
},
23182318
/area/awaymission/cabin/caves/sovietcave)
2319+
"lk" = (
2320+
/obj/item/reagent_containers/applicator/patch/libital,
2321+
/obj/effect/light_emitter{
2322+
set_cap = 3;
2323+
set_luminosity = 6;
2324+
light_color = "#9bbbff"
2325+
},
2326+
/turf/open/floor/plating/snowed/snow_cabin,
2327+
/area/awaymission/cabin/snowforest/sovietsurface)
23192328
"ll" = (
23202329
/obj/structure/cable,
23212330
/obj/machinery/light/small/directional/south,
@@ -2350,6 +2359,13 @@
23502359
},
23512360
/turf/open/misc/asteroid/snow/snow_cabin,
23522361
/area/awaymission/cabin/caves)
2362+
"lM" = (
2363+
/obj/effect/decal/cleanable/dirt,
2364+
/obj/item/gun/ballistic/rifle/sks/chekhov,
2365+
/turf/open/floor/mineral/plastitanium/red{
2366+
name = "soviet floor"
2367+
},
2368+
/area/awaymission/cabin/caves/sovietcave)
23532369
"lS" = (
23542370
/obj/effect/decal/cleanable/dirt,
23552371
/obj/structure/spider/stickyweb,
@@ -2390,13 +2406,6 @@
23902406
"ms" = (
23912407
/turf/closed/indestructible/rock/snow/ice,
23922408
/area/awaymission/cabin/caves)
2393-
"my" = (
2394-
/obj/effect/decal/cleanable/dirt,
2395-
/obj/item/gun/ballistic/rifle/sks/chekhov,
2396-
/turf/open/floor/mineral/plastitanium/red{
2397-
name = "soviet floor"
2398-
},
2399-
/area/awaymission/cabin/caves/sovietcave)
24002409
"mI" = (
24012410
/obj/effect/decal/cleanable/dirt,
24022411
/obj/machinery/light/directional/south,
@@ -2546,16 +2555,6 @@
25462555
name = "soviet floor"
25472556
},
25482557
/area/awaymission/cabin/caves/sovietcave)
2549-
"nw" = (
2550-
/obj/effect/decal/cleanable/blood,
2551-
/obj/item/reagent_containers/pill/patch/libital,
2552-
/obj/effect/light_emitter{
2553-
set_cap = 3;
2554-
set_luminosity = 6;
2555-
light_color = "#9bbbff"
2556-
},
2557-
/turf/open/floor/plating/snowed/snow_cabin,
2558-
/area/awaymission/cabin/snowforest/sovietsurface)
25592558
"nB" = (
25602559
/obj/structure/table/wood/poker,
25612560
/obj/item/dice/d6{
@@ -4259,15 +4258,6 @@
42594258
},
42604259
/turf/open/floor/plating/snowed/snow_cabin,
42614260
/area/awaymission/cabin/snowforest/sovietsurface)
4262-
"IJ" = (
4263-
/obj/item/reagent_containers/pill/patch/libital,
4264-
/obj/effect/light_emitter{
4265-
set_cap = 3;
4266-
set_luminosity = 6;
4267-
light_color = "#9bbbff"
4268-
},
4269-
/turf/open/floor/plating/snowed/snow_cabin,
4270-
/area/awaymission/cabin/snowforest/sovietsurface)
42714261
"IR" = (
42724262
/obj/structure/chair,
42734263
/obj/effect/decal/cleanable/blood,
@@ -4614,6 +4604,16 @@
46144604
},
46154605
/turf/open/floor/plating/snowed/smoothed,
46164606
/area/awaymission/cabin/caves)
4607+
"MR" = (
4608+
/obj/effect/decal/cleanable/blood,
4609+
/obj/item/reagent_containers/applicator/patch/libital,
4610+
/obj/effect/light_emitter{
4611+
set_cap = 3;
4612+
set_luminosity = 6;
4613+
light_color = "#9bbbff"
4614+
},
4615+
/turf/open/floor/plating/snowed/snow_cabin,
4616+
/area/awaymission/cabin/snowforest/sovietsurface)
46174617
"Na" = (
46184618
/obj/machinery/button/door/directional/north{
46194619
id = "fightingcommunity10";
@@ -4679,6 +4679,16 @@
46794679
"Oe" = (
46804680
/turf/open/misc/asteroid/snow/snow_cabin,
46814681
/area/awaymission/cabin/caves)
4682+
"Ok" = (
4683+
/obj/effect/decal/cleanable/blood/gibs,
4684+
/obj/item/reagent_containers/applicator/patch/libital,
4685+
/obj/effect/light_emitter{
4686+
set_cap = 3;
4687+
set_luminosity = 6;
4688+
light_color = "#9bbbff"
4689+
},
4690+
/turf/open/floor/plating/snowed/snow_cabin,
4691+
/area/awaymission/cabin/snowforest/sovietsurface)
46824692
"Oq" = (
46834693
/obj/effect/light_emitter{
46844694
set_cap = 3;
@@ -5552,16 +5562,6 @@
55525562
},
55535563
/turf/open/floor/plating/snowed/snow_cabin,
55545564
/area/awaymission/cabin/snowforest)
5555-
"ZB" = (
5556-
/obj/effect/decal/cleanable/blood/gibs,
5557-
/obj/item/reagent_containers/pill/patch/libital,
5558-
/obj/effect/light_emitter{
5559-
set_cap = 3;
5560-
set_luminosity = 6;
5561-
light_color = "#9bbbff"
5562-
},
5563-
/turf/open/floor/plating/snowed/snow_cabin,
5564-
/area/awaymission/cabin/snowforest/sovietsurface)
55655565
"ZH" = (
55665566
/obj/item/lighter/greyscale,
55675567
/obj/effect/light_emitter{
@@ -42285,7 +42285,7 @@ Ae
4228542285
Ae
4228642286
qn
4228742287
Ae
42288-
ZB
42288+
Ok
4228942289
Ae
4229042290
Ae
4229142291
Ae
@@ -42793,7 +42793,7 @@ Jz
4279342793
Jz
4279442794
vH
4279542795
IR
42796-
nw
42796+
MR
4279742797
QC
4279842798
Ae
4279942799
Ae
@@ -43055,7 +43055,7 @@ SK
4305543055
uF
4305643056
Ae
4305743057
zT
43058-
IJ
43058+
lk
4305943059
QV
4306043060
Ie
4306143061
SK
@@ -44596,7 +44596,7 @@ Ae
4459644596
zT
4459744597
Ae
4459844598
Ae
44599-
IJ
44599+
lk
4460044600
Hk
4460144601
Ae
4460244602
Ae
@@ -58987,7 +58987,7 @@ ii
5898758987
ii
5898858988
ii
5898958989
mO
58990-
my
58990+
lM
5899158991
kF
5899258992
im
5899358993
im

_maps/RandomZLevels/museum.dmm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5527,10 +5527,10 @@
55275527
/turf/open/floor/holofloor/asteroid,
55285528
/area/awaymission/museum)
55295529
"UD" = (
5530-
/obj/item/reagent_containers/pill/patch/ondansetron,
5530+
/obj/item/reagent_containers/applicator/patch/ondansetron,
55315531
/obj/structure/rack,
55325532
/obj/effect/decal/cleanable/dirt/dust,
5533-
/obj/item/reagent_containers/pill/patch/libital,
5533+
/obj/item/reagent_containers/applicator/patch/libital,
55345534
/turf/open/indestructible/plating,
55355535
/area/awaymission/museum)
55365536
"UG" = (

_maps/deathmatch/OSHA_Violator.dmm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@
764764
/area/deathmatch)
765765
"Js" = (
766766
/obj/structure/table/reinforced,
767-
/obj/item/reagent_containers/pill/patch/aiuri,
767+
/obj/item/reagent_containers/applicator/patch/aiuri,
768768
/turf/open/indestructible,
769769
/area/deathmatch)
770770
"JF" = (

_maps/deathmatch/arena_station.dmm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@
476476
/area/deathmatch)
477477
"rX" = (
478478
/obj/structure/table/glass,
479-
/obj/item/reagent_containers/pill/patch/synthflesh,
479+
/obj/item/reagent_containers/applicator/patch/synthflesh,
480480
/turf/open/indestructible/white,
481481
/area/deathmatch)
482482
"sk" = (

0 commit comments

Comments
 (0)