From fe6481f86f99aecc6fa2eeccac2d10fe4c251f3f Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 4 Jul 2017 21:45:15 -0400 Subject: [PATCH] Buffs Advanced Mop --- code/__DEFINES/is_helpers.dm | 2 + code/game/machinery/rechargestation.dm | 3 -- code/game/objects/items/weapons/mop.dm | 73 +++++++++++++++++--------- 3 files changed, 51 insertions(+), 27 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index d708813b139..393247c5a1f 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -7,6 +7,8 @@ //Objects +#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable + var/list/static/global/pointed_types = typecacheof(list( /obj/item/weapon/pen, /obj/item/weapon/screwdriver, diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index f0a635c73a8..1e0f416bb0d 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -220,9 +220,6 @@ var/i = 1 for(1, i <= coeff, i++) LR.Charge(occupant) - if(istype(O,/obj/item/weapon/mop/advanced)) - if(O.reagents.get_reagent_amount("water") < 40) - O.reagents.add_reagent("water", 0.5 * coeff) if(R) if(R.module) R.module.respawn_consumable(R) diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 93144dc6c17..b7e60411bc5 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -1,12 +1,10 @@ -#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) - /obj/item/weapon/mop desc = "The world of janitalia wouldn't be complete without a mop." name = "mop" icon = 'icons/obj/janitor.dmi' icon_state = "mop" - force = 3.0 - throwforce = 5.0 + force = 3 + throwforce = 5 throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_NORMAL @@ -43,23 +41,25 @@ to_chat(user, "Your mop is dry!") return - var/turf/simulated/turf = A - if(is_cleanable(A)) - turf = A.loc - A = null + var/turf/simulated/T = get_turf(A) - if(istype(turf)) - user.visible_message("[user] begins to clean \the [turf] with [src].", "You begin to clean \the [turf] with [src]...") + if(istype(A, /obj/item/weapon/reagent_containers/glass/bucket) || istype(A, /obj/structure/janitorialcart)) + return - if(do_after(user, src.mopspeed, target = turf)) + if(istype(T)) + user.visible_message("[user] begins to clean [T] with [src].", "You begin to clean [T] with [src]...") + + if(do_after(user, src.mopspeed, target = T)) to_chat(user, "You finish mopping.") - clean(turf) + clean(T) /obj/effect/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/mop) || istype(I, /obj/item/weapon/soap)) return - ..() + else + return ..() + /obj/item/weapon/mop/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) J.put_in_cart(src, user) @@ -75,22 +75,47 @@ /obj/item/weapon/mop/advanced desc = "The most advanced tool in a custodian's arsenal. Just think of all the viscera you will clean up with this!" name = "advanced mop" - mopcap = 15 + mopcap = 10 icon_state = "advmop" - item_state = "mop" //meh will do for now until TG makes one + item_state = "mop" origin_tech = "materials=3;engineering=3" force = 6 throwforce = 8 throw_range = 4 - mopspeed = 10 + mopspeed = 20 + var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water. + var/refill_rate = 1 //Rate per process() tick mop refills itself + var/refill_reagent = "water" //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING + +/obj/item/weapon/mop/advanced/New() + ..() + processing_objects.Add(src) + +/obj/item/weapon/mop/advanced/attack_self(mob/user) + refill_enabled = !refill_enabled + if(refill_enabled) + processing_objects.Add(src) + else + processing_objects.Remove(src) + to_chat(user, "You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position.") + playsound(user, 'sound/machines/click.ogg', 30, 1) + +/obj/item/weapon/mop/advanced/process() + + if(reagents.total_volume < mopcap) + reagents.add_reagent(refill_reagent, refill_rate) + +/obj/item/weapon/mop/advanced/examine(mob/user) + ..() + to_chat(user, "The condenser switch is set to [refill_enabled ? "ON" : "OFF"].") + +/obj/item/weapon/mop/advanced/Destroy() + if(refill_enabled) + processing_objects.Remove(src) + return ..() + /obj/item/weapon/mop/advanced/cyborg - mopcap = 40 -/obj/item/weapon/mop/advanced/cyborg/New() - ..() - reagents.add_reagent("water", mopcap) - -/obj/item/weapon/mop/advanced/cyborg/examine(mob/user) - ..(user) - to_chat(user, "The mop's water tank has [round(reagents.get_reagent_amount("water"))] units of water left.") +/obj/item/weapon/mop/advanced/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) + return \ No newline at end of file