mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-24 20:46:29 +01:00
Merge branch 'virgoMaster' into virgoPull
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
|
||||
/obj/item/organ/internal/brain
|
||||
name = "brain"
|
||||
health = 400 //They need to live awhile longer than other organs. Is this even used by organ code anymore?
|
||||
@@ -135,12 +137,117 @@
|
||||
icon_state = "green slime extract"
|
||||
parent_organ = BP_TORSO
|
||||
clone_source = TRUE
|
||||
flags = OPENCONTAINER
|
||||
|
||||
/obj/item/organ/internal/brain/slime/is_open_container()
|
||||
return 1
|
||||
|
||||
/obj/item/organ/internal/brain/slime/New()
|
||||
..()
|
||||
create_reagents(50)
|
||||
|
||||
/obj/item/organ/internal/brain/slime/proc/reviveBody()
|
||||
var/datum/dna2/record/R = new /datum/dna2/record()
|
||||
R.dna = brainmob.dna
|
||||
R.ckey = brainmob.ckey
|
||||
R.id = copytext(md5(brainmob.real_name), 2, 6)
|
||||
R.name = R.dna.real_name
|
||||
R.types = DNA2_BUF_UI|DNA2_BUF_UE|DNA2_BUF_SE
|
||||
R.languages = brainmob.languages
|
||||
R.flavor = list()
|
||||
for(var/datum/modifier/mod in brainmob.modifiers)
|
||||
if(mod.flags & MODIFIER_GENETIC)
|
||||
R.genetic_modifiers.Add(mod.type)
|
||||
|
||||
var/datum/mind/clonemind = brainmob.mind
|
||||
|
||||
if(!istype(clonemind, /datum/mind)) //not a mind
|
||||
return 0
|
||||
if(clonemind.current && clonemind.current.stat != DEAD) //mind is associated with a non-dead body
|
||||
return 0
|
||||
if(clonemind.active) //somebody is using that mind
|
||||
if(ckey(clonemind.key) != R.ckey)
|
||||
return 0
|
||||
else
|
||||
for(var/mob/observer/dead/G in player_list)
|
||||
if(G.ckey == R.ckey)
|
||||
if(G.can_reenter_corpse)
|
||||
break
|
||||
else
|
||||
return 0
|
||||
|
||||
for(var/modifier_type in R.genetic_modifiers) //Can't be revived. Probably won't happen...?
|
||||
if(istype(modifier_type, /datum/modifier/no_clone))
|
||||
return 0
|
||||
|
||||
var/mob/living/carbon/human/H = new /mob/living/carbon/human(get_turf(src), R.dna.species)
|
||||
|
||||
if(!R.dna)
|
||||
H.dna = new /datum/dna()
|
||||
H.dna.real_name = H.real_name
|
||||
else
|
||||
H.dna = R.dna
|
||||
|
||||
H.UpdateAppearance()
|
||||
H.sync_organ_dna()
|
||||
if(!R.dna.real_name) //to prevent null names
|
||||
R.dna.real_name = "promethean ([rand(0,999)])"
|
||||
H.real_name = R.dna.real_name
|
||||
|
||||
H.nutrition = 260 //Enough to try to regenerate ONCE.
|
||||
H.adjustBruteLoss(40)
|
||||
H.adjustFireLoss(40)
|
||||
H.Paralyse(4)
|
||||
H.updatehealth()
|
||||
for(var/obj/item/organ/external/E in H.organs) //They've still gotta congeal, but it's faster than the clone sickness they'd normally get.
|
||||
if(E && E.organ_tag == BP_L_ARM || E.organ_tag == BP_R_ARM || E.organ_tag == BP_L_LEG || E.organ_tag == BP_R_LEG)
|
||||
E.removed()
|
||||
qdel(E)
|
||||
E = null
|
||||
H.regenerate_icons()
|
||||
clonemind.transfer_to(H)
|
||||
for(var/modifier_type in R.genetic_modifiers)
|
||||
H.add_modifier(modifier_type)
|
||||
|
||||
for(var/datum/language/L in R.languages)
|
||||
H.add_language(L.name)
|
||||
H.flavor_texts = R.flavor.Copy()
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
/datum/chemical_reaction/promethean_brain_revival
|
||||
name = "Promethean Revival"
|
||||
id = "prom_revival"
|
||||
result = null
|
||||
required_reagents = list("phoron" = 40)
|
||||
result_amount = 1
|
||||
|
||||
/datum/chemical_reaction/promethean_brain_revival/can_happen(var/datum/reagents/holder)
|
||||
if(holder.my_atom && istype(holder.my_atom, /obj/item/organ/internal/brain/slime))
|
||||
return ..()
|
||||
return FALSE
|
||||
|
||||
/datum/chemical_reaction/promethean_brain_revival/on_reaction(var/datum/reagents/holder)
|
||||
var/obj/item/organ/internal/brain/slime/brain = holder.my_atom
|
||||
if(brain.reviveBody())
|
||||
brain.visible_message("<span class='notice'>[brain] bubbles, surrounding itself with a rapidly expanding mass of slime!</span>")
|
||||
else
|
||||
brain.visible_message("<span class='warning'>[brain] shifts strangely, but falls still.</span>")
|
||||
|
||||
/obj/item/organ/internal/brain/golem
|
||||
name = "chem"
|
||||
desc = "A tightly furled roll of paper, covered with indecipherable runes."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "scroll"
|
||||
|
||||
/obj/item/organ/internal/brain/grey
|
||||
desc = "A piece of juicy meat found in a person's head. This one is strange."
|
||||
icon_state = "brain_grey"
|
||||
|
||||
/obj/item/organ/internal/brain/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -21,6 +21,17 @@
|
||||
..()
|
||||
robotize()
|
||||
|
||||
/obj/item/organ/internal/eyes/grey
|
||||
icon_state = "eyes_grey"
|
||||
|
||||
/obj/item/organ/internal/eyes/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/eyes/proc/change_eye_color()
|
||||
set name = "Change Eye Color"
|
||||
set desc = "Changes your robotic eye color instantly."
|
||||
|
||||
@@ -20,3 +20,15 @@
|
||||
if(prob(1))
|
||||
owner.custom_pain("A stabbing pain rolls through your chest!",1)
|
||||
owner.apply_damage(damage = 25, damagetype = HALLOSS, def_zone = parent_organ)
|
||||
|
||||
/obj/item/organ/internal/heart/grey
|
||||
icon_state = "heart_grey-on"
|
||||
dead_icon = "heart_grey-off"
|
||||
|
||||
/obj/item/organ/internal/heart/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -35,3 +35,14 @@
|
||||
owner.custom_pain("You feel extremely tired, like you can't move!",1)
|
||||
owner.m_intent = "walk"
|
||||
owner.hud_used.move_intent.icon_state = "walking"
|
||||
|
||||
/obj/item/organ/internal/kidneys/grey
|
||||
icon_state = "kidneys_grey"
|
||||
|
||||
/obj/item/organ/internal/kidneys/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -57,3 +57,14 @@
|
||||
if(prob(1) && owner.getToxLoss() < owner.getMaxHealth()*0.3)
|
||||
//owner << "" //Toxins provide their own messages for pain
|
||||
owner.adjustToxLoss(5) //Not realistic to PA but there are basically no 'real' liver infections
|
||||
|
||||
/obj/item/organ/internal/liver/grey
|
||||
icon_state = "liver_grey"
|
||||
|
||||
/obj/item/organ/internal/liver/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -39,3 +39,14 @@
|
||||
if(prob(1))
|
||||
owner.custom_pain("You suddenly feel short of breath and take a sharp, painful breath!",1)
|
||||
owner.adjustOxyLoss(30) //Look it's hard to simulate low O2 perfusion okay
|
||||
|
||||
/obj/item/organ/internal/lungs/grey
|
||||
icon_state = "lungs_grey"
|
||||
|
||||
/obj/item/organ/internal/lungs/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -27,6 +27,7 @@ var/list/organ_cache = list()
|
||||
var/min_bruised_damage = 10 // Damage before considered bruised
|
||||
var/min_broken_damage = 30 // Damage before becoming broken
|
||||
var/max_damage // Damage cap
|
||||
var/can_reject = 1 // Can this organ reject?
|
||||
var/rejecting // Is this organ already being rejected?
|
||||
var/preserved = 0 // If this is 1, prevents organ decay.
|
||||
|
||||
@@ -200,7 +201,7 @@ var/list/organ_cache = list()
|
||||
/obj/item/organ/proc/handle_rejection()
|
||||
// Process unsuitable transplants. TODO: consider some kind of
|
||||
// immunosuppressant that changes transplant data to make it match.
|
||||
if(dna)
|
||||
if(dna && can_reject)
|
||||
if(!rejecting)
|
||||
if(blood_incompatible(dna.b_type, owner.dna.b_type, species.name, owner.species.name)) //VOREStation Edit - Process species by name.
|
||||
rejecting = 1
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
var/brute_dam = 0 // Actual current brute damage.
|
||||
var/burn_dam = 0 // Actual current burn damage.
|
||||
var/last_dam = -1 // used in healing/processing calculations.
|
||||
var/spread_dam = 0
|
||||
|
||||
// Appearance vars.
|
||||
var/nonsolid // Snowflake warning, reee. Used for slime limbs.
|
||||
@@ -253,7 +254,7 @@
|
||||
//Continued damage to vital organs can kill you, and robot organs don't count towards total damage so no need to cap them.
|
||||
return (vital || (robotic >= ORGAN_ROBOT) || brute_dam + burn_dam + additional_damage < max_damage)
|
||||
|
||||
/obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
|
||||
/obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list(), permutation = 0)
|
||||
brute = round(brute * brute_mod, 0.1)
|
||||
burn = round(burn * burn_mod, 0.1)
|
||||
|
||||
@@ -280,6 +281,8 @@
|
||||
// If the limbs can break, make sure we don't exceed the maximum damage a limb can take before breaking
|
||||
// Non-vital organs are limited to max_damage. You can't kill someone by bludeonging their arm all the way to 200 -- you can
|
||||
// push them faster into paincrit though, as the additional damage is converted into shock.
|
||||
var/brute_overflow = 0
|
||||
var/burn_overflow = 0
|
||||
if(is_damageable(brute + burn) || !config.limbs_can_break)
|
||||
if(brute)
|
||||
if(can_cut)
|
||||
@@ -306,20 +309,22 @@
|
||||
createwound( CUT, min(brute,can_inflict) )
|
||||
else
|
||||
createwound( BRUISE, min(brute,can_inflict) )
|
||||
var/temp = can_inflict
|
||||
//How much mroe damage can we inflict
|
||||
can_inflict = max(0, can_inflict - brute)
|
||||
//How much more damage can we inflict
|
||||
brute_overflow = max(0, brute - can_inflict)
|
||||
//How much brute damage is left to inflict
|
||||
spillover += max(0, brute - temp)
|
||||
spillover += max(0, brute - can_inflict)
|
||||
|
||||
can_inflict = max_damage * config.organ_health_multiplier - (brute_dam + burn_dam) //Refresh the can_inflict var, so burn doesn't overload the limb if it is set to take both.
|
||||
|
||||
if (burn > 0 && can_inflict)
|
||||
//Inflict all burn damage we can
|
||||
createwound(BURN, min(burn,can_inflict))
|
||||
//How much burn damage is left to inflict
|
||||
spillover += max(0, burn - can_inflict)
|
||||
burn_overflow = max(0, burn - can_inflict)
|
||||
spillover += burn_overflow
|
||||
|
||||
//If there are still hurties to dispense
|
||||
if (spillover)
|
||||
//If there is pain to dispense.
|
||||
if(spillover)
|
||||
owner.shock_stage += spillover * config.organ_damage_spillover_multiplier
|
||||
|
||||
// sync the organ's damage with its wounds
|
||||
@@ -348,12 +353,19 @@
|
||||
|
||||
if(edge_eligible && brute >= max_damage / DROPLIMB_THRESHOLD_EDGE && prob(brute))
|
||||
droplimb(0, DROPLIMB_EDGE)
|
||||
else if(burn >= max_damage / DROPLIMB_THRESHOLD_DESTROY && prob(burn/3))
|
||||
else if((burn >= max_damage / DROPLIMB_THRESHOLD_DESTROY) || (nonsolid && burn >= 5 && (burn_dam + burn >= max_damage)) && prob(burn/3))
|
||||
droplimb(0, DROPLIMB_BURN)
|
||||
else if(brute >= max_damage / DROPLIMB_THRESHOLD_DESTROY && prob(brute))
|
||||
else if((brute >= max_damage / DROPLIMB_THRESHOLD_DESTROY && prob(brute)) || (nonsolid && brute >= 5 && (brute_dam + brute >= max_damage) && prob(brute/2)))
|
||||
droplimb(0, DROPLIMB_BLUNT)
|
||||
else if(brute >= max_damage / DROPLIMB_THRESHOLD_TEAROFF && prob(brute/3))
|
||||
droplimb(0, DROPLIMB_EDGE)
|
||||
else if(spread_dam && owner && parent && (brute_overflow || burn_overflow) && (brute_overflow >= 5 || burn_overflow >= 5) && !permutation) //No infinite damage loops.
|
||||
if(children && children.len)
|
||||
spawn()
|
||||
for(var/obj/item/organ/external/C in children)
|
||||
if(!C.is_stump())
|
||||
C.take_damage(brute_overflow / children.len / 3, burn_overflow / children.len / 3, 0, 0, null, forbidden_limbs, 1) //Splits the damage to each individual 'child', incase multiple exist.
|
||||
parent.take_damage(brute_overflow / 3, burn_overflow / 3, 0, 0, null, forbidden_limbs, 1)
|
||||
|
||||
return update_icon()
|
||||
|
||||
@@ -1050,6 +1062,8 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
var/obj/item/clothing/suit/space/suit = owner.wear_suit
|
||||
suit.handle_fracture(owner, src)
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/organ/external/proc/mend_fracture()
|
||||
if(robotic >= ORGAN_ROBOT)
|
||||
return 0 //ORGAN_BROKEN doesn't have the same meaning for robot limbs
|
||||
|
||||
@@ -57,6 +57,18 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
monitor_styles = standard_monitor_styles
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/unbranded_alt1
|
||||
company = "Unbranded - Protez"
|
||||
desc = "A simple robotic limb with retro design. Seems rather stiff."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/unbranded/unbranded_alt1.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/unbranded_alt2
|
||||
company = "Unbranded - Mantis Prosis"
|
||||
desc = "This limb has a casing of sleek black metal and repulsive insectile design."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/unbranded/unbranded_alt2.dmi'
|
||||
unavailable_to_build = 1
|
||||
|
||||
/datum/robolimb/nanotrasen
|
||||
company = "NanoTrasen"
|
||||
desc = "A simple but efficient robotic limb, created by NanoTrasen."
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
/obj/item/organ/external/chest/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/groin/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/arm/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/arm/right/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/leg/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/leg/right/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/foot/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/foot/right/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/hand/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/hand/right/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/head/indestructible
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
@@ -2,46 +2,57 @@
|
||||
nonsolid = 1
|
||||
max_damage = 50
|
||||
encased = 0
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/groin/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 30
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/arm/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/arm/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/leg/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/leg/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/foot/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/foot/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/hand/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/hand/right/unbreakable/slime
|
||||
nonsolid = 1
|
||||
max_damage = 5
|
||||
max_damage = 20
|
||||
spread_dam = 1
|
||||
|
||||
/obj/item/organ/external/head/unbreakable/slime //They don't need this anymore.
|
||||
nonsolid = 1
|
||||
cannot_gib = 0
|
||||
vital = 0
|
||||
max_damage = 5
|
||||
encased = 0
|
||||
max_damage = 30
|
||||
encased = 0
|
||||
spread_dam = 1
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/obj/item/organ/external/chest/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/groin/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/arm/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/arm/right/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/leg/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/leg/right/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/foot/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/foot/right/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/hand/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/hand/right/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
|
||||
/obj/item/organ/external/head/unseverable
|
||||
cannot_gib = 1
|
||||
cannot_amputate = 1
|
||||
@@ -1,23 +1,46 @@
|
||||
//XENOMORPH ORGANS
|
||||
/obj/item/organ/internal/xenos
|
||||
name = "xeno organ"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
desc = "It smells like an accident in a chemical factory."
|
||||
|
||||
/obj/item/organ/internal/xenos/eggsac
|
||||
name = "egg sac"
|
||||
parent_organ = BP_GROIN
|
||||
icon_state = "xgibmid1"
|
||||
icon_state = "sac"
|
||||
organ_tag = O_EGG
|
||||
|
||||
/obj/item/organ/internal/xenos/eggsac/grey
|
||||
icon_state = "sac_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/eggsac/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel
|
||||
name = "plasma vessel"
|
||||
parent_organ = BP_TORSO
|
||||
icon_state = "xgibdown1"
|
||||
icon_state = "plasma"
|
||||
organ_tag = O_PLASMA
|
||||
var/stored_plasma = 0
|
||||
var/max_plasma = 500
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel/grey
|
||||
icon_state = "plasma_grey"
|
||||
stored_plasma = 200
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel/queen
|
||||
name = "bloated plasma vessel"
|
||||
stored_plasma = 200
|
||||
@@ -35,17 +58,51 @@
|
||||
/obj/item/organ/internal/xenos/acidgland
|
||||
name = "acid gland"
|
||||
parent_organ = BP_HEAD
|
||||
icon_state = "xgibtorso"
|
||||
icon_state = "acidgland"
|
||||
organ_tag = O_ACID
|
||||
|
||||
/obj/item/organ/internal/xenos/acidgland/grey
|
||||
icon_state = "acidgland_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/acidgland/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/hivenode
|
||||
name = "hive node"
|
||||
parent_organ = BP_TORSO
|
||||
icon_state = "xgibmid2"
|
||||
icon_state = "xenode"
|
||||
organ_tag = O_HIVE
|
||||
|
||||
/obj/item/organ/internal/xenos/hivenode/grey
|
||||
icon_state = "xenode_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/hivenode/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/resinspinner
|
||||
name = "resin spinner"
|
||||
parent_organ = BP_HEAD
|
||||
icon_state = "xgibmid2"
|
||||
icon_state = "xenode"
|
||||
organ_tag = O_RESIN
|
||||
|
||||
|
||||
/obj/item/organ/internal/xenos/resinspinner/grey
|
||||
icon_state = "xenode_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/resinspinner/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
|
||||
Reference in New Issue
Block a user