mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Organ Growing Kit | Coroner Cytology Cargo Content (1/2) (#92108)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
This commit is contained in:
co-authored by
MrMelbert
SmArtKar
parent
fc240dc1d1
commit
43fc75facb
@@ -68,6 +68,12 @@
|
||||
var/failing_desc = "has decayed for too long, and has turned a sickly color. It probably won't work without repairs."
|
||||
/// Assoc list of alternate zones where this can organ be slotted to organ slot for that zone
|
||||
var/list/valid_zones = null
|
||||
/// The cell line we can spawn on us
|
||||
var/cell_line = null
|
||||
/// The minimum cells we can spawn
|
||||
var/cells_minimum = 0
|
||||
/// The maximum cells we can spawn
|
||||
var/cells_maximum = 0
|
||||
|
||||
// Players can look at prefs before atoms SS init, and without this
|
||||
// they would not be able to see external organs, such as moth wings.
|
||||
@@ -90,6 +96,10 @@ INITIALIZE_IMMEDIATE(/obj/item/organ)
|
||||
|
||||
if(bodypart_overlay)
|
||||
setup_bodypart_overlay()
|
||||
|
||||
if(cell_line && (organ_flags & ORGAN_ORGANIC))
|
||||
AddElement(/datum/element/swabable, cell_line, cell_line_amount = rand(cells_minimum, cells_maximum))
|
||||
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/organ/Destroy()
|
||||
|
||||
@@ -21,6 +21,10 @@
|
||||
// Love is stored in the heart.
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue = 5, /datum/reagent/love = 2.5)
|
||||
|
||||
cell_line = CELL_LINE_ORGAN_HEART
|
||||
cells_minimum = 1
|
||||
cells_maximum = 2
|
||||
|
||||
// Heart attack code is in code/modules/mob/living/carbon/human/life.dm
|
||||
|
||||
/// Whether the heart is currently beating.
|
||||
@@ -335,3 +339,69 @@
|
||||
beat_noise = "the power of the podperson" // makes sense
|
||||
foodtype_flags = PODPERSON_ORGAN_FOODTYPES
|
||||
color = COLOR_LIME
|
||||
|
||||
/// An improved version of the organic heart, with more health and more "keeping you alive" potential
|
||||
/obj/item/organ/heart/evolved
|
||||
name = "evolved heart"
|
||||
desc = "It beats ever strong."
|
||||
icon_state = "heart-evolved-on"
|
||||
base_icon_state = "heart-evolved"
|
||||
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD * 1.2
|
||||
|
||||
/// Chance to heal per on_life
|
||||
var/healing_probability = 10
|
||||
/// Base healing we receive per tick at 0 damage and for standard versions
|
||||
var/base_healing = 1
|
||||
|
||||
/obj/item/organ/heart/evolved/on_life(seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
|
||||
if(prob(healing_probability * seconds_per_tick))
|
||||
var/damage_to_heal = base_healing * ((maxHealth - damage) / initial(maxHealth)) * seconds_per_tick
|
||||
owner.heal_overall_damage(damage_to_heal, damage_to_heal, required_bodytype = BODYTYPE_ORGANIC)
|
||||
|
||||
if(owner.stat == HARD_CRIT && !owner.has_reagent(/datum/reagent/medicine/atropine, 5))
|
||||
owner.reagents.add_reagent(/datum/reagent/medicine/atropine, 1 * seconds_per_tick)
|
||||
|
||||
/// A weaker evolved heart, but can block magic in exchange for our organs health!
|
||||
/obj/item/organ/heart/evolved/sacred
|
||||
name = "sacred heart"
|
||||
desc = "Your foul magics stand no chance against the power of LOVE!!!"
|
||||
|
||||
icon_state = "heart-sacred-on"
|
||||
base_icon_state = "heart-sacred"
|
||||
|
||||
healing_probability = 5
|
||||
base_healing = 0.5
|
||||
|
||||
// How much damage each magic block deals to us
|
||||
var/damage_per_block = 50
|
||||
|
||||
/obj/item/organ/heart/evolved/sacred/on_life(seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
|
||||
if(IS_CULTIST(owner))
|
||||
owner.reagents.add_reagent(/datum/reagent/water/holywater, 5 * seconds_per_tick)
|
||||
|
||||
/obj/item/organ/heart/evolved/sacred/on_mob_insert(mob/living/carbon/receiver, special, movement_flags)
|
||||
. = ..()
|
||||
|
||||
receiver.AddComponent(/datum/component/anti_magic, block_magic = CALLBACK(src, PROC_REF(on_blocked)), check_blocking = CALLBACK(src, PROC_REF(check_block)))
|
||||
|
||||
/obj/item/organ/heart/evolved/sacred/on_mob_remove(mob/living/carbon/organ_owner, special, movement_flags)
|
||||
. = ..()
|
||||
|
||||
qdel(organ_owner.GetComponent(/datum/component/anti_magic))
|
||||
|
||||
/// When we blocked damage, do PAIN on us
|
||||
/obj/item/organ/heart/evolved/sacred/proc/on_blocked()
|
||||
apply_organ_damage(damage_per_block)
|
||||
owner.vomit(VOMIT_CATEGORY_BLOOD)
|
||||
playsound(owner, 'sound/effects/health/slowbeat.ogg', 80)
|
||||
|
||||
/// We don't block magic if it would kill our heart
|
||||
/obj/item/organ/heart/evolved/sacred/proc/check_block()
|
||||
if(maxHealth - damage <= damage_per_block)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
food_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue = 5, /datum/reagent/iron = 5)
|
||||
grind_results = list(/datum/reagent/consumable/nutriment/peptides = 5)
|
||||
|
||||
cell_line = CELL_LINE_ORGAN_LIVER
|
||||
cells_minimum = 1
|
||||
cells_maximum = 2
|
||||
|
||||
/// Affects how much damage the liver takes from alcohol
|
||||
var/alcohol_tolerance = ALCOHOL_RATE
|
||||
/// The maximum volume of toxins the liver will ignore
|
||||
@@ -328,6 +332,60 @@
|
||||
organ_owner.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM * seconds_per_tick)
|
||||
return COMSIG_MOB_STOP_REAGENT_TICK
|
||||
|
||||
/obj/item/organ/liver/evolved
|
||||
name = "evolved liver"
|
||||
desc = "A more robust liver, better at everything."
|
||||
|
||||
icon_state = "evolved-liver"
|
||||
|
||||
alcohol_tolerance = ALCOHOL_RATE * 0.5
|
||||
maxHealth = 1.2 * STANDARD_ORGAN_THRESHOLD
|
||||
toxTolerance = 6 //can shrug off up to 6u of toxins
|
||||
liver_resistance = 1.5 * LIVER_DEFAULT_TOX_RESISTANCE
|
||||
|
||||
/obj/item/organ/liver/bloody
|
||||
name = "leaky liver"
|
||||
desc = "An extra spongy liver, only slightly better than a normal liver, but with an increased ability to replenish blood."
|
||||
|
||||
icon_state = "leaky-liver"
|
||||
|
||||
maxHealth = 1.1 * STANDARD_ORGAN_THRESHOLD
|
||||
alcohol_tolerance = ALCOHOL_RATE * 0.8
|
||||
toxTolerance = LIVER_DEFAULT_TOX_TOLERANCE + 1
|
||||
liver_resistance = 1.1 * LIVER_DEFAULT_TOX_RESISTANCE
|
||||
|
||||
/obj/item/organ/liver/bloody/on_life(seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
|
||||
if(owner.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
owner.blood_volume += 4 * seconds_per_tick
|
||||
|
||||
/// Convert all non-alcoholic drinks into alcohol
|
||||
/obj/item/organ/liver/distillery
|
||||
name = "alcoholics delight"
|
||||
desc = "The perfect liver, distilling non-alcoholic reagents into alcohol whenever possible."
|
||||
|
||||
icon_state = "liver-distillery"
|
||||
|
||||
organ_traits = list(TRAIT_ALCOHOL_TOLERANCE)
|
||||
|
||||
alcohol_tolerance = ALCOHOL_RATE * 0.1
|
||||
|
||||
/// Volume that is converted per second
|
||||
var/ethanol_conversion = 0.2
|
||||
/// What to convert stuff into
|
||||
var/convert_into = /datum/reagent/consumable/ethanol
|
||||
|
||||
/obj/item/organ/liver/distillery/on_life(seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
|
||||
for(var/datum/reagent/reagent as anything in owner.reagents.reagent_list)
|
||||
// Already alcohol
|
||||
if(istype(reagent, convert_into))
|
||||
continue
|
||||
|
||||
owner.reagents.convert_reagent(reagent.type, convert_into, ethanol_conversion)
|
||||
|
||||
#undef LIVER_DEFAULT_TOX_TOLERANCE
|
||||
#undef LIVER_DEFAULT_TOX_RESISTANCE
|
||||
#undef LIVER_FAILURE_STAGE_SECONDS
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
low_threshold_cleared = span_info("You can breathe normally again.")
|
||||
high_threshold_cleared = span_info("The constriction around your chest loosens as your breathing calms down.")
|
||||
|
||||
cell_line = CELL_LINE_ORGAN_LUNGS
|
||||
cells_minimum = 1
|
||||
cells_maximum = 2
|
||||
|
||||
var/failed = FALSE
|
||||
var/operated = FALSE //whether we can still have our damages fixed through surgery
|
||||
|
||||
@@ -1077,6 +1081,17 @@
|
||||
foodtype_flags = PODPERSON_ORGAN_FOODTYPES
|
||||
color = COLOR_LIME
|
||||
|
||||
/obj/item/organ/lungs/evolved
|
||||
name = "evolved lungs"
|
||||
desc = "A pair of lungs, with an organic filtering system and a stronger musculature."
|
||||
|
||||
icon_state = "lungs-evolved"
|
||||
|
||||
safe_plasma_max = 8
|
||||
safe_co2_max = 8
|
||||
maxHealth = 1.2 * STANDARD_ORGAN_THRESHOLD
|
||||
safe_oxygen_min = 8
|
||||
|
||||
#undef BREATH_RELATIONSHIP_INITIAL_GAS
|
||||
#undef BREATH_RELATIONSHIP_CONVERT
|
||||
#undef BREATH_RELATIONSHIP_MULTIPLIER
|
||||
|
||||
@@ -24,6 +24,10 @@
|
||||
//This is a reagent user and needs more then the 10u from edible component
|
||||
reagent_vol = 1000
|
||||
|
||||
cell_line = CELL_LINE_ORGAN_STOMACH
|
||||
cells_minimum = 1
|
||||
cells_maximum = 2
|
||||
|
||||
///The rate that disgust decays
|
||||
var/disgust_metabolism = 1
|
||||
|
||||
@@ -565,4 +569,13 @@
|
||||
movement_type = PHASING
|
||||
organ_flags = parent_type::organ_flags | ORGAN_GHOST
|
||||
|
||||
/obj/item/organ/stomach/evolved
|
||||
name = "evolved stomach"
|
||||
desc = "It can draw nutrients from your food even harder!"
|
||||
icon_state = "stomach-evolved"
|
||||
|
||||
maxHealth = 1.2 * STANDARD_ORGAN_THRESHOLD
|
||||
disgust_metabolism = 2.5
|
||||
metabolism_efficiency = 0.08
|
||||
|
||||
#undef STOMACH_METABOLISM_CONSTANT
|
||||
|
||||
Reference in New Issue
Block a user