mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 21:17:44 +01:00
[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:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user