mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-29 03:22:12 +00:00
Vore Updates and merges
This commit is contained in:
@@ -160,17 +160,17 @@ var/const/CE_STABLE_THRESHOLD = 0.5
|
||||
for(var/datum/wound/W in temp.wounds)
|
||||
if(W.bleeding())
|
||||
if(W.damage_type == PIERCE) //gunshots and spear stabs bleed more
|
||||
blood_loss_divisor -= 5
|
||||
blood_loss_divisor = max(blood_loss_divisor - 5, 1)
|
||||
else if(W.damage_type == BRUISE) //bruises bleed less
|
||||
blood_loss_divisor += 5
|
||||
blood_loss_divisor = max(blood_loss_divisor + 5, 1)
|
||||
//the farther you get from those vital regions, the less you bleed
|
||||
//depending on how dangerous bleeding turns out to be, it might be better to only apply the reduction to hands and feet
|
||||
if((temp.organ_tag == BP_L_ARM) || (temp.organ_tag == BP_R_ARM) || (temp.organ_tag == BP_L_LEG) || (temp.organ_tag == BP_R_LEG))
|
||||
blood_loss_divisor += 5
|
||||
blood_loss_divisor = max(blood_loss_divisor + 5, 1)
|
||||
else if((temp.organ_tag == BP_L_HAND) || (temp.organ_tag == BP_R_HAND) || (temp.organ_tag == BP_L_FOOT) || (temp.organ_tag == BP_R_FOOT))
|
||||
blood_loss_divisor += 10
|
||||
blood_loss_divisor = max(blood_loss_divisor + 10, 1)
|
||||
if(CE_STABLE in chem_effects) //Inaprov slows bloodloss
|
||||
blood_loss_divisor += 10
|
||||
blood_loss_divisor = max(blood_loss_divisor + 10, 1)
|
||||
if(temp.applied_pressure)
|
||||
if(ishuman(temp.applied_pressure))
|
||||
var/mob/living/carbon/human/H = temp.applied_pressure
|
||||
@@ -198,6 +198,9 @@ var/const/CE_STABLE_THRESHOLD = 0.5
|
||||
if(!amt)
|
||||
return 0
|
||||
|
||||
if(amt > vessel.get_reagent_amount("blood"))
|
||||
amt = vessel.get_reagent_amount("blood") - 1 // Bit of a safety net; it's impossible to add blood if there's not blood already in the vessel.
|
||||
|
||||
return vessel.remove_reagent("blood",amt * (src.mob_size/MOB_MEDIUM))
|
||||
|
||||
/****************************************************
|
||||
@@ -208,7 +211,8 @@ var/const/CE_STABLE_THRESHOLD = 0.5
|
||||
/mob/living/carbon/proc/take_blood(obj/item/weapon/reagent_containers/container, var/amount)
|
||||
|
||||
var/datum/reagent/B = get_blood(container.reagents)
|
||||
if(!B) B = new /datum/reagent/blood
|
||||
if(!B)
|
||||
B = new /datum/reagent/blood
|
||||
B.holder = container
|
||||
B.volume += amount
|
||||
|
||||
|
||||
@@ -17,6 +17,21 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
attack_verb = list("attacked", "slapped", "whacked")
|
||||
var/clone_source = FALSE
|
||||
var/mob/living/carbon/brain/brainmob = null
|
||||
var/can_assist = TRUE
|
||||
|
||||
/obj/item/organ/internal/brain/proc/can_assist()
|
||||
return can_assist
|
||||
|
||||
/obj/item/organ/internal/brain/proc/implant_assist(var/targ_icon_state = null)
|
||||
name = "[owner.real_name]'s assisted [initial(name)]"
|
||||
if(targ_icon_state)
|
||||
icon_state = targ_icon_state
|
||||
if(dead_icon)
|
||||
dead_icon = "[targ_icon_state]_dead"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]_assisted"
|
||||
if(dead_icon)
|
||||
dead_icon = "[initial(dead_icon)]_assisted"
|
||||
|
||||
/obj/item/organ/internal/brain/robotize()
|
||||
replace_self_with(/obj/item/organ/internal/mmi_holder/posibrain)
|
||||
@@ -55,7 +70,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
brainmob.client.screen.len = null //clear the hud
|
||||
|
||||
/obj/item/organ/internal/brain/Destroy()
|
||||
qdel_null(brainmob)
|
||||
QDEL_NULL(brainmob)
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/brain/proc/transfer_identity(var/mob/living/carbon/H)
|
||||
@@ -115,7 +130,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
target.key = brainmob.key
|
||||
..()
|
||||
|
||||
/obj/item/organ/internal/pariah_brain
|
||||
/obj/item/organ/internal/brain/pariah_brain
|
||||
name = "brain remnants"
|
||||
desc = "Did someone tread on this? It looks useless for cloning or cyborgification."
|
||||
organ_tag = "brain"
|
||||
@@ -123,18 +138,19 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "chitin"
|
||||
vital = 1
|
||||
can_assist = FALSE
|
||||
|
||||
/obj/item/organ/internal/brain/xeno
|
||||
name = "thinkpan"
|
||||
desc = "It looks kind of like an enormous wad of purple bubblegum."
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "chitin"
|
||||
can_assist = FALSE
|
||||
|
||||
/obj/item/organ/internal/brain/slime
|
||||
name = "slime core"
|
||||
desc = "A complex, organic knot of jelly and crystalline particles."
|
||||
icon = 'icons/mob/slimes.dmi'
|
||||
icon_state = "green slime extract"
|
||||
icon_state = "core"
|
||||
parent_organ = BP_TORSO
|
||||
clone_source = TRUE
|
||||
flags = OPENCONTAINER
|
||||
@@ -145,6 +161,11 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
/obj/item/organ/internal/brain/slime/New()
|
||||
..()
|
||||
create_reagents(50)
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15) //Match the core to the Promethean's starting color.
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = rgb(min(H.r_skin + 40, 255), min(H.g_skin + 40, 255), min(H.b_skin + 40, 255))
|
||||
|
||||
/obj/item/organ/internal/brain/slime/proc/reviveBody()
|
||||
var/datum/dna2/record/R = new /datum/dna2/record()
|
||||
@@ -239,6 +260,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
desc = "A tightly furled roll of paper, covered with indecipherable runes."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "scroll"
|
||||
can_assist = FALSE
|
||||
|
||||
/obj/item/organ/internal/brain/grey
|
||||
desc = "A piece of juicy meat found in a person's head. This one is strange."
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
|
||||
if(status & ORGAN_BROKEN && brute)
|
||||
jostle_bone(brute)
|
||||
if(organ_can_feel_pain() && prob(40) && !isbelly(owner.loc)) //VOREStation Edit
|
||||
if(organ_can_feel_pain() && prob(40) && !isbelly(owner.loc) && !istype(owner.loc, /obj/item/device/dogborg/sleeper)) //VOREStation Edit
|
||||
owner.emote("scream") //getting hit on broken hand hurts
|
||||
if(used_weapon)
|
||||
add_autopsy_data("[used_weapon]", brute + burn)
|
||||
@@ -1349,12 +1349,16 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
return english_list(flavor_text)
|
||||
|
||||
// Returns a list of the clothing (not glasses) that are covering this part
|
||||
/obj/item/organ/external/proc/get_covering_clothing()
|
||||
/obj/item/organ/external/proc/get_covering_clothing(var/target_covering) // target_covering checks for mouth/eye coverage
|
||||
var/list/covering_clothing = list()
|
||||
|
||||
if(!target_covering)
|
||||
target_covering = src.body_part
|
||||
|
||||
if(owner)
|
||||
var/list/protective_gear = list(owner.head, owner.wear_mask, owner.wear_suit, owner.w_uniform, owner.gloves, owner.shoes)
|
||||
var/list/protective_gear = list(owner.head, owner.wear_mask, owner.wear_suit, owner.w_uniform, owner.gloves, owner.shoes, owner.glasses)
|
||||
for(var/obj/item/clothing/gear in protective_gear)
|
||||
if(gear.body_parts_covered & src.body_part)
|
||||
if(gear.body_parts_covered & target_covering)
|
||||
covering_clothing |= gear
|
||||
if(LAZYLEN(gear.accessories))
|
||||
for(var/obj/item/clothing/accessory/bling in gear.accessories)
|
||||
|
||||
@@ -110,7 +110,7 @@ var/global/list/limb_icon_cache = list()
|
||||
res.add_overlay(facial_s)
|
||||
|
||||
//Head hair
|
||||
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
|
||||
if(owner.h_style)
|
||||
var/style = owner.h_style
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_list[style]
|
||||
if(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR))
|
||||
@@ -179,7 +179,6 @@ var/global/list/limb_icon_cache = list()
|
||||
if(model)
|
||||
icon_cache_key += "_model_[model]"
|
||||
apply_colouration(mob_icon)
|
||||
// VOREStation edit to enable markings on synths
|
||||
if(owner && owner.synth_markings)
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
|
||||
@@ -131,9 +131,47 @@
|
||||
icon_state = "posi"
|
||||
parent_organ = BP_TORSO
|
||||
|
||||
brain_type = /obj/item/device/mmi/digital/posibrain/nano
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/posibrain/nano/robotize()
|
||||
. = ..()
|
||||
icon_state = "posi1"
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/posibrain/nano/mechassist()
|
||||
. = ..()
|
||||
icon_state = "posi1"
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/posibrain/nano/update_from_mmi()
|
||||
..()
|
||||
. = ..()
|
||||
icon = initial(icon)
|
||||
icon_state = "posi1"
|
||||
stored_mmi.icon_state = "posi1"
|
||||
|
||||
stored_mmi.brainmob.languages = owner.languages
|
||||
|
||||
// The 'out on the ground' object, not the organ holder
|
||||
/obj/item/device/mmi/digital/posibrain/nano
|
||||
name = "protean posibrain"
|
||||
desc = "A more advanced version of the standard posibrain, typically found in protean bodies."
|
||||
icon = 'icons/mob/species/protean/protean.dmi'
|
||||
icon_state = "posi"
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/nano/initialize()
|
||||
. = ..()
|
||||
icon_state = "posi"
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/nano/request_player()
|
||||
icon_state = initial(icon_state)
|
||||
return //We don't do this stuff
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/nano/reset_search()
|
||||
icon_state = initial(icon_state)
|
||||
return //Don't do this either because of the above
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/nano/transfer_personality()
|
||||
. = ..()
|
||||
icon_state = "posi1"
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/nano/transfer_identity()
|
||||
. = ..()
|
||||
icon_state = "posi1"
|
||||
|
||||
Reference in New Issue
Block a user