diff --git a/code/_globalvars/lists/reagents_lists.dm b/code/_globalvars/lists/reagents_lists.dm index e25462c1affb..17c8e76bc0d2 100644 --- a/code/_globalvars/lists/reagents_lists.dm +++ b/code/_globalvars/lists/reagents_lists.dm @@ -48,5 +48,6 @@ GLOBAL_LIST_INIT(blocked_chems, list("polonium", "initropidril", "concentrated_i "lavaland_extract", "stable_mutagen", "beer2", "curare", "gluttonytoxin", "smoke_powder", "stimulative_cling", "teslium_paste", "omnizine_no_addiction", "zombiecure1", - "zombiecure2", "zombiecure3", "zombiecure4" + "zombiecure2", "zombiecure3", "zombiecure4", + "admincleaner_all", "admincleaner_item", "admincleaner_mob", )) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 06daebbcfeff..4b67c9867856 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -519,6 +519,8 @@ payload_name = "cleaner" desc = "BLAM!-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." stage = READY + /// The chemical used to clean things + var/cleaning_chem = "cleaner" /obj/item/grenade/chem_grenade/cleaner/Initialize(mapload) . = ..() @@ -526,13 +528,28 @@ var/obj/item/reagent_containers/glass/beaker/B2 = new(src) B1.reagents.add_reagent("fluorosurfactant", 40) - B2.reagents.add_reagent("cleaner", 10) + B2.reagents.add_reagent(cleaning_chem, 10) B2.reagents.add_reagent("water", 40) //when you make pre-designed foam reactions that carry the reagents, always add water last beakers += B1 beakers += B2 update_icon(UPDATE_ICON_STATE) +/obj/item/grenade/chem_grenade/cleaner/everything + payload_name = "melter" + desc = "Inside of this grenade are black-market Syndicate nanites that consume everything they come in cross with. Organs, clothes, consoles, people. Nothing is safe.
Now with a new foaming applicator!" + cleaning_chem = "admincleaner_all" + +/obj/item/grenade/chem_grenade/cleaner/object + payload_name = "object dissolving" + desc = "Inside of this grenade are black-market Syndicate nanites that curiously only consume objects, leaving living creatures and larger machinery alone.
Now with a new foaming applicator!" + cleaning_chem = "admincleaner_item" + +/obj/item/grenade/chem_grenade/cleaner/organic + payload_name = "organic dissolving" + desc = "Inside of this grenade are black-market Syndicate nanites that have an appetite for living creatures and their organs, be they silicon or organic, dead or alive.
Now with a new foaming applicator!" + cleaning_chem = "admincleaner_mob" + /obj/item/grenade/chem_grenade/teargas payload_name = "teargas" diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm index 32922e07aff9..054f3f97b7a7 100644 --- a/code/game/objects/items/weapons/grenades/clusterbuster.dm +++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm @@ -254,3 +254,14 @@ desc = "Proving once and for all that the maximum bomb explosion radius is just a suggestion." payload = /obj/item/grenade/clusterbuster/syndieminibomb +/obj/item/grenade/clusterbuster/admincleaner + desc = "For cleaning really big messes." + payload = /obj/item/grenade/chem_grenade/cleaner/everything + +/obj/item/grenade/clusterbuster/admincleaner/organic + desc = "For cleaning remnants of many, many crime scenes." + payload = /obj/item/grenade/chem_grenade/cleaner/organic + +/obj/item/grenade/clusterbuster/admincleaner/object + desc = "For cleaning up after a typical Nanotrasen office party." + payload = /obj/item/grenade/chem_grenade/cleaner/object diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.dm b/code/modules/reagents/chemistry/reagents/misc_reagents.dm index 223bd2f1ae7d..3c64adf2b7e5 100644 --- a/code/modules/reagents/chemistry/reagents/misc_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/misc_reagents.dm @@ -731,3 +731,56 @@ if(H.dna.species.bodyflags & HAS_SKIN_COLOR) //take current alien color and darken it slightly H.change_skin_color("#9B7653") + +/datum/reagent/admin_cleaner + name = "WD-2381" + color = "#da9eda" + description = "Extra-bubbly cleaner designed to clear all objects. Or, well. Anything that isn't bolted down. Or is, for that matter. In other words: if you're seeing this, how'd you get your hands on it?" + +/datum/reagent/admin_cleaner/organic + name = "WD-2381-MOB" + id = "admincleaner_mob" + description = "A bottle of strange nanites that instantly devour bodies, both living and dead, as well as organs." + +/datum/reagent/admin_cleaner/organic/reaction_mob(mob/living/M, method, volume, show_message) + . = ..() + if(method == REAGENT_TOUCH) + M.dust() + +/datum/reagent/admin_cleaner/organic/reaction_obj(obj/O, volume) + if(is_organ(O)) + qdel(O) + if(istype(O, /obj/effect/decal/cleanable/blood) || istype(O, /obj/effect/decal/cleanable/vomit)) + qdel(O) + if(istype(O, /obj/item/mmi)) + qdel(O) + +/datum/reagent/admin_cleaner/item + name = "WD-2381-ITM" + id = "admincleaner_item" + description = "A bottle of strange nanites that instantly devour items, while curiously leaving everything else untouched." + +/datum/reagent/admin_cleaner/item/reaction_obj(obj/O, volume) + if(isitem(O) && !istype(O, /obj/item/grenade/clusterbuster/segment)) + qdel(O) + +/datum/reagent/admin_cleaner/all + name = "WD-2381-ALL" + id = "admincleaner_all" + description = "An incredibly dangerous set of nanites engineered by Syndicate Janitors which devour everything they touch." + +/datum/reagent/admin_cleaner/all/reaction_obj(obj/O, volume) + if(istype(O, /obj/item/grenade/clusterbuster/segment)) + // don't clear clusterbang segments + // I'm allowed to make this hack because this is admin only anyway + return + if(!iseffect(O)) + qdel(O) + +/datum/reagent/admin_cleaner/all/reaction_mob(mob/living/M, method, volume, show_message) + . = ..() + if(method == REAGENT_TOUCH) + M.dust() + + +