Merge pull request #710 from ZomgPonies/limb

Port of the BS12 limb overhaul
This commit is contained in:
Fox-McCloud
2015-04-05 19:06:39 -04:00
149 changed files with 3451 additions and 2530 deletions
+4 -4
View File
@@ -752,7 +752,7 @@ datum
if(!M.unacidable)
if(prob(15) && istype(M, /mob/living/carbon/human) && volume >= 30)
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("head")
var/obj/item/organ/external/affecting = H.get_organ("head")
if(affecting)
if(affecting.take_damage(25, 0))
H.UpdateDamageIcon()
@@ -1180,7 +1180,7 @@ datum
M.eye_blind = 0
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
if(istype(E))
E.damage = max(E.damage-5 , 0)
M.SetWeakened(0)
@@ -1252,7 +1252,7 @@ datum
//Mitocholide is hard enough to get, it's probably fair to make this all internal organs
for(var/name in H.internal_organs_by_name)
var/datum/organ/internal/I = H.internal_organs_by_name[name]
var/obj/item/organ/I = H.internal_organs_by_name[name]
if(I.damage > 0)
I.damage -= 0.20
..()
@@ -2439,7 +2439,7 @@ datum
M:drowsyness = max(M:drowsyness, 30/sober_str)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/liver/L = H.internal_organs_by_name["liver"]
var/obj/item/organ/liver/L = H.internal_organs_by_name["liver"]
if (istype(L))
L.take_damage(0.1, 1)
H.adjustToxLoss(0.1)
+1 -1
View File
@@ -515,7 +515,7 @@ datum/reagent/oculine/on_mob_life(var/mob/living/M as mob)
M.eye_blind = max(M.eye_blind-5 , 0)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
if(istype(E))
if(E.damage > 0)
E.damage -= 1
+2 -2
View File
@@ -250,7 +250,7 @@ datum/reagent/facid/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
return
if(!H.unacidable)
var/datum/organ/external/affecting = H.get_organ("head")
var/obj/item/organ/external/affecting = H.get_organ("head")
if(affecting.take_damage(15, 0))
H.UpdateDamageIcon()
H.emote("scream")
@@ -272,7 +272,7 @@ datum/reagent/facid/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
if(!M.unacidable)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("head")
var/obj/item/organ/external/affecting = H.get_organ("head")
if(affecting.take_damage(15, 0))
H.UpdateDamageIcon()
H.emote("scream")
@@ -43,7 +43,7 @@
force = 15 //Smashing bottles over someoen's head hurts.
var/datum/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/obj/item/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/armor_block = 0 //Get the target's armour values for normal attack damage.
var/armor_duration = 0 //The more force the bottle has, the longer the duration.
@@ -32,7 +32,7 @@
force = 5
var/datum/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/obj/item/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/armor_block = 0 //Get the target's armour values for normal attack damage.
@@ -1676,9 +1676,9 @@
surprise.transform *= 0.6
surprise.add_blood(M)
var/mob/living/carbon/human/H = M
var/datum/organ/external/E = H.get_organ("chest")
var/obj/item/organ/external/E = H.get_organ("chest")
E.fracture()
for (var/datum/organ/internal/I in E.internal_organs)
for (var/obj/item/organ/I in E.internal_organs)
I.take_damage(rand(I.min_bruised_damage, I.min_broken_damage+1))
if (!E.hidden && prob(60)) //set it snuggly
@@ -283,14 +283,12 @@
if(istype(target, /mob/living/carbon/human))
var/target_zone = ran_zone(check_zone(user.zone_sel.selecting, target))
var/datum/organ/external/affecting = target:get_organ(target_zone)
var/obj/item/organ/external/affecting = target:get_organ(target_zone)
if (!affecting)
if (!affecting || (affecting.status & ORGAN_DESTROYED) || affecting.is_stump())
user << "<span class='danger'>They are missing that limb!</span>"
return
if(affecting.status & ORGAN_DESTROYED)
user << "What [affecting.display_name]?"
return
var/hit_area = affecting.display_name
var/hit_area = affecting.name
var/mob/living/carbon/human/H = target
if((user != target) && H.check_shields(7, "the [src.name]"))