mirror of
https://github.com/goonstation/goonstation-2016.git
synced 2026-08-21 13:06:12 +01:00
236 lines
6.6 KiB
Plaintext
236 lines
6.6 KiB
Plaintext
|
|
/obj/item/paint // this seems to be a completely different paint can than the standard one, uhh. w/e it gets to live in here too
|
|
name = "paint can"
|
|
icon = 'icons/misc/old_or_unused.dmi'
|
|
icon_state = "paint_neutral"
|
|
var/paintcolor = "neutral"
|
|
item_state = "paintcan"
|
|
w_class = 3.0
|
|
desc = "A can of impossible to remove paint."
|
|
|
|
/obj/item/paint/attack_self(mob/user as mob)
|
|
|
|
var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "blue", "green", "yellow", "black", "white", "neutral" )
|
|
if ((user.equipped() != src || user.stat || user.restrained()))
|
|
return
|
|
src.paintcolor = t1
|
|
src.icon_state = text("paint_[]", t1)
|
|
add_fingerprint(user)
|
|
return
|
|
|
|
/obj/machinery/vending/paint
|
|
name = "paint dispenser"
|
|
desc = "Dispenses paint. Derp."
|
|
icon = 'icons/obj/vending.dmi'
|
|
icon_state = "paint-vend"
|
|
var/paint_color = "#ff0000"
|
|
|
|
emag_act(var/mob/user, var/obj/item/card/emag/E)
|
|
if(user)
|
|
boutput(user, "<span style=\"color:blue\">You swipe the card along a crack in the machine.</span>")
|
|
|
|
if (prob(5))
|
|
var/obj/item/paint_can/rainbow/plaid/P = new/obj/item/paint_can/rainbow/plaid(src.loc)
|
|
if (user)
|
|
boutput(user, "<span style=\"color:blue\">You hear a faint droning sound. Like a tiny set of bagpipes.</span>")
|
|
P.uses = (15 * 7)
|
|
P.generate_icon()
|
|
else
|
|
var/obj/item/paint_can/rainbow/P = new/obj/item/paint_can/rainbow(src.loc)
|
|
P.uses = (15 * 7)
|
|
P.generate_icon()
|
|
|
|
return 1
|
|
|
|
attackby(obj/item/W as obj, mob/user as mob)
|
|
if(istype(W,/obj/item/paint_can))
|
|
boutput(user, "<span style=\"color:blue\">You refill the paint can.</span>")
|
|
W:uses = 15
|
|
W:generate_icon()
|
|
|
|
return
|
|
|
|
attack_hand(mob/user as mob)
|
|
var/col_new = F_Color_Selector.Get_Color(user, paint_color)
|
|
if(col_new)
|
|
var/obj/item/paint_can/P = new/obj/item/paint_can(src.loc)
|
|
P.paint_color = col_new
|
|
paint_color = col_new
|
|
P.generate_icon()
|
|
return
|
|
|
|
var/list/cached_colors = new/list()
|
|
|
|
/obj/item/paint_can
|
|
name = "paint can"
|
|
desc = "A Paint Can and a brush."
|
|
icon = 'icons/misc/old_or_unused.dmi'
|
|
icon_state = "paint"
|
|
item_state = "bucket"
|
|
var/paint_color = rgb(1,1,1)
|
|
var/obj/paint_overlay
|
|
var/uses = 15
|
|
flags = FPRINT | EXTRADELAY | TABLEPASS | CONDUCT
|
|
w_class = 2.0
|
|
|
|
attack_hand(mob/user as mob)
|
|
..()
|
|
|
|
generate_icon()
|
|
|
|
afterattack(atom/target as mob|obj|turf, mob/user as mob)
|
|
if(target == loc || get_dist(src,target) > 1 || istype(target,/obj/machinery/vending/paint) ) return
|
|
|
|
if(!uses)
|
|
boutput(user, "It's empty.")
|
|
return
|
|
|
|
boutput(user, "You paint \the [target].")
|
|
for(var/mob/O in oviewers(world.view, user))
|
|
O.show_message("<span style=\"color:blue\">[user] paints \the [target].</span>", 1)
|
|
|
|
playsound(src, "sound/effects/splat.ogg", 40, 1)
|
|
|
|
uses--
|
|
if(!uses) overlays = null
|
|
|
|
/*
|
|
if( (paint_color+"[initial(target.icon)]") in cached_colors )
|
|
target.icon = cached_colors[(paint_color+"[initial(target.icon)]")]
|
|
else
|
|
var/icon/new_icon = icon(target.icon)
|
|
new_icon.ColorTone(paint_color)
|
|
cached_colors += (paint_color+"[initial(target.icon)]")
|
|
cached_colors[(paint_color+"[initial(target.icon)]")] = new_icon
|
|
target.icon = new_icon
|
|
*/
|
|
var/oldVal = target.color
|
|
target.color = paint_color
|
|
target.onVarChanged("color", oldVal, paint_color) // to force redraws on worn items if needed
|
|
|
|
//var/icon/new_icon = icon(initial(target.icon))
|
|
//new_icon.ColorTone(color)
|
|
//target.icon = new_icon
|
|
|
|
return
|
|
|
|
proc/generate_icon()
|
|
if (!paint_overlay)
|
|
paint_overlay = new
|
|
paint_overlay.icon = icon('icons/misc/old_or_unused.dmi',"paint_overlay")
|
|
paint_overlay.color = paint_color
|
|
overlays = null
|
|
overlays += paint_overlay
|
|
|
|
/obj/item/paint_can/random
|
|
name = "random paint can"
|
|
uses = 5
|
|
New()
|
|
..()
|
|
spawn(5)
|
|
var/colorname = "Weird"
|
|
switch(rand(1,6))
|
|
if(1)
|
|
paint_color = rgb(255,10,10)
|
|
colorname = "red"
|
|
if(2)
|
|
paint_color = rgb(10,255,10)
|
|
colorname = "green"
|
|
if(3)
|
|
paint_color = rgb(10,10,255)
|
|
colorname = "blue"
|
|
if(4)
|
|
paint_color = rgb(255,255,10)
|
|
colorname = "yellow"
|
|
if(5)
|
|
paint_color = rgb(255,10,255)
|
|
colorname = "purple"
|
|
if(6)
|
|
paint_color = rgb(150,150,150)
|
|
colorname = "gray"
|
|
|
|
name = "[colorname] paint can"
|
|
desc = "[colorname] paint. In a can. Whoa!"
|
|
src.generate_icon()
|
|
|
|
/obj/item/paint_can/rainbow
|
|
name = "rainbow paint can"
|
|
desc = "This Paint Can contains rich, thick, rainbow paint. No, we don't know how it works either."
|
|
var/colorlist[]
|
|
var/currentcolor
|
|
New()
|
|
..()
|
|
|
|
//A rainbow of colours! Joy!
|
|
src.colorlist = list(rgb(255,0,0),rgb(255,165,0), rgb(255,255,0), rgb(0,128,0), rgb(0,0,255), rgb(075,0,128), rgb(238,128,238))
|
|
src.currentcolor = 1
|
|
src.paint_color = colorlist[currentcolor]
|
|
|
|
|
|
afterattack(atom/target as mob|obj|turf, mob/user as mob)
|
|
..()
|
|
src.currentcolor += 1
|
|
if (src.currentcolor == 8)
|
|
src.currentcolor = 1
|
|
|
|
src.paint_color = colorlist[currentcolor]
|
|
|
|
src.generate_icon()
|
|
|
|
return
|
|
|
|
/obj/item/paint_can/rainbow/plaid
|
|
name = "pattern paint can"
|
|
desc = "A perfectly ordinary can of paint. Oh, except that it paints patterns."
|
|
var/patternlist[]
|
|
var/currentpattern
|
|
|
|
New()
|
|
..()
|
|
|
|
src.patternlist = list("tartan", "strongplaid", "polka", "hearts")
|
|
currentpattern = 1
|
|
|
|
afterattack(atom/target as mob|obj|turf, mob/user as mob)
|
|
if(target == loc || get_dist(src,target) > 1 || istype(target,/obj/machinery/vending/paint) ) return
|
|
|
|
if(!uses)
|
|
boutput(user, "It's empty.")
|
|
return
|
|
|
|
boutput(user, "You paint \the [target].")
|
|
for(var/mob/O in oviewers(world.view, user))
|
|
O.show_message("<span style=\"color:blue\">[user] paints \the [target].</span>", 1)
|
|
|
|
playsound(src, "sound/effects/splat.ogg", 40, 1)
|
|
|
|
uses--
|
|
if(!uses) overlays = null
|
|
|
|
if( (paint_color+"[initial(target.icon)]") in cached_colors )
|
|
target.icon = cached_colors[(paint_color+"[initial(target.icon)]")]
|
|
else
|
|
var/icon/new_icon = icon(target.icon)
|
|
|
|
//Add pattern here.
|
|
var/icon/pattern = new('icons/obj/paint.dmi', patternlist[currentpattern])
|
|
new_icon.Blend(pattern,ICON_MULTIPLY)
|
|
|
|
new_icon.ColorTone(paint_color)
|
|
cached_colors += (paint_color+"[initial(target.icon)]")
|
|
cached_colors[(paint_color+"[initial(target.icon)]")] = new_icon
|
|
target.icon = new_icon
|
|
|
|
|
|
src.currentcolor += 1
|
|
if (src.currentcolor == 8)
|
|
src.currentcolor = 1
|
|
|
|
src.paint_color = colorlist[currentcolor]
|
|
|
|
src.currentpattern += 1
|
|
if (src.currentpattern == 4)
|
|
src.currentpattern = 1
|
|
|
|
src.generate_icon()
|