Removes a bunch of organ booleans, organ flag cleanup. (#7786)

This commit is contained in:
Matt Atlas
2019-12-28 12:45:29 +01:00
committed by GitHub
parent 05d3ecefc9
commit 126c7ec1a8
13 changed files with 106 additions and 82 deletions

View File

@@ -28,7 +28,7 @@
#define FIRE_DAMAGE_MODIFIER 0.0215 // Higher values result in more external fire damage to the skin. (default 0.0215) #define FIRE_DAMAGE_MODIFIER 0.0215 // Higher values result in more external fire damage to the skin. (default 0.0215)
#define AIR_DAMAGE_MODIFIER 2.025 // More means less damage from hot air scalding lungs, less = more damage. (default 2.025) #define AIR_DAMAGE_MODIFIER 2.025 // More means less damage from hot air scalding lungs, less = more damage. (default 2.025)
// Organ defines. // Organ status defines.
#define ORGAN_CUT_AWAY (1<<0) #define ORGAN_CUT_AWAY (1<<0)
#define ORGAN_BLEEDING (1<<1) #define ORGAN_BLEEDING (1<<1)
#define ORGAN_BROKEN (1<<2) #define ORGAN_BROKEN (1<<2)
@@ -43,6 +43,14 @@
#define ORGAN_ARTERY_CUT (1<<11) #define ORGAN_ARTERY_CUT (1<<11)
#define ORGAN_TENDON_CUT (1<<12) #define ORGAN_TENDON_CUT (1<<12)
// Limb behaviour defines.
#define ORGAN_CAN_AMPUTATE (1<<0) //Can this organ be amputated?
#define ORGAN_CAN_BREAK (1<<1) //Can this organ break?
#define ORGAN_CAN_GRASP (1<<2) //Can this organ grasp things?
#define ORGAN_CAN_STAND (1<<3) //Can this organ allow you to stand?
#define ORGAN_CAN_MAIM (1<<4) //Can this organ be maimed?
#define ORGAN_HAS_TENDON (1<<5) //Does this organ have tendons?
#define DROPLIMB_EDGE 0 #define DROPLIMB_EDGE 0
#define DROPLIMB_BLUNT 1 #define DROPLIMB_BLUNT 1
#define DROPLIMB_BURN 2 #define DROPLIMB_BURN 2

View File

@@ -11,7 +11,6 @@
#define ACCEPTS_COOLER 512 // Can wear suit coolers and have them work without a suit. #define ACCEPTS_COOLER 512 // Can wear suit coolers and have them work without a suit.
#define NO_CHUBBY 1024 // Cannot be visibly fat from nutrition type. #define NO_CHUBBY 1024 // Cannot be visibly fat from nutrition type.
#define NO_ARTERIES 2048 // This species does not have arteries. #define NO_ARTERIES 2048 // This species does not have arteries.
#define NO_TENDONS 4096 // This species does not have tendons.
// unused: 0x8000(32768) - higher than this will overflow // unused: 0x8000(32768) - higher than this will overflow
// Base flags for IPCs. // Base flags for IPCs.

View File

@@ -135,7 +135,7 @@
return return
for (var/obj/item/organ/external/E in organs) for (var/obj/item/organ/external/E in organs)
if(!E || !E.can_grasp || (E.status & ORGAN_SPLINTED)) if(!E || !(E.limb_flags & ORGAN_CAN_GRASP) || (E.status & ORGAN_SPLINTED))
continue continue
if(E.is_broken() || E.is_dislocated()) if(E.is_broken() || E.is_dislocated())
@@ -151,7 +151,7 @@
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ") var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
emote("me", 1, "[(species.flags & NO_PAIN) ? "" : emote_scream ]drops what they were holding in their [E.name]!") emote("me", 1, "[(species.flags & NO_PAIN) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
else if(!(E.status & ORGAN_ROBOT) && CE_DROPITEM in chem_effects && prob(chem_effects[CE_DROPITEM])) else if(!(E.status & ORGAN_ROBOT) && CE_DROPITEM in chem_effects && prob(chem_effects[CE_DROPITEM]))
to_chat(src, span("warning", "Your [E.name] goes limp and unresponsive for a moment, dropping what it was holding!")) to_chat(src, span("warning", "Your [E.name] goes limp and unresponsive for a moment, dropping what it was holding!"))
emote("me", 1, "drops what they were holding in their [E.name]!") emote("me", 1, "drops what they were holding in their [E.name]!")

View File

@@ -77,7 +77,7 @@
body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_SKIN_PRESET appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_SKIN_PRESET
flags = NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP | NO_CHUBBY | NO_ARTERIES | NO_TENDONS flags = NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP | NO_CHUBBY | NO_ARTERIES
spawn_flags = CAN_JOIN | IS_WHITELISTED | NO_AGE_MINIMUM spawn_flags = CAN_JOIN | IS_WHITELISTED | NO_AGE_MINIMUM
character_color_presets = list("Default Bark" = "#000000", "Light Bark" = "#141414", "Brown Bark" = "#2b1d0e", "Green Bark" = "#001400") character_color_presets = list("Default Bark" = "#000000", "Light Bark" = "#141414", "Brown Bark" = "#2b1d0e", "Green Bark" = "#001400")

View File

@@ -88,7 +88,7 @@
var/mob/living/carbon/human/H = . var/mob/living/carbon/human/H = .
if(prob(poison_per_bite)) if(prob(poison_per_bite))
var/obj/item/organ/external/O = pick(H.organs) var/obj/item/organ/external/O = pick(H.organs)
if(!(O.status & (ORGAN_ROBOT|ORGAN_ADV_ROBOT)) && !O.cannot_amputate) if(!(O.status & (ORGAN_ROBOT|ORGAN_ADV_ROBOT)) && (O.limb_flags & ORGAN_CAN_AMPUTATE))
var/eggs = new /obj/effect/spider/eggcluster(O, src) var/eggs = new /obj/effect/spider/eggcluster(O, src)
O.implants += eggs O.implants += eggs
to_chat(H, "<span class='warning'>The [src] injects something into your [O.name]!</span>") to_chat(H, "<span class='warning'>The [src] injects something into your [O.name]!</span>")

View File

@@ -20,7 +20,7 @@
var/model var/model
var/damage_state = "00" var/damage_state = "00"
//Damage variables //Damage variables.
var/brute_mod = 1 var/brute_mod = 1
var/brute_dam = 0 // Actual current brute damage. var/brute_dam = 0 // Actual current brute damage.
var/brute_ratio = 0 // Ratio of current brute damage to max damage. var/brute_ratio = 0 // Ratio of current brute damage to max damage.
@@ -34,6 +34,9 @@
var/pain = 0 // How much the limb hurts. var/pain = 0 // How much the limb hurts.
var/pain_disability_threshold // Point at which a limb becomes unusable due to pain. var/pain_disability_threshold // Point at which a limb becomes unusable due to pain.
//Organ behaviour.
var/limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM
var/max_size = 0 var/max_size = 0
var/icon/mob_icon var/icon/mob_icon
var/gendered_icon = 0 var/gendered_icon = 0
@@ -41,8 +44,6 @@
var/limb_name var/limb_name
var/disfigured = 0 var/disfigured = 0
var/cannot_amputate
var/cannot_break
var/s_tone var/s_tone
var/skin_color var/skin_color
@@ -64,7 +65,6 @@
var/cavity = 0 var/cavity = 0
var/sabotaged = 0 // If a prosthetic limb is emagged, it will detonate when it fails. var/sabotaged = 0 // If a prosthetic limb is emagged, it will detonate when it fails.
var/encased // Needs to be opened with a saw to access the organs. var/encased // Needs to be opened with a saw to access the organs.
var/has_tendon = FALSE //Does this limb have a tendon?
var/joint = "joint" // Descriptive string used in dislocation. var/joint = "joint" // Descriptive string used in dislocation.
var/artery_name = "artery" //Name of the artery. Cartoid, etc. var/artery_name = "artery" //Name of the artery. Cartoid, etc.
var/tendon_name = "tendon" //Name of the limb's tendon. Achilles heel, etc. var/tendon_name = "tendon" //Name of the limb's tendon. Achilles heel, etc.
@@ -72,13 +72,10 @@
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, causing temporary damage to the organ.
var/wound_update_accuracy = 1 // how often wounds should be updated, a higher number means less often var/wound_update_accuracy = 1 // how often wounds should be updated, a higher number means less often
var/can_grasp //It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point
var/can_stand
var/body_hair var/body_hair
var/painted = 0 var/painted = 0
var/maim_bonus = 0.75 //For special projectile gibbing calculation, dubbed "maiming" var/maim_bonus = 0.75 //For special projectile gibbing calculation, dubbed "maiming"
var/can_be_maimed = TRUE //Can this limb be 'maimed'?
var/list/genetic_markings // Markings (body_markings) to apply to the icon var/list/genetic_markings // Markings (body_markings) to apply to the icon
var/list/temporary_markings // Same as above, but not preserved when cloning var/list/temporary_markings // Same as above, but not preserved when cloning
@@ -210,7 +207,7 @@
sync_colour_to_human(owner) sync_colour_to_human(owner)
if ((status & ORGAN_PLANT)) if ((status & ORGAN_PLANT))
cannot_break = 1 limb_flags &= ~ORGAN_CAN_BREAK
get_icon() get_icon()
@@ -378,7 +375,7 @@
/obj/item/organ/external/proc/handle_limb_gibbing(var/used_weapon,var/brute,var/burn) /obj/item/organ/external/proc/handle_limb_gibbing(var/used_weapon,var/brute,var/burn)
//If limb took enough damage, try to cut or tear it off //If limb took enough damage, try to cut or tear it off
if(owner && loc == owner && !is_stump()) if(owner && loc == owner && !is_stump())
if(!cannot_amputate && config.limbs_can_break) if((limb_flags & ORGAN_CAN_AMPUTATE) && config.limbs_can_break)
if((brute_dam + burn_dam) >= (max_damage * config.organ_health_multiplier)) if((brute_dam + burn_dam) >= (max_damage * config.organ_health_multiplier))
@@ -835,7 +832,7 @@ Note that amputating the affected organ does in fact remove the infection from t
//Handles dismemberment //Handles dismemberment
/obj/item/organ/external/proc/droplimb(var/clean, var/disintegrate = DROPLIMB_EDGE, var/ignore_children = null) /obj/item/organ/external/proc/droplimb(var/clean, var/disintegrate = DROPLIMB_EDGE, var/ignore_children = null)
if(cannot_amputate || !owner) if(!(limb_flags & ORGAN_CAN_AMPUTATE) || !owner)
return return
switch(disintegrate) switch(disintegrate)
@@ -1001,7 +998,7 @@ Note that amputating the affected organ does in fact remove the infection from t
/obj/item/organ/external/proc/fracture() /obj/item/organ/external/proc/fracture()
if(status & ORGAN_ROBOT) if(status & ORGAN_ROBOT)
return //ORGAN_BROKEN doesn't have the same meaning for robot limbs return //ORGAN_BROKEN doesn't have the same meaning for robot limbs
if((status & ORGAN_BROKEN) || cannot_break) if((status & ORGAN_BROKEN) || !(limb_flags & ORGAN_CAN_BREAK))
return return
if(owner) if(owner)
@@ -1056,7 +1053,7 @@ Note that amputating the affected organ does in fact remove the infection from t
burn_mod = R.burn_mod burn_mod = R.burn_mod
dislocated = -1 //TODO, make robotic limbs a separate type, remove snowflake dislocated = -1 //TODO, make robotic limbs a separate type, remove snowflake
cannot_break = 1 limb_flags &= ~ORGAN_CAN_BREAK
get_icon() get_icon()
unmutate() unmutate()
for (var/obj/item/organ/external/T in children) for (var/obj/item/organ/external/T in children)
@@ -1065,7 +1062,7 @@ Note that amputating the affected organ does in fact remove the infection from t
/obj/item/organ/external/mechassist() /obj/item/organ/external/mechassist()
..() ..()
cannot_break = 0 limb_flags |= ORGAN_CAN_BREAK
/obj/item/organ/external/proc/robotize_advanced() /obj/item/organ/external/proc/robotize_advanced()
status |= ORGAN_ADV_ROBOT status |= ORGAN_ADV_ROBOT
@@ -1275,7 +1272,7 @@ Note that amputating the affected organ does in fact remove the infection from t
return TRUE return TRUE
/obj/item/organ/external/proc/sever_tendon() /obj/item/organ/external/proc/sever_tendon()
if(!has_tendon || (status & ORGAN_ROBOT) || (status & ORGAN_TENDON_CUT) || species.flags & NO_TENDONS) if(!(limb_flags & ORGAN_HAS_TENDON) || (status & ORGAN_ROBOT) || (status & ORGAN_TENDON_CUT))
return FALSE return FALSE
else else
status |= ORGAN_TENDON_CUT status |= ORGAN_TENDON_CUT
@@ -1351,4 +1348,4 @@ Note that amputating the affected organ does in fact remove the infection from t
pain = max(0,min(max_damage,pain+amount)) pain = max(0,min(max_damage,pain+amount))
if(owner && ((amount > 15 && prob(20)) || (amount > 30 && prob(60)))) if(owner && ((amount > 15 && prob(20)) || (amount > 30 && prob(60))))
owner.emote("scream") owner.emote("scream")
return pain-last_pain return pain-last_pain

View File

@@ -2,7 +2,6 @@
name = "limb stump" name = "limb stump"
icon_name = "" icon_name = ""
dislocated = -1 dislocated = -1
can_be_maimed = FALSE
/obj/item/organ/external/stump/Initialize(mapload, var/internal, var/obj/item/organ/external/limb) /obj/item/organ/external/stump/Initialize(mapload, var/internal, var/obj/item/organ/external/limb)
if(istype(limb)) if(istype(limb))

View File

@@ -23,7 +23,7 @@
/obj/item/organ/external/diona /obj/item/organ/external/diona
name = "tendril" name = "tendril"
cannot_break = 1 limb_flags = 0
/obj/item/organ/external/chest/diona /obj/item/organ/external/chest/diona
name = "core trunk" name = "core trunk"
@@ -34,9 +34,8 @@
w_class = 5 w_class = 5
body_part = UPPER_TORSO body_part = UPPER_TORSO
vital = 1 vital = 1
cannot_amputate = 1
parent_organ = null parent_organ = null
cannot_break = 1 limb_flags = 0
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -50,7 +49,7 @@
w_class = 4 w_class = 4
body_part = LOWER_TORSO body_part = LOWER_TORSO
parent_organ = BP_CHEST parent_organ = BP_CHEST
cannot_break = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -64,8 +63,7 @@
w_class = 3 w_class = 3
body_part = ARM_LEFT body_part = ARM_LEFT
parent_organ = BP_CHEST parent_organ = BP_CHEST
can_grasp = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
cannot_break = 1
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -75,7 +73,7 @@
limb_name = "r_arm" limb_name = "r_arm"
icon_name = "r_arm" icon_name = "r_arm"
body_part = ARM_RIGHT body_part = ARM_RIGHT
cannot_break = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -90,8 +88,7 @@
body_part = LEG_LEFT body_part = LEG_LEFT
icon_position = LEFT icon_position = LEFT
parent_organ = BP_GROIN parent_organ = BP_GROIN
can_stand = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_STAND
cannot_break = 1
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -102,7 +99,7 @@
icon_name = "r_leg" icon_name = "r_leg"
body_part = LEG_RIGHT body_part = LEG_RIGHT
icon_position = RIGHT icon_position = RIGHT
cannot_break = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_STAND
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -117,8 +114,7 @@
body_part = FOOT_LEFT body_part = FOOT_LEFT
icon_position = LEFT icon_position = LEFT
parent_organ = BP_L_LEG parent_organ = BP_L_LEG
can_stand = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_STAND
cannot_break = 1
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -132,7 +128,7 @@
parent_organ = BP_R_LEG parent_organ = BP_R_LEG
joint = "right ankle" joint = "right ankle"
amputation_point = "right ankle" amputation_point = "right ankle"
cannot_break = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_STAND
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -146,8 +142,7 @@
w_class = 2 w_class = 2
body_part = HAND_LEFT body_part = HAND_LEFT
parent_organ = BP_L_ARM parent_organ = BP_L_ARM
can_grasp = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
cannot_break = 1
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -158,7 +153,7 @@
icon_name = "r_hand" icon_name = "r_hand"
body_part = HAND_RIGHT body_part = HAND_RIGHT
parent_organ = BP_R_ARM parent_organ = BP_R_ARM
cannot_break = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"
@@ -172,7 +167,7 @@
w_class = 3 w_class = 3
body_part = HEAD body_part = HEAD
parent_organ = BP_CHEST parent_organ = BP_CHEST
cannot_break = 1 limb_flags = ORGAN_CAN_MAIM | ORGAN_CAN_AMPUTATE
dislocated = -1 dislocated = -1
joint = "structural ligament" joint = "structural ligament"
amputation_point = "branch" amputation_point = "branch"

View File

@@ -16,10 +16,9 @@
artery_name = "internal thoracic artery" artery_name = "internal thoracic artery"
dislocated = -1 dislocated = -1
gendered_icon = 1 gendered_icon = 1
cannot_amputate = 1 limb_flags = ORGAN_CAN_BREAK
parent_organ = null parent_organ = null
encased = "ribcage" encased = "ribcage"
can_be_maimed = FALSE
/obj/item/organ/external/groin /obj/item/organ/external/groin
name = "lower body" name = "lower body"
@@ -47,11 +46,10 @@
body_part = ARM_LEFT body_part = ARM_LEFT
parent_organ = BP_CHEST parent_organ = BP_CHEST
joint = "left elbow" joint = "left elbow"
has_tendon = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_HAS_TENDON | ORGAN_CAN_GRASP
tendon_name = "palmaris longus tendon" tendon_name = "palmaris longus tendon"
artery_name = "basilic vein" artery_name = "basilic vein"
amputation_point = "left shoulder" amputation_point = "left shoulder"
can_grasp = 1
/obj/item/organ/external/arm/right /obj/item/organ/external/arm/right
limb_name = "r_arm" limb_name = "r_arm"
@@ -59,7 +57,6 @@
icon_name = "r_arm" icon_name = "r_arm"
body_part = ARM_RIGHT body_part = ARM_RIGHT
joint = "right elbow" joint = "right elbow"
has_tendon = TRUE
tendon_name = "cruciate ligament" tendon_name = "cruciate ligament"
artery_name = "brachial artery" artery_name = "brachial artery"
amputation_point = "right shoulder" amputation_point = "right shoulder"
@@ -75,11 +72,10 @@
icon_position = LEFT icon_position = LEFT
parent_organ = BP_GROIN parent_organ = BP_GROIN
joint = "left knee" joint = "left knee"
has_tendon = TRUE
tendon_name = "quadriceps tendon" tendon_name = "quadriceps tendon"
artery_name = "femoral artery" artery_name = "femoral artery"
amputation_point = "left hip" amputation_point = "left hip"
can_stand = 1 limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_HAS_TENDON
/obj/item/organ/external/leg/right /obj/item/organ/external/leg/right
limb_name = "r_leg" limb_name = "r_leg"
@@ -102,7 +98,7 @@
parent_organ = BP_L_LEG parent_organ = BP_L_LEG
joint = "left ankle" joint = "left ankle"
amputation_point = "left ankle" amputation_point = "left ankle"
can_stand = 1 limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_CAN_STAND
maim_bonus = 1 maim_bonus = 1
/obj/item/organ/external/foot/removed() /obj/item/organ/external/foot/removed()
@@ -130,10 +126,9 @@
body_part = HAND_LEFT body_part = HAND_LEFT
parent_organ = BP_L_ARM parent_organ = BP_L_ARM
joint = "left wrist" joint = "left wrist"
has_tendon = TRUE
tendon_name = "carpal ligament" tendon_name = "carpal ligament"
amputation_point = "left wrist" amputation_point = "left wrist"
can_grasp = 1 limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_CAN_GRASP | ORGAN_HAS_TENDON
maim_bonus = 1 maim_bonus = 1
/obj/item/organ/external/hand/removed() /obj/item/organ/external/hand/removed()

View File

@@ -1,54 +1,44 @@
// Slime limbs. // Slime limbs.
/obj/item/organ/external/chest/unbreakable /obj/item/organ/external/chest/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
limb_flags = 0
/obj/item/organ/external/groin/unbreakable /obj/item/organ/external/groin/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE
/obj/item/organ/external/arm/unbreakable /obj/item/organ/external/arm/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
/obj/item/organ/external/arm/right/unbreakable /obj/item/organ/external/arm/right/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
/obj/item/organ/external/leg/unbreakable /obj/item/organ/external/leg/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE
/obj/item/organ/external/leg/right/unbreakable /obj/item/organ/external/leg/right/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE
/obj/item/organ/external/foot/unbreakable /obj/item/organ/external/foot/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_STAND
/obj/item/organ/external/foot/right/unbreakable /obj/item/organ/external/foot/right/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_STAND
/obj/item/organ/external/hand/unbreakable /obj/item/organ/external/hand/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
/obj/item/organ/external/hand/right/unbreakable /obj/item/organ/external/hand/right/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_GRASP
/obj/item/organ/external/head/unbreakable /obj/item/organ/external/head/unbreakable
cannot_break = 1
dislocated = -1 dislocated = -1
can_be_maimed = FALSE limb_flags = ORGAN_CAN_AMPUTATE

View File

@@ -364,34 +364,34 @@ obj/item/organ/vaurca/neuralsocket/process()
T.assume_air(leaked_gas) T.assume_air(leaked_gas)
/obj/item/organ/external/chest/vaurca /obj/item/organ/external/chest/vaurca
cannot_break = TRUE limb_flags = 0
/obj/item/organ/external/groin/vaurca /obj/item/organ/external/groin/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM
/obj/item/organ/external/arm/vaurca /obj/item/organ/external/arm/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM
/obj/item/organ/external/arm/right/vaurca /obj/item/organ/external/arm/right/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM
/obj/item/organ/external/leg/vaurca /obj/item/organ/external/leg/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM
/obj/item/organ/external/leg/right/vaurca /obj/item/organ/external/leg/right/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM
/obj/item/organ/external/foot/vaurca /obj/item/organ/external/foot/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM | ORGAN_CAN_STAND
/obj/item/organ/external/foot/right/vaurca /obj/item/organ/external/foot/right/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM | ORGAN_CAN_STAND
/obj/item/organ/external/hand/vaurca /obj/item/organ/external/hand/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM | ORGAN_CAN_GRASP
/obj/item/organ/external/hand/right/vaurca /obj/item/organ/external/hand/right/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM | ORGAN_CAN_GRASP
/obj/item/organ/external/head/vaurca /obj/item/organ/external/head/vaurca
cannot_break = TRUE limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_MAIM

View File

@@ -350,7 +350,7 @@
to_chat(user, "<span class='warning'>The blades aren't spinning, you can't cut anything!</span>") to_chat(user, "<span class='warning'>The blades aren't spinning, you can't cut anything!</span>")
return 0 return 0
return !affected.cannot_amputate return (affected.limb_flags & ORGAN_CAN_AMPUTATE)
/datum/surgery_step/generic/amputate/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) /datum/surgery_step/generic/amputate/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone) var/obj/item/organ/external/affected = target.get_organ(target_zone)

View File

@@ -0,0 +1,41 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: MattAtlas
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- backend: "Cleaned up the backend limb code a bit."