diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index ea7d57255f..e1b0cbb661 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -342,15 +342,25 @@ /obj/item/restraints/legcuffs/bola/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed, return//abort - var/mob/living/carbon/C = hit_atom + ensnare(hit_atom) + +/** + * Attempts to legcuff someone with the bola + * + * Arguments: + * * C - the carbon that we will try to ensnare + */ +/obj/item/restraints/legcuffs/bola/proc/ensnare(mob/living/carbon/C) if(!C.legcuffed && C.get_num_legs(FALSE) >= 2) visible_message("\The [src] ensnares [C]!") C.legcuffed = src forceMove(C) + C.update_equipment_speed_mods() C.update_inv_legcuffed() SSblackbox.record_feedback("tally", "handcuffs", 1, type) to_chat(C, "\The [src] ensnares you!") - C.DefaultCombatKnockdown(knockdown) + C.Knockdown(knockdown) + playsound(src, 'sound/effects/snap.ogg', 50, TRUE) /obj/item/restraints/legcuffs/bola/tactical//traitor variant name = "reinforced bola" diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 3dc199b56d..10a0cd12cf 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -264,7 +264,7 @@ /obj/item/restraints/legcuffs/bola/cult/pickup(mob/living/user) if(!iscultist(user)) to_chat(user, "The bola seems to take on a life of its own!") - throw_impact(user) + ensnare(user) /obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(iscultist(hit_atom)) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index d9e4f17649..2672688d09 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -336,7 +336,7 @@ linkedsuit.update_icon() user.update_inv_wear_suit() user.update_inv_w_uniform() - + user.update_equipment_speed_mods() /obj/item/clothing/suit/space/hardsuit/syndi name = "blood-red hardsuit" diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 32e3696bc5..d7fce8a437 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -397,6 +397,7 @@ W.layer = initial(W.layer) W.plane = initial(W.plane) changeNext_move(0) + update_equipment_speed_mods() // In case cuffs ever change speed /mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) if(!I.loc || buckled) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 122a06b17b..580b0aaaf0 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -147,7 +147,7 @@ /mob/living/carbon/human/equipped_speed_mods() . = ..() - for(var/sloties in get_all_slots()) + for(var/sloties in get_all_slots() - list(l_store, r_store, s_store)) var/obj/item/thing = sloties . += thing?.slowdown diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a2a69cb49a..0c69c5c744 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -794,6 +794,13 @@ what.forceMove(drop_location()) log_combat(src, who, "stripped [what] off") + if(Adjacent(who)) //update inventory window + who.show_inv(src) + else + src << browse(null,"window=mob[REF(who)]") + + who.update_equipment_speed_mods() // Updates speed in case stripped speed affecting item + // The src mob is trying to place an item on someone // Override if a certain mob should be behave differently when placing items (can't, for example) /mob/living/stripPanelEquip(obj/item/what, mob/who, where) diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 8e47d6dbde..f97bc1d7c3 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -21,6 +21,7 @@ C.emote("scream") SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) drop_limb() + C.update_equipment_speed_mods() // Update in case speed affecting item unequipped by dismemberment C.bleed(40)