mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-21 20:14:31 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris
# Conflicts: # .travis.yml # code/game/machinery/adv_med.dm # code/modules/mob/mob.dm
This commit is contained in:
@@ -50,6 +50,7 @@ var/list/organ_cache = list()
|
||||
max_damage = min_broken_damage * 2
|
||||
if(istype(holder))
|
||||
src.owner = holder
|
||||
src.w_class = max(src.w_class + mob_size_difference(holder.mob_size, MOB_MEDIUM), 1) //smaller mobs have smaller organs.
|
||||
species = all_species["Human"]
|
||||
if(holder.dna)
|
||||
dna = holder.dna.Clone()
|
||||
@@ -258,6 +259,9 @@ var/list/organ_cache = list()
|
||||
min_bruised_damage = 15
|
||||
min_broken_damage = 35
|
||||
|
||||
/obj/item/organ/proc/digitize() //Used to make the circuit-brain. On this level in the event more circuit-organs are added/tweaks are wanted.
|
||||
robotize()
|
||||
|
||||
/obj/item/organ/emp_act(severity)
|
||||
if(!(robotic >= ORGAN_ROBOT))
|
||||
return
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
var/cannot_gib // Impossible to gib, distinct from amputation.
|
||||
var/joint = "joint" // Descriptive string used in dislocation.
|
||||
var/amputation_point // Descriptive string used in amputation.
|
||||
var/dislocated = 0 // If you target a joint, you can dislocate the limb, causing temporary damage to the organ.
|
||||
var/dislocated = 0 // If you target a joint, you can dislocate the limb, impairing it's usefulness and causing pain
|
||||
var/encased // Needs to be opened with a saw to access the organs.
|
||||
|
||||
// Surgery vars.
|
||||
@@ -156,32 +156,38 @@
|
||||
/obj/item/organ/external/proc/is_dislocated()
|
||||
if(dislocated > 0)
|
||||
return 1
|
||||
if(parent)
|
||||
return parent.is_dislocated()
|
||||
if(is_parent_dislocated())
|
||||
return 1//if any parent is dislocated, we are considered dislocated as well
|
||||
return 0
|
||||
|
||||
/obj/item/organ/external/proc/dislocate(var/primary)
|
||||
if(dislocated != -1)
|
||||
if(primary)
|
||||
dislocated = 2
|
||||
else
|
||||
dislocated = 1
|
||||
owner.verbs |= /mob/living/carbon/human/proc/undislocate
|
||||
if(children && children.len)
|
||||
for(var/obj/item/organ/external/child in children)
|
||||
child.dislocate()
|
||||
/obj/item/organ/external/proc/is_parent_dislocated()
|
||||
var/obj/item/organ/external/O = parent
|
||||
while(O && O.dislocated != -1)
|
||||
if(O.dislocated == 1)
|
||||
return 1
|
||||
O = O.parent
|
||||
return 0
|
||||
|
||||
|
||||
/obj/item/organ/external/proc/dislocate()
|
||||
if(dislocated == -1)
|
||||
return
|
||||
|
||||
dislocated = 1
|
||||
if(owner)
|
||||
owner.verbs |= /mob/living/carbon/human/proc/undislocate
|
||||
|
||||
/obj/item/organ/external/proc/undislocate()
|
||||
if(dislocated != -1)
|
||||
dislocated = 0
|
||||
if(children && children.len)
|
||||
for(var/obj/item/organ/external/child in children)
|
||||
if(child.dislocated == 1)
|
||||
child.undislocate()
|
||||
if(dislocated == -1)
|
||||
return
|
||||
|
||||
dislocated = 0
|
||||
if(owner)
|
||||
owner.shock_stage += 20
|
||||
|
||||
//check to see if we still need the verb
|
||||
for(var/obj/item/organ/external/limb in owner.organs)
|
||||
if(limb.dislocated == 2)
|
||||
if(limb.dislocated == 1)
|
||||
return
|
||||
owner.verbs -= /mob/living/carbon/human/proc/undislocate
|
||||
|
||||
@@ -1085,7 +1091,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
return 0
|
||||
|
||||
/obj/item/organ/external/proc/is_usable()
|
||||
return !is_dislocated() && !(status & (ORGAN_MUTATED|ORGAN_DEAD))
|
||||
return !(status & (ORGAN_MUTATED|ORGAN_DEAD))
|
||||
|
||||
/obj/item/organ/external/proc/is_malfunctioning()
|
||||
return ((robotic >= ORGAN_ROBOT) && (brute_dam + burn_dam) >= 10 && prob(brute_dam + burn_dam))
|
||||
|
||||
@@ -43,6 +43,11 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
var/list/monitor_styles //If empty, the model of limbs offers a head compatible with monitors.
|
||||
var/parts = BP_ALL //Defines what parts said brand can replace on a body.
|
||||
|
||||
/datum/robolimb/nanotrasen
|
||||
company = "NanoTrasen"
|
||||
desc = "A simple but efficient robotic limb, created by NanoTrasen."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_main.dmi'
|
||||
|
||||
/datum/robolimb/bishop
|
||||
company = "Bishop"
|
||||
desc = "This limb has a white polymer casing with blue holo-displays."
|
||||
@@ -191,6 +196,9 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
|
||||
zenghu
|
||||
company = "Zeng-Hu"
|
||||
|
||||
nanotrasen
|
||||
company = "NanoTrasen"
|
||||
|
||||
/obj/item/weapon/disk/limb/New(var/newloc)
|
||||
..()
|
||||
if(company)
|
||||
|
||||
@@ -206,4 +206,5 @@
|
||||
amputation_point = "branch"
|
||||
joint = "structural ligament"
|
||||
dislocated = -1
|
||||
vital = 0
|
||||
vital = 0
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
@@ -85,9 +85,18 @@
|
||||
/obj/item/organ/internal/mmi_holder/posibrain
|
||||
name = "positronic brain interface"
|
||||
brain_type = /obj/item/device/mmi/digital/posibrain
|
||||
|
||||
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/posibrain/update_from_mmi()
|
||||
..()
|
||||
stored_mmi.icon_state = "posibrain-occupied"
|
||||
icon_state = stored_mmi.icon_state
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/robot
|
||||
name = "digital brain interface"
|
||||
brain_type = /obj/item/device/mmi/digital/robot
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/robot/update_from_mmi()
|
||||
..()
|
||||
stored_mmi.icon_state = "mainboard"
|
||||
icon_state = stored_mmi.icon_state
|
||||
@@ -2,6 +2,8 @@
|
||||
ORGAN DEFINES
|
||||
****************************************************/
|
||||
|
||||
//Make sure that w_class is set as if the parent mob was medium sized! This is because w_class is adjusted automatically for mob_size in New()
|
||||
|
||||
/obj/item/organ/external/chest
|
||||
name = "upper body"
|
||||
organ_tag = BP_TORSO
|
||||
@@ -148,6 +150,7 @@
|
||||
organ_tag = BP_HEAD
|
||||
icon_name = "head"
|
||||
name = "head"
|
||||
slot_flags = SLOT_BELT
|
||||
max_damage = 75
|
||||
min_broken_damage = 35
|
||||
w_class = 3
|
||||
|
||||
Reference in New Issue
Block a user