Files
Bubberstation/code/game/objects/items/crayons.dm
phil235 83633edfed - I renamed some of the new adjust procs and create new ones for eye_blind,eye_blurry and eye_stat so they get three procs just like weakened/sleeping/etc.. (Sleeping, AdjustSleeping, SetSleeping)
- renamed the eye_stat var to eye_damage.
- mob/on_varedit() added. Manually var editing a mob's eye_blind var properly updates his vision.
- I removed update_vision_overlays(), we now just update the relevant fullscreens instead of all fullscreens whenever one needs to be updated.
- fixed climbing into mecha not giving you mecha sight.
- simplified and removed copypasta from update_tinttotal() (now update_tint() )
2016-02-07 18:50:18 +01:00

234 lines
6.8 KiB
Plaintext

/obj/item/toy/crayon/red
icon_state = "crayonred"
paint_color = "#DA0000"
colourName = "red"
/obj/item/toy/crayon/orange
icon_state = "crayonorange"
paint_color = "#FF9300"
colourName = "orange"
/obj/item/toy/crayon/yellow
icon_state = "crayonyellow"
paint_color = "#FFF200"
colourName = "yellow"
/obj/item/toy/crayon/green
icon_state = "crayongreen"
paint_color = "#A8E61D"
colourName = "green"
/obj/item/toy/crayon/blue
icon_state = "crayonblue"
paint_color = "#00B7EF"
colourName = "blue"
/obj/item/toy/crayon/purple
icon_state = "crayonpurple"
paint_color = "#DA00FF"
colourName = "purple"
/obj/item/toy/crayon/white
icon_state = "crayonwhite"
paint_color = "#FFFFFF"
colourName = "white"
/obj/item/toy/crayon/mime
icon_state = "crayonmime"
desc = "A very sad-looking crayon."
paint_color = "#FFFFFF"
colourName = "mime"
uses = -1
/obj/item/toy/crayon/mime/attack_self(mob/living/user)
update_window(user)
/obj/item/toy/crayon/mime/update_window(mob/living/user)
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(paint_color != "#FFFFFF")
paint_color = "#FFFFFF"
else
paint_color = "#000000"
update_window(usr)
else
..()
/obj/item/toy/crayon/rainbow
icon_state = "crayonrainbow"
paint_color = "#FFF000"
colourName = "rainbow"
uses = -1
/obj/item/toy/crayon/rainbow/attack_self(mob/living/user)
update_window(user)
/obj/item/toy/crayon/rainbow/update_window(mob/living/user)
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[])
if(href_list["color"])
var/temp = input(usr, "Please select colour.", "Crayon colour") as color
if ((usr.restrained() || usr.stat || usr.get_active_hand() != src))
return
paint_color = temp
update_window(usr)
else
..()
/*
* Crayon Box
*/
/obj/item/weapon/storage/crayons
name = "box of crayons"
desc = "A box of crayons for all your rune drawing needs."
icon = 'icons/obj/crayons.dmi'
icon_state = "crayonbox"
w_class = 2
storage_slots = 6
can_hold = list(
/obj/item/toy/crayon
)
/obj/item/weapon/storage/crayons/New()
..()
new /obj/item/toy/crayon/red(src)
new /obj/item/toy/crayon/orange(src)
new /obj/item/toy/crayon/yellow(src)
new /obj/item/toy/crayon/green(src)
new /obj/item/toy/crayon/blue(src)
new /obj/item/toy/crayon/purple(src)
update_icon()
/obj/item/weapon/storage/crayons/update_icon()
overlays.Cut()
for(var/obj/item/toy/crayon/crayon in contents)
overlays += image('icons/obj/crayons.dmi',crayon.colourName)
/obj/item/weapon/storage/crayons/attackby(obj/item/W, mob/user, params)
if(istype(W,/obj/item/toy/crayon))
switch(W:colourName)
if("mime")
usr << "This crayon is too sad to be contained in this box."
return
if("rainbow")
usr << "This crayon is too powerful to be contained in this box."
return
..()
//Spraycan stuff
/obj/item/toy/crayon/spraycan
icon_state = "spraycan_cap"
item_state = "spraycan"
desc = "A metallic container containing tasty paint."
var/capped = 1
instant = 1
edible = 0
validSurfaces = list(/turf/simulated/floor,/turf/simulated/wall)
/obj/item/toy/crayon/spraycan/suicide_act(mob/user)
var/mob/living/carbon/human/H = user
if(capped)
user.visible_message("<span class='suicide'>[user] shakes up the [src] with a rattle and lifts it to their mouth, but nothing happens! Maybe they should have uncapped it first! Nonetheless--</span>")
user.say("MEDIOCRE!!")
else
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)
paint_color = "#C0C0C0"
update_icon()
H.lip_style = "spray_face"
H.lip_color = paint_color
H.update_body()
uses = max(0, uses - 10)
return (OXYLOSS)
/obj/item/toy/crayon/spraycan/New()
..()
name = "spray can"
paint_color = pick("#DA0000","#FF9300","#FFF200","#A8E61D","#00B7EF","#DA00FF")
update_icon()
/obj/item/toy/crayon/spraycan/examine(mob/user)
..()
if(uses)
user << "It has [uses] uses left."
else
user << "It is empty."
/obj/item/toy/crayon/spraycan/attack_self(mob/living/user)
var/choice = input(user,"Spraycan options") as null|anything in list("Toggle Cap","Change Drawing","Change Color")
switch(choice)
if("Toggle Cap")
user << "<span class='notice'>You [capped ? "Remove" : "Replace"] the cap of the [src]</span>"
capped = capped ? 0 : 1
icon_state = "spraycan[capped ? "_cap" : ""]"
update_icon()
if("Change Drawing")
..()
if("Change Color")
paint_color = input(user,"Choose Color") as color
update_icon()
/obj/item/toy/crayon/spraycan/afterattack(atom/target, mob/user, proximity)
if(!proximity)
return
if(capped)
user << "<span class='warning'>Take the cap off first!</span>"
return
else
if(iscarbon(target))
if(uses)
playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5)
var/mob/living/carbon/C = target
user.visible_message("<span class='danger'>[user] sprays [src] into the face of [target]!</span>")
target << "<span class='userdanger'>[user] sprays [src] into your face!</span>"
if(C.client)
C.blur_eyes(3)
C.blind_eyes(1)
if(C.check_eye_prot() <= 0) // no eye protection? ARGH IT BURNS.
C.confused = max(C.confused, 3)
C.Weaken(3)
if(ishuman(C))
var/mob/living/carbon/human/H = C
H.lip_style = "spray_face"
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 = paint_color
overlays += I
/obj/item/toy/crayon/spraycan/gang
desc = "A modified container containing suspicious paint."
gang = 1
uses = 20
instant = -1
/obj/item/toy/crayon/spraycan/gang/New(loc, datum/gang/G)
..()
if(G)
paint_color = G.color_hex
update_icon()