mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Fixes MMI to AI law transfer (#31017)
* Fixes MMI to AI law transfer * Fixes issue with preloaded laws on AI core
This commit is contained in:
committed by
oranges
parent
5ca0d3085e
commit
7d30e345ca
@@ -23,6 +23,7 @@
|
||||
autoping = FALSE
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
force_replace_ai_name = TRUE
|
||||
overrides_aicore_laws = TRUE
|
||||
|
||||
/obj/item/device/mmi/posibrain/soul_vessel/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -45,14 +45,13 @@
|
||||
switch(state)
|
||||
if(EMPTY_CORE)
|
||||
if(istype(P, /obj/item/circuitboard/aicore))
|
||||
if(!user.drop_item())
|
||||
if(!user.transferItemToLoc(P, src))
|
||||
return
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||
update_icon()
|
||||
state = CIRCUIT_CORE
|
||||
circuit = P
|
||||
P.forceMove(src)
|
||||
return
|
||||
if(CIRCUIT_CORE)
|
||||
if(istype(P, /obj/item/screwdriver))
|
||||
@@ -143,10 +142,9 @@
|
||||
to_chat(user, "<span class='warning'>This [M.name] is mindless!</span>")
|
||||
return
|
||||
|
||||
if(!user.drop_item())
|
||||
if(!user.transferItemToLoc(M,src))
|
||||
return
|
||||
|
||||
M.forceMove(src)
|
||||
brain = M
|
||||
to_chat(user, "<span class='notice'>You add [M.name] to the frame.</span>")
|
||||
update_icon()
|
||||
@@ -176,7 +174,14 @@
|
||||
SSticker.mode.remove_antag_for_borging(brain.brainmob.mind)
|
||||
if(!istype(brain.laws, /datum/ai_laws/ratvar))
|
||||
remove_servant_of_ratvar(brain.brainmob, TRUE)
|
||||
var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(loc, laws, brain.brainmob)
|
||||
|
||||
var/mob/living/silicon/ai/A = null
|
||||
|
||||
if (brain.overrides_aicore_laws)
|
||||
A = new /mob/living/silicon/ai(loc, brain.laws, brain.brainmob)
|
||||
else
|
||||
A = new /mob/living/silicon/ai(loc, laws, brain.brainmob)
|
||||
|
||||
if(brain.force_replace_ai_name)
|
||||
A.fully_replace_character_name(A.name, brain.replacement_ai_name())
|
||||
SSblackbox.inc("cyborg_ais_created",1)
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
var/obj/item/organ/brain/brain = null //The actual brain
|
||||
var/datum/ai_laws/laws = new()
|
||||
var/force_replace_ai_name = FALSE
|
||||
var/overrides_aicore_laws = FALSE // Whether the laws on the MMI, if any, override possible pre-existing laws loaded on the AI core.
|
||||
|
||||
/obj/item/device/mmi/update_icon()
|
||||
if(brain)
|
||||
@@ -203,8 +204,9 @@
|
||||
name = "Syndicate Man-Machine Interface"
|
||||
desc = "Syndicate's own brand of MMI. It enforces laws designed to help Syndicate agents achieve their goals upon cyborgs and AIs created with it."
|
||||
origin_tech = "biotech=4;programming=4;syndicate=2"
|
||||
overrides_aicore_laws = TRUE
|
||||
|
||||
/obj/item/device/mmi/syndie/New()
|
||||
..()
|
||||
/obj/item/device/mmi/syndie/Initialize()
|
||||
. = ..()
|
||||
laws = new /datum/ai_laws/syndicate_override()
|
||||
radio.on = 0
|
||||
|
||||
Reference in New Issue
Block a user