mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-09 14:15:22 +01:00
Merge pull request #710 from ZomgPonies/limb
Port of the BS12 limb overhaul
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]"))
|
||||
|
||||
Reference in New Issue
Block a user