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() . = ..()