Merge pull request #514 from SamCroswell/master

Dismemberment Update, Fireaxe Fixes, Gunshot Sound Changes
This commit is contained in:
Fox-McCloud
2014-11-23 20:56:27 -05:00
7 changed files with 62 additions and 7 deletions
@@ -244,6 +244,17 @@
else
var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
throw_at(target, 200, 4)
var/limbs_affected = pick(2,3,4)
var/datum/organ/external/processing_dismember
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin")
processing_dismember.dismember_limb()
limbs_affected -= 1
//return
// var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src)))
//user.throw_at(target, 200, 4)
@@ -258,6 +269,25 @@
b_loss = b_loss/1.5
f_loss = f_loss/1.5
var/limbs_affected = pick(0, 1, 2)
var/datum/organ/external/processing_dismember
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin" && processing_dismember.name != "head")
processing_dismember.dismember_limb()
limbs_affected -= 1
else
var/limbs_affected = pick(1, 2, 3)
var/datum/organ/external/processing_dismember
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin")
processing_dismember.dismember_limb()
limbs_affected -= 1
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 30
ear_deaf += 120
@@ -268,6 +298,18 @@
b_loss += 30
if (prob(getarmor(null, "bomb")))
b_loss = b_loss/2
else
var/limbs_affected = pick(0, 1)
var/datum/organ/external/processing_dismember
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin" && processing_dismember.name != "head")
processing_dismember.dismember_limb()
limbs_affected -= 1
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 15
ear_deaf += 60
@@ -265,7 +265,7 @@ emp_act
if(armor >= 2) return 0
if(!I.force) return 0
var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords)
apply_damage(I.force, I.damtype, affecting, armor, sharp=weapon_sharp, edge=weapon_edge, used_weapon=I)
var/bloody = 0
@@ -313,8 +313,13 @@ emp_act
if(Iforce > 10 || Iforce >= 5 && prob(33))
forcesay(hit_appends) //forcesay checks stat already
forcesay(hit_appends) //forcesay checks stat already
if (I.damtype == BRUTE)
if((I.edge && prob(2 * I.force)) || (I.force > 20 && prob(I.force)))
if(affecting.brute_dam >= affecting.max_damage * config.organ_health_multiplier)
affecting.dismember_limb()
//Melee weapon embedded object code.
if (I.damtype == BRUTE && !I.is_robot_module())
var/damage = I.force
@@ -465,7 +470,7 @@ emp_act
var/penetrated_dam = max(0,(damage - max(0,(SS.breach_threshold - SS.damage))))
if(penetrated_dam) SS.create_breaches(damtype, penetrated_dam)
/mob/living/carbon/human/mech_melee_attack(obj/mecha/M)
if(M.occupant.a_intent == "harm")
if(M.damtype == "brute")
+8 -1
View File
@@ -158,12 +158,13 @@
src.update_damages()
//If limb took enough damage, try to cut or tear it off
/*
if(body_part != UPPER_TORSO && body_part != LOWER_TORSO) //as hilarious as it is, getting hit on the chest too much shouldn't effectively gib you.
if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier)
if( (edge && prob(5 * brute)) || (brute > 20 && prob(2 * brute)) )
droplimb(1)
return
*/
owner.updatehealth()
var/result = update_icon()
@@ -290,6 +291,12 @@ This function completely restores a damaged organ to perfect condition.
return 1
return 0
/datum/organ/external/proc/dismember_limb()
if(body_part != UPPER_TORSO && body_part != LOWER_TORSO) //as hilarious as it is, getting hit on the chest too much shouldn't effectively gib you.
if(config.limbs_can_break)
droplimb(1)
return
/datum/organ/external/process()
//Dismemberment
if(status & ORGAN_DESTROYED)
@@ -67,7 +67,7 @@
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=2"
mag_type = "/obj/item/ammo_box/magazine/m762"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
fire_sound = 'sound/weapons/Gunshot3.ogg'
var/cover_open = 0
@@ -123,7 +123,7 @@
w_class = 3.0
origin_tech = "combat=5;materials=4;syndicate=6"
mag_type = "/obj/item/ammo_box/magazine/m12g"
fire_sound = 'sound/weapons/Gunshot.ogg'
fire_sound = 'sound/weapons/Gunshot4.ogg'
/obj/item/weapon/gun/projectile/automatic/bulldog/New()
..()
@@ -81,6 +81,7 @@
silenced = 0
origin_tech = "combat=2;materials=2;syndicate=2"
mag_type = "/obj/item/ammo_box/magazine/m10mm"
fire_sound = 'sound/weapons/Gunshot2.ogg'
/obj/item/weapon/gun/projectile/automatic/pistol/attack_hand(mob/user as mob)
if(loc == user)