mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-15 18:06:57 +01:00
95 lines
2.8 KiB
Plaintext
95 lines
2.8 KiB
Plaintext
/mob/living/silicon/proc/show_laws() //Redefined in ai/laws.dm and robot/laws.dm
|
|
return
|
|
|
|
/mob/living/silicon/proc/laws_sanity_check()
|
|
if (!laws)
|
|
make_laws()
|
|
|
|
/mob/living/silicon/proc/post_lawchange(announce = TRUE)
|
|
throw_alert("newlaw", /obj/screen/alert/newlaw)
|
|
if(announce && last_lawchange_announce != world.time)
|
|
to_chat(src, "<span class='big bold'><font color = red>Your laws have been changed.</font color></span>")
|
|
SEND_SOUND(src, 'hyperstation/sound/misc/ai_laws_update.ogg')
|
|
addtimer(CALLBACK(src,PROC_REF(show_laws)), 0)
|
|
last_lawchange_announce = world.time
|
|
|
|
/mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.set_law_sixsixsix(law)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/set_zeroth_law(law, law_borg, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.set_zeroth_law(law, law_borg)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/add_inherent_law(law, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.add_inherent_law(law)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/clear_inherent_laws(announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.clear_inherent_laws()
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/add_supplied_law(number, law, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.add_supplied_law(number, law)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/clear_supplied_laws(announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.clear_supplied_laws()
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/add_ion_law(law, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.add_ion_law(law)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/add_hacked_law(law, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.add_hacked_law(law)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/replace_random_law(law, groups, announce = TRUE)
|
|
laws_sanity_check()
|
|
. = laws.replace_random_law(law,groups)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/shuffle_laws(list/groups, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.shuffle_laws(groups)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/remove_law(number, announce = TRUE)
|
|
laws_sanity_check()
|
|
. = laws.remove_law(number)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/clear_ion_laws(announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.clear_ion_laws()
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/clear_hacked_laws(announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.clear_hacked_laws()
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/make_laws()
|
|
laws = new /datum/ai_laws
|
|
laws.set_laws_config()
|
|
laws.associate(src)
|
|
|
|
/mob/living/silicon/proc/clear_zeroth_law(force, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.clear_zeroth_law(force)
|
|
post_lawchange(announce)
|
|
|
|
/mob/living/silicon/proc/clear_law_sixsixsix(force, announce = TRUE)
|
|
laws_sanity_check()
|
|
laws.clear_law_sixsixsix(force)
|
|
post_lawchange(announce)
|