mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-02 13:02:38 +00:00
About The Pull Request Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage. Also changes a couple of places where a list was picked from instead of using get_sfx internal calls This was done via regex: (playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1 (playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0 full sed commands: /(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE /(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE I'm not very good with regex and these could probably be optimized, but they worked. Why It's Good For The Game Code usability
123 lines
3.8 KiB
Plaintext
123 lines
3.8 KiB
Plaintext
/obj/item/mop
|
|
desc = "The world of janitalia wouldn't be complete without a mop."
|
|
name = "mop"
|
|
icon = 'icons/obj/janitor.dmi'
|
|
icon_state = "mop"
|
|
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
|
|
force = 8
|
|
throwforce = 10
|
|
throw_speed = 3
|
|
throw_range = 7
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
|
|
resistance_flags = FLAMMABLE
|
|
var/mopping = 0
|
|
var/mopcount = 0
|
|
var/mopcap = 15
|
|
var/mopspeed = 15
|
|
force_string = "robust... against germs"
|
|
var/insertable = TRUE
|
|
|
|
/obj/item/mop/Initialize()
|
|
. = ..()
|
|
create_reagents(mopcap)
|
|
|
|
|
|
/obj/item/mop/proc/clean(turf/A)
|
|
if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1))
|
|
SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
|
|
for(var/obj/effect/O in A)
|
|
if(is_cleanable(O))
|
|
qdel(O)
|
|
reagents.reaction(A, TOUCH, 10) //Needed for proper floor wetting.
|
|
reagents.remove_any(1) //reaction() doesn't use up the reagents
|
|
|
|
|
|
/obj/item/mop/afterattack(atom/A, mob/user, proximity)
|
|
. = ..()
|
|
if(!proximity)
|
|
return
|
|
|
|
if(reagents.total_volume < 1)
|
|
to_chat(user, "<span class='warning'>Your mop is dry!</span>")
|
|
return
|
|
|
|
var/turf/T = get_turf(A)
|
|
|
|
if(istype(A, /obj/item/reagent_containers/glass/bucket) || istype(A, /obj/structure/janitorialcart))
|
|
return
|
|
|
|
if(T)
|
|
user.visible_message("<span class='notice'>[user] begins to clean \the [T] with [src].</span>", "<span class='notice'>You begin to clean \the [T] with [src]...</span>")
|
|
|
|
if(do_after(user, src.mopspeed, target = T))
|
|
to_chat(user, "<span class='notice'>You finish mopping.</span>")
|
|
clean(T)
|
|
|
|
|
|
/obj/effect/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/mop) || istype(I, /obj/item/soap))
|
|
return
|
|
else
|
|
return ..()
|
|
|
|
|
|
/obj/item/mop/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J)
|
|
if(insertable)
|
|
J.put_in_cart(src, user)
|
|
J.mymop=src
|
|
J.update_icon()
|
|
else
|
|
to_chat(user, "<span class='warning'>You are unable to fit your [name] into the [J.name].</span>")
|
|
return
|
|
|
|
/obj/item/mop/cyborg
|
|
insertable = FALSE
|
|
|
|
/obj/item/mop/advanced
|
|
desc = "The most advanced tool in a custodian's arsenal, complete with a condenser for self-wetting! Just think of all the viscera you will clean up with this!"
|
|
name = "advanced mop"
|
|
mopcap = 10
|
|
icon_state = "advmop"
|
|
item_state = "mop"
|
|
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
|
|
force = 12
|
|
throwforce = 14
|
|
throw_range = 4
|
|
mopspeed = 8
|
|
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 = /datum/reagent/water //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
|
|
|
|
/obj/item/mop/advanced/New()
|
|
..()
|
|
START_PROCESSING(SSobj, src)
|
|
|
|
/obj/item/mop/advanced/attack_self(mob/user)
|
|
refill_enabled = !refill_enabled
|
|
if(refill_enabled)
|
|
START_PROCESSING(SSobj, src)
|
|
else
|
|
STOP_PROCESSING(SSobj,src)
|
|
to_chat(user, "<span class='notice'>You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position.</span>")
|
|
playsound(user, 'sound/machines/click.ogg', 30, TRUE)
|
|
|
|
/obj/item/mop/advanced/process()
|
|
|
|
if(reagents.total_volume < mopcap)
|
|
reagents.add_reagent(refill_reagent, refill_rate)
|
|
|
|
/obj/item/mop/advanced/examine(mob/user)
|
|
. = ..()
|
|
. += "<span class='notice'>The condenser switch is set to <b>[refill_enabled ? "ON" : "OFF"]</b>.</span>"
|
|
|
|
/obj/item/mop/advanced/Destroy()
|
|
if(refill_enabled)
|
|
STOP_PROCESSING(SSobj, src)
|
|
return ..()
|
|
|
|
/obj/item/mop/advanced/cyborg
|
|
insertable = FALSE
|