diff --git a/code/modules/client/preference_setup/loadout/items/religion.dm b/code/modules/client/preference_setup/loadout/items/religion.dm index 01e1128b9f1..a872def2872 100644 --- a/code/modules/client/preference_setup/loadout/items/religion.dm +++ b/code/modules/client/preference_setup/loadout/items/religion.dm @@ -5,6 +5,7 @@ /datum/gear/religion/trinary abstract_type = /datum/gear/religion/trinary + religion = RELIGION_TRINARY /datum/gear/religion/trinary/mask display_name = "trinary perfection mask" @@ -106,13 +107,13 @@ /datum/gear/religion/dominia abstract_type = /datum/gear/religion/dominia + religion = RELIGION_MOROZ /datum/gear/religion/dominia/robe display_name = "dominian robe selection" description = "A selection of robes belonging to Dominia's Moroz Holy Tribunal." path = /obj/item/clothing/under/dominia/priest slot = slot_w_uniform - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/robe/New() ..() @@ -126,7 +127,6 @@ description = "A selection of modified berets belonging to Dominia's Moroz Holy Tribunal." path = /obj/item/clothing/under/dominia/priest slot= slot_head - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/beret/New() ..() @@ -141,7 +141,6 @@ description = "A selection of capes and outerwear worn by the Moroz Holy Tribunal." path = /obj/item/clothing/under/dominia/priest slot = slot_wear_suit - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/cape/New() ..() @@ -155,11 +154,11 @@ display_name = "tribunal necklace" path = /obj/item/clothing/accessory/dominia slot = slot_tie - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/accessory/lyodii display_name = "lyodic tribunal necklace" path = /obj/item/clothing/accessory/dominia/lyodii + culture_restriction = list(/singleton/origin_item/culture/dominia) /datum/gear/religion/dominia/accessory/tic display_name = "retired tribunal investigator card selection" @@ -178,7 +177,6 @@ path = /obj/item/clothing/head/beret/dominia/medical slot = slot_head allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "Pharmacist", "First Responder", "Medical Intern", "Medical Personnel") - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/robe_consular display_name = "tribunalist consular uniform" @@ -186,7 +184,6 @@ path = /obj/item/clothing/under/dominia/priest/consular slot = slot_w_uniform allowed_roles = list("Consular Officer") - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/beret_consular display_name = "tribunalist consular beret" @@ -194,7 +191,6 @@ path = /obj/item/clothing/head/beret/dominia/consular slot = slot_head allowed_roles = list("Consular Officer") - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/cape_consular display_name = "tribunalist cousular cape" @@ -202,17 +198,14 @@ path = /obj/item/clothing/accessory/poncho/dominia/consular slot = slot_wear_suit allowed_roles = list("Consular Officer") - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/codex display_name = "tribunal codex" path = /obj/item/device/versebook/tribunal - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/icon display_name = "tribunal iconography" description = "A selection of Dominian religious icons." - culture_restriction = list(/singleton/origin_item/culture/dominia, /singleton/origin_item/culture/dominian_unathi) /datum/gear/religion/dominia/icon/New() ..() @@ -228,7 +221,7 @@ /datum/gear/religion/assunzione abstract_type = /datum/gear/religion/assunzione - origin_restriction = list(/singleton/origin_item/origin/assunzione, /singleton/origin_item/origin/ipc_assunzione) + religion = RELIGION_LUCEISM /datum/gear/religion/assunzione/robe display_name = "assunzione robe selection" diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index 9e99ce1ecfc..70a117eb999 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -244,7 +244,8 @@ var/list/gear_datums = list() var/available = (G.check_faction(pref.faction) \ && (job && G.check_role(job.title)) \ && G.check_culture(text2path(pref.culture)) \ - && G.check_origin(text2path(pref.origin))) + && G.check_origin(text2path(pref.origin)) \ + && G.check_religion(pref.religion)) var/ticked = (G.display_name in pref.gear) var/style = "" @@ -458,6 +459,13 @@ var/list/gear_datums = list() */ var/faction + /** + * A string of the religion that can use this item + * + * If left `null`, any religion can spawn with this item + */ + var/religion + /** * A `/list` of [/singleton/origin_item/culture] paths that can use this item */ @@ -583,6 +591,12 @@ var/list/gear_datums = list() return FALSE return TRUE +// arg should be a religion name string +/datum/gear/proc/check_religion(var/religion_) + if((religion && religion_) && (religion != religion_)) + return FALSE + return TRUE + // arg should be a role name string /datum/gear/proc/check_role(var/role) if(role && allowed_roles && !(role in allowed_roles)) diff --git a/html/changelogs/GeneralCamo - Religion Restriction.yml b/html/changelogs/GeneralCamo - Religion Restriction.yml new file mode 100644 index 00000000000..e1691987338 --- /dev/null +++ b/html/changelogs/GeneralCamo - Religion Restriction.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: GeneralCamo + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added support for religion restrictions in loadout items." + - tweak: "Luceism, Tribunalism, and Trinary Perfection items are now locked to their respective religions." + - rscdel: "Removed origin restrictions from all Luceism and Tribunalism items, except the Lyodii amulet."