Merge pull request #1812 from LaharlMontogmmery/Unanchored-AI

AI can now anchor/unanchor itself. Goes with Malf AI pinpointer tracking once it activates Delta for balance reasons. Please review/merge if satisfying enough.
This commit is contained in:
Giacom
2013-11-26 12:15:47 -08:00
8 changed files with 87 additions and 40 deletions
+11 -6
View File
@@ -792,9 +792,9 @@
src.occupant.verbs += /mob/living/silicon/ai/proc/corereturn
src.occupant.verbs += /datum/game_mode/malfunction/proc/takeover
src.occupant.cancel_camera()
for(var/obj/item/weapon/pinpointer/point in world)
point.the_disk = src //the pinpointer will detect the shunted AI
if (seclevel2num(get_security_level()) == SEC_LEVEL_DELTA)
for(var/obj/item/weapon/pinpointer/point in world)
point.the_disk = src //the pinpointer will detect the shunted AI
/obj/machinery/power/apc/proc/malfvacate(var/forced)
@@ -805,6 +805,12 @@
src.occupant.parent.adjustOxyLoss(src.occupant.getOxyLoss())
src.occupant.parent.cancel_camera()
del(src.occupant)
if (seclevel2num(get_security_level()) == SEC_LEVEL_DELTA)
for(var/obj/item/weapon/pinpointer/point in world)
for(var/datum/mind/AI_mind in ticker.mode.malf_ai)
var/mob/living/silicon/ai/A = AI_mind.current // the current mob the mind owns
if(A.stat != DEAD)
point.the_disk = A //The pinpointer tracks the AI back into its core.
else
src.occupant << "\red Primary core damaged, unable to return core processes."
@@ -812,9 +818,8 @@
src.occupant.loc = src.loc
src.occupant.death()
src.occupant.gib()
for(var/obj/item/weapon/pinpointer/point in world)
point.the_disk = null //the pinpointer will go back to pointing at the nuke disc.
for(var/obj/item/weapon/pinpointer/point in world)
point.the_disk = null //the pinpointer will go back to pointing at the nuke disc.
/obj/machinery/power/apc/proc/ion_act()