From 6fe32ee6ae11044edb38386e0699f9f2e00750e9 Mon Sep 17 00:00:00 2001 From: datlo Date: Wed, 19 Dec 2018 07:49:05 +0000 Subject: [PATCH] Add shrapnel to frag grenades --- .../items/weapons/grenades/atmosgrenade.dm | 2 +- .../objects/items/weapons/grenades/frag.dm | 43 +++++++++++++++++- icons/obj/shards.dmi | Bin 4132 -> 4517 bytes 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/grenades/atmosgrenade.dm b/code/game/objects/items/weapons/grenades/atmosgrenade.dm index 1c843a4311b..02e21e31d39 100644 --- a/code/game/objects/items/weapons/grenades/atmosgrenade.dm +++ b/code/game/objects/items/weapons/grenades/atmosgrenade.dm @@ -39,7 +39,7 @@ /obj/item/grenade/gluon/prime() update_mob() playsound(loc, 'sound/effects/empulse.ogg', 50, 1) - for(var/turf/T in view(range,loc)) + for(var/turf/T in view(range, loc)) if(isfloorturf(T)) var/turf/simulated/F = T F.MakeSlippery(TURF_WET_PERMAFROST) diff --git a/code/game/objects/items/weapons/grenades/frag.dm b/code/game/objects/items/weapons/grenades/frag.dm index 773ae0724b4..db7943ca7d9 100644 --- a/code/game/objects/items/weapons/grenades/frag.dm +++ b/code/game/objects/items/weapons/grenades/frag.dm @@ -4,8 +4,47 @@ icon_state = "frag" item_state = "flashbang" origin_tech = "materials=3;magnets=4" + var/range = 5 + var/max_shrapnel = 4 + var/embed_prob = 100 //reduced by armor + var/embedded_type = /obj/item/embedded/shrapnel /obj/item/grenade/frag/prime() update_mob() - explosion(loc, 0, 3, 5, breach = FALSE) - qdel(src) \ No newline at end of file + var/turf/epicenter = get_turf(src) + for(var/mob/living/carbon/human/H in epicenter) + if(H.resting) //grenade is jumped on but get real fucked up + embed_shrapnel(H, max_shrapnel) + range = 1 + explosion(loc, 0, 1, range, breach = FALSE) + for(var/turf/T in view(range, loc)) + for(var/mob/living/carbon/human/H in T) + var/shrapnel_amount = max_shrapnel - T.Distance(epicenter) + if(shrapnel_amount > 0) + embed_shrapnel(H, shrapnel_amount) + qdel(src) + +/obj/item/grenade/frag/proc/embed_shrapnel(mob/living/carbon/human/H, amount) + for(var/i = 0, i < amount, i++) + if(prob(embed_prob - H.getarmor(null, "bomb"))) + var/obj/item/embedded/S = new embedded_type(src) + H.hitby(S, skipcatch = 1) + S.throwforce = 1 + S.throw_speed = 1 + S.sharp = FALSE + else + to_chat(H, "Shrapnel bounces off your armor!") + +/obj/item/embedded/shrapnel + name = "shrapnel" + icon = 'icons/obj/shards.dmi' + throwforce = 10 + throw_speed = EMBED_THROWSPEED_THRESHOLD + embed_chance = 100 + embedded_fall_chance = 0 + w_class = WEIGHT_CLASS_SMALL + sharp = TRUE + hitsound = 'sound/weapons/pierce.ogg' + +/obj/item/embedded/shrapnel/New() + icon_state = pick("shrapnel1", "shrapnel2", "shrapnel3") diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi index 5ce7113bf88eaea10b10d73daebc8eb122dbefd9..20927b8dd79f4467f4173ccc2f855811e670d377 100644 GIT binary patch literal 4517 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 N&{We^tx~a#_%Fi8;VS?D literal 4132 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 Ux?cPSfBOM_ZDXx!4F}x+0Uv0$+W-In