diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 5c2f151e38..a0f32fbb7b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -855,4 +855,19 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return /obj/item/proc/unembedded() - return \ No newline at end of file + return + +/** + * Sets our slowdown and updates equipment slowdown of any mob we're equipped on. + */ +/obj/item/proc/set_slowdown(new_slowdown) + slowdown = new_slowdown + if(CHECK_BITFIELD(item_flags, IN_INVENTORY)) + var/mob/living/L = loc + if(istype(L)) + L.update_equipment_speed_mods() + +/obj/item/vv_edit_var(var_name, var_value) + . = ..() + if(var_name == NAMEOF(src, slowdown)) + set_slowdown(var_value) //don't care if it's a duplicate edit as slowdown'll be set, do it anyways to force normal behavior. diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 2c31e4addf..5137e1af42 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -58,7 +58,7 @@ var/obj/item/twohanded/offhand/O = user.get_inactive_held_item() if(O && istype(O)) O.unwield() - slowdown -= slowdown_wielded + set_slowdown(slowdown - slowdown_wielded) /obj/item/twohanded/proc/wield(mob/living/carbon/user) if(wielded) @@ -88,7 +88,7 @@ O.desc = "Your second grip on [src]." O.wielded = TRUE user.put_in_inactive_hand(O) - slowdown += slowdown_wielded + set_slowdown(slowdown + slowdown_wielded) /obj/item/twohanded/dropped(mob/user) . = ..()