Vore Updates and merges

This commit is contained in:
Hawk_v3
2018-10-03 18:25:39 +01:00
1386 changed files with 634283 additions and 89661 deletions

View File

@@ -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

View File

@@ -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."

View File

@@ -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)

View File

@@ -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"]

View File

@@ -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"