From ceabc46f1b74ac8d28e9a9ce777f68573ae3d999 Mon Sep 17 00:00:00 2001 From: SamCroswell Date: Sun, 23 Nov 2014 00:52:32 -0500 Subject: [PATCH] Dismemberment Update, Fire Axe Fixes, Gun Sounds --- .../mob/living/carbon/human/human_defense.dm | 13 +++++++++---- code/modules/organs/organ_external.dm | 9 ++++++++- .../projectiles/guns/projectile/automatic.dm | 4 ++-- .../projectiles/guns/projectile/pistol.dm | 1 + icons/obj/weapons.dmi | Bin 35943 -> 35940 bytes 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index abfdc6a69bd..bf7789d968b 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -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") diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index d7f7d20aacc..f656b3d30aa 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -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) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 5cbcf53707e..3c622752418 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -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() ..() diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 91e8d67fbda..355dc0b909c 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -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) diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 79e7b8cb11020faf749f2d46de6a9208c19459f2..af1866d85a3252e8355447c907c4785e31442481 100644 GIT binary patch delta 810 zcmV+_1J(TJm;&UO0+1ws4SG~qbVOxyV{&P5bZKvH004NLrB}^z+At74~ zOnc$dNv4xS`U=e2T99g4a@SG_Z{LH75fnv&j$v$=Z-4aduOHcum!Ge{*z?IjmL= zuOq8$#!eY>I)?iJ*md}B8x&~|X1{y2h12(>$Y?RBq znyxaNDPwxJW~(bIqsHL_<57YSEU$wWo>zI9dom=AjVkWYf{LQtP8~X_$D^fsR zLZY0BTGIuLc_58{)`k+ogK-2a60yR>F^#hdh9MrbBQOxSV9F}s0VkGcBInUI+pPc{ zpxMK1C1Fy^9f1MweSRIN0cxbU&Iwv87t$Q!Ws)W2_loWaQQs>(_MaQ28wgd6-+vC8 z*PxV1XcvuB_KOtpwHk`2L!;o(8H#J`vG0+Fp5PEKOs5oonYeKQwhLio-!jR0+fJ2#nW23l=oQ52BFoP(aruc-aV$@qDm`^Wd4ihOsE}MZV0v5oJ-~ zIQ8P^J7MFb37|eHlgSK2ZT88)xi(E3nk1Ji4T02Q&`O(-{k5}=KuS9xnGW=3Y%=kId}|$SZ_J_^b`Gsg zm@L-mo($h;(_li(Kk?~`zlvma7D-RIN1$EWYIeeZ#^b)1ggn*zu}LQK@|m}ZaM@rl zn>M*$ZV9@Csd)yE({To`Zi6pwgD-D`ui{ILM%RIrO`Mep8fRpJ#@U#laV92coP`M* zXP_}%4K}SiwUUD#dW86{()~6{X&HJ2@Lrv(A}>$ZzZwE`Cujgp<7O3b;=9*3ihTT3 opATgmkyphPT>*CzbUm_{U(f9M?KS%gP*)hz6O>!}vpoYUi6#kzp#T5? delta 813 zcmV+|1JeBDm;&dR0+1ws5PDQtbVOxyV{&P5bZKvH004NLrI*ce;xG)y&*UjQ?KSNr z0cQ8YWv88;9=flZkNHWK|CVI&$bP*3eEY>--ruqh zq(K_ZR&4QHWV4+VwqYwaud-Q#a@*MP%V5DGTd{{>XGjze*-S`(8rX`J*=$45;rRI+ ztChp+WR=YXD%i6XtMW_lgyIgXEg|YV?0QGNx-rZetO=~;YhazO!5X~=ZskW{jc=zl z%0*sHk20GnV|un?%PTIUi^C_zPYFJ;ybjI1sPZ!RY)Bd#b=;u^6{Xx(?K`RC;?MId zRzO`sqMVsp(*+iP^B|4Zh7!WV1cGf6*~Y{f?yQ1gh#%Sk3>;iAWfh1(5Q{UD^V2q) zO#?b0v&VgIBw4etGg*=CpnQRHgy{212)b|>X9q2}D4xzg7 zJJ4Q>8k8~#4TC#nzep0_tD$&8a0UC$P~2OOeUCKs1p9b@X*#9I#20VC@&@B=YT$d@ zB;;)Ec&m`291e{{m2f>Cz<3R`U_nECBMQY98|b=(D0u@io)6Xt5!|!aGUi1-&lkCO zNm*1l-h1)=o!Gc&4N#wy$z+D1HoIi-NgLjV?vl%)hCu4DbFW;>=Ve|zFY_`l$M?hQ z;P58?BY^(XhA)tlw568;#lxRMm!C!M`{pkg6w~sR0+d`2HVJ1 z%T2;v3mVrt9`Awsa(?qlq0BF4rB>R68fc|W$o|?{-XNuIkW2@9JvNyryt%awHaBKb z4O@rSCfqF6>7I;OYr`?&%#VD!T=B6 zL|k(0C2y1a<%Xb3xHZr4xEyDAbsIjv4PV@bFXKauM%RIrJg&-w#ub^+xEd20S7Jir zDokix0dBe)Y+83}r2swj2=Q5^`)!ocGV~X~`}15Cd3k#L>meX_f(H;ZPF8^+zI%P6 r$j4_Nb^K5kc~xBT6$mH6*CTuV^}=4>-?G0|Y8k>Tz0vuzIs+<+JHC?E