diff --git a/modular_chomp/code/datums/components/dry.dm b/modular_chomp/code/datums/components/dry.dm new file mode 100644 index 0000000000..5d17d32bda --- /dev/null +++ b/modular_chomp/code/datums/components/dry.dm @@ -0,0 +1,19 @@ +/datum/component/dry + var/turf/simulated/T + var/obj/effect/decal/cleanable/blood/B + +/datum/component/dry/Initialize() + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + if(istype(parent, /obj/item/clothing/shoes)) + RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, PROC_REF(step_dry)) + +/datum/component/dry/proc/step_dry(obj/item/clothing/shoes/source) + SIGNAL_HANDLER + + T = get_turf(parent) + B = locate(/obj/effect/decal/cleanable/blood) in T + + T.wet_floor_finish() + if(B) + B.dry() diff --git a/modular_chomp/code/modules/clothing/shoes/miscellaneous.dm b/modular_chomp/code/modules/clothing/shoes/miscellaneous.dm index 44f5ae8e4b..72ed025888 100644 --- a/modular_chomp/code/modules/clothing/shoes/miscellaneous.dm +++ b/modular_chomp/code/modules/clothing/shoes/miscellaneous.dm @@ -28,4 +28,21 @@ /obj/item/clothing/shoes/clown_shoes/Initialize(mapload) .=..() - LoadComponent(/datum/component/squeak, squeak_sound, 20*step_volume_mod) \ No newline at end of file + LoadComponent(/datum/component/squeak, squeak_sound, 20*step_volume_mod) + +/obj/item/clothing/shoes/dry_galoshes + desc = "A pair of purple rubber boots, designed to prevent slipping on wet surfaces while also drying them." + name = "absorbent galoshes" + icon = 'modular_chomp/icons/inventory/feet/item.dmi' + icon_state = "galoshes_dry" + permeability_coefficient = 0.05 + siemens_coefficient = 0 + item_flags = NOSLIP + slowdown = SHOES_SLOWDOWN+0.5 + species_restricted = null + drop_sound = 'sound/items/drop/rubber.ogg' + pickup_sound = 'sound/items/pickup/rubber.ogg' + +/obj/item/clothing/shoes/dry_galoshes/Initialize(mapload) + .=..() + LoadComponent(/datum/component/dry) diff --git a/modular_chomp/code/modules/reagents/reactions/instant/instant.dm b/modular_chomp/code/modules/reagents/reactions/instant/instant.dm index f55986ada3..ba84905997 100644 --- a/modular_chomp/code/modules/reagents/reactions/instant/instant.dm +++ b/modular_chomp/code/modules/reagents/reactions/instant/instant.dm @@ -125,3 +125,11 @@ result = "phoenixbreath" required_reagents = list("vermicetol" = 1, "liquidlife" = 1, "neoliquidfire" = 1, "souldew" = 1, "phoron" = 1, "dermaline" = 1) result_amount = 6 + +/decl/chemical_reaction/instant/dryagent + name = "Dry Agent" + id = "dryagent" + result = "dryagent" + required_reagents = list("ethanol" = 2, "sodium" = 2, "phoron" = 0.1) + catalysts = list("phoron" = 5) + result_amount = 4 diff --git a/modular_chomp/code/modules/reagents/reagents/medicine.dm b/modular_chomp/code/modules/reagents/reagents/medicine.dm index e93c58f20a..ccfd79897d 100644 --- a/modular_chomp/code/modules/reagents/reagents/medicine.dm +++ b/modular_chomp/code/modules/reagents/reagents/medicine.dm @@ -390,4 +390,35 @@ M.adjustOxyLoss(-2 * removed * chem_effective) M.heal_organ_damage(4 * removed * chem_effective, 4 * removed * chem_effective) M.adjustToxLoss(-2 * removed * chem_effective) - M.add_chemical_effect(CE_PAINKILLER, 10 * M.species.chem_strength_pain) \ No newline at end of file + M.add_chemical_effect(CE_PAINKILLER, 10 * M.species.chem_strength_pain) + +/datum/reagent/dryagent + name = "Dry Agent" + id = "dryagent" + description = "A desiccant. Can be used to dry things." + taste_description = "dryness" + reagent_state = LIQUID + color = "#A70FFF" + scannable = 1 + overdose = REAGENTS_OVERDOSE + +/datum/reagent/dryagent/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 * M.species.chem_strength_heal + if(alien == IS_SLIME) + chem_effective = 1.25 + M.adjustFireLoss(2 * removed * chem_effective) // Why are you giving this to Prometheans or Dionas. You're going to DRY them. + +/datum/reagent/dryagent/touch_obj(obj/O, amount) + if(istype(O, /obj/item/clothing/shoes/galoshes) && O.loc) + new /obj/item/clothing/shoes/dry_galoshes(O.loc) + qdel(O) + remove_self(10) + +/datum/reagent/dryagent/touch_turf(var/turf/T) + ..() + if(volume >= 5) + if(istype(T, /turf/simulated/floor)) + var/turf/simulated/floor/F = T + if(F.wet) + F.wet = 0 + return diff --git a/modular_chomp/icons/feet/mob_digi.dmi b/modular_chomp/icons/feet/mob_digi.dmi index 17c076a4a2..dad64ae36c 100644 Binary files a/modular_chomp/icons/feet/mob_digi.dmi and b/modular_chomp/icons/feet/mob_digi.dmi differ diff --git a/modular_chomp/icons/inventory/feet/item.dmi b/modular_chomp/icons/inventory/feet/item.dmi index 79d9cb8344..c3201337f9 100644 Binary files a/modular_chomp/icons/inventory/feet/item.dmi and b/modular_chomp/icons/inventory/feet/item.dmi differ diff --git a/modular_chomp/icons/inventory/feet/mob.dmi b/modular_chomp/icons/inventory/feet/mob.dmi new file mode 100644 index 0000000000..e7ddbde234 Binary files /dev/null and b/modular_chomp/icons/inventory/feet/mob.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 4fd2062f10..b434cbc4ee 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4614,6 +4614,7 @@ #include "modular_chomp\code\datums\browser\color_matrix_picker.dm" #include "modular_chomp\code\datums\changelog\changelog.dm" #include "modular_chomp\code\datums\colormate\colormate.dm" +#include "modular_chomp\code\datums\components\dry.dm" #include "modular_chomp\code\datums\components\gargoyle.dm" #include "modular_chomp\code\datums\components\squeak.dm" #include "modular_chomp\code\datums\components\xenoqueen.dm"