diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index d6e522e3a0..0f8e832d63 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -3730,6 +3730,13 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
+"jA" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/soap/syndie,
+/turf/open/floor/plasteel/freezer,
+/area/syndicate_mothership)
"jB" = (
/obj/structure/noticeboard{
dir = 8;
@@ -4215,6 +4222,14 @@
"ku" = (
/turf/closed/indestructible/fakeglass,
/area/syndicate_mothership)
+"kv" = (
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/rag/towel/syndicate,
+/turf/open/floor/plasteel/freezer,
+/area/syndicate_mothership)
"kw" = (
/turf/open/floor/plasteel/yellowsiding,
/area/centcom/supply)
@@ -8414,10 +8429,6 @@
},
/turf/open/floor/plating,
/area/syndicate_mothership)
-"tg" = (
-/obj/item/soap/syndie,
-/turf/open/floor/plasteel/freezer,
-/area/syndicate_mothership)
"tl" = (
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plating,
@@ -17430,12 +17441,6 @@
},
/turf/open/floor/plasteel/white,
/area/centcom/holding)
-"Rl" = (
-/obj/structure/mirror{
- pixel_x = -28
- },
-/turf/open/floor/plasteel/freezer,
-/area/syndicate_mothership)
"Rm" = (
/obj/structure/chair/wood/wings{
dir = 3
@@ -37823,8 +37828,8 @@ nx
mA
Tz
ku
-tg
-Rl
+jA
+kv
uM
QV
wp
diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm
index 47f3ba5efa..9f9b86ffe6 100644
--- a/code/modules/reagents/reagent_containers/rags.dm
+++ b/code/modules/reagents/reagent_containers/rags.dm
@@ -51,17 +51,32 @@
user.visible_message("\The [user] uses \the [src] to pat out [M == user ? "[user.p_their()]" : "\the [M]'s"] flames!")
if(hitsound)
playsound(M, hitsound, 25, 1)
- M.adjust_fire_stacks(-extinguish_efficiency)
+ M.adjust_fire_stacks(-min(extinguish_efficiency, M.fire_stacks))
else
+ if(reagents.total_volume)
+ to_chat(user, "\The [src] is too drenched to be used to dry [user == M ? "yourself" : "\the [M]"] off.")
+ return TRUE
user.visible_message("\The [user] starts drying [M == user ? "[user.p_them()]self" : "\the [M]"] off with \the [src]...")
if(do_mob(user, M, 3 SECONDS))
user.visible_message("\The [user] dries [M == user ? "[user.p_them()]self" : "\the [M]"] off with \the [src].")
if(wipe_sound)
playsound(M, wipe_sound, 25, 1)
- M.adjust_fire_stacks(-soak_efficiency)
+ if(M.fire_stacks)
+ var/minus_plus = M.fire_stacks < 0 ? 1 : -1
+ M.adjust_fire_stacks(minus_plus * min(abs(M.fire_stacks), soak_efficiency))
return TRUE
return ..()
+/obj/item/reagent_containers/rag/attack_self(mob/user)
+ if(reagents.total_volume)
+ to_chat(user, "You start squeezing the liquids out of \the [src]")
+ if(do_after(user, 30, TRUE, src))
+ to_chat(user, "You squeeze \the [src] dry.")
+ var/turf/T = get_turf(src)
+ if(T)
+ reagents.reaction(T, TOUCH)
+ reagents.clear_reagents()
+
/obj/item/reagent_containers/rag/towel
name = "towel"
desc = "A soft cotton towel."
@@ -81,6 +96,12 @@
extinguish_efficiency = 2
var/flat_icon = "towel_flat"
var/folded_icon = "towel"
+ var/list/possible_colors
+
+/obj/item/reagent_containers/rag/towel/Initialize()
+ . = ..()
+ if(possible_colors)
+ add_atom_colour(pick(possible_colors), FIXED_COLOUR_PRIORITY)
/obj/item/reagent_containers/rag/towel/attack(mob/living/M, mob/living/user)
if(user.a_intent == INTENT_HARM)
@@ -106,19 +127,27 @@
body_parts_covered = NONE
flags_inv = NONE
-/obj/item/reagent_containers/rag/towel/attack_self(mob/user)
+/obj/item/reagent_containers/rag/towel/rightclick_attack_self(mob/user)
if(!user.CanReach(src) || !user.dropItemToGround(src))
return
to_chat(user, "You lay out \the [src] flat on the ground.")
icon_state = flat_icon
layer = BELOW_OBJ_LAYER
- qdel(src)
/obj/item/reagent_containers/rag/towel/pickup(mob/living/user)
. = ..()
icon_state = folded_icon
layer = initial(layer)
-/obj/item/reagent_containers/rag/towel/random/Initialize()
- . = ..()
- add_atom_colour(pick("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"), FIXED_COLOUR_PRIORITY)
+/obj/item/reagent_containers/rag/towel/on_reagent_change(changetype)
+ force = initial(force) + round(reagents.total_volume * 0.5)
+
+/obj/item/reagent_containers/rag/towel/random
+ possible_colors = list("#FF0000","#FF7F00","#FFFF00","#00FF00","#0000FF","#4B0082","#8F00FF")
+
+/obj/item/reagent_containers/rag/towel/syndicate
+ name = "syndicate towel"
+ desc = "Truly a weapon of mass destruction."
+ possible_colors = list("#DD1A1A", "#DB4325", "#E02700")
+ force = 4
+ volume = 20
\ No newline at end of file
diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi
index 159805d4ce..8788567b36 100644
Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ