From 7db6cd4108923ae2f31cd33caa223915e0f1d0f8 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 12 Jun 2013 01:45:07 -0700 Subject: [PATCH] Added shrapnel from projectile wounds and altered scanner readout. --- code/defines/obj/weapon.dm | 22 +++++++++++++++ code/game/machinery/adv_med.dm | 6 ++--- .../mob/living/carbon/human/human_damage.dm | 25 +++++++++++------- code/modules/mob/living/living_defense.dm | 2 +- icons/obj/shards.dmi | Bin 2217 -> 2609 bytes 5 files changed, 42 insertions(+), 13 deletions(-) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 3c9bbf6f998..bead0a13859 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -347,6 +347,28 @@ m_amt = 100 origin_tech = "magnets=2;syndicate=3"*/ +/obj/item/weapon/shard/shrapnel + name = "shrapnel" + icon = 'icons/obj/shards.dmi' + icon_state = "shrapnellarge" + desc = "A bunch of tiny bits of shattered metal." + +/obj/item/weapon/shard/shrapnel/New() + + src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall") + switch(src.icon_state) + if("shrapnelsmall") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("shrapnelmedium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("shrapnellarge") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return + /obj/item/weapon/SWF_uplink name = "station-bounced radio" desc = "used to comunicate it appears." diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 85248f5dc60..72d00d89edc 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -284,10 +284,10 @@ var/internal_bleeding = "" var/lung_ruptured = "" for(var/datum/wound/W in e.wounds) if(W.internal) - internal_bleeding = "
Internal Bleeding" + internal_bleeding = "
Internal bleeding" break if(istype(e, /datum/organ/external/chest) && occupant.is_lung_ruptured()) - lung_ruptured = "Lung Ruptured:" + lung_ruptured = "Lung ruptured:" if(e.status & ORGAN_SPLINTED) splint = "Splinted:" if(e.status & ORGAN_BLEEDING) @@ -297,7 +297,7 @@ if(e.open) open = "Open:" if(e.implants.len) - imp = "Implanted:" + imp = "Unknown body present:" if(!AN && !open && !infected & !imp) AN = "None:" if(!(e.status & ORGAN_DESTROYED)) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 159f380e0b2..fc0d098ad9c 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -223,13 +223,20 @@ // Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life(). updatehealth() + //Embedded projectile code. if(!organ) return - if(!istype(used_weapon,/obj/item/weapon)) return - - var/obj/item/weapon/W = used_weapon - if(damage > 20 && (prob(damage/W.w_class) || sharp)) - W.loc = organ - organ.implants += W - visible_message("\The [W] sticks in the wound!") - W.add_blood(src) - return 1 + if(istype(used_weapon,/obj/item/weapon)) + var/obj/item/weapon/W = used_weapon + if(damage > 20 && (prob(damage/W.w_class) || sharp)) //The larger it is, the harder it needs to hit to stick. + W.loc = organ + organ.implants += W + visible_message("\The [W] sticks in the wound!") + W.add_blood(src) + else if(istype(used_weapon,/obj/item/projectile)) //We don't want to use the actual projectile item, so we spawn some shrapnel. + if(prob(50) && damagetype == BRUTE) + var/obj/item/weapon/shard/shrapnel/S = new() + S.loc = organ + organ.implants += S + visible_message("The projectile sticks in the wound!") + S.add_blood(src) + return 1 \ No newline at end of file diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 5070f5ea332..a3bc884c171 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -57,7 +57,7 @@ P.on_hit(src,2) return 2 if(!P.nodamage) - apply_damage((P.damage/(absorb+1)), P.damage_type, def_zone, used_weapon = "Projectile([P.name])") + apply_damage((P.damage/(absorb+1)), P.damage_type, def_zone, absorb, 0, P) P.on_hit(src, absorb) return absorb diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi index 5ae1402c368ed52ed1b85c33d55d62ee837052c9..bf7f28168fa6bd17136fda0d4831423056e9500c 100644 GIT binary patch literal 2609 zcmZ`*XH=8f7X6qg9R#E!J(K~&fC@-6AiV~VE=5p!Z=r)IFqD8wl>`t`X$iea4Iq7_ z38-WM2{p73>HTHio3-ZG`*H7C>)v(m*?XU|P7=&Wn}L>_761SST^$WmvUU7>QB#t4 zd@fvpYzo64S_Nr54Rj80_X~3O^#OoT6k<$;wg*Cg_2&=8c%6fZ&MAF=alY3|)aX7+ zC5CLAedlvr8bV&>=%>o$;?w3CnlEk(gVxNi)e6-sq}k?-xe~8{IYDeU?oZ3q6-c z1pi$6yzy=xzPY%FPV8M-0H86{)lhpFirPZOxbduV^>?nX+;K;Ws=fC%HRLsts_pwV z1m<+PuH}3;_sZ7~G&S;Z_=K^T)RH*IBTGcJ(golvY(_4_CUlzLMSvS_7N_(& zmR{fMTA+>cSf8F6|`5B!8ZwLVU z?5h;qwnmYylmG|fQBVj9K0>HoU^TZU2fZ1ID_hiCGYMQh z$V|yOx|UNrG2D7s88&B5c(i|%k28~&201$J+SP2~_8!p?D@Z!Crfp8ylR zbJa%cqyA!1Ci=w%(`mml%wX)Fi((V}9c?sZ=CR9J#M2Hc^25$cygognL-)@ek>%Ae zOms*ERT^*in=U#(#m%)eMzVg3LAxe<2{z2s2{N){pb$7qno89U=TOU;$6jEMsM`<) zKf(}8mYM9yl{hWDXajApV&Ctu3DQo?glSZ~be;Gh7qbVth5zRJR(_I}R(sZUlp zg0ND&rWzq#!o6sSUqQ4vlPOdwbTF)LROyEIn5cnd(+hRhX`aeDESy(5;2$kLN9FMY zs*yxUQ>earI{h9r&v+qdcf74U#qRhr?AOD47ZWMA6u|t^y2D?6yYo3A`g7c3ig04D zuPUEqS_WyfPgulf4qNHXmUnWKGftHo3H2>y1IBnf;+;n;O7~m*FGtV;ACP*kJAD@t z=eH%GCv%{n#s=|sh5YTPzyid%SlXSHrKBX|KEK+I?1-xx$EEU<$=9{H{qZ`&Eu#fJ z1JHEY=^QvQe%cnY!3~KZ&a(gphNFU6BYy`ZWZReXM#qa$tr*PNU!Ga>U6}jl*c;?Bxe-*%Fo2QrF+S(IThL^HJbEU7%?WQ|6Gki#5(+--kY!vy zd=iD>nq7r1ORFto!et8h+tK>zaZ0fm;F59T!PbQIn2~hXFy=n4l;D z;h*WDkYT466zszE)tvupELxn7GTlH5Go_V*E<-6YcsRJu=Tl~sPf+uDR4jMH*zK*1 z+^(fxNPiLs=*91p-+4HexD1@6cpjK(J{a)?&m?;0$`#`bY2cuBms#199Lq>EO%Sk@ z`!+FA-+ob->S~5*E)5s8WgXXxqEwS_&EN={`C1I zLesA9eI%fnO1SJg6fc<@=eqqTzYbLYhf`_|MWGAaR95TH}okr&jyJ6dikw%|$!9Z4ll z&Q=vMX~dBsXIm2L%sG+{meE+UhrU`FJMYnY<4OGS;Z-^LU)Kf|eIslZ&-bsb)cz z1qO>avC3w2^Sr#J%9Eh?X?+VpC%YAXKxbwB2RW$L8$M%CflvC~WHbQ*0CUm-mz)}J zt*XK@VwLk>q*DW6Pu3Dqshn8gO!r( z!mSn=6oXGp55n7rs37)L-z@ah}#n+dLBxz31qmkb>8n(XI^q@&-9Qa%Ba=l$EB9+_Cmpsm&(Xbuz0v_2Tz|_19>e3`ZI3muyNnFiU!r)@`5`;nmj{`@|91_X39jWjCN H9pnB3Ph0>8 literal 2217 zcmV;a2v+xrP)V=-0C=2@&N~XjFc1XLT6>DY?n8d9njjNY*mqda#u7+Lkd*lPE(9rKcQf!{ zrpIl#+X-g0^p#w~>j{nP;Yex;u6k%(&ZNAA+1FM|b1N603-RN*5t8`eg}??GFPhUHu`h zXxX3C|xB)8W4KuPbt?Rn36 zp7-mV-sW7rdKDJT!)sx#~Zu`Vu}9c*CC9K zK1ZZ~5CE`*myuZrE&`0?EEFUCgJ|zO1Ho=XY&b4`cC|I({@n-0ad4Rc1Ge579Y06QPIz6ROKc2w zNY}C9H~^rltqH({D4&$Lu-?9k+rrlsxV9E!n_CrF>)oa#i8 zYctomDD4^%L3IuI{n>vabv3Ng-1FV^2;%EJw4i8Xm77U2RQZqmy7?wVcOP zrp1@t7j=uEss8=vQ9U~}l7oo&mgvMZpl#0j;c@|w7^TYSI;L44g zX!ccu(oy5F696EQf3UI~jmJ*Nx-s6ked}h*J;83na{F5l)~pn@rlYh1#Gj3c$_2&a zPjRT>3!DfXmi7DqaAf~>Zuypo?rLj-I26Od%JP)1i}n0}#-2;}7cHCz0C@fBU)<*N z@1kYmmO=sb%U0v-b3M|168^<}#M`%SV(I)`Rd&;+pyQ!lH2bOn0L{K?*jKGU(H18j z-H%E;-Pmv(Yu9hkzM?c3e)t&mHB}PnC%ezep0l}s@6Iw=o#;Iu!oHFs?i~=-qh?<< z_Uhz|aS_Rcf-uKO$L z=T_#ujXOX6n30etDBDc75L5I~QQlWl@@&s8O@a*1}aq?Nz z*HqzX`zd&KZNrZO+)j^EYln@10@k z+L0$9_TZ5;53;+jq$m^SWuSJKK<%y48Bcbf)x<~I2w?krU}E8gQ1Fe+&>ZB7m)IBsqXSgc4y?fr;36sjx-&4kA$S-Jh1HLc- zK)kTxo@2+K8?s%5UpPQA-m^rrU0o@N2x;)ujeF?}uL}fQWFFYyt3xOe)-?7&ZQrC~ z64+;yiU_^uL(oG44}=n7*vdvUrz6b*6i1y&Ww?hDVTlN30p{6_u!Wd}t;j7MFS