From 80cefef747d0e11e0b5f8d8f0519e33dd3b3b6eb Mon Sep 17 00:00:00 2001 From: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com> Date: Wed, 23 Sep 2020 01:53:55 -0400 Subject: [PATCH] Fixes projectile impacts + messages, embedding, adds deployable landmines (#53436) * icon and alert anim * hmm * projectile and embed fixes * cap mine * clean up, fix some issues with projectile embeds * light * doc * icon * awkward * icon again --- code/__DEFINES/combat.dm | 2 +- code/__DEFINES/dcs/signals.dm | 7 +- code/datums/components/gunpoint.dm | 2 +- code/datums/components/pellet_cloud.dm | 33 +++-- code/datums/elements/embed.dm | 5 +- code/game/objects/effects/mines.dm | 123 +++++++++++++++--- code/game/objects/items.dm | 25 ++-- code/game/objects/items/grenades/flashbang.dm | 8 -- code/game/objects/items/shrapnel.dm | 45 ++++--- .../crates_lockers/closets/cardboardbox.dm | 9 +- code/modules/mob/living/carbon/examine.dm | 4 +- .../mob/living/carbon/human/examine.dm | 4 +- .../living/simple_animal/hostile/hostile.dm | 2 +- code/modules/projectiles/projectile.dm | 12 +- icons/obj/items_and_weapons.dmi | Bin 107603 -> 109117 bytes 15 files changed, 190 insertions(+), 91 deletions(-) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index d56d8365220..b32baedb76b 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -162,7 +162,7 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define EMBEDDED_PAIN_CHANCE 15 ///Chance for embedded object to fall out (causing pain but removing the object) #define EMBEDDED_ITEM_FALLOUT 5 -///Chance for an object to embed into somebody when thrown (if it's sharp) +///Chance for an object to embed into somebody when thrown #define EMBED_CHANCE 45 ///Coefficient of multiplication for the damage the item does while embedded (this*item.w_class) #define EMBEDDED_PAIN_MULTIPLIER 2 diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 2e260a8b5f5..13cd7709edf 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -607,10 +607,8 @@ // /obj/projectile signals (sent to the firer) -///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle, hit_limb) +///from base of /obj/projectile/proc/on_hit(), like COMSIG_PROJECTILE_ON_HIT but on the projectile itself and with the hit limb (if any): (atom/movable/firer, atom/target, Angle, hit_limb) #define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" - #define COMPONENT_PROJECTILE_SELF_ON_HIT_EMBED_SUCCESS (1<<0) - #define COMPONENT_PROJECTILE_SELF_ON_HIT_SELF_DELETE (1<<1) ///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) #define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" ///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) @@ -621,8 +619,9 @@ #define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" ///sent to targets during the process_hit proc of projectiles #define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" -///sent when trying to force an embed (mainly for projectiles, only used in the embed element) +///from [/obj/item/proc/tryEmbed] sent when trying to force an embed (mainly for projectiles and eating glass) #define COMSIG_EMBED_TRY_FORCE "item_try_embed" + #define COMPONENT_EMBED_SUCCESS (1<<1) ///sent to targets during the process_hit proc of projectiles #define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index 4c55d00c734..ac36ff1762d 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -48,7 +48,7 @@ if(target.stat == CONSCIOUS && is_nuclear_operative(shooter) && !is_nuclear_operative(target) && (locate(/obj/item/disk/nuclear) in target.get_contents()) && shooter.client) shooter.client.give_award(/datum/award/achievement/misc/rocket_holdup, shooter) - target.do_alert_animation(target) + target.do_alert_animation() target.playsound_local(target.loc, 'sound/machines/chime.ogg', 50, TRUE) SEND_SIGNAL(target, COMSIG_ADD_MOOD_EVENT, "gunpoint", /datum/mood_event/gunpoint) diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index 1c6e2fcf9a6..f6ab4e2c914 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -132,15 +132,26 @@ /** * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. * - * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, while landmines do not (obviously, it's a landmine!). See [/datum/component/pellet_cloud/proc/handle_martyrs] + * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, see [/datum/component/pellet_cloud/proc/handle_martyrs] + * Landmines just have a small check for [/obj/effect/mine/shrapnel/var/shred_triggerer], and spawn extra shrapnel for them if so + * + * Arguments: + * * O- Our parent, the thing making the shrapnel obviously (grenade or landmine) + * * punishable_triggerer- For grenade lances or people who step on the landmines (if we shred the triggerer), we spawn extra shrapnel for them in addition to the normal spread */ -/datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/lanced_by) +/datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/punishable_triggerer) SIGNAL_HANDLER_DOES_SLEEP var/atom/A = parent if(isgrenade(parent)) // handle_martyrs can reduce the radius and thus the number of pellets we produce if someone dives on top of a frag grenade - handle_martyrs(lanced_by) // note that we can modify radius in this proc + handle_martyrs(punishable_triggerer) // note that we can modify radius in this proc + else if(islandmine(parent)) + var/obj/effect/mine/shrapnel/triggered_mine = parent + if(triggered_mine.shred_triggerer && istype(punishable_triggerer)) // free shrapnel for the idiot who stepped on it if we're a mine that shreds the triggerer + pellet_delta += radius // so they don't count against the later total + for(var/i in 1 to radius) + pew(punishable_triggerer, TRUE) if(radius < 1) return @@ -161,18 +172,18 @@ * * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later */ -/datum/component/pellet_cloud/proc/handle_martyrs(mob/living/lanced_by) +/datum/component/pellet_cloud/proc/handle_martyrs(mob/living/punishable_triggerer) var/magnitude_absorbed var/list/martyrs = list() var/self_harm_radius_mult = 3 - if(lanced_by && prob(60)) - to_chat(lanced_by, "Your plan to whack someone with a grenade on a stick backfires on you, literally!") + if(punishable_triggerer && prob(60)) + to_chat(punishable_triggerer, "Your plan to whack someone with a grenade on a stick backfires on you, literally!") self_harm_radius_mult = 1 // we'll still give the guy who got hit some extra shredding, but not 3*radius pellet_delta += radius for(var/i in 1 to radius) - pew(lanced_by) // thought you could be tricky and lance someone with no ill effects!! + pew(punishable_triggerer) // thought you could be tricky and lance someone with no ill effects!! for(var/mob/living/body in get_turf(parent)) if(body == shooter) @@ -247,11 +258,11 @@ finalize() /// Minor convenience function for creating each shrapnel piece with circle explosions, mostly stolen from the MIRV component -/datum/component/pellet_cloud/proc/pew(atom/target, spread=0) +/datum/component/pellet_cloud/proc/pew(atom/target, landmine_victim) var/obj/projectile/P = new projectile_type(get_turf(parent)) //Shooting Code: - P.spread = spread + P.spread = 0 P.original = target P.fired_from = parent P.firer = parent // don't hit ourself that would be really annoying @@ -262,6 +273,8 @@ RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range) pellets += P P.fire() + if(landmine_victim) + P.process_hit(get_turf(target), target) ///All of our pellets are accounted for, time to go target by target and tell them how many things they got hit by. /datum/component/pellet_cloud/proc/finalize() @@ -274,8 +287,8 @@ var/obj/item/bodypart/hit_part if(isbodypart(target)) hit_part = target + target = hit_part.owner if(wound_info_by_part[hit_part]) - target = hit_part.owner var/damage_dealt = wound_info_by_part[hit_part][CLOUD_POSITION_DAMAGE] var/w_bonus = wound_info_by_part[hit_part][CLOUD_POSITION_W_BONUS] var/bw_bonus = wound_info_by_part[hit_part][CLOUD_POSITION_BW_BONUS] diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 760ac7f5fee..1336704c911 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -153,7 +153,7 @@ if(!limb) limb = C.get_bodypart() - . = payload.tryEmbed(limb) + payload.tryEmbed(limb) // at this point we've created our shrapnel baby and set them up to embed in the target, we can now die in peace as they handle their embed try on their own Detach(P) /** @@ -187,5 +187,4 @@ hit_zone = limb.body_zone C = limb.owner - checkEmbed(I, C, hit_zone, forced=TRUE) - return TRUE + return checkEmbed(I, C, hit_zone, forced=TRUE) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index d162481e66e..10d706da277 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -7,12 +7,36 @@ icon_state = "uglymine" /// We manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations var/triggered = FALSE + /// Can be set to FALSE if we want a short 'coming online' delay, then set to TRUE. Can still be set off by damage + var/armed = TRUE + /// If set, we default armed to FALSE and set it to TRUE after this long from initializing + var/arm_delay +/obj/effect/mine/Initialize() + . = ..() + if(arm_delay) + armed = FALSE + icon_state = "uglymine-inactive" + addtimer(CALLBACK(src, .proc/now_armed), arm_delay) + +/obj/effect/mine/examine(mob/user) + . = ..() + if(!armed) + . += "\tIt appears to be inactive..." + +/// The effect of the mine /obj/effect/mine/proc/mineEffect(mob/victim) to_chat(victim, "*click*") +/// If the landmine was previously inactive, this beeps and displays a message marking it active +/obj/effect/mine/proc/now_armed() + armed = TRUE + icon_state = "uglymine" + playsound(src, 'sound/machines/nuke/angry_beep.ogg', 40, FALSE, -2) + visible_message("\The [src] beeps softly, indicating it is now active.", vision_distance = COMBAT_MESSAGE_RANGE) + /obj/effect/mine/Crossed(atom/movable/AM) - if(triggered || !isturf(loc)) + if(triggered || !isturf(loc) || !armed) return . = ..() @@ -25,16 +49,22 @@ . = ..() triggermine() -/obj/effect/mine/proc/triggermine(mob/victim) - if(triggered) +/// When something sets off a mine +/obj/effect/mine/proc/triggermine(atom/movable/triggerer) + if(triggered) //too busy detonating to detonate again return - visible_message("[victim] sets off [icon2html(src, viewers(src))] [src]!") + if(triggerer) + visible_message("[triggerer] sets off [icon2html(src, viewers(src))] [src]!") + else + visible_message("[icon2html(src, viewers(src))] [src] detonates!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(3, 1, src) s.start() - mineEffect(victim) + if(ismob(triggerer)) + mineEffect(triggerer) triggered = TRUE - SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED) + SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED, triggerer) qdel(src) /obj/effect/mine/explosive @@ -51,18 +81,6 @@ name = "stun mine" var/stun_time = 80 -/obj/effect/mine/shrapnel - name = "shrapnel mine" - var/shrapnel_type = /obj/projectile/bullet/shrapnel - var/shrapnel_magnitude = 3 - -/obj/effect/mine/shrapnel/mineEffect(mob/victim) - AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) - -/obj/effect/mine/shrapnel/sting - name = "stinger mine" - shrapnel_type = /obj/projectile/bullet/pellet/stingball - /obj/effect/mine/stun/mineEffect(mob/living/victim) if(isliving(victim)) victim.Paralyze(stun_time) @@ -197,3 +215,72 @@ sleep(duration) victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) to_chat(victim, "You slow down.") + + +/// These mines spawn pellet_clouds around them when triggered +/obj/effect/mine/shrapnel + name = "shrapnel mine" + /// The type of projectiles we're shooting out of this + var/shrapnel_type = /obj/projectile/bullet/shrapnel + /// Broadly, how many pellets we're spawning, the total is n! - (n-1)! pellets, so don't set it too high. For reference, 15 is probably pushing it at MAX + var/shrapnel_magnitude = 3 + /// If TRUE, we spawn extra pellets to eviscerate the person who stepped on it, otherwise it just spawns a ring of pellets around the tile we're on (making setting it off an offensive move) + var/shred_triggerer = FALSE + +/obj/effect/mine/shrapnel/mineEffect(mob/victim) + return + +/obj/effect/mine/shrapnel/triggermine(atom/movable/AM) + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) + return ..() + +/obj/effect/mine/shrapnel/sting + name = "stinger mine" + shrapnel_type = /obj/projectile/bullet/pellet/stingball + +/obj/effect/mine/shrapnel/capspawn + name = "\improper AP mine" + desc = "A defensive landmine filled with 'AP shrapnel', good for defending cramped spaces without breaching hulls. The AP stands for 'Asset Protection', though it's still plenty nasty against any fool who sets it off." + shrapnel_type = /obj/projectile/bullet/pellet/capmine + shrapnel_magnitude = 4 + shred_triggerer = TRUE + arm_delay = 3 SECONDS + light_range = 1.6 + light_power = 2 + light_color = COLOR_VIVID_RED + +/obj/effect/mine/shrapnel/capspawn/now_armed() + . = ..() + set_light_on(TRUE) + +/obj/item/minespawner + name = "landmine deployment device" + desc = "When activated, will deploy an Asset Protection landmine after 3 seconds passes, perfect for high ranking NT officers looking to cover their assets from afar." + icon = 'icons/obj/device.dmi' + icon_state = "beacon" + + var/mine_type = /obj/effect/mine/shrapnel/capspawn + var/active = FALSE + +/obj/item/minespawner/attack_self(mob/user) + . = ..() + if(active) + return + if(iscarbon(user)) + var/mob/living/carbon/user_human = user + user_human.throw_mode_on() + + playsound(src, 'sound/weapons/armbomb.ogg', 70, TRUE) + to_chat(user, "You arm \the [src], causing it to shake! It will deploy in 3 seconds.") + active = TRUE + addtimer(CALLBACK(src, .proc/deploy_mine), 3 SECONDS) + +/// Deploys the mine and deletes itself +/obj/item/minespawner/proc/deploy_mine() + do_alert_animation() + playsound(loc, 'sound/machines/chime.ogg', 30, FALSE, -3) + var/obj/effect/mine/new_mine = new mine_type(get_turf(src)) + visible_message("\The [src] releases a puff of smoke, revealing \a [new_mine]!") + var/obj/effect/particle_effect/smoke/poof = new (get_turf(src)) + poof.lifetime = 3 + qdel(src) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d0dc6475956..889e74f0c9d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -939,13 +939,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(embedding) return !isnull(embedding["pain_mult"]) && !isnull(embedding["jostle_pain_mult"]) && embedding["pain_mult"] == 0 && embedding["jostle_pain_mult"] == 0 -///In case we want to do something special (like self delete) upon failing to embed in something. Returns a bitflag. +///In case we want to do something special (like self delete) upon failing to embed in something. /obj/item/proc/failedEmbed() if(item_flags & DROPDEL) qdel(src) - return COMPONENT_PROJECTILE_SELF_ON_HIT_SELF_DELETE - return NONE - ///Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else. /obj/item/proc/on_thrown(mob/living/carbon/user, atom/target) @@ -962,7 +959,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb * * Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements. * - * Returns bitflags informing whether the item was able to embed itself, deleted itself in the process, or nothing happened. + * Returns TRUE if it embedded successfully, nothing otherwise * * Arguments: * * target- Either a body part or a carbon. What are we hitting? @@ -975,9 +972,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return NONE if(SEND_SIGNAL(src, COMSIG_EMBED_TRY_FORCE, target, forced, silent)) - return COMPONENT_PROJECTILE_SELF_ON_HIT_EMBED_SUCCESS - return failedEmbed() - + return COMPONENT_EMBED_SUCCESS + failedEmbed() ///For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it. /obj/item/proc/disableEmbedding() @@ -1036,13 +1032,12 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb M.apply_damage(max(15, force), BRUTE, BODY_ZONE_HEAD, wound_bonus = 10, sharpness = TRUE) M.losebreath += 2 - switch(tryEmbed(M.get_bodypart(BODY_ZONE_CHEST), TRUE, TRUE)) //and if it embeds in their chest, cause a lot of pain - if(COMPONENT_PROJECTILE_SELF_ON_HIT_SELF_DELETE) - return - if(COMPONENT_PROJECTILE_SELF_ON_HIT_EMBED_SUCCESS) - M.apply_damage(max(25, force*1.5), BRUTE, BODY_ZONE_CHEST, wound_bonus = 7, sharpness = TRUE) - M.losebreath += 6 - discover_after = FALSE + if(tryEmbed(M.get_bodypart(BODY_ZONE_CHEST), TRUE, TRUE)) //and if it embeds successfully in their chest, cause a lot of pain + M.apply_damage(max(25, force*1.5), BRUTE, BODY_ZONE_CHEST, wound_bonus = 7, sharpness = TRUE) + M.losebreath += 6 + discover_after = FALSE + if(QDELETED(src)) // in case trying to embed it caused its deletion (say, if it's DROPDEL) + return if(S?.tastes?.len) //is that blood in my mouth? S.tastes += "iron" diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index a979d7cc5fc..0885fc7c34e 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -57,14 +57,6 @@ shrapnel_type = /obj/projectile/bullet/pellet/stingball/mega shrapnel_radius = 12 -/obj/item/grenade/stingbang/breaker - name = "breakbang" - shrapnel_type = /obj/projectile/bullet/pellet/stingball/breaker - -/obj/item/grenade/stingbang/shred - name = "shredbang" - shrapnel_type = /obj/projectile/bullet/pellet/stingball/shred - /obj/item/grenade/stingbang/prime(mob/living/lanced_by) if(iscarbon(loc)) var/mob/living/carbon/C = loc diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm index 2b1adaab6dd..4145dd0cbcf 100644 --- a/code/game/objects/items/shrapnel.dm +++ b/code/game/objects/items/shrapnel.dm @@ -1,6 +1,5 @@ /obj/item/shrapnel // frag grenades name = "shrapnel shard" - embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=4) custom_materials = list(/datum/material/iron=50) armour_penetration = -20 icon = 'icons/obj/shards.dmi' @@ -11,7 +10,6 @@ /obj/item/shrapnel/stingball // stingbang grenades name = "stingball" - embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15) icon_state = "tiny" sharpness = SHARP_NONE @@ -21,11 +19,12 @@ icon_state = "s-casing" embedding = null // embedding vars are taken from the projectile itself + /obj/projectile/bullet/shrapnel name = "flying shrapnel shard" damage = 14 range = 20 - armour_penetration = -30 + armour_penetration = -20 dismemberment = 5 ricochets_max = 2 ricochet_chance = 70 @@ -33,7 +32,8 @@ ricochet_incidence_leeway = 60 hit_stunned_targets = TRUE sharpness = SHARP_EDGED - wound_bonus = 40 + wound_bonus = 30 + embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=1) /obj/projectile/bullet/shrapnel/mega name = "flying shrapnel hunk" @@ -55,24 +55,37 @@ ricochet_auto_aim_angle = 10 ricochet_auto_aim_range = 2 ricochet_incidence_leeway = 0 + embed_falloff_tile = -2 shrapnel_type = /obj/item/shrapnel/stingball + embedding = list(embed_chance=55, fall_chance=2, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=3, jostle_pain_mult=3, rip_time=15) /obj/projectile/bullet/pellet/stingball/mega name = "megastingball pellet" ricochets_max = 6 ricochet_chance = 110 -/obj/projectile/bullet/pellet/stingball/breaker - name = "breakbang pellet" - damage = 10 - wound_bonus = 40 - sharpness = SHARP_NONE - -/obj/projectile/bullet/pellet/stingball/shred - name = "shredbang pellet" - damage = 10 - wound_bonus = 30 - sharpness = SHARP_EDGED - /obj/projectile/bullet/pellet/stingball/on_ricochet(atom/A) hit_stunned_targets = TRUE // ducking will save you from the first wave, but not the rebounds + + + +/obj/projectile/bullet/pellet/capmine + name = "\improper AP shrapnel shard" + range = 7 + damage = 8 + stamina = 8 + sharpness = SHARP_EDGED + wound_bonus = 5 + bare_wound_bonus = 5 + ricochets_max = 2 + ricochet_chance = 140 + shrapnel_type = /obj/item/shrapnel/capmine + embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15) + wound_falloff_tile = 0 + embed_falloff_tile = 0 + +/obj/item/shrapnel/capmine + name = "\improper AP shrapnel shard" + custom_materials = list(/datum/material/iron=50) + armour_penetration = -30 + diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index b6a80ee5197..17a2ce98c97 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -52,12 +52,13 @@ if(!L.stat) if(!L.incapacitated(ignore_restraints = 1)) L.face_atom(src) - L.do_alert_animation(L) + L.do_alert_animation() playsound(loc, 'sound/machines/chime.ogg', 50, FALSE, -5) -/mob/living/proc/do_alert_animation(atom/A) - var/image/I = image('icons/obj/closet.dmi', A, "cardboard_special", A.layer+1) - flick_overlay_view(I, A, 8) +/// Does the MGS ! animation +/atom/proc/do_alert_animation() + var/image/I = image('icons/obj/closet.dmi', src, "cardboard_special", layer+1) + flick_overlay_view(I, src, 8) I.alpha = 0 animate(I, pixel_z = 32, alpha = 255, time = 5, easing = ELASTIC_EASING) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 460a59ae862..eec33b98bf3 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -42,9 +42,9 @@ missing -= BP.body_zone for(var/obj/item/I in BP.embedded_objects) if(I.isEmbedHarmless()) - msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] stuck to [t_his] [BP.name]!\n" + msg += "[t_He] [t_has] [icon2html(I, user)] \a [I] stuck to [t_his] [BP.name]!\n" else - msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [BP.name]!\n" + msg += "[t_He] [t_has] [icon2html(I, user)] \a [I] embedded in [t_his] [BP.name]!\n" for(var/i in BP.wounds) var/datum/wound/W = i msg += "[W.get_examine_description(user)]\n" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 9c0bc0b88f0..49ba2078bf9 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -144,9 +144,9 @@ missing -= body_part.body_zone for(var/obj/item/I in body_part.embedded_objects) if(I.isEmbedHarmless()) - msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] stuck to [t_his] [body_part.name]!\n" + msg += "[t_He] [t_has] [icon2html(I, user)] \a [I] stuck to [t_his] [body_part.name]!\n" else - msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [body_part.name]!\n" + msg += "[t_He] [t_has] [icon2html(I, user)] \a [I] embedded in [t_his] [body_part.name]!\n" for(var/i in body_part.wounds) var/datum/wound/iter_wound = i diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 0b8b9a0172f..fc8a73f62a4 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -373,7 +373,7 @@ ..(gibbed) /mob/living/simple_animal/hostile/proc/summon_backup(distance, exact_faction_match) - do_alert_animation(src) + do_alert_animation() playsound(loc, 'sound/machines/chime.ogg', 50, TRUE, -1) for(var/mob/living/simple_animal/hostile/M in oview(distance, targets_from)) if(faction_check_mob(M, TRUE)) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 1d1c1ab9bb6..a6116729221 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -186,8 +186,10 @@ if(isliving(target)) var/mob/living/L = target hit_limb = L.check_limb_hit(def_zone) - if(SEND_SIGNAL(src, COMSIG_PROJECTILE_SELF_ON_HIT, firer, target, Angle, hit_limb) & COMPONENT_PROJECTILE_SELF_ON_HIT_SELF_DELETE) - return BULLET_ACT_HIT + SEND_SIGNAL(src, COMSIG_PROJECTILE_SELF_ON_HIT, firer, target, Angle, hit_limb) + + if(QDELETED(src)) // in case one of the above signals deleted the projectile for whatever reason + return var/turf/target_loca = get_turf(target) var/hitx @@ -628,10 +630,8 @@ else var/mob/living/L = target if(!direct_target) - var/checking = NONE - if(!hit_stunned_targets) - checking = MOBILITY_USE | MOBILITY_STAND | MOBILITY_MOVE - if(!(L.mobility_flags & checking) || L.stat == DEAD) // If target not able to use items, move and stand - or if they're just dead, pass over. + var/checking = MOBILITY_USE | MOBILITY_STAND | MOBILITY_MOVE + if((!hit_stunned_targets && !(L.mobility_flags & checking)) || L.stat == DEAD) // If target not able to use items, move and stand - or if they're just dead, pass over. return FALSE return TRUE diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index ae3416570eb6adc9d6abf1578314c6cf37497aad..01ef0d25a7aa1ae3b6f9e0e309edbca9a403ae48 100644 GIT binary patch delta 27395 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 MqNQA^Xdd`~0D%VE*#H0l delta 25870 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 UUquW6MgRcrsp+Vet5}ErKecmFVgLXD