[MIRROR] Some crayons fixes and minor changes. [MDB IGNORE] (#22197)

* Some crayons fixes and minor changes. (#76468)

## About The Pull Request
- Defined crayon colors because why not.
- Fixed suicide with crayons not coloring you.
- Made it properly? edible.
- "empty" balloon alert now only appears on empty spraycans.
- Remade attackby restrictions for mime's and rainbow crayons to
`set_holdable` but without balloon alerts sadly. I don't quite know how
to make it.
## Why It's Good For The Game
Crayon burgers.
## Changelog
🆑
fix: Crayon suicide now properly colors you.
fix: You can't put spraycans in crayon box via opening it and putting
directly in slot as intended, but balloon alerts for mime's and rainbow
crayons are gone.
qol: "empty" balloon alert no longer appears on crayons.
qol: You can make crayon burgers now.
/🆑

* Some crayons fixes and minor changes.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-07-03 23:35:22 +02:00
committed by GitHub
parent 2a7e562fbb
commit e53bfc7b52
2 changed files with 43 additions and 55 deletions
+10
View File
@@ -150,6 +150,16 @@
#define COLOR_BIOLUMINESCENCE_PURPLE "#D966FF"
#define COLOR_BIOLUMINESCENCE_PINK "#FFB3DA"
//Colors for crayons.
#define COLOR_CRAYON_RED "#DA0000"
#define COLOR_CRAYON_ORANGE "#FF9300"
#define COLOR_CRAYON_YELLOW "#FFF200"
#define COLOR_CRAYON_GREEN "#A8E61D"
#define COLOR_CRAYON_BLUE "#00B7EF"
#define COLOR_CRAYON_PURPLE "#DA00FF"
#define COLOR_CRAYON_BLACK "#1C1C1C"
#define COLOR_CRAYON_RAINBOW "#FFF000"
///Colors for grayscale tools
#define COLOR_TOOL_BLUE "#1861d5"
#define COLOR_TOOL_RED "#951710"
+33 -55
View File
@@ -200,7 +200,7 @@
/obj/item/toy/crayon/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!"))
user.add_atom_colour(paint_color)
user.add_atom_colour(paint_color, ADMIN_COLOUR_PRIORITY)
return (BRUTELOSS|OXYLOSS)
/obj/item/toy/crayon/Initialize(mapload)
@@ -211,11 +211,18 @@
drawtype = pick(all_drawables)
AddElement(/datum/element/venue_price, FOOD_PRICE_EXOTIC)
if(edible)
AddComponent(/datum/component/edible, bite_consumption = (charges / 5), after_eat = CALLBACK(src, PROC_REF(after_eat)))
if(can_change_colour)
AddComponent(/datum/component/palette, AVAILABLE_SPRAYCAN_SPACE, paint_color)
refill()
/obj/item/toy/crayon/proc/after_eat(mob/user)
use_charges(user, 5, FALSE)
if(check_empty(user)) //Prevents division by zero
return
/obj/item/toy/crayon/set_painting_tool_color(chosen_color)
. = ..()
paint_color = chosen_color
@@ -261,9 +268,10 @@
if(charges == INFINITE_CHARGES)
return FALSE
if(!charges_left)
balloon_alert(user, "empty!")
if(self_contained)
qdel(src)
else
balloon_alert(user, "empty!")
return TRUE
if(charges_left < amount && requires_full)
balloon_alert(user, "not enough left!")
@@ -284,13 +292,6 @@
ui = new(user, src, "Crayon", name)
ui.open()
/obj/item/toy/crayon/spraycan/AltClick(mob/user)
if(!has_cap || !user.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS))
return
is_capped = !is_capped
balloon_alert(user, is_capped ? "capped" : "cap removed")
update_appearance()
/obj/item/toy/crayon/proc/staticDrawables()
. = list()
@@ -548,25 +549,6 @@
use_on(target, user, params)
/obj/item/toy/crayon/attack(mob/target, mob/user)
if(!edible || (target != user))
return ..()
if(iscarbon(target))
var/mob/living/carbon/crayon_eater = target
var/covered = ""
if(crayon_eater.is_mouth_covered(ITEM_SLOT_HEAD))
covered = "headgear"
else if(crayon_eater.is_mouth_covered(ITEM_SLOT_MASK))
covered = "mask"
if(covered)
balloon_alert(user, "remove your [covered]!")
return
to_chat(user, span_notice("You take a bite of the [src.name]. Delicious!"))
var/eaten = use_charges(user, 5, FALSE)
if(check_empty(user)) //Prevents division by zero
return
reagents.trans_to(target, eaten, volume_multiplier, transfered_by = user, methods = INGEST)
/obj/item/toy/crayon/get_writing_implement_details()
return list(
interaction_mode = MODE_WRITING,
@@ -578,7 +560,7 @@
/obj/item/toy/crayon/red
name = "red crayon"
icon_state = "crayonred"
paint_color = "#DA0000"
paint_color = COLOR_CRAYON_RED
crayon_color = "red"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/red/crayon = 1.5)
dye_color = DYE_RED
@@ -586,7 +568,7 @@
/obj/item/toy/crayon/orange
name = "orange crayon"
icon_state = "crayonorange"
paint_color = "#FF9300"
paint_color = COLOR_CRAYON_ORANGE
crayon_color = "orange"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/orange/crayon = 1.5)
dye_color = DYE_ORANGE
@@ -594,7 +576,7 @@
/obj/item/toy/crayon/yellow
name = "yellow crayon"
icon_state = "crayonyellow"
paint_color = "#FFF200"
paint_color = COLOR_CRAYON_YELLOW
crayon_color = "yellow"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/yellow/crayon = 1.5)
dye_color = DYE_YELLOW
@@ -602,7 +584,7 @@
/obj/item/toy/crayon/green
name = "green crayon"
icon_state = "crayongreen"
paint_color = "#A8E61D"
paint_color = COLOR_CRAYON_GREEN
crayon_color = "green"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/green/crayon = 1.5)
dye_color = DYE_GREEN
@@ -610,7 +592,7 @@
/obj/item/toy/crayon/blue
name = "blue crayon"
icon_state = "crayonblue"
paint_color = "#00B7EF"
paint_color = COLOR_CRAYON_BLUE
crayon_color = "blue"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/blue/crayon = 1.5)
dye_color = DYE_BLUE
@@ -618,7 +600,7 @@
/obj/item/toy/crayon/purple
name = "purple crayon"
icon_state = "crayonpurple"
paint_color = "#DA00FF"
paint_color = COLOR_CRAYON_PURPLE
crayon_color = "purple"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/purple/crayon = 1.5)
dye_color = DYE_PURPLE
@@ -626,7 +608,7 @@
/obj/item/toy/crayon/black
name = "black crayon"
icon_state = "crayonblack"
paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black.
paint_color = COLOR_CRAYON_BLACK
crayon_color = "black"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/black/crayon = 1.5)
dye_color = DYE_BLACK
@@ -634,7 +616,7 @@
/obj/item/toy/crayon/white
name = "white crayon"
icon_state = "crayonwhite"
paint_color = "#FFFFFF"
paint_color = COLOR_WHITE
crayon_color = "white"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/white/crayon = 1.5)
dye_color = DYE_WHITE
@@ -643,7 +625,7 @@
name = "mime crayon"
icon_state = "crayonmime"
desc = "A very sad-looking crayon."
paint_color = "#FFFFFF"
paint_color = COLOR_WHITE
crayon_color = "mime"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/invisible = 1.5)
charges = INFINITE_CHARGES
@@ -652,7 +634,7 @@
/obj/item/toy/crayon/rainbow
name = "rainbow crayon"
icon_state = "crayonrainbow"
paint_color = "#FFF000"
paint_color = COLOR_CRAYON_RAINBOW
crayon_color = "rainbow"
reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent = 1.5)
drawtype = RANDOM_ANY // just the default starter.
@@ -677,7 +659,12 @@
/obj/item/storage/crayons/Initialize(mapload)
. = ..()
create_storage(canhold = list(/obj/item/toy/crayon))
atom_storage.set_holdable(list(/obj/item/toy/crayon),
list(
/obj/item/toy/crayon/spraycan,
/obj/item/toy/crayon/mime,
/obj/item/toy/crayon/rainbow,
))
/obj/item/storage/crayons/PopulateContents()
new /obj/item/toy/crayon/red(src)
@@ -694,22 +681,6 @@
for(var/obj/item/toy/crayon/crayon in contents)
. += mutable_appearance('icons/obj/art/crayons.dmi', crayon.crayon_color)
/obj/item/storage/crayons/attackby(obj/item/attacked_by, mob/user, params)
if(!istype(attacked_by, /obj/item/toy/crayon))
return ..()
if(istype(attacked_by, /obj/item/toy/crayon/spraycan))
balloon_alert(user, "not a crayon!")
return
var/obj/item/toy/crayon/crayon = attacked_by
switch(crayon.crayon_color)
if("mime")
balloon_alert(user, "crayon doesn't belong!")
return
if("rainbow")
balloon_alert(user, "crayon is too powerful!")
return
return ..()
/obj/item/storage/crayons/attack_self(mob/user)
. = ..()
if(contents.len > 0)
@@ -902,6 +873,13 @@
return SECONDARY_ATTACK_CONTINUE_CHAIN
/obj/item/toy/crayon/spraycan/AltClick(mob/user)
if(!has_cap || !user.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS))
return
is_capped = !is_capped
balloon_alert(user, is_capped ? "capped" : "cap removed")
update_appearance()
/obj/item/toy/crayon/spraycan/attackby_storage_insert(datum/storage, atom/storage_holder, mob/user)
return is_capped