diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 706e62084050..1227458c05ad 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -15,6 +15,7 @@ var/max_fields = 3 var/list/current_fields var/field_distance_limit = 7 + var/creation_time = 30 /obj/item/forcefield_projector/afterattack(atom/target, mob/user, proximity_flag) . = ..() @@ -26,24 +27,26 @@ to_chat(user, "You deactivate [F].") qdel(F) return - var/turf/T = get_turf(target) - var/obj/structure/projected_forcefield/found_field = locate() in T - if(found_field) - to_chat(user, "There is already a forcefield in that location!") - return - if(T.density) - return - if(get_dist(T,src) > field_distance_limit) - return - if(LAZYLEN(current_fields) >= max_fields) - to_chat(user, "[src] cannot sustain any more forcefields!") - return + if(do_after(user, creation_time, target = target)) + var/turf/T = get_turf(target) + var/obj/structure/projected_forcefield/found_field = locate() in T + if(found_field) + to_chat(user, "There is already a forcefield in that location!") + return + if(T.density) + return + if(get_dist(T,src) > field_distance_limit) + return + if(LAZYLEN(current_fields) >= max_fields) + to_chat(user, "[src] cannot sustain any more forcefields!") + return + - playsound(src,'sound/weapons/resonator_fire.ogg',50,1) - user.visible_message("[user] projects a forcefield!","You project a forcefield.") - var/obj/structure/projected_forcefield/F = new(T, src) - current_fields += F - user.changeNext_move(CLICK_CD_MELEE) + playsound(src,'sound/weapons/resonator_fire.ogg',50,1) + user.visible_message("[user] projects a forcefield!","You project a forcefield.") + var/obj/structure/projected_forcefield/F = new(T, src) + current_fields += F + user.changeNext_move(CLICK_CD_MELEE) /obj/item/forcefield_projector/attack_self(mob/user) if(LAZYLEN(current_fields))