mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Dry agent and dry galoshes (#7845)
This commit is contained in:
19
modular_chomp/code/datums/components/dry.dm
Normal file
19
modular_chomp/code/datums/components/dry.dm
Normal file
@@ -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()
|
||||||
@@ -28,4 +28,21 @@
|
|||||||
|
|
||||||
/obj/item/clothing/shoes/clown_shoes/Initialize(mapload)
|
/obj/item/clothing/shoes/clown_shoes/Initialize(mapload)
|
||||||
.=..()
|
.=..()
|
||||||
LoadComponent(/datum/component/squeak, squeak_sound, 20*step_volume_mod)
|
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)
|
||||||
|
|||||||
@@ -125,3 +125,11 @@
|
|||||||
result = "phoenixbreath"
|
result = "phoenixbreath"
|
||||||
required_reagents = list("vermicetol" = 1, "liquidlife" = 1, "neoliquidfire" = 1, "souldew" = 1, "phoron" = 1, "dermaline" = 1)
|
required_reagents = list("vermicetol" = 1, "liquidlife" = 1, "neoliquidfire" = 1, "souldew" = 1, "phoron" = 1, "dermaline" = 1)
|
||||||
result_amount = 6
|
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
|
||||||
|
|||||||
@@ -390,4 +390,35 @@
|
|||||||
M.adjustOxyLoss(-2 * removed * chem_effective)
|
M.adjustOxyLoss(-2 * removed * chem_effective)
|
||||||
M.heal_organ_damage(4 * removed * chem_effective, 4 * removed * chem_effective)
|
M.heal_organ_damage(4 * removed * chem_effective, 4 * removed * chem_effective)
|
||||||
M.adjustToxLoss(-2 * removed * chem_effective)
|
M.adjustToxLoss(-2 * removed * chem_effective)
|
||||||
M.add_chemical_effect(CE_PAINKILLER, 10 * M.species.chem_strength_pain)
|
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
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 1.0 KiB |
BIN
modular_chomp/icons/inventory/feet/mob.dmi
Normal file
BIN
modular_chomp/icons/inventory/feet/mob.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 371 B |
@@ -4614,6 +4614,7 @@
|
|||||||
#include "modular_chomp\code\datums\browser\color_matrix_picker.dm"
|
#include "modular_chomp\code\datums\browser\color_matrix_picker.dm"
|
||||||
#include "modular_chomp\code\datums\changelog\changelog.dm"
|
#include "modular_chomp\code\datums\changelog\changelog.dm"
|
||||||
#include "modular_chomp\code\datums\colormate\colormate.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\gargoyle.dm"
|
||||||
#include "modular_chomp\code\datums\components\squeak.dm"
|
#include "modular_chomp\code\datums\components\squeak.dm"
|
||||||
#include "modular_chomp\code\datums\components\xenoqueen.dm"
|
#include "modular_chomp\code\datums\components\xenoqueen.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user