diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index bf40544ae25..63278e06535 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -29,6 +29,11 @@ . = ..() for(var/mob/living/silicon/ai/ai as anything in GLOB.ai_list) ai.show_laws() + //SKYRAT ADDITION START + for(var/mob/living/silicon/robot/cyborg as anything in ai.connected_robots) + if(cyborg.connected_ai && cyborg.lawupdate) + cyborg.lawsync() + //SKYRAT ADDITION END /datum/station_trait/ian_adventure name = "Ian's Adventure" diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 6c8cadd6f62..6e6a91d987e 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -87,6 +87,7 @@ affected_cyborgs += owned_borg borg_flw += "[ADMIN_LOOKUPFLW(owned_borg)], " borg_txt += "[owned_borg.name]([owned_borg.key]), " + owned_borg.lawsync() //SKYRAT ADDITION borg_txt = borg_txt.Join() GLOB.lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""], [length(affected_cyborgs) ? ", impacting synced borgs [borg_txt]" : ""]") @@ -510,7 +511,7 @@ /obj/item/ai_module/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw name = "hacked circuitry" //SKYRAT CHANGE - desc = "A suspicious circuit board modified beyond recognition. It appears to be a module for bleeding edge technology." //SKYRAT CHANGE + desc = "A suspicious circuit board modified beyond recognition. It appears to be a module for bleeding edge technology." //SKYRAT CHANGE laws = list("") special_desc_requirement = EXAMINE_CHECK_JOB // Skyrat edit special_desc_jobs = list("Scientist", "Roboticist", "Research Director", "Cyborg", "AI") //SKYRAT CHANGE diff --git a/code/game/objects/items/AI_modules/_AI_modules.dm b/code/game/objects/items/AI_modules/_AI_modules.dm index 4254918a388..df9e5150da0 100644 --- a/code/game/objects/items/AI_modules/_AI_modules.dm +++ b/code/game/objects/items/AI_modules/_AI_modules.dm @@ -97,6 +97,7 @@ affected_cyborgs += owned_borg borg_flw += "[ADMIN_LOOKUPFLW(owned_borg)], " borg_txt += "[owned_borg.name]([owned_borg.key]), " + owned_borg.lawsync() //SKYRAT ADDITION borg_txt = borg_txt.Join() GLOB.lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""], [length(affected_cyborgs) ? ", impacting synced borgs [borg_txt]" : ""]") diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 62c12bdd6e9..715ccc00b45 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -23,6 +23,13 @@ addtimer(CALLBACK(src, .proc/show_laws), 0) addtimer(CALLBACK(src, .proc/deadchat_lawchange), 0) last_lawchange_announce = world.time + //SKYRAT ADDITION START: AI LAWSYNC + if(isAI(src)) + var/mob/living/silicon/ai/ai = src + for(var/mob/living/silicon/robot/cyborg as anything in ai.connected_robots) + if(cyborg.connected_ai && cyborg.lawupdate) + cyborg.lawsync() + //SKYRAT ADDITON END /mob/living/silicon/proc/set_zeroth_law(law, law_borg, announce = TRUE) laws_sanity_check()