diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 97a343311d..5bca9cf535 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -504,6 +504,8 @@
S.change_head_color(color2)
dropped = TRUE
+#define PKBORG_DAMPEN_CYCLE_DELAY 20
+
//Peacekeeper Cyborg Projectile Dampenening Field
/obj/item/borg/projectile_dampen
name = "Hyperkinetic Dampening projector"
@@ -526,6 +528,7 @@
var/image/projectile_effect
var/field_radius = 3
var/active = FALSE
+ var/cycle_delay = 0
/obj/item/borg/projectile_dampen/debug
maxenergy = 50000
@@ -545,29 +548,31 @@
return ..()
/obj/item/borg/projectile_dampen/attack_self(mob/user)
- if(!istype(dampening_field))
- activate_field()
- active = TRUE
+ if(cycle_delay < world.time)
+ to_chat(user, "\the [src] is still recycling its projectors!")
+ return
+ cycle_delay = world.time + PKBORG_DAMPEN_CYCLE_DELAY
+ active = !active
+ if(active)
+ activate_field(user)
else
deactivate_field()
- active = FALSE
+ update_icon()
to_chat(user, "You [active? "activate":"deactivate"] the [src].")
/obj/item/borg/projectile_dampen/update_icon()
- . = ..()
icon_state = "[initial(icon_state)][active]"
/obj/item/borg/projectile_dampen/proc/activate_field()
- if(!istype(dampening_field))
- dampening_field = make_field(/datum/proximity_monitor/advanced/peaceborg_dampener, list("current_range" = field_radius, "host" = src, "projector" = src))
- update_icon()
+ 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))
/obj/item/borg/projectile_dampen/proc/deactivate_field()
QDEL_NULL(dampening_field)
- visible_message("The [src] shuts off!")
- for(var/obj/item/projectile/P in tracked)
+ visible_message("\The [src] shuts off!")
+ for(var/P in tracked)
restore_projectile(P)
- update_icon()
/obj/item/borg/projectile_dampen/dropped()
. = ..()