diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 6c7683396ec..24c827c46ad 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -126,6 +126,10 @@ var/list/ai_list = list() job = "AI" + spawn(5) + new /obj/machinery/ai_powersupply(src) + + hud_list[HEALTH_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[STATUS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[ID_HUD] = image('icons/mob/hud.dmi', src, "hudblank") @@ -145,6 +149,37 @@ var/list/ai_list = list() ..() +/* + The AI Power supply is a dummy object used for powering the AI since only machinery should be using power. + The alternative was to rewrite a bunch of AI code instead here we are. +*/ +/obj/machinery/ai_powersupply + name="Power Supply" + active_power_usage=1000 + use_power = 2 + power_channel = EQUIP + var/mob/living/silicon/ai/powered_ai = null + invisibility = 100 + +/obj/machinery/ai_powersupply/New(var/mob/living/silicon/ai/ai=null) + powered_ai = ai + if(isnull(powered_ai)) + Del() + + loc = powered_ai.loc + use_power(1) // Just incase we need to wake up the power system. + + ..() + +/obj/machinery/ai_powersupply/process() + if(!powered_ai || powered_ai.stat & DEAD) + Del() + if(!powered_ai.anchored) + loc = powered_ai.loc + use_power = 0 + if(powered_ai.anchored) + use_power = 2 + /mob/living/silicon/ai/verb/pick_icon() set category = "AI Commands" set name = "Set AI Core Display"