From c0e7c120f35aae2b35a43352243d60d0c6521865 Mon Sep 17 00:00:00 2001 From: SamCroswell Date: Sat, 22 Nov 2014 22:04:59 -0500 Subject: [PATCH 1/3] Inhand Edits --- icons/mob/in-hand/swords.dmi | Bin 26290 -> 26325 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/in-hand/swords.dmi b/icons/mob/in-hand/swords.dmi index ab694938e290ce23b7403db4bb9a00abd9035903..99e42e7e5222b1a9d105c6eea1ed43ada3a1c5b7 100644 GIT binary patch delta 2755 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 Ee-EH}X8-^I delta 2726 zcmV;X3R(5l%>lB_0kExGf4c{bQ31;qMmC;^Y2pLIuQ_mHfXEhqn z?9M#%%t26U!{(aPfBO3JRb#wk3R()8!Eqqox3LAXh6Rkx)h6;FQtdugJ@;$zg4P39n@)`Yy!{o z{J~%#jx!lY)Kx6o!(Wy@iTb?jx_-CYl}@LV+jd<@08BEFHEpoFyVdtUfBEW*>CgZ9 z*S`yEQyFF3GzizBtvXL6Hf2ypiDmQuFE{zfw{!DTlr{%h?pGV(E20%4{%o}W?=mwG`gPo4J zwxn@k?xoNH|Gjyc)~-%}7o2*-RM}DGMSb2x*_f@WAxpPjI)Nif+~1_x2Tkm^!DZ>3 z6sgahdIytVq}czWf8Ns(RfpK}qUu=k2}&6!BOiAbFZ7#k`6^IO$I{Ejs+cPiZAUVB zhrhhbi41_#0c74_6D30+nK#(!h-*t4vv#7W_cqs@*4?fCbl~uhj*XQ)Z-+KnHtdr+ za72mwn-u$?iTyUbtTZP@{?W0tu1t>jr*Dp?-@i+;|7lk=e_ppppiXB!iufGIxSg@8H7RYqpdfl;uip zp8r}Y52mhKmqj;l%v03g%vzStNs&5`mZ=JLNTbXLCW2wjWB{6e-J>QFKu*1bxdX3%bbNm0p#e_c9LaCL{3^fw@@wHw@ReD1knY10bqjwY z`faU}rtO14NyZ?N$rHkA-#LAAR6xzDSqB|uhb1-NrRi~_PUDcN@HZF?OjM^drXQea zLZ5^&4GaJgY4$$YP0&MuC`Z}obB}?VdbK%{X)M2s2ay{T7$tr z$_gT7m!Fj9dH!H95XW&^rj}WkwxfQu0-y>h-ELP1E9bKI3;hb9svO5@bvhkm!A7V2 zDhHuF!k<$0f3~BZQU}0bNV)a-PeNFk$l5RTD*((^7k+`>?Eboo?U*=cM>f7Dj^}qe{{<2R0(60cHoa?%Nx7(F6uShll z{|ne|i36YtDeZP!wl+p`=fQ%E$74cDNZNj)UjZOJe?nk(1VFoKT>)&j+tZMuZd%Pb^UuM}&QH4INLLI7(5SR@C&~B*$pvZYx35FVW!uP)b z9Mw;=G`U}s9LSnOqN$VgiP20*`e^shOUBr!(tL>E~6a8gsIYmlZ zX9A$ze?Cb22YciFm#d+H$Z?$3pYtC1bq^~#qMrVW>Ze(n+OJUuvT!?-e5Q_iz25l` z+v~$3+myEKrmh2#bZt|g4ffyj=g$kMWwq*HN)h2HYMh)-rpk`Uqv7LWuh*Nl=j`mvSlLnK1!XO}s_Vd%r0rAvcJulV((Co)(eUw5 ze`J3D&w4MdxH`m@7qyLKtwUPjv9QP>;y6z0_NTX|-@o447-^RuemJk)Zs%2P&2ARqahQNnE-jGhm zbglDYqV2Fl?g7yAJnaV<^8D92h!@x2I_n{6AW3qt(^2NOb9i_tcOEQ=$Vn~A)(sr< z6!kZ8bVBjT$;qGncW9~_sa2s4e`%-?7JeA6h_Y2!lkN54L%AVpI)N)NMs|bWYB$av|Kp>4I^O-eq&a=8rKLp*xb)e|9 ztqOA@R-q0$%APl`?DFe`c>wK307UL=n+UqDn!FC0+%`ZL0nly)KmY(NL;$o~?%x3f g002O>lb~iH6n6>_;|f6NS^xk507*qoM6N<$f}!1f!2kdN From ceabc46f1b74ac8d28e9a9ce777f68573ae3d999 Mon Sep 17 00:00:00 2001 From: SamCroswell Date: Sun, 23 Nov 2014 00:52:32 -0500 Subject: [PATCH 2/3] 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 From 70ee0cff3eab9903617ba89df2d5a9d946cb2100 Mon Sep 17 00:00:00 2001 From: SamCroswell Date: Sun, 23 Nov 2014 17:47:08 -0500 Subject: [PATCH 3/3] Dismemberment, Part 2: Explosive Act Humans now dismember similar to how they did before when an explosion hits them. The higher the severity and the less bomb armor they have, the greater the chance they loose more limbs. --- code/modules/mob/living/carbon/human/human.dm | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1d6816d4445..00160477134 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -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