[MIRROR] Adds drawing chalk outlines on dead mobs, white crayons are now called sticks of chalk (#29449)

* Adds drawing chalk outlines on dead mobs, white crayons are now called sticks of chalk (#85918)

## About The Pull Request

![image](https://github.com/user-attachments/assets/1c698b33-3cd9-477c-b7a0-4a1ebb009122)
*The Miami Mutilator is at large once again. Thank god we have such
hardboiled detectives as Manny Pardo on the case.*

This pull request allows for players to use white crayons, which have
now been renamed to sticks of chalk, to generate outlines of dead or
"dead" bodies found throughout the station in an attempt to let
detectives actually set up crime scenes as opposed to, more typically,
just causing them.

Players will attempt to draw a chalk outline if the target is a mob and
the mob is dead (or fake-dead), using a single charge of the
crayon/chalk. Also, adds a quick macro so that we can get the proper
left/right orientation of the dead mob for reference.

## Why It's Good For The Game

Detective should have more thematic, simple ways to organize crime
scenes in-round, and what better way to do that then through existing
items and mechanics that we already have. Also, I was 100% shocked to
learn that these have always been white crayons as opposed to sticks of
chalk, which certainly seems odd. In essence, this change doesn't really
let you do anything "new", but just makes it easier and simpler to do so
in a regular round without nearly as much fiddling.

This mechanic exists exclusively within the afterattack of sticks of
chalk as opposed to all crayons for thematic reasons, but I'm not 100%
sold on that and it would be simple to move over to all crayons if
people feel strongly about that.

## Changelog
🆑
add: White crayons (Renamed to Sticks of Chalk) may now be used on dead
bodies to draw a body outline onto the ground easily.
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>

* Adds drawing chalk outlines on dead mobs, white crayons are now called sticks of chalk

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
This commit is contained in:
SkyratBot
2024-08-18 22:26:52 +07:00
committed by GitHub
co-authored by Zephyr ArcaneMusic
parent 9047542cb6
commit da3e4798f8
6 changed files with 37 additions and 6 deletions
+3
View File
@@ -4,3 +4,6 @@
/// Always does *deathgasp when they die
/// If unset mobs will only deathgasp if supplied a death sound or custom death message
#define ALWAYS_DEATHGASP (1<<1)
/// Getter for a mob/living's lying angle, otherwise protected
#define GET_LYING_ANGLE(mob) (UNLINT(mob.lying_angle))
+5 -2
View File
@@ -11,11 +11,14 @@
var/rotation = 0
var/paint_colour = COLOR_WHITE
/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null)
/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null, desc_override = null)
. = ..()
if(e_name)
name = e_name
desc = "A [name] vandalizing the station."
if(desc_override)
desc = "[desc_override]"
else
desc = "A [name] vandalizing the station."
if(alt_icon)
icon = alt_icon
if(type)
+26 -1
View File
@@ -645,13 +645,38 @@
dye_color = DYE_BLACK
/obj/item/toy/crayon/white
name = "white crayon"
name = "stick of chalk"
desc = "A stark-white stick of chalk."
icon_state = "crayonwhite"
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
/obj/item/toy/crayon/white/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
/// Wherein, we draw a chalk body outline vaguely around the dead or "dead" mob
if(!ishuman(interacting_with) || user.combat_mode)
return ..()
var/mob/living/carbon/human/pwned_human = interacting_with
if(!(pwned_human.stat == DEAD || HAS_TRAIT(pwned_human, TRAIT_FAKEDEATH)))
balloon_alert_to_viewers("FEEDING TIME")
return ..()
balloon_alert_to_viewers("drawing outline...")
if(!do_after(user, DRAW_TIME, target = pwned_human, max_interact_count = 4))
return NONE
if(!use_charges(user, 1))
return NONE
var/decal_rotation = GET_LYING_ANGLE(pwned_human) - 90
var/obj/effect/decal/cleanable/crayon/chalk_line = new(get_turf(pwned_human), paint_color, "body", "chalk outline", decal_rotation, null, "A vaguely [pwned_human] shaped outline of a body.")
to_chat(user, span_notice("You draw a chalk outline around [pwned_human]."))
chalk_line.pixel_y = (pwned_human.pixel_y + pwned_human.pixel_z) + rand(-2, 2)
chalk_line.pixel_x = (pwned_human.pixel_x + pwned_human.pixel_w) + rand(-1, 1)
return ITEM_INTERACT_SUCCESS
/obj/item/toy/crayon/mime
name = "mime crayon"
icon_state = "crayonmime"
@@ -136,7 +136,7 @@
/datum/heretic_knowledge/limited_amount/concierge_rite // item that creates 3 max at a time heretic only barriers, probably should limit to 1 only, holy people can also pass
name = "Concierge's Rite"
desc = "Allows you to transmute a white crayon, a wooden plank, and a multitool to create a Labyrinth Handbook. \
desc = "Allows you to transmute a stick of chalk, a wooden plank, and a multitool to create a Labyrinth Handbook. \
It can materialize a barricade at range that only you and people resistant to magic can pass. 3 uses."
gain_text = "The Concierge scribbled my name into the Handbook. \"Welcome to your new home, fellow Steward.\""
required_atoms = list(
+1 -1
View File
@@ -90,7 +90,7 @@
/datum/supply_pack/costumes_toys/knucklebones
name = "Knucklebones Game Crate"
desc = "A fun dice game definitely not invented by a cult. Consult your local chaplain regarding \
approved religious activity. Contains eighteen d6, one white crayon, and instructions on how to play."
approved religious activity. Contains eighteen d6, one stick of chalk, and instructions on how to play."
cost = CARGO_CRATE_VALUE * 2
contains = list(/obj/item/dice/d6 = 18,
/obj/item/paper/guides/knucklebone,
+1 -1
View File
@@ -36,7 +36,7 @@
/datum/supply_pack/security/forensics
name = "Forensics Crate"
desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentials™. \
Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, \
Contains a forensics scanner, six evidence bags, camera, tape recorder, stick of chalk, \
and of course, a fedora."
cost = CARGO_CRATE_VALUE * 2.5
access_view = ACCESS_MORGUE