Made it possible to paint windows to make them opaque.

Not tinted windows

Changed how painting and opacity work.

Clean timer
This commit is contained in:
xxalpha
2015-11-01 16:26:54 +00:00
parent 377b686237
commit 9f4db8078b
5 changed files with 49 additions and 26 deletions
+8 -1
View File
@@ -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
+32 -22
View File
@@ -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 += "<center><span style='border:1px solid #161616; background-color: [colour];'>&nbsp;&nbsp;&nbsp;</span><a href='?src=\ref[src];color=1'>Change color</a></center>"
dat += "<center><span style='border:1px solid #161616; background-color: [paint_color];'>&nbsp;&nbsp;&nbsp;</span><a href='?src=\ref[src];color=1'>Change color</a></center>"
..()
/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 += "<center><span style='border:1px solid #161616; background-color: [colour];'>&nbsp;&nbsp;&nbsp;</span><a href='?src=\ref[src];color=1'>Change color</a></center>"
dat += "<center><span style='border:1px solid #161616; background-color: [paint_color];'>&nbsp;&nbsp;&nbsp;</span><a href='?src=\ref[src];color=1'>Change color</a></center>"
..()
/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("<span class='suicide'>[user] shakes up the [src] with a rattle and lifts it to their mouth, spraying silver paint across their teeth!</span>")
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()
+2 -2
View File
@@ -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 << "<span class='notice'>You tagged [territory] for your gang!</span>"
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 << "<span class='notice'>You finish [instant ? "spraying" : "drawing"] [temp].</span>"
if(instant<0)
@@ -66,6 +66,12 @@
else if(ishuman(target) && user.zone_sel && user.zone_sel.selecting == "mouth")
user.visible_message("<span class='warning'>\the [user] washes \the [target]'s mouth out with [src.name]!</span>", "<span class='notice'>You wash \the [target]'s mouth out with [src.name]!</span>") //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]...", "<span class='notice'>You begin to clean \the [target.name] with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
user << "<span class='notice'>You clean \the [target.name].</span>"
target.color = initial(target.color)
target.SetOpacity(initial(target.opacity))
else
user.visible_message("[user] begins to clean \the [target.name] with [src]...", "<span class='notice'>You begin to clean \the [target.name] with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
+1 -1
View File
@@ -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
..()