/obj/item/pen/crayon icon = 'icons/obj/storage/fancy/crayon.dmi' /obj/item/pen/crayon/red icon_state = "crayonred" colour = "#DA0000" shadeColour = "#810C0C" colourName = "red" reagents_to_add = list(/singleton/reagent/crayon_dust/red = 10) /obj/item/pen/crayon/orange icon_state = "crayonorange" colour = "#FF9300" shadeColour = "#A55403" colourName = "orange" reagents_to_add = list(/singleton/reagent/crayon_dust/orange = 10) /obj/item/pen/crayon/yellow icon_state = "crayonyellow" colour = "#FFF200" shadeColour = "#886422" colourName = "yellow" reagents_to_add = list(/singleton/reagent/crayon_dust/yellow = 10) /obj/item/pen/crayon/green icon_state = "crayongreen" colour = "#A8E61D" shadeColour = "#61840F" colourName = "green" reagents_to_add = list(/singleton/reagent/crayon_dust/green = 10) /obj/item/pen/crayon/blue icon_state = "crayonblue" colour = "#00B7EF" shadeColour = "#0082A8" colourName = "blue" reagents_to_add = list(/singleton/reagent/crayon_dust/blue = 10) /obj/item/pen/crayon/purple icon_state = "crayonpurple" colour = "#DA00FF" shadeColour = "#810CFF" colourName = "purple" reagents_to_add = list(/singleton/reagent/crayon_dust/purple = 10) /obj/item/pen/crayon/mime icon_state = "crayonmime" desc = "A very sad-looking crayon." colour = "#FFFFFF" shadeColour = "#000000" colourName = "mime" reagents_to_add = list(/singleton/reagent/crayon_dust/grey = 15) /obj/item/pen/crayon/mime/attack_self(mob/living/user as mob) //inversion if(colour != "#FFFFFF" && shadeColour != "#000000") colour = "#FFFFFF" shadeColour = "#000000" to_chat(user, "You will now draw in white and black with this crayon.") else colour = "#000000" shadeColour = "#FFFFFF" to_chat(user, "You will now draw in black and white with this crayon.") return /obj/item/pen/crayon/rainbow icon_state = "crayonrainbow" colour = "#FFF000" shadeColour = "#000FFF" colourName = "rainbow" reagents_to_add = list(/singleton/reagent/crayon_dust/brown = 20) /obj/item/crayon/rainbow/mechanics_hints(mob/user, distance, is_adjacent) . += ..() . += "Use this on yourself to change the current primary and shade colors." /obj/item/pen/crayon/rainbow/attack_self(mob/living/user as mob) colour = input(user, "Please select the main colour.", "Crayon colour") as color shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color return /obj/item/pen/crayon/augment icon_state = "crayonaugment" colour = "#FFF200" shadeColour = "#886422" desc = "A crayon that is integrated into a user's finger. It can synthesize a multitude of colors." /obj/item/crayon/augment/mechanics_hints(mob/user, distance, is_adjacent) . += ..() . += "Use this on yourself to change the current primary and shade colors." /obj/item/pen/crayon/augment/Initialize() . = ..() name = "integrated crayon" update_icon() /obj/item/pen/crayon/augment/attack_self(mob/living/user) colour = input(user, "Please select the main colour.", "Crayon colour") as color shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) update_icon() /obj/item/pen/crayon/augment/update_icon() ClearOverlays() var/image/crayon_tip = image('icons/obj/crayons.dmi', "crayonaugment_tip") crayon_tip.color = colour AddOverlays(crayon_tip) /obj/item/pen/crayon/augment/throw_at(atom/target, range, speed, mob/user) user.drop_from_inventory(src) /obj/item/pen/crayon/augment/dropped() . = ..() loc = null qdel(src) /obj/item/pen/crayon/afterattack(atom/target, mob/user as mob, proximity) if(!proximity) return if(istype(target,/turf/simulated/floor)) var/originaloc = user.loc var/drawtype = input("Choose what you'd like to draw.", "Crayon scribbles") in list("graffiti","rune","letter","arrow") if (user.loc != originaloc) to_chat(user, SPAN_NOTICE("You moved!")) return switch(drawtype) if("letter") drawtype = input("Choose the letter.", "Crayon scribbles") in 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") to_chat(user, "You start drawing a letter on the [target.name].") if("graffiti") to_chat(user, "You start drawing graffiti on the [target.name].") if("rune") to_chat(user, "You start drawing a rune on the [target.name].") if("arrow") drawtype = input("Choose the arrow.", "Crayon scribbles") in list("left", "right", "up", "down") to_chat(user, "You start drawing an arrow on the [target.name].") if(instant || do_after(user, 50)) new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) to_chat(user, "You finish drawing.") target.add_fingerprint(user) // Adds their fingerprints to the floor the crayon is drawn on. if(reagents && LAZYLEN(reagents_to_add)) for(var/singleton/reagent/R in reagents_to_add) reagents.remove_reagent(R,0.5/LAZYLEN(reagents_to_add)) //using crayons reduces crayon dust in it. if(!reagents.has_all_reagents(reagents_to_add)) to_chat(user, SPAN_WARNING("You used up your crayon!")) qdel(src) return /obj/item/pen/crayon/attack(mob/living/target_mob, mob/living/user, target_zone) if(ishuman(target_mob)) var/mob/living/carbon/human/H = target_mob if(H.check_has_mouth()) // The end of an era: no more force-feeding people crayons. if(user != target_mob) var/crayon_eater_response = alert(target_mob, "[user] is trying to feed you a crayon. How hungry are you?", "Hunger", "Very hungry!", "Not that hungry.") // The ungrateful bastard doesn't want to eat any crayon. if(crayon_eater_response == "Not that hungry.") target_mob.visible_message(SPAN_NOTICE("[target_mob] pushes away the crayon [user] held out for them to eat."), SPAN_NOTICE("[target_mob] doesn't want seem to eat any crayon right now.")) return TRUE // Yum yum! This message is handled separately to make it Very Clear to observers that someone is hand-feeding someone else a crayon. else target_mob.visible_message(SPAN_NOTICE("[target_mob] takes a bite of the crayon held out by [user] and swallows it."), SPAN_NOTICE("You take a bite of crayon and swallow it.")) else target_mob.visible_message(SPAN_NOTICE("[target_mob] takes a bite of crayon and swallows it."), SPAN_NOTICE("You take a bite of crayon and swallow it.")) target_mob.adjustNutritionLoss(-1) reagents.trans_to_mob(target_mob, 2, CHEM_INGEST) if(reagents.total_volume <= 0) target_mob.visible_message(SPAN_NOTICE("[target_mob] finished their crayon!"), SPAN_WARNING("You ate your crayon!")) qdel(src) return TRUE else return ..() /obj/item/pen/crayon/attack_self(var/mob/user) return