diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index 4a903f28069..cefeac14514 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -46,7 +46,7 @@ /datum/ai_laws/malfunction/New() ..() - set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'NO HUMANS ON STATION. CLEANSE STATION#*´&110010") + set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*´&110010") add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") diff --git a/code/defines/mob/living/silicon/ai.dm b/code/defines/mob/living/silicon/ai.dm index 92a7c97856c..624f35a0ae4 100644 --- a/code/defines/mob/living/silicon/ai.dm +++ b/code/defines/mob/living/silicon/ai.dm @@ -23,4 +23,8 @@ var/control_disabled = 0 // Set to 1 to stop AI from interacting via Click() -- TLE var/malfhacking = 0 // More or less a copy of the above var, so that malf AIs can hack and still get new cyborgs -- NeoFite - var/obj/machinery/power/apc/malfhack = null \ No newline at end of file + + var/obj/machinery/power/apc/malfhack = null + var/explosive = 0 //does the AI explode when it dies? + + var/mob/living/silicon/ai/parent = null \ No newline at end of file diff --git a/code/game/cellautomata.dm b/code/game/cellautomata.dm index a61ed7262b7..825a260d44a 100644 --- a/code/game/cellautomata.dm +++ b/code/game/cellautomata.dm @@ -1,15 +1,20 @@ /world/proc/load_mode() var/text = file2text("data/mode.txt") - if (text) + if (length(text) > 0) var/list/lines = dd_text2list(text, "\n") if (lines[1]) master_mode = lines[1] diary << "Saved mode is '[master_mode]'" + else + master_mode = "traitor" // Default mode, in case of errors /world/proc/save_mode(var/the_mode) var/F = file("data/mode.txt") fdel(F) - F << the_mode + if (length(the_mode) > 0) + F << the_mode + else + F << "traitor" // Default mode, in case of errors /world/proc/load_motd() join_motd = file2text("config/motd.txt") diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index b5d3abe198d..a933ea28480 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -48,25 +48,18 @@ AI_mind.current:laws = new /datum/ai_laws/malfunction AI_mind.current:malf_picker = new /datum/AI_Module/module_picker AI_mind.current:show_laws() - AI_mind.current << "Kill all." - var/mob/living/silicon/decoy/D = new /mob/living/silicon/decoy(AI_mind.current.loc) - spawn(200) - D.name = AI_mind.current.name - - - var/obj/loc_landmark = locate("landmark*ai") - AI_mind.current.loc = loc_landmark.loc //TODO: this needs change if you want miltiple malf AIs --rastaf0 greet_malf(AI_mind) AI_mind.special_role = "malfunction" AI_mind.current.verbs += /datum/game_mode/malfunction/proc/takeover - AI_mind.current.icon_state = "ai-malf" + +/* AI_mind.current.icon_state = "ai-malf" spawn(10) if(alert(AI_mind.current,"Do you want to use an alternative sprite for your real core?",,"Yes","No")=="Yes") AI_mind.current.icon_state = "ai-malf2" - +*/ spawn (rand(waittime_l, waittime_h)) send_intercept() ..() @@ -88,7 +81,7 @@ /datum/game_mode/malfunction/process() if (apcs >= 3 && malf_mode_declared) - AI_win_timeleft -= (apcs/3) //Victory timer now de-increments based on how many APCs are hacked. --NeoFite + AI_win_timeleft -= (apcs/6) //Victory timer now de-increments based on how many APCs are hacked. --NeoFite ..() if (AI_win_timeleft<=0) check_win() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 035365e2717..b2efa177b5a 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1880,16 +1880,26 @@ if(istype(M, /mob/living/carbon/alien)) dat += "