Randomized lawset system + config options

This commit is contained in:
ZomgPonies
2014-01-05 17:50:13 -05:00
parent 6d4f209e78
commit aa8fcc9b15
14 changed files with 11128 additions and 11133 deletions
+1 -1
View File
@@ -80,7 +80,7 @@ var/list/ai_list = list()
if (istype(L, /datum/ai_laws))
laws = L
else
laws = new base_law_type
make_laws()
verbs += /mob/living/silicon/ai/proc/show_laws_verb
+1 -1
View File
@@ -18,7 +18,7 @@
/mob/living/silicon/ai/proc/laws_sanity_check()
if (!src.laws)
src.laws = new base_law_type
make_laws()
/mob/living/silicon/ai/proc/set_zeroth_law(var/law, var/law_borg)
src.laws_sanity_check()
+10 -2
View File
@@ -70,7 +70,7 @@
/mob/living/silicon/robot/proc/laws_sanity_check()
if (!laws)
laws = new base_law_type
make_laws()
/mob/living/silicon/robot/proc/set_zeroth_law(var/law)
laws_sanity_check()
@@ -98,4 +98,12 @@
/mob/living/silicon/robot/proc/clear_ion_laws()
laws_sanity_check()
laws.clear_ion_laws()
laws.clear_ion_laws()
/mob/living/silicon/proc/make_laws()
switch(config.default_laws)
if(0) laws = new /datum/ai_laws/default/asimov()
if(1) laws = new /datum/ai_laws/custom()
if(2)
var/datum/ai_laws/lawtype = pick(typesof(/datum/ai_laws/default) - /datum/ai_laws/default)
laws = new lawtype()
@@ -95,7 +95,7 @@
connected_ai = select_active_alien_ai()
scrambledcodes = 1
else
laws = new /datum/ai_laws/nanotrasen()
make_laws()
connected_ai = select_active_ai_with_fewest_borgs()
if(connected_ai)
connected_ai.connected_robots += src
+1 -1
View File
@@ -77,7 +77,7 @@
/mob/proc/AIize()
if(client)
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jams for AIs
var/mob/living/silicon/ai/O = new (loc, base_law_type,,1)//No MMI but safety is in effect.
var/mob/living/silicon/ai/O = new (loc,,,1)//No MMI but safety is in effect.
O.invisibility = 0
O.aiRestorePowerRoutine = 0
+28 -21
View File
@@ -386,7 +386,7 @@ datum/design/safeguard_module
req_tech = list("programming" = 3, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/safeguard"
build_path = /obj/item/weapon/aiModule/supplied/safeguard
datum/design/onehuman_module
name = "Module Design (OneHuman)"
@@ -395,7 +395,7 @@ datum/design/onehuman_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = "/obj/item/weapon/aiModule/oneHuman"
build_path = /obj/item/weapon/aiModule/zeroth/oneHuman
datum/design/protectstation_module
name = "Module Design (ProtectStation)"
@@ -404,16 +404,7 @@ datum/design/protectstation_module
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/protectStation"
datum/design/notele_module
name = "Module Design (TeleporterOffline Module)"
desc = "Allows for the construction of a TeleporterOffline AI Module."
id = "notele_module"
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/teleporterOffline"
build_path = /obj/item/weapon/aiModule/supplied/protectStation
datum/design/quarantine_module
name = "Module Design (Quarantine)"
@@ -422,7 +413,7 @@ datum/design/quarantine_module
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/quarantine"
build_path = /obj/item/weapon/aiModule/supplied/quarantine
datum/design/oxygen_module
name = "Module Design (OxygenIsToxicToHumans)"
@@ -431,7 +422,7 @@ datum/design/oxygen_module
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/oxygen"
build_path = /obj/item/weapon/aiModule/supplied/oxygen
datum/design/freeform_module
name = "Module Design (Freeform)"
@@ -440,7 +431,7 @@ datum/design/freeform_module
req_tech = list("programming" = 4, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/freeform"
build_path = /obj/item/weapon/aiModule/supplied/freeform
datum/design/reset_module
name = "Module Design (Reset)"
@@ -449,7 +440,7 @@ datum/design/reset_module
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
build_path = "/obj/item/weapon/aiModule/reset"
build_path = /obj/item/weapon/aiModule/reset
datum/design/purge_module
name = "Module Design (Purge)"
@@ -458,7 +449,7 @@ datum/design/purge_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = "/obj/item/weapon/aiModule/purge"
build_path = /obj/item/weapon/aiModule/reset/purge
datum/design/freeformcore_module
name = "Core Module Design (Freeform)"
@@ -467,7 +458,7 @@ datum/design/freeformcore_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = "/obj/item/weapon/aiModule/freeformcore"
build_path = /obj/item/weapon/aiModule/core/freeformcore
datum/design/asimov
name = "Core Module Design (Asimov)"
@@ -476,7 +467,7 @@ datum/design/asimov
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = "/obj/item/weapon/aiModule/asimov"
build_path = /obj/item/weapon/aiModule/core/full/asimov
datum/design/paladin_module
name = "Core Module Design (P.A.L.A.D.I.N.)"
@@ -485,7 +476,7 @@ datum/design/paladin_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = "/obj/item/weapon/aiModule/paladin"
build_path = /obj/item/weapon/aiModule/core/full/paladin
datum/design/tyrant_module
name = "Core Module Design (T.Y.R.A.N.T.)"
@@ -494,9 +485,25 @@ datum/design/tyrant_module
req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = "/obj/item/weapon/aiModule/tyrant"
build_path = /obj/item/weapon/aiModule/core/full/tyrant
datum/design/corporate_module
name = "Core Module Design (Corporate)"
desc = "Allows for the construction of a Corporate AI Core Module."
id = "corporate_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/full/corp
datum/design/custom_module
name = "Core Module Design (Custom)"
desc = "Allows for the construction of a Custom AI Core Module."
id = "custom_module"
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
build_path = /obj/item/weapon/aiModule/core/full/custom
///////////////////////////////////
/////Subspace Telecomms////////////