diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 216a65b5be3..246d66e2cbe 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -625,6 +625,13 @@ for(var/t in test_times) if(var_source.vars.Find(A)) . += A - +//assumes format #RRGGBB #rrggbb +/proc/color_hex2num(A) + if(!A) + return 0 + var/R = hex2num(copytext(A,2,4)) + var/G = hex2num(copytext(A,4,6)) + var/B = hex2num(copytext(A,6,0)) + return R+G+B diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 66b97a5b5d1..907697bac1e 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -1,42 +1,42 @@ /obj/item/toy/crayon/red icon_state = "crayonred" - colour = "#DA0000" + paint_color = "#DA0000" colourName = "red" /obj/item/toy/crayon/orange icon_state = "crayonorange" - colour = "#FF9300" + paint_color = "#FF9300" colourName = "orange" /obj/item/toy/crayon/yellow icon_state = "crayonyellow" - colour = "#FFF200" + paint_color = "#FFF200" colourName = "yellow" /obj/item/toy/crayon/green icon_state = "crayongreen" - colour = "#A8E61D" + paint_color = "#A8E61D" colourName = "green" /obj/item/toy/crayon/blue icon_state = "crayonblue" - colour = "#00B7EF" + paint_color = "#00B7EF" colourName = "blue" /obj/item/toy/crayon/purple icon_state = "crayonpurple" - colour = "#DA00FF" + paint_color = "#DA00FF" colourName = "purple" /obj/item/toy/crayon/white icon_state = "crayonwhite" - colour = "#FFFFFF" + paint_color = "#FFFFFF" colourName = "white" /obj/item/toy/crayon/mime icon_state = "crayonmime" desc = "A very sad-looking crayon." - colour = "#FFFFFF" + paint_color = "#FFFFFF" colourName = "mime" uses = -1 @@ -44,24 +44,24 @@ update_window(user) /obj/item/toy/crayon/mime/update_window(mob/living/user) - dat += "
   Change color
" + dat += "
   Change color
" ..() /obj/item/toy/crayon/mime/Topic(href,href_list) if ((usr.restrained() || usr.stat || usr.get_active_hand() != src)) return if(href_list["color"]) - if(colour != "#FFFFFF") - colour = "#FFFFFF" + if(paint_color != "#FFFFFF") + paint_color = "#FFFFFF" else - colour = "#000000" + paint_color = "#000000" update_window(usr) else ..() /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" - colour = "#FFF000" + paint_color = "#FFF000" colourName = "rainbow" uses = -1 @@ -69,7 +69,7 @@ update_window(user) /obj/item/toy/crayon/rainbow/update_window(mob/living/user) - dat += "
   Change color
" + dat += "
   Change color
" ..() /obj/item/toy/crayon/rainbow/Topic(href,href_list[]) @@ -78,7 +78,7 @@ var/temp = input(usr, "Please select colour.", "Crayon colour") as color if ((usr.restrained() || usr.stat || usr.get_active_hand() != src)) return - colour = temp + paint_color = temp update_window(usr) else ..() @@ -143,10 +143,10 @@ user.visible_message("[user] shakes up the [src] with a rattle and lifts it to their mouth, spraying silver paint across their teeth!") user.say("WITNESS ME!!") playsound(loc, 'sound/effects/spray.ogg', 5, 1, 5) - colour = "#C0C0C0" + paint_color = "#C0C0C0" update_icon() H.lip_style = "spray_face" - H.lip_color = colour + H.lip_color = paint_color H.update_body() uses = max(0, uses - 10) return (OXYLOSS) @@ -154,7 +154,7 @@ /obj/item/toy/crayon/spraycan/New() ..() name = "spray can" - colour = pick("#DA0000","#FF9300","#FFF200","#A8E61D","#00B7EF","#DA00FF") + paint_color = pick("#DA0000","#FF9300","#FFF200","#A8E61D","#00B7EF","#DA00FF") update_icon() /obj/item/toy/crayon/spraycan/examine(mob/user) @@ -175,7 +175,7 @@ if("Change Drawing") ..() if("Change Color") - colour = input(user,"Choose Color") as color + paint_color = input(user,"Choose Color") as color update_icon() /obj/item/toy/crayon/spraycan/afterattack(atom/target, mob/user, proximity) @@ -200,15 +200,25 @@ if(ishuman(C)) var/mob/living/carbon/human/H = C H.lip_style = "spray_face" - H.lip_color = colour + H.lip_color = paint_color H.update_body() uses = max(0,uses-10) + if(istype(target, /obj/structure/window)) + if(uses) + target.color = paint_color + if(color_hex2num(paint_color) < 255) + target.SetOpacity(255) + else + target.SetOpacity(initial(target.opacity)) + uses = max(0, uses-2) + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + return ..() /obj/item/toy/crayon/spraycan/update_icon() overlays.Cut() var/image/I = image('icons/obj/crayons.dmi',icon_state = "[capped ? "spraycan_cap_colors" : "spraycan_colors"]") - I.color = colour + I.color = paint_color overlays += I /obj/item/toy/crayon/spraycan/gang @@ -220,5 +230,5 @@ /obj/item/toy/crayon/spraycan/gang/New(loc, datum/gang/G) ..() if(G) - colour = G.color_hex + paint_color = G.color_hex update_icon() \ No newline at end of file diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index e93e42896ba..63a993a7d1c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -319,7 +319,7 @@ icon_state = "crayonred" w_class = 1 attack_verb = list("attacked", "coloured") - var/colour = "#FF0000" //RGB + var/paint_color = "#FF0000" //RGB var/drawtype = "rune" var/list/graffiti = list("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","body","cyka","arrow","poseur tag") var/list/letters = list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") @@ -466,7 +466,7 @@ user << "You tagged [territory] for your gang!" else - new /obj/effect/decal/cleanable/crayon(target,colour,drawtype,temp,graf_rot) + new /obj/effect/decal/cleanable/crayon(target,paint_color,drawtype,temp,graf_rot) user << "You finish [instant ? "spraying" : "drawing"] [temp]." if(instant<0) diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index aaa24788476..a1692841bd8 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -66,6 +66,12 @@ else if(ishuman(target) && user.zone_sel && user.zone_sel.selecting == "mouth") user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here return + else if(istype(target, /obj/structure/window)) + user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + user << "You clean \the [target.name]." + target.color = initial(target.color) + target.SetOpacity(initial(target.opacity)) else user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") if(do_after(user, src.cleanspeed, target = target)) diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index 859af196a46..101373a4ee0 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -110,7 +110,7 @@ var/global/list/globalBlankCanvases[AMT_OF_CANVASES] //Drawing one pixel with a crayon if(istype(I, /obj/item/toy/crayon)) var/obj/item/toy/crayon/C = I - DrawPixelOn(C.colour, pixX, pixY) + DrawPixelOn(C.paint_color, pixX, pixY) return ..()