From 05fd53ebccf2e4f2be0b60f405bff8d200c0b72d Mon Sep 17 00:00:00 2001 From: Billy Bangles Date: Mon, 19 Mar 2018 20:20:31 -0400 Subject: [PATCH] adds permanent markers also tweaks paint recipe to use ink instead of crayons. --- code/datums/supplypacks/recreation.dm | 1 + code/game/objects/items/crayons.dm | 104 ++++++++++++++++-- .../objects/items/weapons/storage/fancy.dm | 48 +++++++- code/modules/paperwork/pen.dm | 21 ++-- .../Chemistry-Reagents-Other.dm | 54 +++++++++ code/modules/reagents/Chemistry-Recipes.dm | 16 +-- html/changelogs/Billybangles - Markers.yml | 38 +++++++ icons/obj/crayons.dmi | Bin 732 -> 5079 bytes 8 files changed, 256 insertions(+), 26 deletions(-) create mode 100644 html/changelogs/Billybangles - Markers.yml diff --git a/code/datums/supplypacks/recreation.dm b/code/datums/supplypacks/recreation.dm index 7bfdaaeeb6..7f801ea1b3 100644 --- a/code/datums/supplypacks/recreation.dm +++ b/code/datums/supplypacks/recreation.dm @@ -39,6 +39,7 @@ name = "Arts and Crafts supplies" contains = list( /obj/item/weapon/storage/fancy/crayons, + /obj/item/weapon/storage/fancy/markers, /obj/item/device/camera, /obj/item/device/camera_film = 2, /obj/item/weapon/storage/photo_album, diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 31bb9160f8..2ad51ca887 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -46,11 +46,11 @@ if(colour != "#FFFFFF" && shadeColour != "#000000") colour = "#FFFFFF" shadeColour = "#000000" - user << "You will now draw in white and black with this crayon." + to_chat(usr,"You will now draw in white and black with this crayon.") else colour = "#000000" shadeColour = "#FFFFFF" - user << "You will now draw in black and white with this crayon." + to_chat(usr,"You will now draw in black and white with this crayon.") return /obj/item/weapon/pen/crayon/rainbow @@ -72,22 +72,22 @@ 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") - user << "You start drawing a letter on the [target.name]." + to_chat(usr,"You start drawing a letter on the [target.name].") if("graffiti") - user << "You start drawing graffiti on the [target.name]." + to_chat(usr,"You start drawing graffiti on the [target.name].") if("rune") - user << "You start drawing a rune on the [target.name]." + to_chat(usr,"You start drawing a rune on the [target.name].") if("arrow") drawtype = input("Choose the arrow.", "Crayon scribbles") in list("left", "right", "up", "down") - user << "You start drawing an arrow on the [target.name]." + to_chat(usr,"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) - user << "You finish drawing." + to_chat(usr,"You finish drawing.") target.add_fingerprint(user) // Adds their fingerprints to the floor the crayon is drawn on. if(uses) uses-- if(!uses) - user << "You used up your crayon!" + to_chat(usr,"You used up your crayon!") qdel(src) return @@ -99,7 +99,93 @@ if(uses) uses -= 5 if(uses <= 0) - user << "You ate your crayon!" + to_chat(user,"You ate your crayon!") qdel(src) else ..() + +/obj/item/weapon/pen/crayon/marker/black + icon_state = "markerblack" + colour = "#2D2D2D" + shadeColour = "#000000" + colourName = "black" + +/obj/item/weapon/pen/crayon/marker/red + icon_state = "markerred" + colour = "#DA0000" + shadeColour = "#810C0C" + colourName = "red" + +/obj/item/weapon/pen/crayon/marker/orange + icon_state = "markerorange" + colour = "#FF9300" + shadeColour = "#A55403" + colourName = "orange" + +/obj/item/weapon/pen/crayon/marker/yellow + icon_state = "markeryellow" + colour = "#FFF200" + shadeColour = "#886422" + colourName = "yellow" + +/obj/item/weapon/pen/crayon/marker/green + icon_state = "markergreen" + colour = "#A8E61D" + shadeColour = "#61840F" + colourName = "green" + +/obj/item/weapon/pen/crayon/marker/blue + icon_state = "markerblue" + colour = "#00B7EF" + shadeColour = "#0082A8" + colourName = "blue" + +/obj/item/weapon/pen/crayon/marker/purple + icon_state = "markerpurple" + colour = "#DA00FF" + shadeColour = "#810CFF" + colourName = "purple" + +/obj/item/weapon/pen/crayon/marker/mime + icon_state = "markermime" + desc = "A very sad-looking marker." + colour = "#FFFFFF" + shadeColour = "#000000" + colourName = "mime" + uses = 0 + +/obj/item/weapon/pen/crayon/marker/mime/attack_self(mob/living/user as mob) //inversion + if(colour != "#FFFFFF" && shadeColour != "#000000") + colour = "#FFFFFF" + shadeColour = "#000000" + to_chat(usr,"You will now draw in white and black with this marker.") + else + colour = "#000000" + shadeColour = "#FFFFFF" + to_chat(usr,"You will now draw in black and white with this marker.") + return + +/obj/item/weapon/pen/crayon/marker/rainbow + icon_state = "markerrainbow" + colour = "#FFF000" + shadeColour = "#000FFF" + colourName = "rainbow" + uses = 0 + +/obj/item/weapon/pen/crayon/marker/rainbow/attack_self(mob/living/user as mob) + colour = input(user, "Please select the main colour.", "Marker colour") as color + shadeColour = input(user, "Please select the shade colour.", "Marker colour") as color + return + +/obj/item/weapon/pen/crayon/marker/attack(mob/M as mob, mob/user as mob) + if(M == user) + to_chat(usr,"You take a bite of the marker and swallow it.") + user.nutrition += 1 + user.reagents.add_reagent("marker_ink",6) + if(uses) + uses -= 5 + if(uses <= 0) + to_chat(user,"You ate the marker!") + qdel(src) + else + ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index c390cb0abd..fc34e0999d 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -114,6 +114,48 @@ return ..() +/obj/item/weapon/storage/fancy/markers + name = "box of markers" + desc = "A very professional looking box of permanent markers." + icon = 'icons/obj/crayons.dmi' + icon_state = "markerbox" + w_class = ITEMSIZE_SMALL + icon_type = "marker" + can_hold = list( + /obj/item/weapon/pen/crayon/marker + ) + starts_with = list( + /obj/item/weapon/pen/crayon/marker/black, + /obj/item/weapon/pen/crayon/marker/red, + /obj/item/weapon/pen/crayon/marker/orange, + /obj/item/weapon/pen/crayon/marker/yellow, + /obj/item/weapon/pen/crayon/marker/green, + /obj/item/weapon/pen/crayon/marker/blue, + /obj/item/weapon/pen/crayon/marker/purple + ) + +/obj/item/weapon/storage/fancy/markers/initialize() + . = ..() + update_icon() + +/obj/item/weapon/storage/fancy/markers/update_icon() + var/mutable_appearance/ma = new(src) + ma.overlays = list() + for(var/obj/item/weapon/pen/crayon/marker/marker in contents) + ma.overlays += image('icons/obj/crayons.dmi',"m"+marker.colourName) + appearance = ma + +/obj/item/weapon/storage/fancy/markers/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/pen/crayon/marker)) + switch(W:colourName) + if("mime") + to_chat(usr,"This marker is too depressing to be contained in this box.") + return + if("rainbow") + to_chat(usr,"This marker is too childish to be contained in this box.") + return + ..() + //////////// //CIG PACK// //////////// @@ -253,15 +295,17 @@ reagents.trans_to_obj(C, (reagents.total_volume/contents.len)) ..() -/obj/item/weapon/storage/rollingpapers +/obj/item/weapon/storage/fancy/rollingpapers name = "rolling paper pack" desc = "A small cardboard pack containing several folded rolling papers." icon_state = "paperbox" icon = 'icons/obj/cigarettes.dmi' w_class = ITEMSIZE_TINY - throwforce = 1 + throwforce = 2 + slot_flags = SLOT_BELT storage_slots = 14 can_hold = list(/obj/item/weapon/rollingpaper) + icon_type = "paper" starts_with = list(/obj/item/weapon/rollingpaper = 14) /* diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 7b310ccaa7..b11151b01d 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -195,11 +195,18 @@ var/instant = 0 var/colourName = "red" //for updateIcon purposes - suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - viewers(user) << "[user] is jamming the [src.name] up [TU.his] nose and into [TU.his] brain. It looks like [TU.he] [TU.is] trying to commit suicide." - return (BRUTELOSS|OXYLOSS) +/obj/item/weapon/pen/crayon/suicide_act(mob/user) + var/datum/gender/TU = gender_datums[user.get_visible_gender()] + viewers(user) << "[user] is jamming the [src.name] up [TU.his] nose and into [TU.his] brain. It looks like [TU.he] [TU.is] trying to commit suicide." + return (BRUTELOSS|OXYLOSS) - New() - name = "[colourName] crayon" - ..() +/obj/item/weapon/pen/crayon/New() + name = "[colourName] crayon" + +/obj/item/weapon/pen/crayon/marker + name = "marker" + desc = "A chisel-tip permanent marker. Hopefully non-toxic." + icon_state = "markerred" + +/obj/item/weapon/pen/crayon/marker/New() + name = "[colourName] marker" diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index 9b15c07b70..6c83b0e26d 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -49,6 +49,60 @@ id = "crayon_dust_brown" color = "#846F35" +/datum/reagent/marker_ink + name = "Marker ink" + id = "marker_ink" + description = "Intensely coloured ink used in markers." + taste_description = "extremely bitter" + reagent_state = LIQUID + color = "#888888" + overdose = 5 + +/datum/reagent/marker_ink/black + name = "Black marker ink" + id = "marker_ink_black" + color = "#000000" + +/datum/reagent/marker_ink/red + name = "Red marker ink" + id = "marker_ink_red" + color = "#FE191A" + +/datum/reagent/marker_ink/orange + name = "Orange marker ink" + id = "marker_ink_orange" + color = "#FFBE4F" + +/datum/reagent/marker_ink/yellow + name = "Yellow marker ink" + id = "marker_ink_yellow" + color = "#FDFE7D" + +/datum/reagent/marker_ink/green + name = "Green marker ink" + id = "marker_ink_green" + color = "#18A31A" + +/datum/reagent/marker_ink/blue + name = "Blue marker ink" + id = "marker_ink_blue" + color = "#247CFF" + +/datum/reagent/marker_ink/purple + name = "Purple marker ink" + id = "marker_ink_purple" + color = "#CC0099" + +/datum/reagent/marker_ink/grey //Mime + name = "Grey marker ink" + id = "marker_ink_grey" + color = "#808080" + +/datum/reagent/marker_ink/brown //Rainbow + name = "Brown marker ink" + id = "marker_ink_brown" + color = "#846F35" + /datum/reagent/paint name = "Paint" id = "paint" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 37634ac28a..4539a70516 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -868,7 +868,7 @@ name = "Red paint" id = "red_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_red" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_red" = 1) result_amount = 5 /datum/chemical_reaction/red_paint/send_data() @@ -878,7 +878,7 @@ name = "Orange paint" id = "orange_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_orange" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_orange" = 1) result_amount = 5 /datum/chemical_reaction/orange_paint/send_data() @@ -888,7 +888,7 @@ name = "Yellow paint" id = "yellow_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_yellow" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_yellow" = 1) result_amount = 5 /datum/chemical_reaction/yellow_paint/send_data() @@ -898,7 +898,7 @@ name = "Green paint" id = "green_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_green" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_green" = 1) result_amount = 5 /datum/chemical_reaction/green_paint/send_data() @@ -908,7 +908,7 @@ name = "Blue paint" id = "blue_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_blue" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_blue" = 1) result_amount = 5 /datum/chemical_reaction/blue_paint/send_data() @@ -918,7 +918,7 @@ name = "Purple paint" id = "purple_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_purple" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_purple" = 1) result_amount = 5 /datum/chemical_reaction/purple_paint/send_data() @@ -928,7 +928,7 @@ name = "Grey paint" id = "grey_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_grey" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_grey" = 1) result_amount = 5 /datum/chemical_reaction/grey_paint/send_data() @@ -938,7 +938,7 @@ name = "Brown paint" id = "brown_paint" result = "paint" - required_reagents = list("plasticide" = 1, "water" = 3, "crayon_dust_brown" = 1) + required_reagents = list("plasticide" = 1, "water" = 3, "marker_ink_brown" = 1) result_amount = 5 /datum/chemical_reaction/brown_paint/send_data() diff --git a/html/changelogs/Billybangles - Markers.yml b/html/changelogs/Billybangles - Markers.yml new file mode 100644 index 0000000000..afab2bf8cb --- /dev/null +++ b/html/changelogs/Billybangles - Markers.yml @@ -0,0 +1,38 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: battlefieldCommander + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added permanent markers, an alternative to crayons." + - tweak: "The chemistry recipe for paint now uses marker ink instead of crayon dust." + - rscdel: "Removed crayon boxes from the map. They can still be ordered from cargo in case you need a snack." diff --git a/icons/obj/crayons.dmi b/icons/obj/crayons.dmi index 7ebabd5a81ef5bdfce1a76163e72b1fc54133f4a..80ab2d153caad02fb602cb8954094f04991f2a46 100644 GIT binary patch literal 5079 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