diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 2ccb57564f..c4d86b0800 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -561,6 +561,10 @@ if(istype(dampening_field)) QDEL_NULL(dampening_field) dampening_field = make_field(/datum/proximity_monitor/advanced/peaceborg_dampener, list("current_range" = field_radius, "host" = src, "projector" = src)) + + var/mob/living/silicon/robot/owner = get_host() + if(owner) + owner.module.allow_riding = FALSE /obj/item/borg/projectile_dampen/proc/deactivate_field() QDEL_NULL(dampening_field) @@ -568,6 +572,18 @@ for(var/P in tracked) restore_projectile(P) + var/mob/living/silicon/robot/owner = get_host() + if(owner) + owner.module.allow_riding = TRUE + +/obj/item/borg/projectile_dampen/proc/get_host() + if(istype(host)) + return host + else + if(iscyborg(host.loc)) + return host.loc + return null + /obj/item/borg/projectile_dampen/dropped() . = ..() host = loc diff --git a/code/modules/fields/peaceborg_dampener.dm b/code/modules/fields/peaceborg_dampener.dm index 5e0fbdfb2b..79bd866fca 100644 --- a/code/modules/fields/peaceborg_dampener.dm +++ b/code/modules/fields/peaceborg_dampener.dm @@ -42,7 +42,7 @@ if(R.has_buckled_mobs()) for(var/mob/living/L in R.buckled_mobs) L.visible_message("[L] is knocked off of [R] by the charge in [R]'s chassis induced by [name]!") //I know it's bad. - L.Knockdown(60) + L.Knockdown(10) R.unbuckle_mob(L) do_sparks(5, 0, L) ..()