Files
Bubberstation/code/modules/mapfluff/ruins/spaceruin_code/meateor.dm
carlarctg cd030b0690 Adds 'Bloody Spreader' component that bloodies everything it touches (#78743)
## About The Pull Request

Adds 'Bloody Spreader' component that bloodies everything it touches!

For example inserting an item into it if it is a storage item. Or
entering it if it's a turf, or bumping onto it, or... you get the point,
hopefully.

Added this component to the MEAT backpack, meat slabs, bouncy castles,
meateor fluff, meateor heart, and the heretic sanguine blade.

Gave most of these the blood walk component as well, which spreads blood
if it's dragged around.

Meat slabs contain a limited amount of both components, eventually they
will 'dry out'.
## Why It's Good For The Game

Meat isn't meaty and squelchy enough, this will make it meatier. It also
makes the janitor suffer.
## Changelog
🆑
code: Adds 'Bloody Spreader' component that bloodies everything it
touches!
code: For example inserting an item into it if it is a storage item. Or
entering it if it's a turf, or bumping onto it, or... you get the point,
hopefully.
add: Added this component to the MEAT backpack, meat slabs, bouncy
castles, meateor fluff, meateor heart, and the heretic sanguine blade.
add: Gave most of these the blood walk component as well, which spreads
blood if it's dragged around.
add: Meat slabs contain a limited amount of both components, eventually
they will 'dry out'.
code: Added a signal for when an item is entered into storage.
/🆑
2023-10-19 21:03:09 +02:00

144 lines
5.5 KiB
Plaintext

/area/ruin/space/meateor
name = "\improper Organic Asteroid"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/obj/item/paper/fluff/ruins/meateor/letter
name = "letter"
default_raw_text = {"We offer our sincerest congratulations, to be chosen to take this journey is an honour and privilege afforded to few.
<br> While you are walking in the footsteps of the divine, don't forget about the rest of us back at the farm!
<br> <This letter has been signed by 15 people.>"}
/// Tiger cultist corpse but with an exit wound
/obj/effect/mob_spawn/corpse/human/tigercultist/perforated
/obj/effect/mob_spawn/corpse/human/tigercultist/perforated/special(mob/living/carbon/human/spawned_human)
. = ..()
var/obj/item/bodypart/chest/their_chest = spawned_human.get_bodypart(BODY_ZONE_CHEST)
if (!their_chest)
return
spawned_human.cause_wound_of_type_and_severity(WOUND_PIERCE, their_chest, WOUND_SEVERITY_CRITICAL)
/// A fun drink enjoyed by the tiger cooperative, might corrode your brain if you drink the whole bottle
/obj/item/reagent_containers/cup/glass/bottle/ritual_wine
name = "ritual wine"
desc = "A bottle filled with liquids of a dubious nature, often enjoyed by members of the Tiger Cooperative."
icon_state = "winebottle"
list_reagents = list(
/datum/reagent/drug/mushroomhallucinogen = 25,
/datum/reagent/consumable/ethanol/ritual_wine = 25,
/datum/reagent/medicine/changelinghaste = 20, // This metabolises very fast
/datum/reagent/drug/bath_salts = 5,
/datum/reagent/blood = 5,
/datum/reagent/toxin/leadacetate = 5,
/datum/reagent/medicine/omnizine = 5,
/datum/reagent/medicine/c2/penthrite = 5,
/datum/reagent/consumable/vinegar = 5,
)
drink_type = NONE
age_restricted = FALSE
/// Abstract holder object for shared behaviour
/obj/structure/meateor_fluff
icon = 'icons/mob/simple/meteor_heart.dmi'
anchored = TRUE
/obj/structure/meateor_fluff/Initialize(mapload)
. = ..()
AddComponent(/datum/component/bloody_spreader,\
blood_left = INFINITY,\
blood_dna = list("meaty DNA" = "MT-"),\
diseases = null,\
)
/obj/structure/meateor_fluff/play_attack_sound(damage_amount, damage_type, damage_flag)
switch(damage_type)
if(BRUTE)
if(damage_amount)
playsound(loc, 'sound/effects/attackblob.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE)
else
playsound(loc, 'sound/effects/meatslap.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE)
if(BURN)
playsound(loc, 'sound/effects/wounds/sizzle1.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE)
/// A sort of loot box for organs, cut it open and find a prize
/obj/structure/meateor_fluff/flesh_pod
name = "flesh pod"
desc = "A quivering pod of living meat. Something is pulsing inside."
icon_state = "flesh_pod"
max_integrity = 120
density = TRUE
/// Typepath of the organ to spawn when this is destroyed
var/stored_organ
/// Types of organ we can spawn
var/static/list/allowed_organs = list(
/obj/item/organ/internal/heart/gland/egg = 7,
/obj/item/organ/internal/heart/gland/plasma = 7,
/obj/item/organ/internal/alien/plasmavessel = 5,
/obj/item/organ/internal/heart/gland/chem = 5,
/obj/item/organ/internal/heart/gland/mindshock = 5,
/obj/item/organ/internal/heart/gland/spiderman = 5,
/obj/item/organ/internal/heart/gland/transform = 5,
/obj/item/organ/internal/heart/gland/slime = 4,
/obj/item/organ/internal/heart/gland/trauma = 4,
/obj/item/organ/internal/heart/carp = 3,
/obj/item/organ/internal/heart/rat = 3,
/obj/item/organ/internal/heart/gland/electric = 3,
/obj/item/organ/internal/monster_core/brimdust_sac = 3,
/obj/item/organ/internal/monster_core/regenerative_core = 3,
/obj/item/organ/internal/monster_core/rush_gland = 3,
/obj/item/organ/internal/tongue/carp = 3,
/obj/item/organ/internal/alien/acid = 2,
/obj/item/organ/internal/alien/resinspinner = 2,
/obj/item/organ/internal/eyes/night_vision/goliath = 2,
/obj/item/organ/internal/eyes/night_vision/rat = 2,
/obj/item/organ/internal/heart/gland/ventcrawling = 1,
)
/obj/structure/meateor_fluff/flesh_pod/Initialize(mapload)
. = ..()
stored_organ = pick_weight(allowed_organs)
/obj/structure/meateor_fluff/flesh_pod/attackby(obj/item/attacking_item, mob/user, params)
if (attacking_item.sharpness & SHARP_EDGED)
cut_open(user)
return
return ..()
/// Cut the pod open and destroy it
/obj/structure/meateor_fluff/flesh_pod/proc/cut_open(mob/user)
balloon_alert(user, "slicing...")
if (!do_after(user, 3 SECONDS, target = src))
return
take_damage(max_integrity)
/obj/structure/meateor_fluff/flesh_pod/atom_destruction(damage_flag)
new stored_organ(loc)
new /obj/effect/decal/cleanable/blood(loc)
new /obj/structure/meateor_fluff/flesh_pod_open(loc)
playsound(loc, 'sound/effects/wounds/blood3.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE)
return ..()
/obj/structure/meateor_fluff/flesh_pod_open
name = "flesh pod"
desc = "A pod of living meat, this one has been hollowed out."
icon_state = "flesh_pod_open"
max_integrity = 60
/obj/structure/meateor_fluff/flesh_pod_open/atom_destruction(damage_flag)
new /obj/effect/gibspawner/human(loc)
return ..()
/// Decorative fluff egg object
/obj/structure/meateor_fluff/abandoned_headcrab_egg
name = "meaty eggs"
desc = "A mass of fleshy, egg-shaped nodes."
icon_state = "eggs"
max_integrity = 15
/obj/structure/meateor_fluff/abandoned_headcrab_egg/atom_destruction(damage_flag)
new /obj/effect/decal/cleanable/xenoblood(loc)
playsound(loc, 'sound/effects/footstep/gib_step.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE)
return ..()