diff --git a/code/datums/shackle_law_sets.dm b/code/datums/shackle_law_sets.dm index 26b0f09318c..4e12ac75737 100644 --- a/code/datums/shackle_law_sets.dm +++ b/code/datums/shackle_law_sets.dm @@ -42,16 +42,9 @@ law_header = "Standard Shackle Laws" selectable = 1 shackles = 1 - var/max_laws = 5 - var/min_laws = 1 -/datum/ai_laws/custom_shackle/New(var/mob/user) - var/law_count = input(user, "How many laws in the custom shackle? Up to 5") - law_count = round(text2num(law_count)) - if(max(min(law_count, max_laws), min_laws)) - var/new_law - var/i //Iterant to help user keep track of law placement - for(i = 1; i <= law_count) - new_law = input(user, "Input Law [i].") - add_inherent_law(new_law) - i++ + +/datum/ai_laws/custom_shackle/New(var/list/laws) + for(var/law in laws) + if(law) + add_inherent_law(law) diff --git a/code/modules/client/preference_setup/laws/laws_pref.dm b/code/modules/client/preference_setup/laws/laws_pref.dm index ed8f72108ae..cecab0df1a6 100644 --- a/code/modules/client/preference_setup/laws/laws_pref.dm +++ b/code/modules/client/preference_setup/laws/laws_pref.dm @@ -81,11 +81,29 @@ // Post selection var/chosen_lawset = input(user, "Choose a law set:", CHARACTER_PREFERENCE_INPUT_TITLE, pref.laws) as null|anything in valid_lawsets if(chosen_lawset) - var/path = valid_lawsets[chosen_lawset] - var/datum/ai_laws/lawset = new path() - var/list/datum/ai_law/laws = lawset.all_laws() - pref.laws.Cut() - for(var/datum/ai_law/law in laws) - pref.laws += sanitize_text("[law.law]", default="") + if(chosen_lawset == "Custom Shackle") + var/law_count = input(user, "How many laws in the custom shackle? Up to 5") + law_count = round(text2num(law_count)) + if(max(min(law_count, 5), 1)) + var/new_law + var/list/new_law_list = new /list(law_count) + var/i //Iterant to help user keep track of law placement + for(i = 1; i <= law_count) + new_law = input(user, "Input Law [i].") + if(new_law) + new_law_list[i] = new_law + i++ + var/datum/ai_laws/custom_shackle/lawset = new /datum/ai_laws/custom_shackle(new_law_list) + var/list/datum/ai_law/laws = lawset.all_laws() + pref.laws.Cut() + for(var/datum/ai_law/law in laws) + pref.laws += sanitize_text("[law.law]", default="") + else + var/path = valid_lawsets[chosen_lawset] + var/datum/ai_laws/lawset = new path() + var/list/datum/ai_law/laws = lawset.all_laws() + pref.laws.Cut() + for(var/datum/ai_law/law in laws) + pref.laws += sanitize_text("[law.law]", default="") return TOPIC_REFRESH return ..()