mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-21 03:56:47 +01:00
Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into posibrains
This commit is contained in:
@@ -214,7 +214,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
//Transfers blood from reagents to vessel, respecting blood types compatability.
|
||||
/mob/living/carbon/human/inject_blood(var/datum/reagent/blood/injected, var/amount)
|
||||
|
||||
if(species && species.flags & NO_BLOOD)
|
||||
if(species.flags & NO_BLOOD)
|
||||
reagents.add_reagent("blood", amount, injected.data)
|
||||
reagents.update_total()
|
||||
return
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
//CORTICAL BORER ORGANS.
|
||||
/obj/item/organ/borer/process()
|
||||
|
||||
// Borer husks regenerate health, feel no pain, and are resistant to stuns and brainloss.
|
||||
for(var/chem in list("tricordrazine","tramadol","hyperzine","alkysine"))
|
||||
if(owner.reagents.get_reagent_amount(chem) < 3)
|
||||
owner.reagents.add_reagent(chem, 5)
|
||||
|
||||
// They're also super gross and ooze ichor.
|
||||
if(prob(5))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in H.vessel.reagent_list
|
||||
blood_splatter(H,B,1)
|
||||
var/obj/effect/decal/cleanable/blood/splatter/goo = locate() in get_turf(owner)
|
||||
if(goo)
|
||||
goo.name = "husk ichor"
|
||||
goo.desc = "It's thick and stinks of decay."
|
||||
goo.basecolor = "#412464"
|
||||
goo.update_icon()
|
||||
|
||||
/obj/item/organ/borer
|
||||
name = "cortical borer"
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "borer"
|
||||
organ_tag = "brain"
|
||||
desc = "A disgusting space slug."
|
||||
parent_organ = "head"
|
||||
vital = 1
|
||||
|
||||
/obj/item/organ/borer/removed(var/mob/living/user)
|
||||
|
||||
..()
|
||||
|
||||
var/mob/living/simple_animal/borer/B = owner.has_brain_worms()
|
||||
if(B)
|
||||
B.leave_host()
|
||||
B.ckey = owner.ckey
|
||||
|
||||
spawn(0)
|
||||
qdel(src)
|
||||
|
||||
//VOX ORGANS.
|
||||
/obj/item/organ/stack
|
||||
name = "cortical stack"
|
||||
parent_organ = "head"
|
||||
robotic = 2
|
||||
vital = 1
|
||||
var/backup_time = 0
|
||||
var/datum/mind/backup
|
||||
|
||||
/obj/item/organ/stack/process()
|
||||
if(owner && owner.stat != DEAD && !is_broken())
|
||||
backup_time = world.time
|
||||
if(owner.mind) backup = owner.mind
|
||||
|
||||
/obj/item/organ/stack/vox
|
||||
|
||||
/obj/item/organ/stack/vox/stack
|
||||
|
||||
/obj/item/organ/stack
|
||||
name = "cortical stack"
|
||||
icon_state = "brain-prosthetic"
|
||||
organ_tag = "stack"
|
||||
robotic = 2
|
||||
|
||||
/obj/item/organ/stack/vox
|
||||
name = "vox cortical stack"
|
||||
@@ -220,31 +220,17 @@ var/list/organ_cache = list()
|
||||
min_broken_damage = 35
|
||||
|
||||
/obj/item/organ/emp_act(severity)
|
||||
switch(robotic)
|
||||
if(0)
|
||||
if(!(status & ORGAN_ROBOT))
|
||||
return
|
||||
switch (severity)
|
||||
if (1.0)
|
||||
take_damage(0,20)
|
||||
return
|
||||
if(1)
|
||||
switch (severity)
|
||||
if (1.0)
|
||||
take_damage(20,0)
|
||||
return
|
||||
if (2.0)
|
||||
take_damage(7,0)
|
||||
return
|
||||
if(3.0)
|
||||
take_damage(3,0)
|
||||
return
|
||||
if(2)
|
||||
switch (severity)
|
||||
if (1.0)
|
||||
take_damage(40,0)
|
||||
return
|
||||
if (2.0)
|
||||
take_damage(15,0)
|
||||
return
|
||||
if(3.0)
|
||||
take_damage(10,0)
|
||||
return
|
||||
if (2.0)
|
||||
take_damage(0,7)
|
||||
return
|
||||
if(3.0)
|
||||
take_damage(0,3)
|
||||
|
||||
/obj/item/organ/proc/removed(var/mob/living/user)
|
||||
|
||||
|
||||
@@ -141,20 +141,11 @@
|
||||
/obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
|
||||
if((brute <= 0) && (burn <= 0))
|
||||
return 0
|
||||
|
||||
if(status & ORGAN_DESTROYED)
|
||||
return 0
|
||||
if(status & ORGAN_ROBOT )
|
||||
|
||||
var/brmod = 0.66
|
||||
var/bumod = 0.66
|
||||
|
||||
if(istype(owner,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(H.species && H.species.flags & IS_SYNTHETIC)
|
||||
brmod = H.species.brute_mod
|
||||
bumod = H.species.burn_mod
|
||||
|
||||
brute *= brmod //~2/3 damage for ROBOLIMBS
|
||||
burn *= bumod //~2/3 damage for ROBOLIMBS
|
||||
|
||||
@@ -322,10 +313,14 @@ This function completely restores a damaged organ to perfect condition.
|
||||
var/datum/wound/W = pick(compatible_wounds)
|
||||
W.open_wound(damage)
|
||||
if(prob(25))
|
||||
//maybe have a separate message for BRUISE type damage?
|
||||
owner.visible_message("\red The wound on [owner.name]'s [name] widens with a nasty ripping noise.",\
|
||||
"\red The wound on your [name] widens with a nasty ripping noise.",\
|
||||
"You hear a nasty ripping noise, as if flesh is being torn apart.")
|
||||
if(status & ORGAN_ROBOT)
|
||||
owner.visible_message("\red The damage to [owner.name]'s [name] worsens.",\
|
||||
"\red The damage to your [name] worsens.",\
|
||||
"You hear the screech of abused metal.")
|
||||
else
|
||||
owner.visible_message("\red The wound on [owner.name]'s [name] widens with a nasty ripping noise.",\
|
||||
"\red The wound on your [name] widens with a nasty ripping noise.",\
|
||||
"You hear a nasty ripping noise, as if flesh is being torn apart.")
|
||||
return
|
||||
|
||||
//Creating wound
|
||||
@@ -354,7 +349,7 @@ This function completely restores a damaged organ to perfect condition.
|
||||
|
||||
//Determines if we even need to process this organ.
|
||||
/obj/item/organ/external/proc/need_process()
|
||||
if(status && status != ORGAN_ROBOT) // If it's robotic, that's fine it will have a status.
|
||||
if(status & (ORGAN_CUT_AWAY|ORGAN_GAUZED|ORGAN_BLEEDING|ORGAN_BROKEN|ORGAN_DESTROYED|ORGAN_SPLINTED|ORGAN_DEAD|ORGAN_MUTATED))
|
||||
return 1
|
||||
if(brute_dam || burn_dam)
|
||||
return 1
|
||||
@@ -981,165 +976,3 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(6 to INFINITY)
|
||||
flavor_text += "a ton of [wound]\s"
|
||||
return english_list(flavor_text)
|
||||
/****************************************************
|
||||
ORGAN DEFINES
|
||||
****************************************************/
|
||||
|
||||
/obj/item/organ/external/chest
|
||||
name = "upper body"
|
||||
limb_name = "chest"
|
||||
icon_name = "torso"
|
||||
health = 100
|
||||
min_broken_damage = 35
|
||||
body_part = UPPER_TORSO
|
||||
vital = 1
|
||||
amputation_point = "spine"
|
||||
joint = "neck"
|
||||
dislocated = -1
|
||||
gendered_icon = 1
|
||||
cannot_amputate = 1
|
||||
parent_organ = null
|
||||
encased = "ribcage"
|
||||
|
||||
/obj/item/organ/external/groin
|
||||
name = "lower body"
|
||||
limb_name = "groin"
|
||||
icon_name = "groin"
|
||||
health = 100
|
||||
min_broken_damage = 35
|
||||
body_part = LOWER_TORSO
|
||||
vital = 1
|
||||
parent_organ = "chest"
|
||||
amputation_point = "lumbar"
|
||||
joint = "hip"
|
||||
dislocated = -1
|
||||
gendered_icon = 1
|
||||
|
||||
/obj/item/organ/external/arm
|
||||
limb_name = "l_arm"
|
||||
name = "left arm"
|
||||
icon_name = "l_arm"
|
||||
health = 50
|
||||
min_broken_damage = 30
|
||||
body_part = ARM_LEFT
|
||||
parent_organ = "chest"
|
||||
joint = "left elbow"
|
||||
amputation_point = "left shoulder"
|
||||
can_grasp = 1
|
||||
|
||||
/obj/item/organ/external/arm/right
|
||||
limb_name = "r_arm"
|
||||
name = "right arm"
|
||||
icon_name = "r_arm"
|
||||
body_part = ARM_RIGHT
|
||||
joint = "right elbow"
|
||||
amputation_point = "right shoulder"
|
||||
|
||||
/obj/item/organ/external/leg
|
||||
limb_name = "l_leg"
|
||||
name = "left leg"
|
||||
icon_name = "l_leg"
|
||||
health = 50
|
||||
min_broken_damage = 30
|
||||
body_part = LEG_LEFT
|
||||
icon_position = LEFT
|
||||
parent_organ = "groin"
|
||||
joint = "left knee"
|
||||
amputation_point = "left hip"
|
||||
can_stand = 1
|
||||
|
||||
/obj/item/organ/external/leg/right
|
||||
limb_name = "r_leg"
|
||||
name = "right leg"
|
||||
icon_name = "r_leg"
|
||||
body_part = LEG_RIGHT
|
||||
icon_position = RIGHT
|
||||
joint = "right knee"
|
||||
amputation_point = "right hip"
|
||||
|
||||
/obj/item/organ/external/foot
|
||||
limb_name = "l_foot"
|
||||
name = "left foot"
|
||||
icon_name = "l_foot"
|
||||
health = 30
|
||||
min_broken_damage = 15
|
||||
body_part = FOOT_LEFT
|
||||
icon_position = LEFT
|
||||
parent_organ = "l_leg"
|
||||
joint = "left ankle"
|
||||
amputation_point = "left ankle"
|
||||
can_stand = 1
|
||||
|
||||
/obj/item/organ/external/foot/removed()
|
||||
if(owner) owner.u_equip(owner.shoes)
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/foot/right
|
||||
limb_name = "r_foot"
|
||||
name = "right foot"
|
||||
icon_name = "r_foot"
|
||||
body_part = FOOT_RIGHT
|
||||
icon_position = RIGHT
|
||||
parent_organ = "r_leg"
|
||||
joint = "right ankle"
|
||||
amputation_point = "right ankle"
|
||||
|
||||
/obj/item/organ/external/hand
|
||||
limb_name = "l_hand"
|
||||
name = "left hand"
|
||||
icon_name = "l_hand"
|
||||
health = 30
|
||||
min_broken_damage = 15
|
||||
body_part = HAND_LEFT
|
||||
parent_organ = "l_arm"
|
||||
joint = "left wrist"
|
||||
amputation_point = "left wrist"
|
||||
can_grasp = 1
|
||||
|
||||
/obj/item/organ/external/hand/removed()
|
||||
owner.u_equip(owner.gloves)
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/hand/right
|
||||
limb_name = "r_hand"
|
||||
name = "right hand"
|
||||
icon_name = "r_hand"
|
||||
body_part = HAND_RIGHT
|
||||
parent_organ = "r_arm"
|
||||
joint = "right wrist"
|
||||
amputation_point = "right wrist"
|
||||
|
||||
/obj/item/organ/external/head
|
||||
limb_name = "head"
|
||||
icon_name = "head"
|
||||
name = "head"
|
||||
health = 75
|
||||
min_broken_damage = 35
|
||||
body_part = HEAD
|
||||
vital = 1
|
||||
parent_organ = "chest"
|
||||
joint = "jaw"
|
||||
amputation_point = "neck"
|
||||
gendered_icon = 1
|
||||
encased = "skull"
|
||||
|
||||
/obj/item/organ/external/head/removed()
|
||||
if(owner)
|
||||
name = "[owner.real_name]'s head"
|
||||
owner.u_equip(owner.glasses)
|
||||
owner.u_equip(owner.head)
|
||||
owner.u_equip(owner.l_ear)
|
||||
owner.u_equip(owner.r_ear)
|
||||
owner.u_equip(owner.wear_mask)
|
||||
spawn(1)
|
||||
owner.update_hair()
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
|
||||
..(brute, burn, sharp, edge, used_weapon, forbidden_limbs)
|
||||
if (!disfigured)
|
||||
if (brute_dam > 40)
|
||||
if (prob(50))
|
||||
disfigure("brute")
|
||||
if (burn_dam > 40)
|
||||
disfigure("burn")
|
||||
|
||||
@@ -99,7 +99,7 @@ var/global/list/limb_icon_cache = list()
|
||||
|
||||
if(skeletal)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else if ((status & ORGAN_ROBOT) && !(species && species.flags & IS_SYNTHETIC))
|
||||
else if (status & ORGAN_ROBOT)
|
||||
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
|
||||
else
|
||||
if (status & ORGAN_MUTATED)
|
||||
|
||||
@@ -36,3 +36,9 @@ var/global/datum/robolimb/basic_robolimb
|
||||
company = "Xion Manufacturing Group"
|
||||
desc = "This limb has a minimalist black and red casing."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/xion.dmi'
|
||||
|
||||
/datum/robolimb/ipc
|
||||
company = "Morpheus Cyberkinetics"
|
||||
desc = "This limb is simple and functional; no effort has been made to make it look human."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/ipc.dmi'
|
||||
unavailable_at_chargen = 1
|
||||
|
||||
@@ -196,189 +196,3 @@
|
||||
|
||||
/obj/item/organ/diona/node/removed()
|
||||
return
|
||||
|
||||
//CORTICAL BORER ORGANS.
|
||||
/obj/item/organ/borer
|
||||
name = "cortical borer"
|
||||
parent_organ = "head"
|
||||
vital = 1
|
||||
|
||||
/obj/item/organ/borer/process()
|
||||
|
||||
// Borer husks regenerate health, feel no pain, and are resistant to stuns and brainloss.
|
||||
for(var/chem in list("tricordrazine","tramadol","hyperzine","alkysine"))
|
||||
if(owner.reagents.get_reagent_amount(chem) < 3)
|
||||
owner.reagents.add_reagent(chem, 5)
|
||||
|
||||
// They're also super gross and ooze ichor.
|
||||
if(prob(5))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in H.vessel.reagent_list
|
||||
blood_splatter(H,B,1)
|
||||
var/obj/effect/decal/cleanable/blood/splatter/goo = locate() in get_turf(owner)
|
||||
if(goo)
|
||||
goo.name = "husk ichor"
|
||||
goo.desc = "It's thick and stinks of decay."
|
||||
goo.basecolor = "#412464"
|
||||
goo.update_icon()
|
||||
|
||||
/obj/item/organ/borer
|
||||
name = "cortical borer"
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "borer"
|
||||
organ_tag = "brain"
|
||||
desc = "A disgusting space slug."
|
||||
|
||||
/obj/item/organ/borer/removed(var/mob/living/user)
|
||||
|
||||
..()
|
||||
|
||||
var/mob/living/simple_animal/borer/B = owner.has_brain_worms()
|
||||
if(B)
|
||||
B.leave_host()
|
||||
B.ckey = owner.ckey
|
||||
|
||||
spawn(0)
|
||||
qdel(src)
|
||||
|
||||
//XENOMORPH ORGANS
|
||||
/obj/item/organ/xenos/eggsac
|
||||
name = "egg sac"
|
||||
parent_organ = "groin"
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel
|
||||
name = "plasma vessel"
|
||||
parent_organ = "chest"
|
||||
var/stored_plasma = 0
|
||||
var/max_plasma = 500
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel/queen
|
||||
name = "bloated plasma vessel"
|
||||
stored_plasma = 200
|
||||
max_plasma = 500
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel/sentinel
|
||||
stored_plasma = 100
|
||||
max_plasma = 250
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel/hunter
|
||||
name = "tiny plasma vessel"
|
||||
stored_plasma = 100
|
||||
max_plasma = 150
|
||||
|
||||
/obj/item/organ/xenos/acidgland
|
||||
name = "acid gland"
|
||||
parent_organ = "head"
|
||||
|
||||
/obj/item/organ/xenos/hivenode
|
||||
name = "hive node"
|
||||
parent_organ = "chest"
|
||||
|
||||
/obj/item/organ/xenos/resinspinner
|
||||
name = "resin spinner"
|
||||
parent_organ = "head"
|
||||
|
||||
/obj/item/organ/xenos
|
||||
name = "xeno organ"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
desc = "It smells like an accident in a chemical factory."
|
||||
|
||||
/obj/item/organ/xenos/eggsac
|
||||
name = "egg sac"
|
||||
icon_state = "xgibmid1"
|
||||
organ_tag = "egg sac"
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel
|
||||
name = "plasma vessel"
|
||||
icon_state = "xgibdown1"
|
||||
organ_tag = "plasma vessel"
|
||||
|
||||
/obj/item/organ/xenos/acidgland
|
||||
name = "acid gland"
|
||||
icon_state = "xgibtorso"
|
||||
organ_tag = "acid gland"
|
||||
|
||||
/obj/item/organ/xenos/hivenode
|
||||
name = "hive node"
|
||||
icon_state = "xgibmid2"
|
||||
organ_tag = "hive node"
|
||||
|
||||
/obj/item/organ/xenos/resinspinner
|
||||
name = "hive node"
|
||||
icon_state = "xgibmid2"
|
||||
organ_tag = "resin spinner"
|
||||
|
||||
//VOX ORGANS.
|
||||
/obj/item/organ/stack
|
||||
name = "cortical stack"
|
||||
parent_organ = "head"
|
||||
robotic = 2
|
||||
vital = 1
|
||||
var/backup_time = 0
|
||||
var/datum/mind/backup
|
||||
|
||||
/obj/item/organ/stack/process()
|
||||
if(owner && owner.stat != 2 && !is_broken())
|
||||
backup_time = world.time
|
||||
if(owner.mind) backup = owner.mind
|
||||
|
||||
/obj/item/organ/stack/vox
|
||||
|
||||
/obj/item/organ/stack/vox/stack
|
||||
|
||||
/obj/item/organ/stack
|
||||
name = "cortical stack"
|
||||
icon_state = "brain-prosthetic"
|
||||
organ_tag = "stack"
|
||||
robotic = 2
|
||||
|
||||
/obj/item/organ/stack/vox
|
||||
name = "vox cortical stack"
|
||||
|
||||
// Slime limbs.
|
||||
/obj/item/organ/external/chest/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/groin/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/arm/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/arm/right/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/leg/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/leg/right/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/foot/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/foot/right/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/hand/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/hand/right/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/head/slime
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
@@ -0,0 +1,141 @@
|
||||
// IPC limbs.
|
||||
/obj/item/organ/external/head/ipc
|
||||
dislocated = -1
|
||||
can_intake_reagents = 0
|
||||
encased = null
|
||||
/obj/item/organ/external/head/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/chest/ipc
|
||||
dislocated = -1
|
||||
encased = null
|
||||
/obj/item/organ/external/chest/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/groin/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/groin/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/arm/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/arm/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/arm/right/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/arm/right/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/leg/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/leg/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/leg/right/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/leg/right/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/foot/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/foot/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/foot/right/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/foot/right/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/hand/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/hand/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/hand/right/ipc
|
||||
dislocated = -1
|
||||
/obj/item/organ/external/hand/right/ipc/New()
|
||||
robotize("Morpheus Cyberkinetics")
|
||||
..()
|
||||
|
||||
/obj/item/organ/cell
|
||||
name = "microbattery"
|
||||
desc = "A small, powerful cell for use in fully prosthetic bodies."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "scell"
|
||||
organ_tag = "cell"
|
||||
parent_organ = "chest"
|
||||
vital = 1
|
||||
|
||||
/obj/item/organ/cell/New()
|
||||
robotize()
|
||||
..()
|
||||
|
||||
/obj/item/organ/cell/replaced()
|
||||
..()
|
||||
// This is very ghetto way of rebooting an IPC. TODO better way.
|
||||
if(owner && owner.stat == DEAD)
|
||||
owner.stat = 0
|
||||
owner.visible_message("<span class='danger'>\The [owner] twitches visibly!</span>")
|
||||
|
||||
// Used for an MMI or posibrain being installed into a human.
|
||||
/obj/item/organ/mmi_holder
|
||||
name = "brain"
|
||||
organ_tag = "brain"
|
||||
parent_organ = "head"
|
||||
vital = 1
|
||||
var/obj/item/device/mmi/stored_mmi
|
||||
|
||||
/obj/item/organ/mmi_holder/proc/update_from_mmi()
|
||||
if(!stored_mmi)
|
||||
return
|
||||
name = stored_mmi.name
|
||||
desc = stored_mmi.desc
|
||||
icon = stored_mmi.icon
|
||||
icon_state = stored_mmi.icon_state
|
||||
|
||||
/obj/item/organ/mmi_holder/removed(var/mob/living/user)
|
||||
|
||||
if(stored_mmi)
|
||||
stored_mmi.loc = get_turf(src)
|
||||
if(owner.mind)
|
||||
owner.mind.transfer_to(stored_mmi.brainmob)
|
||||
..()
|
||||
|
||||
var/mob/living/holder_mob = loc
|
||||
if(istype(holder_mob))
|
||||
holder_mob.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/mmi_holder/New()
|
||||
..()
|
||||
// This is very ghetto way of rebooting an IPC. TODO better way.
|
||||
spawn(1)
|
||||
if(owner && owner.stat == DEAD)
|
||||
owner.stat = 0
|
||||
owner.visible_message("<span class='danger'>\The [owner] twitches visibly!</span>")
|
||||
|
||||
/obj/item/organ/mmi_holder/posibrain/New()
|
||||
robotize()
|
||||
stored_mmi = new /obj/item/device/mmi/digital/posibrain(src)
|
||||
..()
|
||||
spawn(1)
|
||||
if(owner)
|
||||
stored_mmi.name = "positronic brain ([owner.name])"
|
||||
stored_mmi.brainmob.real_name = owner.name
|
||||
stored_mmi.brainmob.name = stored_mmi.brainmob.real_name
|
||||
stored_mmi.icon_state = "posibrain-occupied"
|
||||
update_from_mmi()
|
||||
else
|
||||
stored_mmi.loc = get_turf(src)
|
||||
qdel(src)
|
||||
@@ -0,0 +1,163 @@
|
||||
/****************************************************
|
||||
ORGAN DEFINES
|
||||
****************************************************/
|
||||
|
||||
/obj/item/organ/external/chest
|
||||
name = "upper body"
|
||||
limb_name = "chest"
|
||||
icon_name = "torso"
|
||||
health = 100
|
||||
min_broken_damage = 35
|
||||
body_part = UPPER_TORSO
|
||||
vital = 1
|
||||
amputation_point = "spine"
|
||||
joint = "neck"
|
||||
dislocated = -1
|
||||
gendered_icon = 1
|
||||
cannot_amputate = 1
|
||||
parent_organ = null
|
||||
encased = "ribcage"
|
||||
|
||||
/obj/item/organ/external/groin
|
||||
name = "lower body"
|
||||
limb_name = "groin"
|
||||
icon_name = "groin"
|
||||
health = 100
|
||||
min_broken_damage = 35
|
||||
body_part = LOWER_TORSO
|
||||
vital = 1
|
||||
parent_organ = "chest"
|
||||
amputation_point = "lumbar"
|
||||
joint = "hip"
|
||||
dislocated = -1
|
||||
gendered_icon = 1
|
||||
|
||||
/obj/item/organ/external/arm
|
||||
limb_name = "l_arm"
|
||||
name = "left arm"
|
||||
icon_name = "l_arm"
|
||||
health = 50
|
||||
min_broken_damage = 30
|
||||
body_part = ARM_LEFT
|
||||
parent_organ = "chest"
|
||||
joint = "left elbow"
|
||||
amputation_point = "left shoulder"
|
||||
can_grasp = 1
|
||||
|
||||
/obj/item/organ/external/arm/right
|
||||
limb_name = "r_arm"
|
||||
name = "right arm"
|
||||
icon_name = "r_arm"
|
||||
body_part = ARM_RIGHT
|
||||
joint = "right elbow"
|
||||
amputation_point = "right shoulder"
|
||||
|
||||
/obj/item/organ/external/leg
|
||||
limb_name = "l_leg"
|
||||
name = "left leg"
|
||||
icon_name = "l_leg"
|
||||
health = 50
|
||||
min_broken_damage = 30
|
||||
body_part = LEG_LEFT
|
||||
icon_position = LEFT
|
||||
parent_organ = "groin"
|
||||
joint = "left knee"
|
||||
amputation_point = "left hip"
|
||||
can_stand = 1
|
||||
|
||||
/obj/item/organ/external/leg/right
|
||||
limb_name = "r_leg"
|
||||
name = "right leg"
|
||||
icon_name = "r_leg"
|
||||
body_part = LEG_RIGHT
|
||||
icon_position = RIGHT
|
||||
joint = "right knee"
|
||||
amputation_point = "right hip"
|
||||
|
||||
/obj/item/organ/external/foot
|
||||
limb_name = "l_foot"
|
||||
name = "left foot"
|
||||
icon_name = "l_foot"
|
||||
health = 30
|
||||
min_broken_damage = 15
|
||||
body_part = FOOT_LEFT
|
||||
icon_position = LEFT
|
||||
parent_organ = "l_leg"
|
||||
joint = "left ankle"
|
||||
amputation_point = "left ankle"
|
||||
can_stand = 1
|
||||
|
||||
/obj/item/organ/external/foot/removed()
|
||||
if(owner) owner.u_equip(owner.shoes)
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/foot/right
|
||||
limb_name = "r_foot"
|
||||
name = "right foot"
|
||||
icon_name = "r_foot"
|
||||
body_part = FOOT_RIGHT
|
||||
icon_position = RIGHT
|
||||
parent_organ = "r_leg"
|
||||
joint = "right ankle"
|
||||
amputation_point = "right ankle"
|
||||
|
||||
/obj/item/organ/external/hand
|
||||
limb_name = "l_hand"
|
||||
name = "left hand"
|
||||
icon_name = "l_hand"
|
||||
health = 30
|
||||
min_broken_damage = 15
|
||||
body_part = HAND_LEFT
|
||||
parent_organ = "l_arm"
|
||||
joint = "left wrist"
|
||||
amputation_point = "left wrist"
|
||||
can_grasp = 1
|
||||
|
||||
/obj/item/organ/external/hand/removed()
|
||||
owner.u_equip(owner.gloves)
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/hand/right
|
||||
limb_name = "r_hand"
|
||||
name = "right hand"
|
||||
icon_name = "r_hand"
|
||||
body_part = HAND_RIGHT
|
||||
parent_organ = "r_arm"
|
||||
joint = "right wrist"
|
||||
amputation_point = "right wrist"
|
||||
|
||||
/obj/item/organ/external/head
|
||||
limb_name = "head"
|
||||
icon_name = "head"
|
||||
name = "head"
|
||||
health = 75
|
||||
min_broken_damage = 35
|
||||
body_part = HEAD
|
||||
vital = 1
|
||||
parent_organ = "chest"
|
||||
joint = "jaw"
|
||||
amputation_point = "neck"
|
||||
gendered_icon = 1
|
||||
encased = "skull"
|
||||
var/can_intake_reagents = 1
|
||||
|
||||
/obj/item/organ/external/head/removed()
|
||||
if(owner)
|
||||
name = "[owner.real_name]'s head"
|
||||
owner.u_equip(owner.glasses)
|
||||
owner.u_equip(owner.head)
|
||||
owner.u_equip(owner.l_ear)
|
||||
owner.u_equip(owner.r_ear)
|
||||
owner.u_equip(owner.wear_mask)
|
||||
spawn(1)
|
||||
owner.update_hair()
|
||||
..()
|
||||
|
||||
/obj/item/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
|
||||
..(brute, burn, sharp, edge, used_weapon, forbidden_limbs)
|
||||
if (!disfigured)
|
||||
if (brute_dam > 40)
|
||||
if (prob(50))
|
||||
disfigure("brute")
|
||||
if (burn_dam > 40)
|
||||
disfigure("burn")
|
||||
@@ -0,0 +1,44 @@
|
||||
// Slime limbs.
|
||||
/obj/item/organ/external/chest/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/groin/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/arm/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/arm/right/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/leg/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/leg/right/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/foot/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/foot/right/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/hand/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/hand/right/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
|
||||
/obj/item/organ/external/head/unbreakable
|
||||
cannot_break = 1
|
||||
dislocated = -1
|
||||
@@ -0,0 +1,52 @@
|
||||
//XENOMORPH ORGANS
|
||||
/obj/item/organ/xenos
|
||||
name = "xeno organ"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
desc = "It smells like an accident in a chemical factory."
|
||||
|
||||
/obj/item/organ/xenos/eggsac
|
||||
name = "egg sac"
|
||||
parent_organ = "groin"
|
||||
icon_state = "xgibmid1"
|
||||
organ_tag = "egg sac"
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel
|
||||
name = "plasma vessel"
|
||||
parent_organ = "chest"
|
||||
icon_state = "xgibdown1"
|
||||
organ_tag = "plasma vessel"
|
||||
var/stored_plasma = 0
|
||||
var/max_plasma = 500
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel/queen
|
||||
name = "bloated plasma vessel"
|
||||
stored_plasma = 200
|
||||
max_plasma = 500
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel/sentinel
|
||||
stored_plasma = 100
|
||||
max_plasma = 250
|
||||
|
||||
/obj/item/organ/xenos/plasmavessel/hunter
|
||||
name = "tiny plasma vessel"
|
||||
stored_plasma = 100
|
||||
max_plasma = 150
|
||||
|
||||
/obj/item/organ/xenos/acidgland
|
||||
name = "acid gland"
|
||||
parent_organ = "head"
|
||||
icon_state = "xgibtorso"
|
||||
organ_tag = "acid gland"
|
||||
|
||||
/obj/item/organ/xenos/hivenode
|
||||
name = "hive node"
|
||||
parent_organ = "chest"
|
||||
icon_state = "xgibmid2"
|
||||
organ_tag = "hive node"
|
||||
|
||||
/obj/item/organ/xenos/resinspinner
|
||||
name = "resin spinner"
|
||||
parent_organ = "head"
|
||||
icon_state = "xgibmid2"
|
||||
organ_tag = "resin spinner"
|
||||
|
||||
Reference in New Issue
Block a user