diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 0a5594212b..f2cc8d0e17 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -265,7 +265,7 @@ /mob/living/silicon/robot/drone/proc/question(var/client/C) spawn(0) - if(!C) return + if(!C || jobban_isbanned(C,"Cyborg")) return var/response = alert(C, "Someone is attempting to reboot a maintenance drone. Would you like to play as one?", "Maintenance drone reboot", "Yes", "No", "Never for this round.") if(!C || ckey) return diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index 69e5ec9d93..88d666c68e 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -9,7 +9,7 @@ active_power_usage = 5000 var/drone_progress = 0 - var/produce_drones = 0 + var/produce_drones = 1 var/time_last_drone = 500 icon = 'icons/obj/machines/drone_fab.dmi' @@ -93,6 +93,9 @@ if (usr != src) return 0 //something is terribly wrong + if(jobban_isbanned(src,"Cyborg")) + usr << "\red You are banned from playing synthetics and cannot spawn as a drone." + return var/deathtime = world.time - src.timeofdeath if(istype(src,/mob/dead/observer)) @@ -119,11 +122,14 @@ for(var/obj/machinery/drone_fabricator/DF in world) if(DF.stat & NOPOWER || !DF.produce_drones) continue + if(DF.count_drones() >= config.max_maint_drones) src << "\red There are too many active drones in the world for you to spawn." return - DF.create_drone(src.client) + if(DF.drone_progress >= 100) + DF.create_drone(src.client) + return src << "\red There are no available drone spawn points, sorry." \ No newline at end of file