diff --git a/_maps/map_files/daftmarsh/daftmarsh.dmm b/_maps/map_files/daftmarsh/daftmarsh.dmm
index 5db3c183b6c..64a7a050f3d 100644
--- a/_maps/map_files/daftmarsh/daftmarsh.dmm
+++ b/_maps/map_files/daftmarsh/daftmarsh.dmm
@@ -3251,11 +3251,11 @@
/area/indoors/town/vault)
"cGO" = (
/obj/structure/rack,
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_y = 4;
pixel_x = -6
},
-/obj/item/clothing/neck/psycross/silver/eora,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
/obj/item/clothing/neck/psycross/silver{
pixel_x = 7;
pixel_y = 2
@@ -3264,13 +3264,13 @@
pixel_x = -5;
pixel_y = 8
},
-/obj/item/clothing/neck/psycross/silver/ravox,
-/obj/item/clothing/neck/psycross/silver/ravox{
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox{
pixel_x = 7;
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor{
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor{
pixel_y = 6;
pixel_x = 7
},
@@ -3361,24 +3361,24 @@
/area/indoors/town/steward)
"cKT" = (
/obj/structure/rack,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
-/obj/item/clothing/neck/psycross/silver/malum/steel{
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel{
pixel_y = -5;
pixel_x = -11
},
-/obj/item/clothing/neck/psycross/silver/xylix,
-/obj/item/clothing/neck/psycross/silver/xylix{
+/obj/item/clothing/neck/psycross/silver/divine/xylix,
+/obj/item/clothing/neck/psycross/silver/divine/xylix{
pixel_y = 7;
pixel_x = 8
},
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_y = 7;
pixel_x = -7
},
/obj/structure/fluff/walldeco/church/line{
dir = 4
},
-/obj/item/clothing/neck/psycross/silver/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"cLh" = (
@@ -14063,23 +14063,23 @@
/area/indoors/town/keep/magician)
"mdH" = (
/obj/structure/rack,
-/obj/item/clothing/neck/psycross/silver/pestra,
-/obj/item/clothing/neck/psycross/silver/pestra{
+/obj/item/clothing/neck/psycross/silver/divine/pestra,
+/obj/item/clothing/neck/psycross/silver/divine/pestra{
pixel_y = 7;
pixel_x = 9
},
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_y = 7;
pixel_x = 3
},
-/obj/item/clothing/neck/psycross/silver/noc,
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata{
+/obj/item/clothing/neck/psycross/silver/divine/noc,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata{
pixel_y = 4;
pixel_x = 5
},
-/obj/item/clothing/neck/psycross/silver/necra,
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_y = -3;
pixel_x = 9
},
@@ -19306,7 +19306,7 @@
/area/indoors/town/tavern)
"qOl" = (
/obj/structure/table/wood/plain_alt,
-/obj/item/clothing/neck/psycross/silver/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
/turf/open/floor/blocks/newstone,
/area/indoors/town/church)
"qOp" = (
@@ -23549,7 +23549,7 @@
/area/outdoors/town)
"uOC" = (
/obj/structure/table/wood/plain/alt,
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_x = 5;
pixel_y = -3
},
diff --git a/_maps/map_files/rosewood/rosewood.dmm b/_maps/map_files/rosewood/rosewood.dmm
index adc79033267..abcbf85afa3 100644
--- a/_maps/map_files/rosewood/rosewood.dmm
+++ b/_maps/map_files/rosewood/rosewood.dmm
@@ -1774,7 +1774,7 @@
/obj/structure/table/wood{
icon_state = "tablewood1"
},
-/obj/item/clothing/neck/psycross/silver/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
/turf/open/floor/blocks,
/area/outdoors/exposed/church)
"aTp" = (
@@ -5669,21 +5669,21 @@
/area/outdoors/town/roofs)
"cIb" = (
/obj/structure/rack/shelf/biggest,
-/obj/item/clothing/neck/psycross/silver/noc,
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_y = 7;
pixel_x = 3
},
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_y = 3;
pixel_x = 12
},
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata{
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata{
pixel_x = 3;
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/astrata{
+/obj/item/clothing/neck/psycross/silver/divine/astrata{
pixel_x = 9;
pixel_y = 3
},
@@ -17061,8 +17061,8 @@
/area/indoors/town/keep)
"ili" = (
/obj/structure/table/wood/plain/alt,
-/obj/item/clothing/neck/psycross/silver/dendor,
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_y = 7;
pixel_x = -7
},
@@ -19999,11 +19999,11 @@
/area/indoors/town/keep)
"jJh" = (
/obj/structure/rack,
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_y = 4;
pixel_x = -6
},
-/obj/item/clothing/neck/psycross/silver/eora,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
/obj/item/clothing/neck/psycross/silver{
pixel_x = 7;
pixel_y = 2
@@ -20012,13 +20012,13 @@
pixel_x = -5;
pixel_y = 8
},
-/obj/item/clothing/neck/psycross/silver/ravox,
-/obj/item/clothing/neck/psycross/silver/ravox{
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox{
pixel_x = 7;
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor{
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor{
pixel_y = 6;
pixel_x = 7
},
@@ -24998,23 +24998,23 @@
/area/indoors/town/clinic_large)
"miF" = (
/obj/structure/rack,
-/obj/item/clothing/neck/psycross/silver/pestra,
-/obj/item/clothing/neck/psycross/silver/pestra{
+/obj/item/clothing/neck/psycross/silver/divine/pestra,
+/obj/item/clothing/neck/psycross/silver/divine/pestra{
pixel_y = 7;
pixel_x = 9
},
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_y = 7;
pixel_x = 3
},
-/obj/item/clothing/neck/psycross/silver/noc,
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata{
+/obj/item/clothing/neck/psycross/silver/divine/noc,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata{
pixel_y = 4;
pixel_x = 5
},
-/obj/item/clothing/neck/psycross/silver/necra,
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_y = -3;
pixel_x = 9
},
@@ -25163,24 +25163,24 @@
/area/under/town/sewer)
"mlB" = (
/obj/structure/rack,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
-/obj/item/clothing/neck/psycross/silver/malum/steel{
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel{
pixel_y = -5;
pixel_x = -11
},
-/obj/item/clothing/neck/psycross/silver/xylix,
-/obj/item/clothing/neck/psycross/silver/xylix{
+/obj/item/clothing/neck/psycross/silver/divine/xylix,
+/obj/item/clothing/neck/psycross/silver/divine/xylix{
pixel_y = 7;
pixel_x = 8
},
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_y = 7;
pixel_x = -7
},
/obj/structure/fluff/walldeco/church/line{
dir = 4
},
-/obj/item/clothing/neck/psycross/silver/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
/obj/item/clothing/cloak/poncho,
/obj/item/clothing/cloak/poncho,
/turf/open/floor/ruinedwood/darker,
@@ -47776,7 +47776,7 @@
/area/indoors/town/tavern)
"xlQ" = (
/obj/structure/table/wood/plain/alt,
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_x = -8;
pixel_y = 4
},
diff --git a/_maps/map_files/rosewood/rosewood_marsh.dmm b/_maps/map_files/rosewood/rosewood_marsh.dmm
index e5fefc85091..75b41753087 100644
--- a/_maps/map_files/rosewood/rosewood_marsh.dmm
+++ b/_maps/map_files/rosewood/rosewood_marsh.dmm
@@ -151,7 +151,7 @@
/turf/open/floor/ruinedwood/turned/darker,
/area/indoors/lich)
"aU" = (
-/obj/item/clothing/neck/psycross/g{
+/obj/item/clothing/neck/psycross/gold{
pixel_x = -7;
pixel_y = -3
},
@@ -159,7 +159,7 @@
pixel_x = 1;
pixel_y = 7
},
-/obj/item/clothing/neck/psycross/silver/pestra,
+/obj/item/clothing/neck/psycross/silver/divine/pestra,
/turf/open/floor/cobble,
/area/indoors/lich)
"aW" = (
@@ -4301,11 +4301,11 @@
pixel_x = -9;
pixel_y = 0
},
-/obj/item/clothing/neck/psycross/g{
+/obj/item/clothing/neck/psycross/gold{
pixel_x = 2;
pixel_y = 8
},
-/obj/item/clothing/neck/psycross/silver/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
/obj/effect/decal/remains/human,
/turf/open/water/blood,
/area/indoors/lich)
@@ -4677,12 +4677,12 @@
/turf/open/floor/churchrough,
/area/indoors/cave)
"Ba" = (
-/obj/item/clothing/neck/psycross/g{
+/obj/item/clothing/neck/psycross/gold{
pixel_x = 2;
pixel_y = 7
},
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_x = -20;
pixel_y = 13
},
@@ -5247,7 +5247,7 @@
/turf/open/floor/grass/cold,
/area/indoors/mountains)
"Ef" = (
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/obj/effect/decal/remains/human,
/turf/open/floor/dirt,
/area/outdoors/bog)
@@ -6683,7 +6683,7 @@
/turf/open/floor/tile/masonic/spiral,
/area/indoors/lich)
"ME" = (
-/obj/item/clothing/neck/psycross/g{
+/obj/item/clothing/neck/psycross/gold{
pixel_x = 5;
pixel_y = 7
},
@@ -6691,8 +6691,8 @@
pixel_x = -6;
pixel_y = 6
},
-/obj/item/clothing/neck/psycross/silver/ravox,
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_x = 15;
pixel_y = -2
},
@@ -7493,11 +7493,11 @@
pixel_x = 6;
pixel_y = 11
},
-/obj/item/clothing/neck/psycross/g{
+/obj/item/clothing/neck/psycross/gold{
pixel_x = -10;
pixel_y = 10
},
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/cobblerock,
/area/indoors/lich)
"Sb" = (
diff --git a/_maps/map_files/shared/CentCom.dmm b/_maps/map_files/shared/CentCom.dmm
index bc64aa44a5c..ae7245f3f8d 100644
--- a/_maps/map_files/shared/CentCom.dmm
+++ b/_maps/map_files/shared/CentCom.dmm
@@ -3133,13 +3133,13 @@
"rf" = (
/obj/item/clothing/neck/mercator,
/obj/item/clothing/neck/shalal,
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/dendor,
-/obj/item/clothing/neck/psycross/silver/eora,
-/obj/item/clothing/neck/psycross/g,
-/obj/item/clothing/neck/psycross/silver/necra,
-/obj/item/clothing/neck/psycross/silver/noc,
-/obj/item/clothing/neck/psycross/silver/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
+/obj/item/clothing/neck/psycross/gold,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
/turf/open/floor/wood,
/area/indoors)
"ri" = (
@@ -6232,7 +6232,7 @@
/obj/item/clothing/pants/grenzelpants,
/obj/item/clothing/shirt/grenzelhoft,
/obj/item/clothing/shoes/rare/grenzelhoft,
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/turf/open/floor/herringbone,
/area/indoors/vampire_manor)
"Mm" = (
diff --git a/_maps/map_files/vanderlin/vanderlin.dmm b/_maps/map_files/vanderlin/vanderlin.dmm
index 0d4b9c7fdc2..a0e205aee8c 100644
--- a/_maps/map_files/vanderlin/vanderlin.dmm
+++ b/_maps/map_files/vanderlin/vanderlin.dmm
@@ -1737,18 +1737,18 @@
/obj/machinery/light/fueled/wallfire/candle{
pixel_y = -32
},
-/obj/item/clothing/neck/psycross/silver/dendor,
-/obj/item/clothing/neck/psycross/silver/dendor,
-/obj/item/clothing/neck/psycross/silver/dendor,
-/obj/item/clothing/neck/psycross/silver/xylix,
-/obj/item/clothing/neck/psycross/silver/xylix,
-/obj/item/clothing/neck/psycross/silver/xylix,
-/obj/item/clothing/neck/psycross/silver/ravox,
-/obj/item/clothing/neck/psycross/silver/ravox,
-/obj/item/clothing/neck/psycross/silver/ravox,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/xylix,
+/obj/item/clothing/neck/psycross/silver/divine/xylix,
+/obj/item/clothing/neck/psycross/silver/divine/xylix,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"aPp" = (
@@ -4869,9 +4869,9 @@
/obj/item/clothing/head/padded/deathshroud,
/obj/item/clothing/head/padded/deathshroud,
/obj/item/clothing/head/padded/deathshroud,
-/obj/item/clothing/neck/psycross/silver/necra,
-/obj/item/clothing/neck/psycross/silver/necra,
-/obj/item/clothing/neck/psycross/silver/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
/obj/structure/closet/crate/crafted_closet,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
@@ -5460,7 +5460,7 @@
/area/indoors/town/keep/gate)
"cEP" = (
/obj/structure/table/wood/plain/alt,
-/obj/item/clothing/neck/psycross/silver/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
/obj/item/clothing/head/padded/briarthorns,
/turf/open/floor/ruinedwood/chevron,
/area/outdoors/mountains)
@@ -6844,9 +6844,9 @@
/obj/item/clothing/head/roguehood/eora,
/obj/item/clothing/head/roguehood/eora,
/obj/item/clothing/head/roguehood/eora,
-/obj/item/clothing/neck/psycross/silver/eora,
-/obj/item/clothing/neck/psycross/silver/eora,
-/obj/item/clothing/neck/psycross/silver/eora,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"dlo" = (
@@ -8406,7 +8406,7 @@
/area/outdoors/town)
"dYC" = (
/obj/structure/table/wood/plain_alt,
-/obj/item/clothing/neck/psycross/silver/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
/turf/open/floor/blocks/newstone,
/area/indoors/town/church)
"dYE" = (
@@ -10896,7 +10896,7 @@
/turf/open/floor/carpet/royalblack,
/area/indoors/town/church)
"fnr" = (
-/obj/item/clothing/neck/psycross/silver/eora,
+/obj/item/clothing/neck/psycross/silver/divine/eora,
/obj/item/candle/eora/lit,
/obj/item/candle/eora/lit{
pixel_x = 7;
@@ -13381,7 +13381,7 @@
/area/indoors/town/keep/halls/w)
"gxi" = (
/obj/structure/table/church,
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_x = -2;
pixel_y = 11
},
@@ -18517,7 +18517,7 @@
/area/indoors/town/keep/magician)
"iZU" = (
/obj/structure/table/wood/plain/alt,
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_x = 8;
pixel_y = 5
},
@@ -19574,9 +19574,9 @@
/obj/item/clothing/shirt/robe/abyssor,
/obj/item/clothing/shirt/robe/abyssor,
/obj/item/clothing/shirt/robe/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"jzG" = (
@@ -24042,7 +24042,7 @@
"lJX" = (
/obj/structure/fluff/railing/wood,
/obj/structure/table/wood/plain/alt,
-/obj/item/clothing/neck/psycross/silver/dendor,
+/obj/item/clothing/neck/psycross/silver/divine/dendor,
/obj/item/clothing/shirt/robe/dendor,
/turf/open/floor/ruinedwood/chevron,
/area/outdoors/mountains)
@@ -35276,9 +35276,9 @@
/obj/item/clothing/shirt/robe/phys,
/obj/item/clothing/head/roguehood/phys,
/obj/item/clothing/head/roguehood/phys,
-/obj/item/clothing/neck/psycross/silver/pestra,
-/obj/item/clothing/neck/psycross/silver/pestra,
-/obj/item/clothing/neck/psycross/silver/pestra,
+/obj/item/clothing/neck/psycross/silver/divine/pestra,
+/obj/item/clothing/neck/psycross/silver/divine/pestra,
+/obj/item/clothing/neck/psycross/silver/divine/pestra,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"raJ" = (
@@ -38884,9 +38884,9 @@
/obj/structure/fluff/walldeco/church/line{
dir = 4
},
-/obj/item/clothing/neck/psycross/silver/noc,
-/obj/item/clothing/neck/psycross/silver/noc,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"sLQ" = (
@@ -41491,7 +41491,7 @@
/obj/structure/table/church{
dir = 1
},
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_x = -2;
pixel_y = 11
},
@@ -43565,9 +43565,9 @@
/obj/item/clothing/head/roguehood/astrata,
/obj/item/clothing/head/roguehood/astrata,
/obj/item/clothing/head/roguehood/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
/turf/open/floor/churchmarble,
/area/indoors/town/church)
"uWU" = (
diff --git a/_maps/map_files/vanderlin/vanderlin_bog.dmm b/_maps/map_files/vanderlin/vanderlin_bog.dmm
index 1dc22ae9059..2d2bff19b57 100644
--- a/_maps/map_files/vanderlin/vanderlin_bog.dmm
+++ b/_maps/map_files/vanderlin/vanderlin_bog.dmm
@@ -1573,7 +1573,7 @@
/area/under/cavewet)
"aLT" = (
/obj/structure/fluff/nest,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/abyss_tile{
color = "#7D9BAE"
},
@@ -1653,7 +1653,7 @@
/area/under/cavewet)
"aNI" = (
/obj/structure/fluff/nest,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/abyss_tile/two{
color = "#29404E"
},
@@ -2077,7 +2077,7 @@
/area/under/cavewet)
"aYN" = (
/obj/structure/fluff/nest,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/abyss_tile{
color = "#547285"
},
@@ -2950,7 +2950,7 @@
/mob/living/carbon/human/species/triton/base/unskilled/naked,
/obj/effect/mapping_helpers/floor_clothing_equipper,
/obj/item/clothing/shirt/robe/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/obj/item/clothing/head/padded/abyssor,
/obj/item/weapon/sword/gladius,
/turf/open/floor/abyss_tile/three{
@@ -4668,7 +4668,7 @@
/obj/item/weapon/mace/steel/rungu,
/obj/item/clothing/head/helmet/heavy/abyssorgreathelm,
/obj/item/clothing/shirt/robe/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/abyss_tile{
color = "#7D9BAE"
},
@@ -8308,7 +8308,7 @@
/obj/structure/closet/crate/drawer{
color = "#7D9BAE"
},
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/turf/open/floor/carpet/royalblack,
/area/under/cavewet)
"jlv" = (
@@ -8586,7 +8586,7 @@
/turf/open/floor/dirt/road,
/area/indoors/shelter/bog)
"jCT" = (
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/turf/open/floor/abyss_tile/three{
color = "#547285"
},
@@ -8774,7 +8774,7 @@
/obj/effect/mapping_helpers/floor_clothing_equipper,
/obj/item/clothing/head/fisherhat,
/obj/item/clothing/shirt/robe/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/obj/item/weapon/polearm/spear/hoplite/abyssal,
/turf/open/floor/abyss_tile/three{
color = "#7D9BAE"
@@ -12815,7 +12815,7 @@
/mob/living/carbon/human/species/triton/base/very_skilled/naked,
/obj/effect/mapping_helpers/floor_clothing_equipper,
/obj/item/clothing/shirt/robe/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/obj/item/clothing/head/crown/circlet/sleepless,
/obj/item/clothing/neck/mana_star,
/obj/structure/carpet/blue,
@@ -12853,7 +12853,7 @@
/mob/living/carbon/human/species/triton/base/unskilled/naked,
/obj/effect/mapping_helpers/floor_clothing_equipper,
/obj/item/clothing/shirt/robe/abyssor,
-/obj/item/clothing/neck/psycross/silver/abyssor,
+/obj/item/clothing/neck/psycross/silver/divine/abyssor,
/obj/item/weapon/polearm/spear/hoplite/abyssal,
/obj/item/clothing/head/padded/abyssor,
/turf/open/floor/abyss_tile/three{
diff --git a/_maps/map_files/vanderlin/vanderlin_forest.dmm b/_maps/map_files/vanderlin/vanderlin_forest.dmm
index 9a2ec849428..a5343726ff8 100644
--- a/_maps/map_files/vanderlin/vanderlin_forest.dmm
+++ b/_maps/map_files/vanderlin/vanderlin_forest.dmm
@@ -720,7 +720,7 @@
/area/indoors/dungeon)
"iJ" = (
/obj/structure/table/wood/fancy/orange,
-/obj/item/clothing/neck/psycross/silver/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
/turf/open/floor/sandstone_tile/six,
/area/indoors/dungeon)
"iK" = (
@@ -1878,7 +1878,7 @@
/obj/effect/mapping_helpers/floor_clothing_equipper,
/obj/item/clothing/shirt/robe/necra,
/obj/item/clothing/head/padded/deathshroud,
-/obj/item/clothing/neck/psycross/silver/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
/obj/item/weapon/flail,
/obj/item/weapon/shield/tower/buckleriron,
/obj/item/jingle_bells,
@@ -2011,7 +2011,7 @@
/area/outdoors/mountains)
"xK" = (
/obj/structure/table/stone_small,
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/herringbone,
/area/indoors/dungeon)
@@ -2588,7 +2588,7 @@
name = "Saint's coffin"
},
/obj/item/clothing/head/flowercrown/salvia,
-/obj/item/clothing/neck/psycross/silver/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
/turf/open/floor/tile/masonic/spiral,
/area/indoors/dungeon)
"DW" = (
diff --git a/_maps/map_files/vanderlin/vanderlin_mountain.dmm b/_maps/map_files/vanderlin/vanderlin_mountain.dmm
index 2ea17ced2b7..52889bd3d04 100644
--- a/_maps/map_files/vanderlin/vanderlin_mountain.dmm
+++ b/_maps/map_files/vanderlin/vanderlin_mountain.dmm
@@ -2859,7 +2859,7 @@
/turf/open/floor/dirt,
/area/outdoors/mountains/anvil/lavaexposed)
"Rw" = (
-/obj/item/clothing/neck/psycross/silver/malum,
+/obj/item/clothing/neck/psycross/silver/divine/malum,
/turf/open/floor/naturalstone,
/area/under/mountains/anvil/lower)
"RB" = (
diff --git a/_maps/map_files/whitepalacepass/WhitePalacePass.dmm b/_maps/map_files/whitepalacepass/WhitePalacePass.dmm
index de1ab91b747..dddebfb7778 100644
--- a/_maps/map_files/whitepalacepass/WhitePalacePass.dmm
+++ b/_maps/map_files/whitepalacepass/WhitePalacePass.dmm
@@ -14094,7 +14094,7 @@
/turf/open/floor/ruinedwood,
/area/indoors/villagegarrison)
"ncN" = (
-/obj/item/clothing/neck/psycross/silver/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
/turf/open/floor/cobble,
/area/indoors/town/church)
"ndy" = (
@@ -15360,24 +15360,24 @@
/area/indoors/soilsons)
"ogV" = (
/obj/structure/table/wood/crafted,
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_x = 7;
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_x = 11;
pixel_y = 5
},
-/obj/item/clothing/neck/psycross/silver/eora{
+/obj/item/clothing/neck/psycross/silver/divine/eora{
pixel_x = -9;
pixel_y = -6
},
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata{
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata{
pixel_x = -11;
pixel_y = 11
},
-/obj/item/clothing/neck/psycross/silver/astrata{
+/obj/item/clothing/neck/psycross/silver/divine/astrata{
pixel_x = 5;
pixel_y = 8
},
@@ -17844,35 +17844,35 @@
/area/indoors/town/keep/knight)
"qoo" = (
/obj/structure/table/wood/crafted,
-/obj/item/clothing/neck/psycross/silver/xylix,
-/obj/item/clothing/neck/psycross/silver/xylix{
+/obj/item/clothing/neck/psycross/silver/divine/xylix,
+/obj/item/clothing/neck/psycross/silver/divine/xylix{
pixel_x = 2;
pixel_y = 6
},
-/obj/item/clothing/neck/psycross/silver/xylix{
+/obj/item/clothing/neck/psycross/silver/divine/xylix{
pixel_y = 16
},
-/obj/item/clothing/neck/psycross/silver/pestra{
+/obj/item/clothing/neck/psycross/silver/divine/pestra{
pixel_x = -11;
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/pestra{
+/obj/item/clothing/neck/psycross/silver/divine/pestra{
pixel_x = -9;
pixel_y = 18
},
-/obj/item/clothing/neck/psycross/silver/pestra{
+/obj/item/clothing/neck/psycross/silver/divine/pestra{
pixel_x = -12;
pixel_y = 2
},
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_x = 11;
pixel_y = 13
},
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_x = 7;
pixel_y = -3
},
-/obj/item/clothing/neck/psycross/silver/dendor{
+/obj/item/clothing/neck/psycross/silver/divine/dendor{
pixel_x = 11;
pixel_y = 5
},
@@ -19122,27 +19122,27 @@
/area/indoors/town/bath)
"rBg" = (
/obj/structure/table/wood/crafted,
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_x = 8;
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_x = 11;
pixel_y = 7
},
-/obj/item/clothing/neck/psycross/silver/necra{
+/obj/item/clothing/neck/psycross/silver/divine/necra{
pixel_x = -6;
pixel_y = 11
},
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_x = -2;
pixel_y = -4
},
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_x = 7;
pixel_y = 5
},
-/obj/item/clothing/neck/psycross/silver/noc{
+/obj/item/clothing/neck/psycross/silver/divine/noc{
pixel_x = -10;
pixel_y = 9
},
@@ -21799,26 +21799,26 @@
/area/indoors/town/keep/halls/s)
"uaa" = (
/obj/structure/table/wood/crafted,
-/obj/item/clothing/neck/psycross/silver/ravox{
+/obj/item/clothing/neck/psycross/silver/divine/ravox{
pixel_y = -5
},
-/obj/item/clothing/neck/psycross/silver/ravox{
+/obj/item/clothing/neck/psycross/silver/divine/ravox{
pixel_x = -9;
pixel_y = -1
},
-/obj/item/clothing/neck/psycross/silver/ravox{
+/obj/item/clothing/neck/psycross/silver/divine/ravox{
pixel_x = -6;
pixel_y = 12
},
-/obj/item/clothing/neck/psycross/silver/malum{
+/obj/item/clothing/neck/psycross/silver/divine/malum{
pixel_x = 5;
pixel_y = -3
},
-/obj/item/clothing/neck/psycross/silver/malum{
+/obj/item/clothing/neck/psycross/silver/divine/malum{
pixel_x = 9;
pixel_y = -1
},
-/obj/item/clothing/neck/psycross/silver/malum{
+/obj/item/clothing/neck/psycross/silver/divine/malum{
pixel_x = 10;
pixel_y = 8
},
diff --git a/_maps/matthios_tomb/boss/orcboss.dmm b/_maps/matthios_tomb/boss/orcboss.dmm
index e9921f6c402..dc8d200ecda 100644
--- a/_maps/matthios_tomb/boss/orcboss.dmm
+++ b/_maps/matthios_tomb/boss/orcboss.dmm
@@ -116,7 +116,7 @@
/area/under/tomb/indoors)
"wr" = (
/obj/structure/toilet,
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/obj/item/natural/poo{
pixel_y = 9
},
diff --git a/_maps/matthios_tomb/hallway/Malphpiece3.dmm b/_maps/matthios_tomb/hallway/Malphpiece3.dmm
index b5cac053189..6a2670c9d07 100644
--- a/_maps/matthios_tomb/hallway/Malphpiece3.dmm
+++ b/_maps/matthios_tomb/hallway/Malphpiece3.dmm
@@ -36,7 +36,7 @@
/obj/item/clothing/shirt/tunic/colored/blue,
/obj/item/gem/blue,
/obj/item/clothing/shoes/boots,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
/obj/item/clothing/ring/silver/saffira,
/obj/item/storage/belt/leather/plaquesilver,
/obj/item/weapon/sword/rapier/silver,
diff --git a/_maps/matthios_tomb/hallway/Malphpiece5.dmm b/_maps/matthios_tomb/hallway/Malphpiece5.dmm
index 8ff20a1ff4c..d6c5b204d8b 100644
--- a/_maps/matthios_tomb/hallway/Malphpiece5.dmm
+++ b/_maps/matthios_tomb/hallway/Malphpiece5.dmm
@@ -124,7 +124,7 @@
/obj/effect/landmark/chest_or_mimic,
/obj/item/ore/gold,
/obj/item/ore/gold,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
/turf/open/floor/volcanic,
/area/under/tomb/cave)
"Z" = (
diff --git a/_maps/matthios_tomb/room/SmallChurch.dmm b/_maps/matthios_tomb/room/SmallChurch.dmm
index 4ba57fcc6e9..7891be7a43c 100644
--- a/_maps/matthios_tomb/room/SmallChurch.dmm
+++ b/_maps/matthios_tomb/room/SmallChurch.dmm
@@ -636,7 +636,7 @@
/area/under/tomb/indoors/church)
"xM" = (
/obj/structure/closet/crate/chest/crate,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/turf/open/floor/churchmarble,
/area/under/tomb/indoors/church)
"yc" = (
@@ -843,8 +843,8 @@
/obj/item/clothing/cloak/stabard/templar/astrata/alt,
/obj/item/clothing/cloak/stabard/templar/astrata,
/obj/item/clothing/cloak/stabard/templar/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata,
-/obj/item/clothing/neck/psycross/silver/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
/obj/item/clothing/shirt/robe/astrata,
/obj/item/clothing/shirt/robe/astrata,
/obj/item/clothing/head/helmet/heavy/necked/astrata,
@@ -1046,8 +1046,8 @@
/area/under/tomb/indoors/church)
"OD" = (
/obj/structure/closet/crate/chest/crate,
-/obj/item/clothing/neck/psycross/silver/necra,
-/obj/item/clothing/neck/psycross/silver/astrata,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
+/obj/item/clothing/neck/psycross/silver/divine/astrata,
/turf/open/floor/churchmarble,
/area/under/tomb/indoors/church)
"OM" = (
diff --git a/_maps/matthios_tomb/room/Thelastbreath.dmm b/_maps/matthios_tomb/room/Thelastbreath.dmm
index 9162ba7c8a9..014e4850010 100644
--- a/_maps/matthios_tomb/room/Thelastbreath.dmm
+++ b/_maps/matthios_tomb/room/Thelastbreath.dmm
@@ -1939,7 +1939,7 @@
/obj/item/clothing/shirt/dress/silkdress/colored/silkdressprimary,
/obj/item/clothing/pants/trou/shadowpants,
/obj/item/clothing/ring/gold/blortz,
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/turf/open/floor/cobblerock,
/area/under/tomb/wilds)
"BV" = (
@@ -2569,7 +2569,7 @@
/obj/item/clothing/armor/plate/rust,
/obj/item/clothing/armor/chainmail,
/obj/item/clothing/ring/gold/rontz,
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/mob/living/carbon/human/species/skeleton/npc/no_equipment{
base_speed = 12;
base_strength = 15;
diff --git a/_maps/matthios_tomb/room/hctomb2.dmm b/_maps/matthios_tomb/room/hctomb2.dmm
index 505c26eea1e..c0e30fd9d88 100644
--- a/_maps/matthios_tomb/room/hctomb2.dmm
+++ b/_maps/matthios_tomb/room/hctomb2.dmm
@@ -433,7 +433,7 @@
/obj/item/clothing/pants/trou/leather/mourning,
/obj/item/clothing/shirt/robe/necra,
/obj/item/clothing/head/padded/deathshroud,
-/obj/item/clothing/neck/psycross/silver/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
/turf/open/floor/dirt/road,
/area/under/tomb)
"IB" = (
diff --git a/_maps/matthios_tomb/room/hctomb5.dmm b/_maps/matthios_tomb/room/hctomb5.dmm
index 4ba83f2db88..d5885e410d8 100644
--- a/_maps/matthios_tomb/room/hctomb5.dmm
+++ b/_maps/matthios_tomb/room/hctomb5.dmm
@@ -307,7 +307,7 @@
/turf/open/floor/wood,
/area/under/tomb/indoors/rest)
"Pa" = (
-/obj/item/clothing/neck/psycross/g{
+/obj/item/clothing/neck/psycross/gold{
pixel_x = -6;
pixel_y = 0
},
diff --git a/_maps/matthios_tomb/room/queensretreat.dmm b/_maps/matthios_tomb/room/queensretreat.dmm
index c279261fc38..987b5cd2bf4 100644
--- a/_maps/matthios_tomb/room/queensretreat.dmm
+++ b/_maps/matthios_tomb/room/queensretreat.dmm
@@ -926,7 +926,7 @@
"Pd" = (
/obj/machinery/light/fueled/wallfire/candle/weak/r,
/obj/structure/closet/crate/crafted_closet/lord,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/obj/item/clothing/ring/silver/noc,
/obj/item/reagent_containers/glass/bottle/stronghealthpot,
/obj/item/reagent_containers/glass/bottle/stronghealthpot,
diff --git a/_maps/matthios_tomb/room/rousecamp.dmm b/_maps/matthios_tomb/room/rousecamp.dmm
index 50a82be2a9f..be2028582d4 100644
--- a/_maps/matthios_tomb/room/rousecamp.dmm
+++ b/_maps/matthios_tomb/room/rousecamp.dmm
@@ -119,7 +119,7 @@
/area/under/tomb/indoors)
"nJ" = (
/obj/structure/table/church/m,
-/obj/item/clothing/neck/psycross/silver/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
/turf/open/floor/churchmarble,
/area/under/tomb/cave/lava)
"nR" = (
diff --git a/_maps/templates/malums_anvil_dungeons/embercradle.dmm b/_maps/templates/malums_anvil_dungeons/embercradle.dmm
index 4d0faf2a78c..9f40a909e21 100644
--- a/_maps/templates/malums_anvil_dungeons/embercradle.dmm
+++ b/_maps/templates/malums_anvil_dungeons/embercradle.dmm
@@ -2467,7 +2467,7 @@
/obj/item/storage/belt/leather/plaquesilver,
/obj/item/clothing/ring/silver/noc,
/obj/item/clothing/wrists/nocwrappings,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/obj/effect/mapping_helpers/floor_clothing_equipper,
/mob/living/carbon/human/species/skeleton/npc/no_equipment,
/turf/open/floor/carpet/purple,
@@ -3265,7 +3265,7 @@
/obj/structure/table/church{
dir = 1
},
-/obj/item/clothing/neck/psycross/g,
+/obj/item/clothing/neck/psycross/gold,
/turf/open/floor/cobble,
/area/under/mountains/anvil/dungeon/lower)
"Ru" = (
@@ -3452,7 +3452,7 @@
/area/under/mountains/anvil/dungeon)
"Uf" = (
/obj/structure/table/church,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/turf/open/floor/cobble,
/area/under/mountains/anvil/dungeon/lower)
"Ui" = (
@@ -3713,7 +3713,7 @@
"Xr" = (
/mob/living/carbon/human/species/skeleton/npc/no_equipment,
/obj/item/clothing/shirt/robe/noc,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/obj/item/clothing/head/roguehood/nochood,
/obj/item/clothing/gloves/leather/black,
/obj/item/clothing/shoes/boots/leather,
diff --git a/_maps/templates/malums_anvil_dungeons/mountaintown.dmm b/_maps/templates/malums_anvil_dungeons/mountaintown.dmm
index 4ee24280291..14173e53e4a 100644
--- a/_maps/templates/malums_anvil_dungeons/mountaintown.dmm
+++ b/_maps/templates/malums_anvil_dungeons/mountaintown.dmm
@@ -1234,7 +1234,7 @@
/obj/structure/table/wood/large/corner_blue{
dir = 10
},
-/obj/item/clothing/neck/psycross/silver/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
/turf/open/floor/churchmarble,
/area/under/mountains/anvil/dungeon)
"qN" = (
@@ -1715,7 +1715,7 @@
"xF" = (
/obj/structure/closet/crate/drawer,
/obj/item/candle/yellow,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
/turf/open/floor/wood/nosmooth,
/area/under/mountains/anvil/dungeon)
"xJ" = (
@@ -3602,7 +3602,7 @@
/area/under/mountains/anvil/dungeon/lower)
"Zq" = (
/obj/effect/decal/cleanable/blood/gibs,
-/obj/item/clothing/neck/psycross/silver/malum/steel,
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel,
/obj/effect/decal/cleanable/blood/gibs/body,
/turf/open/floor/wood/nosmooth,
/area/under/mountains/anvil/dungeon)
diff --git a/_maps/templates/sk_dungeon/small_bog_dungeon_1.dmm b/_maps/templates/sk_dungeon/small_bog_dungeon_1.dmm
index 8dc54165692..653d3968c8d 100644
--- a/_maps/templates/sk_dungeon/small_bog_dungeon_1.dmm
+++ b/_maps/templates/sk_dungeon/small_bog_dungeon_1.dmm
@@ -280,7 +280,7 @@
/area/outdoors/bog)
"ON" = (
/obj/structure/closet/crate/coffin,
-/obj/item/clothing/neck/psycross/silver/necra,
+/obj/item/clothing/neck/psycross/silver/divine/necra,
/turf/open/floor/blocks,
/area/outdoors/bog)
"OQ" = (
@@ -344,7 +344,7 @@
/area/outdoors/bog)
"Wo" = (
/obj/structure/closet/crate/coffin,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/turf/open/floor/blocks/paving,
/area/outdoors/bog)
"WF" = (
@@ -357,7 +357,7 @@
/area/outdoors/bog)
"YA" = (
/obj/structure/closet/crate/coffin,
-/obj/item/clothing/neck/psycross/silver/ravox,
+/obj/item/clothing/neck/psycross/silver/divine/ravox,
/turf/open/floor/blocks/paving,
/area/outdoors/bog)
diff --git a/_maps/templates/sk_dungeon/small_bog_dungeon_3.dmm b/_maps/templates/sk_dungeon/small_bog_dungeon_3.dmm
index c5209b7ed49..919f51d9a22 100644
--- a/_maps/templates/sk_dungeon/small_bog_dungeon_3.dmm
+++ b/_maps/templates/sk_dungeon/small_bog_dungeon_3.dmm
@@ -130,7 +130,7 @@
/obj/structure/closet/crate/coffin,
/obj/item/clothing/head/helmet/heavy/necked/noc,
/obj/item/clothing/ring/silver/noc,
-/obj/item/clothing/neck/psycross/silver/noc,
+/obj/item/clothing/neck/psycross/silver/divine/noc,
/turf/open/floor/herringbone,
/area/outdoors/bog)
"Q" = (
diff --git a/code/__DEFINES/enchantments.dm b/code/__DEFINES/enchantments.dm
index 16135013f28..2979059f753 100644
--- a/code/__DEFINES/enchantments.dm
+++ b/code/__DEFINES/enchantments.dm
@@ -1,10 +1,18 @@
#define DEFAULT_DURATION 9000 // 15 MINUTES
+
#define SEARING_BLADE_ENCHANT 1
#define FORCE_BLADE_ENCHANT 2
#define DURABILITY_ENCHANT 3
+#define DIVINE_FIRE_ENCHANT 4
+
#define SEARING_BLADE_DAMAGE 8
-#define FORCE_BLADE_FORCE 5
-#define DURABILITY_INCREASE 100
#define SEARING_FILTER "searing_blade"
+
+#define FORCE_BLADE_FORCE 5
#define FORCE_FILTER "force_blade"
+
+#define DURABILITY_INCREASE 100
#define DURABILITY_FILTER "durability_enchant"
+
+#define DIVINE_FIRE_DAMAGE 8
+#define DIVINE_FILTER "holy_blade"
diff --git a/code/__DEFINES/roguetown.dm b/code/__DEFINES/roguetown.dm
index 38789e326eb..c527374471b 100644
--- a/code/__DEFINES/roguetown.dm
+++ b/code/__DEFINES/roguetown.dm
@@ -1,4 +1,5 @@
#define ALL_TEMPLE_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/abyssor, /datum/patron/divine/necra, /datum/patron/divine/ravox, /datum/patron/divine/xylix, /datum/patron/divine/pestra, /datum/patron/divine/malum, /datum/patron/divine/eora)
+#define UNDIVIDED_TEMPLE_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/abyssor, /datum/patron/divine/necra, /datum/patron/divine/ravox, /datum/patron/divine/xylix, /datum/patron/divine/pestra, /datum/patron/divine/malum, /datum/patron/divine/eora, /datum/patron/divine/centrist)
#define ALL_CLERIC_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/abyssor, /datum/patron/divine/necra, /datum/patron/divine/ravox, /datum/patron/divine/xylix, /datum/patron/divine/pestra, /datum/patron/divine/malum, /datum/patron/divine/eora)
#define ALL_PALADIN_PATRONS list(/datum/patron/psydon, /datum/patron/psydon/extremist, /datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/abyssor, /datum/patron/divine/necra, /datum/patron/divine/ravox, /datum/patron/divine/xylix, /datum/patron/divine/pestra, /datum/patron/divine/malum, /datum/patron/divine/eora)
#define ALL_TEMPLAR_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/eora, /datum/patron/divine/necra, /datum/patron/divine/ravox, /datum/patron/divine/pestra, /datum/patron/divine/dendor, /datum/patron/divine/abyssor, /datum/patron/divine/malum, /datum/patron/divine/xylix)
@@ -7,6 +8,7 @@
/// Currently same as ALL_ICONOCLAST_PATRONS, but in text format because byond sucks and won't read things properly.
#define COLORFUL_PATRONS list("Psydon", "Astrata", "Noc", "Dendor", "Abyssor", "Necra", "Ravox", "Xylix", "Pestra", "Malum", "Eora", "Graggar", "Zizo", "Matthios", "Baotha")
+#define TEMPLE_PATRON_NAMES list("Astrata", "Noc", "Dendor", "Abyssor", "Necra", "Ravox", "Xylix", "Pestra", "Malum", "Eora")
GLOBAL_LIST_INIT(curse_names, list())
diff --git a/code/__DEFINES/storytellers.dm b/code/__DEFINES/storytellers.dm
index 500121cbf72..b46c4831e8d 100644
--- a/code/__DEFINES/storytellers.dm
+++ b/code/__DEFINES/storytellers.dm
@@ -212,9 +212,19 @@
#define MALUM "Malum"
#define EORA "Eora"
#define DENDOR "Dendor"
+#define DIVINE_CENTRIST "Enlightened Centrism"
// Inhumen pantheon
#define ZIZO "Zizo"
#define BAOTHA "Baotha"
#define GRAGGAR "Graggar"
#define MATTHIOS "Matthios"
+
+// Devotion Classes
+#define DEVOTION_CLASS_PRIEST "Priest"
+#define DEVOTION_CLASS_GRANDMASTER "Grandmaster"
+#define DEVOTION_CLASS_TEMPLAR "Templar"
+#define DEVOTION_CLASS_ACOLYTE "Acolyte"
+#define DEVOTION_CLASS_ABSOLVER "Absolver"
+#define DEVOTION_CLASS_CLERIC "Cleric"
+#define DEVOTION_CLASS_CHURCHLING "Churchling"
diff --git a/code/__DEFINES/traits/definitions.dm b/code/__DEFINES/traits/definitions.dm
index 849c1f5a10c..184a72763ff 100644
--- a/code/__DEFINES/traits/definitions.dm
+++ b/code/__DEFINES/traits/definitions.dm
@@ -453,6 +453,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_INQUISITION "Member of the Oratorium Throni Vacui"
#define TRAIT_PURITAN "Puritan"
#define TRAIT_SILVER_BLESSED "Silver Blessed"
+#define TRAIT_DIVINE_CENTRIST "Divine Centrist"
+#define TRAIT_DIVINE_SERVANT "Divine Servant"
+#define TRAIT_DIVINE_CONVERT "Divine Convert"
// Inhumen patron trait bonuses
#define TRAIT_ORGAN_EATER "Blessing of Graggar"//Can eat organs (duh.) and raw meat
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 1418b59f7e9..f2d0d292354 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -60,7 +60,8 @@
patron = new patron()
- GLOB.patron_list[patron.type] = patron
+ GLOB.patrons_by_type[patron.type] = patron
+ GLOB.patrons_by_name[patron.name] = patron
LAZYINITLIST(GLOB.patrons_by_faith[patron.associated_faith])
diff --git a/code/_globalvars/special_traits/traits.dm b/code/_globalvars/special_traits/traits.dm
index 3aed25ed5ca..5b0c367e7ed 100644
--- a/code/_globalvars/special_traits/traits.dm
+++ b/code/_globalvars/special_traits/traits.dm
@@ -877,7 +877,7 @@
var/holder = character.patron?.devotion_holder
if(holder)
var/datum/devotion/devotion = new holder()
- devotion.make_churching()
+ devotion.make_churchling()
devotion.grant_to(character)
character.mind.special_items["Baotha's Gift"] = /obj/item/clothing/head/corruptflower
character.AddComponent(/datum/component/theme_music)
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index 5eb1e0f89d4..bf73e249458 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -99,6 +99,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"Blessing of Pestra"= TRAIT_ROT_EATER,
"Blessing of Dendor" = TRAIT_KNEESTINGER_IMMUNITY,
"Blessing of Necra" = TRAIT_SOUL_EXAMINE,
+ "Enlightened Centrist" = TRAIT_DIVINE_CENTRIST,
+ "Divine Servant" = TRAIT_DIVINE_SERVANT,
+ "Divine Convert" = TRAIT_DIVINE_CONVERT,
"Golden Blood" = TRAIT_SEEPRICES,
"Of the Cabal" = TRAIT_CABAL,
"Unleechable" = TRAIT_LEECHIMMUNE,
@@ -259,6 +262,9 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_INTRAINING = "I'm going to be a knight someday! I can use training dummies more effectively than others.",
TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.",
TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention, a tiny voice whispering 'Someone has died,' in my ear."),
+ TRAIT_DIVINE_CENTRIST = "I haven't connected a divine patron. I wonder which one I should profess myself to...",
+ TRAIT_DIVINE_SERVANT = SPAN_GOD_GENERIC("I serve the divine."),
+ TRAIT_DIVINE_CONVERT = SPAN_GOD_GENERIC("I recently converted to a new Patron."),
TRAIT_CABAL = span_purple("In secret, I have studied the ways of Her ascension, and know of others of the Cabal."),
TRAIT_LEGENDARY_ALCHEMIST = span_info("An expert in the art of finding herbs in the wild."),
TRAIT_DECEIVING_MEEKNESS = "People look at me and think I am a weakling. They are mistaken.",
diff --git a/code/controllers/subsystem/storyteller.dm b/code/controllers/subsystem/storyteller.dm
index e3c3a99711d..39fc7a3f9aa 100644
--- a/code/controllers/subsystem/storyteller.dm
+++ b/code/controllers/subsystem/storyteller.dm
@@ -1564,7 +1564,7 @@ SUBSYSTEM_DEF(gamemode)
current_valid_humans += human_mob
record_round_statistic(STATS_TOTAL_POPULATION)
for(var/obj/item/clothing/neck/current_item in human_mob.get_equipped_items(TRUE))
- if(current_item.type in list(/obj/item/clothing/neck/psycross, /obj/item/clothing/neck/psycross/silver, /obj/item/clothing/neck/psycross/g))
+ if(current_item.type in list(/obj/item/clothing/neck/psycross, /obj/item/clothing/neck/psycross/silver, /obj/item/clothing/neck/psycross/gold))
record_round_statistic(STATS_PSYCROSS_USERS)
break
switch(human_mob.gender)
diff --git a/code/datums/components/enchanted_item.dm b/code/datums/components/enchanted_item.dm
index c630af6873d..b4d56a328c9 100644
--- a/code/datums/components/enchanted_item.dm
+++ b/code/datums/components/enchanted_item.dm
@@ -25,22 +25,23 @@
var/decay_timer
/datum/component/enchanted_weapon/Initialize(
- duration = 15 MINUTES,
- refresh_count = 4,
- refresh_skill = /datum/skill/magic/arcane,
- skill_threshold = SKILL_LEVEL_JOURNEYMAN,
- enchant_type = SEARING_BLADE_ENCHANT,
- current_user,
+ n_duration = 15 MINUTES,
+ n_refresh_count = 4,
+ n_refresh_skill = /datum/skill/magic/arcane,
+ n_skill_threshold = SKILL_LEVEL_JOURNEYMAN,
+ n_enchant_type = SEARING_BLADE_ENCHANT,
+ n_current_user,
)
if(!istype(parent, /obj/item/weapon))
return COMPONENT_INCOMPATIBLE
- src.duration = duration
- src.refresh_count = refresh_count
- src.refresh_skill = refresh_skill
- src.enchant_type = enchant_type
- if(current_user)
- src.current_user = WEAKREF(current_user)
+ duration = n_duration
+ refresh_count = n_refresh_count
+ refresh_skill = n_refresh_skill
+ skill_threshold = n_skill_threshold
+ enchant_type = n_enchant_type
+ if(n_current_user)
+ current_user = WEAKREF(n_current_user)
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip))
@@ -59,6 +60,8 @@
I.add_filter(FORCE_FILTER, 2, outline_filter(1, "#9400D3"))
if(SEARING_BLADE_ENCHANT)
I.add_filter(SEARING_FILTER, 2, outline_filter(1, "#64af18"))
+ if(DIVINE_FIRE_ENCHANT)
+ I.add_filter(DIVINE_FILTER, 2, outline_filter(1, "#dddddd"))
if(DURABILITY_ENCHANT)
I.modify_max_integrity(I.max_integrity + DURABILITY_INCREASE)
I.add_filter(DURABILITY_FILTER, 2, outline_filter(1, "#808080"))
@@ -108,6 +111,8 @@
I.remove_filter(FORCE_FILTER)
if(SEARING_BLADE_ENCHANT)
I.remove_filter(SEARING_FILTER)
+ if(DIVINE_FIRE_ENCHANT)
+ I.remove_filter(DIVINE_FILTER)
if(DURABILITY_ENCHANT)
I.modify_max_integrity(I.max_integrity - DURABILITY_INCREASE, can_break = FALSE)
I.remove_filter(DURABILITY_FILTER)
@@ -124,12 +129,15 @@
current_user = null
/datum/component/enchanted_weapon/proc/on_examine(datum/source, mob/user, list/examine_list)
- if(enchant_type == SEARING_BLADE_ENCHANT)
- examine_list += "This weapon is enchanted with a green flame enchantment."
- else if(enchant_type == FORCE_BLADE_ENCHANT)
- examine_list += "This weapon is enchanted with a force blade enchantment."
- else if(enchant_type == DURABILITY_ENCHANT)
- examine_list += "This weapon is enchanted with a durability enchantment."
+ switch(enchant_type)
+ if(SEARING_BLADE_ENCHANT)
+ examine_list += "This weapon is enchanted with a green flame enchantment."
+ if(FORCE_BLADE_ENCHANT)
+ examine_list += "This weapon is enchanted with a force blade enchantment."
+ if(DURABILITY_ENCHANT)
+ examine_list += "This weapon is enchanted with a durability enchantment."
+ if(DIVINE_FIRE_ENCHANT)
+ examine_list += "This weapon is enchanted with a divine flame enchantment."
examine_list += "It will last for [timeleft(decay_timer) / 10] more seconds."
/datum/component/enchanted_weapon/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, list/modifiers)
@@ -137,8 +145,18 @@
return
if(enchant_type == SEARING_BLADE_ENCHANT)
if(isliving(target))
- var/mob/living/M = target
- M.adjustFireLoss(SEARING_BLADE_DAMAGE)
- to_chat(M, span_warning("Flames leaps from [source] and singes you!"))
+ var/mob/living/target_mob = target
+ target_mob.adjustFireLoss(SEARING_BLADE_DAMAGE)
+ target_mob.visible_message(span_warning("Flames leap from [source], burning [target_mob]!"), span_warning("Flames leap from [source] and singes you!"))
+ // Permanent temporary solution until I figure out how to hack a dynamic on mob sprites
+ // Bypass parry & dodge btw.
+ else if(enchant_type == DIVINE_FIRE_ENCHANT)
+ if(isliving(target))
+ var/mob/living/target_mob = target
+ var/damage_amt = DIVINE_FIRE_DAMAGE
+ if(source.has_enchantment(/datum/enchantment/silver))
+ damage_amt = damage_amt*1.5
+ target_mob.adjustFireLoss(damage_amt)
+ target_mob.visible_message(span_warning("Divine fire leaps from [source], burning [target_mob]!"), span_warning("Divine fire leaps from [source] and singes you!"))
// Permanent temporary solution until I figure out how to hack a dynamic on mob sprites
// Bypass parry & dodge btw.
diff --git a/code/datums/components/martyrweapon.dm b/code/datums/components/martyrweapon.dm
index 7570ecd37fb..97fe815d690 100644
--- a/code/datums/components/martyrweapon.dm
+++ b/code/datums/components/martyrweapon.dm
@@ -15,7 +15,7 @@
var/ignite_chance = 2
var/traits_applied = list(TRAIT_NOPAIN, TRAIT_NOPAINSTUN, TRAIT_LONGSTRIDER)
var/stat_bonus_martyr = 3
- var/mob/living/current_holder
+ var/mob/living/bound_user
var/is_active = FALSE
var/allow_all = FALSE
var/is_activating
@@ -79,10 +79,10 @@
/datum/component/martyrweapon/proc/handle_end()
deactivate()
- var/mob/living/carbon/C = current_holder
+ var/mob/living/carbon/C = bound_user
switch(current_state)
if(STATE_SAFE)
- var/area/A = get_area(current_holder)
+ var/area/A = get_area(bound_user)
var/success = FALSE
for(var/AR in allowed_areas) //Are we in a whitelisted area? (Church, mainly)
if(istype(A, AR))
@@ -95,9 +95,9 @@
if(istype(mercyarea, AR))
success = TRUE
if(success)
- to_chat(current_holder, span_notice("The weapon fizzles out, its energies dissipating across the holy grounds."))
+ to_chat(bound_user, span_notice("The weapon fizzles out, its energies dissipating across the holy grounds."))
else
- to_chat(current_holder, span_notice("The weapon begins to fizzle out, but the energy has nowhere to go!"))
+ to_chat(bound_user, span_notice("The weapon begins to fizzle out, but the energy has nowhere to go!"))
C.freak_out()
deathprocess()
@@ -106,20 +106,20 @@
deathprocess()
/datum/component/martyrweapon/proc/deathprocess()
- if(current_holder)
- current_holder.Stun(16000, 1, 1) //Even if you glitch out to survive you're still permastunned, you are not meant to come back from this
- var/mob/living/carbon/human/H = current_holder
+ if(bound_user)
+ bound_user.Stun(16000, 1, 1) //Even if you glitch out to survive you're still permastunned, you are not meant to come back from this
+ var/mob/living/carbon/human/H = bound_user
if(H.cmode) //Turn off the music
H.toggle_cmode()
addtimer(CALLBACK(src, PROC_REF(killhost)), 30 SECONDS)
- current_holder.visible_message(span_warning("[current_holder] falls to their knees, planting their weapon into the ground as holy energies pulse from their body!"), span_warning("My oath is fulfilled. I hope I made it count. I have thirty seconds to make peace with the Gods and my Kin."))
- current_holder.playsound_local(current_holder, 'sound/health/fastbeat.ogg', 100)
+ bound_user.visible_message(span_warning("[bound_user] falls to their knees, planting their weapon into the ground as holy energies pulse from their body!"), span_warning("My oath is fulfilled. I hope I made it count. I have thirty seconds to make peace with the Gods and my Kin."))
+ bound_user.playsound_local(bound_user, 'sound/health/fastbeat.ogg', 100)
/datum/component/martyrweapon/proc/killhost()
- if(current_holder)
- var/mob/living/carbon/human/H = current_holder
- current_holder.playsound_local(current_holder, 'sound/magic/ahh1.ogg', 100)
- current_holder.visible_message(span_info("[current_holder] fades away."), span_info("Your life led up to this moment. In the face of the decay of the world, you endured. Now you rest. You feel your soul shed from its mortal coils, and the embrace of [H.patron.name]"))
+ if(bound_user)
+ var/mob/living/carbon/human/H = bound_user
+ bound_user.playsound_local(bound_user, 'sound/magic/ahh1.ogg', 100)
+ bound_user.visible_message(span_info("[bound_user] fades away."), span_info("Your life led up to this moment. In the face of the decay of the world, you endured. Now you rest. You feel your soul shed from its mortal coils, and the embrace of [H.patron.name]"))
H.dust(drop_items = TRUE)
is_dying = FALSE
@@ -127,18 +127,18 @@
/datum/component/martyrweapon/proc/timehint()
var/result = round((end_activation - world.time) / 600) //Minutes
if(result != last_time && last_time != 30)
- to_chat(current_holder,span_notice("[result + 1] minute[result ? "s" : ""] left."))
+ to_chat(bound_user,span_notice("[result + 1] minute[result ? "s" : ""] left."))
last_time = result
return result
if(result == 0)
var/resultadv = (end_activation - world.time) / 10 //Seconds
if(resultadv < 30 && resultadv > 27 && last_time != 30)
- to_chat(current_holder,span_notice("30 SECONDS! MY POWER SURGES!!"))
+ to_chat(bound_user,span_notice("30 SECONDS! MY POWER SURGES!!"))
last_time = 30
return 30
else
if(resultadv == 10 && last_time != 10)
- to_chat(current_holder,span_crit("10 SECONDS"))
+ to_chat(bound_user,span_crit("10 SECONDS"))
last_time = resultadv
return 0
@@ -179,17 +179,20 @@
to_chat(H, span_warn("It slips from my grasp. I can't get a hold."))
H.dropItemToGround(parent)
return
- else
+ if(!bound_user)
+ bound_user = user
+ to_chat(user, SPAN_GOD_ASTRATA("The weapon binds to you."))
+ if(user == bound_user)
RegisterSignal(user, COMSIG_CLICK_ALT, PROC_REF(altclick), override = TRUE)
- current_holder = user
- if(J.title == "Grandmaster Templar")
- to_chat(user, span_warning("The weapon binds to you."))
else
- RegisterSignal(user, COMSIG_CLICK_ALT, PROC_REF(altclick), override = TRUE)
- current_holder = user
+ if(!bound_user)
+ bound_user = user
+ to_chat(user, SPAN_GOD_ASTRATA("The weapon binds to you."))
+ if(user == bound_user)
+ RegisterSignal(user, COMSIG_CLICK_ALT, PROC_REF(altclick), override = TRUE)
/datum/component/martyrweapon/proc/altclick(mob/user)
- if(user == current_holder && !is_active && !is_activating)
+ if(user == bound_user && !is_active && !is_activating)
var/holding = user.get_active_held_item()
if(holding == parent)
if(COOLDOWN_FINISHED(src, weaponactivate))
@@ -227,13 +230,13 @@
//IF it gets dropped, somehow (likely delimbing), turn it off immediately.
/datum/component/martyrweapon/proc/on_drop(datum/source, mob/user)
- if(current_holder == user)
+ if(bound_user == user)
UnregisterSignal(user, COMSIG_CLICK_ALT)
if(current_state == STATE_SAFE && is_active)
deactivate()
/datum/component/martyrweapon/proc/on_examine(datum/source, mob/user, list/examine_list)
- if(current_holder && current_holder == user)
+ if(bound_user && bound_user == user)
examine_list += span_notice("It looks to be bound to you. Alt + right click to activate it.")
if(!COOLDOWN_FINISHED(src, weaponactivate))
examine_list += span_notice("The time remaining until it is prepared: [COOLDOWN_TIMELEFT(src, weaponactivate) / 600] minutes")
@@ -241,19 +244,19 @@
examine_list += span_notice("It looks ready to be used again.")
if(is_active)
examine_list += span_warningbig("It is lit afire by godly energies!")
- if(user == current_holder)
+ if(user == bound_user)
examine_list += span_warningbig("SLAY THE HERETICS! TAKE THEM WITH YOU!")
/datum/component/martyrweapon/proc/adjust_traits(remove = FALSE)
for(var/trait in traits_applied)
if(!remove)
- ADD_TRAIT(current_holder, trait, "martyrweapon")
+ ADD_TRAIT(bound_user, trait, "martyrweapon")
else
- REMOVE_TRAIT(current_holder, trait, "martyrweapon")
+ REMOVE_TRAIT(bound_user, trait, "martyrweapon")
/datum/component/martyrweapon/proc/adjust_stats(state)
- if(current_holder)
- var/mob/living/carbon/human/H = current_holder
+ if(bound_user)
+ var/mob/living/carbon/human/H = bound_user
switch(state)
if(STATE_SAFE) //Lowered damage due to BURN damage type and SAFE activation
var/obj/item/I = parent
@@ -263,20 +266,20 @@
I.force_wielded = active_safe_damage_wielded
return
if(STATE_MARTYR)
- current_holder.STASTR += stat_bonus_martyr
- //current_holder.STASPD += stat_bonus_martyr
- current_holder.STACON += stat_bonus_martyr
- current_holder.STAEND += stat_bonus_martyr
- current_holder.STAINT += stat_bonus_martyr
- current_holder.STAPER += stat_bonus_martyr
- current_holder.STALUC += stat_bonus_martyr
+ bound_user.STASTR += stat_bonus_martyr
+ //bound_user.STASPD += stat_bonus_martyr
+ bound_user.STACON += stat_bonus_martyr
+ bound_user.STAEND += stat_bonus_martyr
+ bound_user.STAINT += stat_bonus_martyr
+ bound_user.STAPER += stat_bonus_martyr
+ bound_user.STALUC += stat_bonus_martyr
H.adjust_energy(9999)
if(STATE_MARTYRULT) // This ONLY triggers a minute and a half into the ult. They'll have this for thirty seconds and then DIE. Go off King.
- ADD_TRAIT(current_holder, TRAIT_NOSTAMINA, TRAIT_GENERIC)
- current_holder.STASTR = 20
- current_holder.STAPER = 20
- current_holder.STACON = 20
- current_holder.STAEND = 20
+ ADD_TRAIT(bound_user, TRAIT_NOSTAMINA, TRAIT_GENERIC)
+ bound_user.STASTR = 20
+ bound_user.STAPER = 20
+ bound_user.STACON = 20
+ bound_user.STAEND = 20
//This is called regardless of the activated state (safe or not)
/datum/component/martyrweapon/proc/deactivate()
@@ -287,7 +290,7 @@
I.damtype = BRUTE
I.possible_item_intents = inactive_intents
I.gripped_intents = inactive_intents_wielded
- current_holder.update_a_intents()
+ bound_user.update_a_intents()
I.force = initial(I.force)
I.force_wielded = initial(I.force_wielded)
I.max_integrity = initial(I.max_integrity)
@@ -320,11 +323,11 @@
I.item_state = initial(I.item_state)
I.toggle_state = null
- current_holder.regenerate_icons()
+ bound_user.regenerate_icons()
//This is called once all the checks are passed and the options are made by the player to commit.
/datum/component/martyrweapon/proc/activate(mob/user, status_flag)
- current_holder.visible_message("[span_notice("[current_holder] begins invoking their Oath!")]", span_notice("You begin to invoke your oath."))
+ bound_user.visible_message("[span_notice("[bound_user] begins invoking their Oath!")]", span_notice("You begin to invoke your oath."))
if(do_after(user, 5 SECONDS, parent))
flash_lightning(user)
var/obj/item/I = parent
@@ -343,8 +346,8 @@
if(STATE_SAFE)
end_activation = world.time + safe_duration //Only a duration and nothing else.
adjust_stats(current_state) //Lowers the damage of the sword due to safe activation.
- current_holder.energy = current_holder.max_energy
- current_holder.stamina = 0
+ bound_user.energy = bound_user.max_energy
+ bound_user.stamina = 0
I.blade_int = I.max_blade_int
if(STATE_MARTYR)
end_activation = world.time + martyr_duration
@@ -353,8 +356,8 @@
I.blade_int = I.max_blade_int
adjust_stats(current_state) //Gives them extra stats.
- current_holder.stamina = 0
- current_holder.energy = current_holder.max_energy
+ bound_user.stamina = 0
+ bound_user.energy = bound_user.max_energy
if(STATE_MARTYRULT)
end_activation = world.time + ultimate_duration
@@ -363,22 +366,22 @@
I.max_blade_int = 9999
I.blade_int = I.max_blade_int
- current_holder.adjust_skillrank(/datum/skill/misc/athletics, 6, FALSE)
+ bound_user.adjust_skillrank(/datum/skill/misc/athletics, 6, FALSE)
adjust_stats(STATE_MARTYR)
- current_holder.energy = current_holder.max_energy
- current_holder.stamina = 0
+ bound_user.energy = bound_user.max_energy
+ bound_user.stamina = 0
- current_holder.adjust_skillrank(/datum/skill/combat/swords, 1, FALSE)
- current_holder.adjust_skillrank(/datum/skill/combat/axesmaces, 1, FALSE)
- current_holder.adjust_skillrank(/datum/skill/combat/polearms, 1, FALSE)
+ bound_user.adjust_skillrank(/datum/skill/combat/swords, 1, FALSE)
+ bound_user.adjust_skillrank(/datum/skill/combat/axesmaces, 1, FALSE)
+ bound_user.adjust_skillrank(/datum/skill/combat/polearms, 1, FALSE)
else
end_activation = world.time + safe_duration
- if(ishuman(current_holder))
- var/mob/living/carbon/human/H = current_holder
+ if(ishuman(bound_user))
+ var/mob/living/carbon/human/H = bound_user
switch(status_flag)
if(STATE_MARTYR)
SEND_SOUND(H, sound(null))
@@ -397,7 +400,7 @@
is_active = TRUE
else
is_activating = FALSE
- SEND_SOUND(current_holder, sound(null))
+ SEND_SOUND(bound_user, sound(null))
#undef STATE_SAFE
#undef STATE_MARTYR
diff --git a/code/datums/elements/divine_intervention.dm b/code/datums/elements/divine_intervention.dm
index 5f6913f83c0..68c29181e6d 100644
--- a/code/datums/elements/divine_intervention.dm
+++ b/code/datums/elements/divine_intervention.dm
@@ -10,7 +10,7 @@
. = ..()
if(!istype(target))
return ELEMENT_INCOMPATIBLE
- src.patron = GLOB.patron_list[patron]
+ src.patron = GLOB.patrons_by_type[patron]
src.allows_pantheon = allows_pantheon
src.stress_event = stress_event
src.sets_alight = sets_alight
diff --git a/code/datums/faith/_devotion.dm b/code/datums/faith/_devotion.dm
index 61b5182c65a..3046f82787e 100644
--- a/code/datums/faith/_devotion.dm
+++ b/code/datums/faith/_devotion.dm
@@ -29,6 +29,8 @@
var/list/datum/devotion_task/tasks = list()
var/list/viable_tasks = list()
+ var/devotion_class = DEVOTION_CLASS_CLERIC
+
/datum/devotion/Destroy(force)
remove()
STOP_PROCESSING(SSprocessing, src)
@@ -150,21 +152,32 @@
/datum/action/cooldown/spell/undirected/touch/orison,
/datum/action/cooldown/spell/cure_rot,
)
+ devotion_class = DEVOTION_CLASS_PRIEST
+
+/datum/devotion/proc/make_gmtemplar()
+ devotion = 150
+ max_devotion = 350
+ progression = CLERIC_REQ_3
+ max_progression = CLERIC_REQ_3
+ devotion_class = DEVOTION_CLASS_GRANDMASTER
/datum/devotion/proc/make_templar()
devotion = 50
max_devotion = CLERIC_REQ_3
progression = CLERIC_REQ_1
max_progression = CLERIC_REQ_2
+ devotion_class = DEVOTION_CLASS_TEMPLAR
/datum/devotion/proc/make_absolver()
devotion = 100
max_devotion = CLERIC_REQ_3
progression = CLERIC_REQ_3
max_progression = CLERIC_REQ_3
+ devotion_class = DEVOTION_CLASS_ABSOLVER
/datum/devotion/proc/make_acolyte()
progression = CLERIC_REQ_1
+ devotion_class = DEVOTION_CLASS_ACOLYTE
/datum/devotion/proc/make_cleric()
devotion = 50
@@ -172,7 +185,7 @@
progression = CLERIC_REQ_1
max_progression = CLERIC_REQ_3
-/datum/devotion/proc/make_churching()
+/datum/devotion/proc/make_churchling()
max_devotion = CLERIC_REQ_1
progression = CLERIC_REQ_1
max_progression = CLERIC_REQ_1
@@ -180,6 +193,7 @@
/datum/action/cooldown/spell/undirected/touch/orison/lesser,
/datum/action/cooldown/spell/diagnose/holy,
)
+ devotion_class = DEVOTION_CLASS_CHURCHLING
/mob/living/carbon/human/proc/devotionreport()
set name = "Check Devotion"
diff --git a/code/datums/faith/devotion_subtypes.dm b/code/datums/faith/devotion_subtypes.dm
index 7100e122b72..0ec8deb1b78 100644
--- a/code/datums/faith/devotion_subtypes.dm
+++ b/code/datums/faith/devotion_subtypes.dm
@@ -1,3 +1,18 @@
+/datum/devotion/divine/centrist
+ traits = list(TRAIT_DIVINE_SERVANT)
+
+/datum/devotion/divine/make_gmtemplar()
+ . = ..()
+ miracles = list(
+ CLERIC_T0 = /datum/action/cooldown/spell/healing,
+ CLERIC_T1 = /datum/action/cooldown/spell/avert/templar,
+ CLERIC_T2 = /datum/action/cooldown/spell/enchantment/holy_flame,
+ CLERIC_T3 = /datum/action/cooldown/spell/status/divine_shield,
+ )
+ viable_tasks = list(
+ /datum/devotion_task/astrata_purge,
+ )
+
/datum/devotion/divine/astrata
miracles = list(
CLERIC_T0 = /datum/action/cooldown/spell/healing,
@@ -8,6 +23,7 @@
viable_tasks = list(
/datum/devotion_task/astrata_purge,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/noc
miracles = list(
@@ -21,6 +37,7 @@
/datum/devotion_task/noc_write,
/datum/devotion_task/noc_read,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/dendor
miracles = list(
@@ -34,6 +51,7 @@
/datum/devotion_task/dendor_harvest,
/datum/devotion_task/dendor_bless,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/abyssor
miracles = list(
@@ -46,6 +64,7 @@
/datum/devotion_task/abyssor_sail,
/datum/devotion_task/abyssor_fish,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/necra
miracles = list(
@@ -58,7 +77,7 @@
/datum/devotion_task/necra_bury,
/datum/devotion_task/astrata_purge,
)
- traits = list(TRAIT_DEATHSIGHT)
+ traits = list(TRAIT_DIVINE_SERVANT, TRAIT_DEATHSIGHT)
/datum/devotion/divine/ravox
miracles = list(
@@ -67,6 +86,7 @@
CLERIC_T2 = /datum/action/cooldown/spell/undirected/divine_strike,
CLERIC_T3 = /datum/action/cooldown/spell/persistence,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/xylix
miracles = list(
@@ -79,6 +99,7 @@
/datum/devotion_task/xylix_gamble,
/datum/devotion_task/xylix_trick,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/pestra
miracles = list(
@@ -91,6 +112,7 @@
/datum/devotion_task/pestra_heal,
/datum/devotion_task/pestra_medicine,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/malum
miracles = list(
@@ -104,6 +126,7 @@
/datum/devotion_task/malum_smelt,
/datum/devotion_task/malum_forge,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
/datum/devotion/divine/eora
miracles = list(
@@ -120,6 +143,7 @@
/datum/devotion_task/eora_create,
/datum/devotion_task/eora_hug,
)
+ traits = list(TRAIT_DIVINE_SERVANT)
// Inhumen
/datum/devotion/inhumen/make_cleric()
@@ -134,7 +158,7 @@
/datum/action/cooldown/spell/healing/profane,
)
-/datum/devotion/inhumen/make_churching()
+/datum/devotion/inhumen/make_churchling()
. = ..()
miracles_extra += list(
/datum/action/cooldown/spell/healing/profane,
diff --git a/code/datums/gods/_faith.dm b/code/datums/gods/_faith.dm
index fe707d40bdc..686a3e63f3e 100644
--- a/code/datums/gods/_faith.dm
+++ b/code/datums/gods/_faith.dm
@@ -17,7 +17,7 @@ GLOBAL_LIST_EMPTY(faith_list)
return FALSE
for(var/datum/patron/patron as anything in patrons)
- patron = GLOB.patron_list[patron]
+ patron = GLOB.patrons_by_type[patron]
if(patron.preference_accessible(prefs))
return TRUE
diff --git a/code/datums/gods/_patron.dm b/code/datums/gods/_patron.dm
index b6e16da6253..685ed2f66b5 100644
--- a/code/datums/gods/_patron.dm
+++ b/code/datums/gods/_patron.dm
@@ -1,4 +1,5 @@
-GLOBAL_LIST_EMPTY(patron_list)
+GLOBAL_LIST_EMPTY(patrons_by_type)
+GLOBAL_LIST_EMPTY(patrons_by_name)
GLOBAL_LIST_EMPTY(patrons_by_faith)
GLOBAL_LIST_EMPTY(prayers)
@@ -49,6 +50,8 @@ GLOBAL_LIST_EMPTY(prayers)
return TRUE
/datum/patron/proc/on_gain(mob/living/pious)
+ if(HAS_TRAIT(pious, TRAIT_DIVINE_CONVERT))
+ return
for(var/trait in added_traits)
ADD_TRAIT(pious, trait, "[type]")
for(var/verb in added_verbs)
diff --git a/code/datums/gods/patrons/divine_pantheon.dm b/code/datums/gods/patrons/divine_pantheon.dm
index 0dd39afa515..e943c64f9a9 100644
--- a/code/datums/gods/patrons/divine_pantheon.dm
+++ b/code/datums/gods/patrons/divine_pantheon.dm
@@ -38,6 +38,23 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
return FALSE
/* ----------------- */
+/datum/patron/divine/centrist
+ name = DIVINE_CENTRIST
+ domain = "Unity and Conflict. Denizens of the Eternal Plane."
+ desc = "Worshipping The Ten equally. Worship in such a manner is tolerated, but greatly disapproved of. The Ten rarely give their blessings to those who do not give single-minded adoration to a single diety."
+ flaws = "Discordant, Unyielding, Uninterested."
+ worshippers = "The Meek and The Indecisive"
+ sins = "Temptation, Ignorance, Denial"
+ boons = "The Ten pull for your devotion."
+ added_traits = list(TRAIT_DIVINE_CENTRIST)
+ devotion_holder = /datum/devotion/divine/centrist
+ confess_lines = list(
+ "THE TEN GUIDE US!",
+ "THE TEN PROTECT US!",
+ "I SERVE THE DIVINE TEN!",
+ )
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine
+
/datum/patron/divine/astrata
name = ASTRATA
@@ -55,7 +72,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I SERVE THE GLORY OF THE SUN!",
)
storyteller = /datum/storyteller/astrata
- associated_psycross = /obj/item/clothing/neck/psycross/silver/astrata
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/astrata
/datum/patron/divine/noc
name = NOC
@@ -73,7 +90,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I SEEK THE MYSTERIES OF THE MOON!",
)
storyteller = /datum/storyteller/noc
- associated_psycross = /obj/item/clothing/neck/psycross/silver/noc
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/noc
/datum/patron/divine/dendor
name = DENDOR
@@ -91,7 +108,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I ANSWER THE CALL OF THE WILD!",
)
storyteller = /datum/storyteller/dendor
- associated_psycross = /obj/item/clothing/neck/psycross/silver/dendor
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/dendor
/datum/patron/divine/abyssor
name = ABYSSOR
@@ -109,7 +126,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I AM DRAWN BY THE PULL OF THE TIDE!",
)
storyteller = /datum/storyteller/abyssor
- associated_psycross = /obj/item/clothing/neck/psycross/silver/abyssor
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/abyssor
/datum/patron/divine/necra
name = NECRA
@@ -127,7 +144,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I FEAR NOT DEATH, MY LADY AWAITS ME!",
)
storyteller = /datum/storyteller/necra
- associated_psycross = /obj/item/clothing/neck/psycross/silver/necra
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/necra
/datum/patron/divine/ravox
name = RAVOX
@@ -145,7 +162,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"THE DRUMS OF WAR BEAT IN MY CHEST!",
)
storyteller = /datum/storyteller/ravox
- associated_psycross = /obj/item/clothing/neck/psycross/silver/ravox
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/ravox
/datum/patron/divine/xylix
name = XYLIX
@@ -170,7 +187,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"EORA BRINGS US TOGETHER!",
)
storyteller = /datum/storyteller/xylix
- associated_psycross = /obj/item/clothing/neck/psycross/silver/xylix
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/xylix
/datum/patron/divine/pestra
name = PESTRA
@@ -188,7 +205,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"MY AFFLICTION IS MY TESTAMENT!",
)
storyteller = /datum/storyteller/pestra
- associated_psycross = /obj/item/clothing/neck/psycross/silver/pestra
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/pestra
/datum/patron/divine/pestra/preference_accessible(datum/preferences/prefs)
. = ..()
@@ -214,7 +231,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I AM AN INSTRUMENT OF CREATION!",
)
storyteller = /datum/storyteller/malum
- associated_psycross = /obj/item/clothing/neck/psycross/silver/malum
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/malum
/datum/patron/divine/eora
name = EORA
@@ -232,4 +249,4 @@ GLOBAL_LIST_INIT(patron_sound_themes, list(
"I LOVE YOU, EVEN AS YOU TRESPASS AGAINST ME!",
)
storyteller = /datum/storyteller/eora
- associated_psycross = /obj/item/clothing/neck/psycross/silver/eora
+ associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/eora
diff --git a/code/datums/migrants/waves/daywalker.dm b/code/datums/migrants/waves/daywalker.dm
index 3cb60d76fbc..d5f59eae0c4 100644
--- a/code/datums/migrants/waves/daywalker.dm
+++ b/code/datums/migrants/waves/daywalker.dm
@@ -45,7 +45,7 @@ GLOBAL_VAR_INIT(vamp_detection, FALSE)
/datum/outfit/daywalker
name = "Daywalker (Migrant Wave)"
wrists = /obj/item/clothing/wrists/bracers/leather
- neck = /obj/item/clothing/neck/psycross/silver/astrata
+ neck = /obj/item/clothing/neck/psycross/silver/divine/astrata
gloves = /obj/item/clothing/gloves/fingerless/shadowgloves
pants = /obj/item/clothing/pants/trou/shadowpants
shirt = /obj/item/clothing/shirt/tunic/colored/black
diff --git a/code/datums/migrants/waves/grenzelhoft_wave.dm b/code/datums/migrants/waves/grenzelhoft_wave.dm
index 9e13177583c..3f3bd3e7f51 100644
--- a/code/datums/migrants/waves/grenzelhoft_wave.dm
+++ b/code/datums/migrants/waves/grenzelhoft_wave.dm
@@ -58,7 +58,7 @@
name = "Grenzelhoft Count (Migrant Wave)"
shoes = /obj/item/clothing/shoes/rare/grenzelhoft
gloves = /obj/item/clothing/gloves/angle/grenzel
- wrists = /obj/item/clothing/neck/psycross/g
+ wrists = /obj/item/clothing/neck/psycross/gold
head = /obj/item/clothing/head/helmet/skullcap/grenzelhoft
armor = /obj/item/clothing/armor/brigandine
belt = /obj/item/storage/belt/leather/plaquesilver
@@ -130,7 +130,7 @@
name = "Grenzelhoft Countess (Migrant Wave)"
shoes = /obj/item/clothing/shoes/rare/grenzelhoft
gloves = /obj/item/clothing/gloves/angle/grenzel
- wrists = /obj/item/clothing/neck/psycross/g
+ wrists = /obj/item/clothing/neck/psycross/gold
head = /obj/item/clothing/head/helmet/skullcap/grenzelhoft
armor = /obj/item/clothing/armor/gambeson/heavy/dress/alt
belt = /obj/item/storage/belt/leather/plaquesilver
diff --git a/code/game/gamemodes/personal_objectives/abyssor/take_bath.dm b/code/game/gamemodes/personal_objectives/abyssor/take_bath.dm
index 4af5e7df7cb..4400019219a 100644
--- a/code/game/gamemodes/personal_objectives/abyssor/take_bath.dm
+++ b/code/game/gamemodes/personal_objectives/abyssor/take_bath.dm
@@ -22,7 +22,7 @@
var/amulet_found = FALSE
for(var/obj/item/clothing/neck/current_item in owner.current.get_equipped_items(TRUE))
- if(current_item.type in list(/obj/item/clothing/neck/psycross/silver/abyssor))
+ if(current_item.type in list(/obj/item/clothing/neck/psycross/silver/divine/abyssor))
amulet_found = TRUE
if(!amulet_found)
diff --git a/code/game/gamemodes/personal_objectives/necra/hear_cries.dm b/code/game/gamemodes/personal_objectives/necra/hear_cries.dm
index 4c56e3cda60..f97e92d5caa 100644
--- a/code/game/gamemodes/personal_objectives/necra/hear_cries.dm
+++ b/code/game/gamemodes/personal_objectives/necra/hear_cries.dm
@@ -37,7 +37,7 @@
var/amulet_found = FALSE
for(var/obj/item/clothing/neck/current_item in user.get_equipped_items(TRUE))
- if(current_item.type in list(/obj/item/clothing/neck/psycross/silver/necra))
+ if(current_item.type in list(/obj/item/clothing/neck/psycross/silver/divine/necra))
amulet_found = TRUE
if(!amulet_found)
diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm
index 73637a00377..b4cd535ad4a 100644
--- a/code/game/objects/structures/fluff.dm
+++ b/code/game/objects/structures/fluff.dm
@@ -1171,6 +1171,38 @@
attacked_sound = list("sound/combat/hits/onmetal/metalimpact (1).ogg", "sound/combat/hits/onmetal/metalimpact (2).ogg")
max_integrity = 450
+/obj/structure/fluff/psycross/attack_hand_secondary(mob/living/carbon/user, list/modifiers)
+ . = ..()
+ if(!istype(user))
+ return
+ if(!divine)
+ return
+ if(!HAS_TRAIT(user, TRAIT_DIVINE_CENTRIST) || (HAS_TRAIT(user, TRAIT_DIVINE_SERVANT) && !(user.job == "Churchling")))
+ return
+ if(user?.patron.type != /datum/patron/divine/centrist)
+ return
+
+ var/datum/patron/old_patron = user.patron
+ var/pick_one = tgui_alert(user, "Do you wish to devote yourself to a Patron?", "Pick a Patron", list("Yes","No"))
+ if(pick_one != "Yes")
+ return
+
+ var/datum/patron/new_patron = GLOB.patrons_by_name[tgui_input_list(user, "Choose your new Patron.", "Pick a Patron", TEMPLE_PATRON_NAMES)]
+ if(!istype(new_patron, /datum/patron) || !(new_patron.type in ALL_TEMPLE_PATRONS))
+ return
+
+ var/confirm = tgui_alert(user, "Your new Patron is [new_patron]. Is this correct?", "Confirm choice", list("Yes", "No"))
+ if(confirm != "Yes")
+ return
+
+ ADD_TRAIT(user, TRAIT_DIVINE_CONVERT, DEVOTION_TRAIT)
+ user.set_patron(new_patron)
+ to_chat(user, "You have devoted yourself to [new_patron]!")
+ log_game("PATRON: [key_name(user)] changed their patron from [old_patron.name] to [new_patron]")
+ visible_message("A bright light flashes out from [src] as it channels divine focus.")
+ AOE_flash(user, range = 5)
+ playsound(src, 'sound/magic/bless.ogg', 50, TRUE)
+
/obj/structure/fluff/psycross/attackby(obj/item/W, mob/living/carbon/human/user, list/modifiers)
if(!user.mind)
return ..()
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 6e714ba8b19..7f75eb1b960 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -1115,11 +1115,7 @@
HL.mind.set_assigned_role(/datum/job/villager)
HL.job = "Ex-Priest"
-
- remove_verb(HL, /mob/living/carbon/human/proc/coronate_lord)
- remove_verb(HL, /mob/living/carbon/human/proc/churchexcommunicate)
- remove_verb(HL, /mob/living/carbon/human/proc/churchcurse)
- remove_verb(HL, /mob/living/carbon/human/proc/churchannouncement)
+ HL.remove_priest_verbs()
priest_job?.remove_spells(HL)
GLOB.excommunicated_players |= HL.real_name
HL.cleric?.excommunicate()
@@ -1133,10 +1129,7 @@
var/datum/devotion/devotion = new holder()
devotion.make_priest()
devotion.grant_to(M)
- add_verb(M, /mob/living/carbon/human/proc/coronate_lord)
- add_verb(M, /mob/living/carbon/human/proc/churchexcommunicate)
- add_verb(M, /mob/living/carbon/human/proc/churchcurse)
- add_verb(M, /mob/living/carbon/human/proc/churchannouncement)
+ M.give_priest_verbs()
removeomen(OMEN_NOPRIEST)
priority_announce("Astrata has anointed [M.real_name] as the new head of the Church of the Ten!", title = "Astrata Shines!", sound = 'sound/misc/bell.ogg')
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index b8cc714510b..b316c99c6d6 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1290,7 +1290,7 @@
if(!ishuman(M))
return
- var/patron_to_change_to = browser_input_list(usr, "Change to what patron?", "THE GODS", GLOB.patron_list)
+ var/patron_to_change_to = browser_input_list(usr, "Change to what patron?", "THE GODS", GLOB.patrons_by_type)
if(!patron_to_change_to)
return
diff --git a/code/modules/client/preferences/_preferences.dm b/code/modules/client/preferences/_preferences.dm
index 9bb821627bb..11273dbf8bb 100644
--- a/code/modules/client/preferences/_preferences.dm
+++ b/code/modules/client/preferences/_preferences.dm
@@ -287,7 +287,7 @@ GLOBAL_LIST_INIT(name_adjustments, list())
//we couldn't load character data so just randomize the character appearance + name
randomise_appearance_prefs(include_donator = donator) //let's create a random character then - rather than a fat, bald and naked man.
if(!selected_patron)
- selected_patron = GLOB.patron_list[default_patron]
+ selected_patron = GLOB.patrons_by_type[default_patron]
key_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys
if(isclient(C))
C.update_movement_keys()
@@ -1629,12 +1629,12 @@ GLOBAL_LIST_INIT(name_adjustments, list())
var/datum/faith/faith = faiths_named[faith_input]
to_chat(user, "Faith: [faith.name]")
to_chat(user, "Background: [faith.desc]")
- selected_patron = GLOB.patron_list[faith.godhead] || GLOB.patron_list[pick(GLOB.patrons_by_faith[faith.type])]
+ selected_patron = GLOB.patrons_by_type[faith.godhead] || GLOB.patrons_by_type[pick(GLOB.patrons_by_faith[faith.type])]
if("patron")
var/list/patrons_named = list()
for(var/datum/patron/patron as anything in GLOB.patrons_by_faith[selected_patron.associated_faith || initial(default_patron.associated_faith)])
- patron = GLOB.patron_list[patron]
+ patron = GLOB.patrons_by_type[patron]
if(!patron.preference_accessible(src))
continue
var/pref_name = patron.display_name ? patron.display_name : patron.name
diff --git a/code/modules/client/preferences/preferences_savefile.dm b/code/modules/client/preferences/preferences_savefile.dm
index 2f841800972..5d65643cfef 100644
--- a/code/modules/client/preferences/preferences_savefile.dm
+++ b/code/modules/client/preferences/preferences_savefile.dm
@@ -375,10 +375,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/patron_typepath
S["selected_patron"] >> patron_typepath
if(patron_typepath)
- selected_patron = GLOB.patron_list[patron_typepath]
+ selected_patron = GLOB.patrons_by_type[patron_typepath]
if(!selected_patron) //failsafe
- selected_patron = GLOB.patron_list[default_patron]
+ selected_patron = GLOB.patrons_by_type[default_patron]
//Custom names
for(var/custom_name_id in GLOB.preferences_custom_names)
diff --git a/code/modules/clothing/neck/psycross.dm b/code/modules/clothing/neck/psycross.dm
index a21d93f2580..078241392e6 100644
--- a/code/modules/clothing/neck/psycross.dm
+++ b/code/modules/clothing/neck/psycross.dm
@@ -33,62 +33,58 @@
enchant(/datum/enchantment/silver)
// PANTHEON SILVER PSYCROSSES START
+/obj/item/clothing/neck/psycross/silver/divine
+ name = "amulet of the ten"
+ desc = "The Ten eternal, strength in unity. Stalwart for centuries against the darkness."
+ icon_state = "undivided"
+ resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/astrata
+/obj/item/clothing/neck/psycross/silver/divine/astrata
name = "amulet of Astrata"
desc = "Blessed be everything the light of the sun touches, for it is protected by Her grace."
icon_state = "astrata"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/noc
+/obj/item/clothing/neck/psycross/silver/divine/noc
name = "amulet of Noc"
desc = "Diligence, study, pursuit of truth and wisdom. Let nothing deter you from it."
icon_state = "noc"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/dendor
+/obj/item/clothing/neck/psycross/silver/divine/dendor
name = "amulet of Dendor"
desc = "Nature is a body of which we are but its entrails."
icon_state = "dendor"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/abyssor
+/obj/item/clothing/neck/psycross/silver/divine/abyssor
name = "amulet of Abyssor"
desc = "Oceanshaper and guardian of the seas, make them remember his name."
icon_state = "abyssor"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/necra
+/obj/item/clothing/neck/psycross/silver/divine/necra
name = "amulet of Necra"
desc = "Where, grave, thy victory? I triumph still while the Veiled Lady abides by me."
icon_state = "necra"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/ravox
+/obj/item/clothing/neck/psycross/silver/divine/ravox
name = "amulet of Ravox"
desc = "Struggle. Challenge. And rise to struggle again. That is the sword of he who yet lives to fight again."
icon_state = "ravox"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/xylix
+/obj/item/clothing/neck/psycross/silver/divine/xylix
name = "amulet of Xylix"
desc = "Be not fooled, and be not afraid to."
icon_state = "xylix"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/eora
+/obj/item/clothing/neck/psycross/silver/divine/eora
name = "amulet of Eora"
desc = "And I love thee because thou art love."
icon_state = "eora"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/holy/eora
+/obj/item/clothing/neck/psycross/silver/divine/eora/potion
name = "Eora's love potion"
desc = "Eora's blessing is upon thy, use me on someone else and you shall be soulbond."
icon_state = "eora"
- resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/holy/eora/attack(mob/living/love_target, mob/user, list/modifiers)
+/obj/item/clothing/neck/psycross/silver/divine/eora/potion/attack(mob/living/love_target, mob/user, list/modifiers)
if(!isliving(love_target) || love_target.stat == DEAD)
to_chat(user, span_warning("The love potion only works on living things, sicko!"))
return ..()
@@ -110,25 +106,25 @@
love_target.apply_status_effect(/datum/status_effect/in_love, user)
qdel(src)
-/obj/item/clothing/neck/psycross/silver/pestra
+/obj/item/clothing/neck/psycross/silver/divine/pestra
name = "amulet of Pestra"
desc = "When pure, alcohol is best used as a cleanser of wounds and a cleanser of the palate."
icon_state = "pestra"
resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/malum
+/obj/item/clothing/neck/psycross/silver/divine/malum
name = "amulet of Malum"
desc = "Blessed be our works, made in His name."
icon_state = "malum"
resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/silver/malum/steel
+/obj/item/clothing/neck/psycross/silver/divine/malum/steel
name = "amulet of Malum"
desc = "Let the tools that guide thee be thy hands."
icon_state = "malum_alt"
resistance_flags = FIRE_PROOF
-/obj/item/clothing/neck/psycross/g
+/obj/item/clothing/neck/psycross/gold
name = "golden psycross"
desc = "Let His name be naught but forgot'n. Let devotion to Him endure, in heart and in deed, beyond the veil of sight."
icon_state = "psycross_gold"
@@ -136,9 +132,3 @@
resistance_flags = FIRE_PROOF
sellprice = 100
smeltresult = /obj/item/ingot/gold
-
-/obj/item/clothing/neck/psycross/silver/undivided
- name = "amulet of the ten"
- desc = "The Ten eternal, strength in unity. Stalwart for centuries against the darkness."
- icon_state = "undivided"
-
diff --git a/code/modules/crafting/artificer/misc.dm b/code/modules/crafting/artificer/misc.dm
index 7a46c4fea85..94b08b940ec 100644
--- a/code/modules/crafting/artificer/misc.dm
+++ b/code/modules/crafting/artificer/misc.dm
@@ -481,64 +481,69 @@
/datum/artificer_recipe/psycross/gold
name = "golden Psycross"
required_item = /obj/item/ingot/gold
- created_item = /obj/item/clothing/neck/psycross/g
+ created_item = /obj/item/clothing/neck/psycross/gold
hammers_per_item = 7
craftdiff = 3
+/datum/artificer_recipe/psycross/undivided
+ name = "Undivided Psycross"
+ required_item = /obj/item/ingot/silver
+ created_item = /obj/item/clothing/neck/psycross/silver/divine
+
/datum/artificer_recipe/psycross/noc
name = "Noc Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/noc
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/noc
/datum/artificer_recipe/psycross/astrata
name = "Astrata Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/astrata
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/astrata
/datum/artificer_recipe/psycross/dendor
name = "Dendor Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/dendor
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/dendor
/datum/artificer_recipe/psycross/abyssor
name = "Abyssor Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/abyssor
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/abyssor
/datum/artificer_recipe/psycross/necra
name = "Necra Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/necra
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/necra
/datum/artificer_recipe/psycross/ravox
name = "Ravox Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/ravox
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/ravox
/datum/artificer_recipe/psycross/xylix
name = "Xylix Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/xylix
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/xylix
/datum/artificer_recipe/psycross/eora
name = "Eora Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/eora
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/eora
/datum/artificer_recipe/psycross/pestra
name = "Pestra Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/pestra
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/pestra
/datum/artificer_recipe/psycross/malum_silver
name = "Malum Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/malum
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/malum
/datum/artificer_recipe/psycross/malum_steel
name = "Malum Steel Psycross"
required_item = /obj/item/ingot/silver
- created_item = /obj/item/clothing/neck/psycross/silver/malum/steel
+ created_item = /obj/item/clothing/neck/psycross/silver/divine/malum/steel
additional_items = list(/obj/item/ingot/steel = 1)
craftdiff = 3
diff --git a/code/modules/events/god_intervention/schism.dm b/code/modules/events/god_intervention/schism.dm
index 59a05b46c0d..2b8bedc182c 100644
--- a/code/modules/events/god_intervention/schism.dm
+++ b/code/modules/events/god_intervention/schism.dm
@@ -11,7 +11,7 @@ GLOBAL_LIST_EMPTY(tennite_schisms)
/datum/tennite_schism/New(datum/patron/challenger)
. = ..()
challenger_god = WEAKREF(challenger)
- astrata_god = WEAKREF(GLOB.patron_list[/datum/patron/divine/astrata])
+ astrata_god = WEAKREF(GLOB.patrons_by_type[/datum/patron/divine/astrata])
GLOB.tennite_schisms += src
/datum/tennite_schism/Destroy()
@@ -181,9 +181,7 @@ GLOBAL_LIST_EMPTY(tennite_schisms)
START_PROCESSING(SSprocessing, C)
add_verb(selected_priest, /mob/living/carbon/human/proc/devotionreport)
add_verb(selected_priest, /mob/living/carbon/human/proc/clericpray)
- add_verb(selected_priest, /mob/living/carbon/human/proc/churchexcommunicate)
- add_verb(selected_priest, /mob/living/carbon/human/proc/churchcurse)
- add_verb(selected_priest, /mob/living/carbon/human/proc/churchannouncement)
+ selected_priest.give_priest_verbs(coronate = FALSE, penance = FALSE)
priority_announce("[challenger.name] has selected [selected_priest.real_name] as a new [male ? "Vice Priest" : "Vice Priestess"]! Power sharing begins!", "[male ? "Vice Priest" : "Vice Priestess"] rises", 'sound/magic/inspire_02.ogg')
@@ -388,7 +386,7 @@ GLOBAL_LIST_EMPTY(tennite_schisms)
var/astrata_influence = get_storyteller_influence(ASTRATA) || 0
for(var/type in subtypesof(/datum/patron/divine) - list(/datum/patron/divine/astrata, /datum/patron/divine/eora))
- var/datum/patron/divine/god = GLOB.patron_list[type]
+ var/datum/patron/divine/god = GLOB.patrons_by_type[type]
if(!god)
continue
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index b010b6e05d9..cb77cd17c50 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -385,11 +385,11 @@
var/list/datum/patron/all_gods = list()
var/list/datum/patron/pantheon_gods = list()
- for(var/god in GLOB.patron_list)
+ for(var/god in GLOB.patrons_by_type)
if(!(god in allowed_patrons))
continue
all_gods |= god
- var/datum/patron/P = GLOB.patron_list[god]
+ var/datum/patron/P = GLOB.patrons_by_type[god]
if(P.associated_faith == old_patron.associated_faith) //Prioritize choosing a possible patron within our pantheon
pantheon_gods |= god
diff --git a/code/modules/jobs/job_types/adventurer/types/combat/cleric.dm b/code/modules/jobs/job_types/adventurer/types/combat/cleric.dm
index d8ee1b425f4..3db5aafa58a 100644
--- a/code/modules/jobs/job_types/adventurer/types/combat/cleric.dm
+++ b/code/modules/jobs/job_types/adventurer/types/combat/cleric.dm
@@ -160,34 +160,34 @@
if(equipped_human.patron)
switch(equipped_human.patron.type)
if(/datum/patron/divine/astrata)
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
cloak = /obj/item/clothing/cloak/stabard/templar/astrata
if(/datum/patron/divine/dendor)
- wrists = /obj/item/clothing/neck/psycross/silver/dendor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/dendor
cloak = /obj/item/clothing/cloak/stabard/templar/dendor
if(/datum/patron/divine/necra)
- wrists = /obj/item/clothing/neck/psycross/silver/necra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/necra
cloak = /obj/item/clothing/cloak/stabard/templar/necra
beltr = /obj/item/weapon/shovel/small
if(/datum/patron/divine/eora)
- wrists = /obj/item/clothing/neck/psycross/silver/eora
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/eora
cloak = /obj/item/clothing/cloak/stabard/templar/eora
if(/datum/patron/divine/ravox)
- wrists = /obj/item/clothing/neck/psycross/silver/ravox
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/ravox
cloak = /obj/item/clothing/cloak/stabard/templar/ravox
if(/datum/patron/divine/noc)
- wrists = /obj/item/clothing/neck/psycross/silver/noc
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/noc
cloak = /obj/item/clothing/cloak/stabard/templar/noc
if(/datum/patron/divine/pestra)
- wrists = /obj/item/clothing/neck/psycross/silver/pestra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/pestra
cloak = /obj/item/clothing/cloak/stabard/templar/pestra
if(/datum/patron/divine/abyssor)
- wrists = /obj/item/clothing/neck/psycross/silver/abyssor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/abyssor
cloak = /obj/item/clothing/cloak/stabard/templar/abyssor
beltl = /obj/item/fishingrod
if(/datum/patron/divine/malum)
- wrists = /obj/item/clothing/neck/psycross/silver/malum
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/malum
cloak = /obj/item/clothing/cloak/stabard/templar/malum
if(/datum/patron/divine/xylix)
- wrists = /obj/item/clothing/neck/psycross/silver/xylix
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/xylix
cloak = /obj/item/clothing/cloak/stabard/templar/xylix
diff --git a/code/modules/jobs/job_types/adventurer/types/combat/hollowranger.dm b/code/modules/jobs/job_types/adventurer/types/combat/hollowranger.dm
index 8a441a8e48c..5e3c3b33184 100644
--- a/code/modules/jobs/job_types/adventurer/types/combat/hollowranger.dm
+++ b/code/modules/jobs/job_types/adventurer/types/combat/hollowranger.dm
@@ -58,7 +58,7 @@
beltl = /obj/item/ammo_holder/quiver/arrows
beltr = /obj/item/weapon/knife/cleaver/combat
armor = /obj/item/clothing/armor/leather/jacket
- wrists = /obj/item/clothing/neck/psycross/silver/dendor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/dendor
gloves = /obj/item/clothing/gloves/fingerless
cloak = /obj/item/clothing/cloak/raincloak/furcloak/colored/black
diff --git a/code/modules/jobs/job_types/adventurer/types/combat/monk.dm b/code/modules/jobs/job_types/adventurer/types/combat/monk.dm
index 81f6b3fab51..bcb1d0363f9 100644
--- a/code/modules/jobs/job_types/adventurer/types/combat/monk.dm
+++ b/code/modules/jobs/job_types/adventurer/types/combat/monk.dm
@@ -62,22 +62,22 @@
switch(H.patron?.type)
if(/datum/patron/divine/astrata)
- neck = /obj/item/clothing/neck/psycross/silver/astrata
+ neck = /obj/item/clothing/neck/psycross/silver/divine/astrata
if(/datum/patron/divine/necra) // Necra acolytes are now gravetenders
- neck = /obj/item/clothing/neck/psycross/silver/necra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/necra
if(/datum/patron/divine/eora)
- neck = /obj/item/clothing/neck/psycross/silver/eora
+ neck = /obj/item/clothing/neck/psycross/silver/divine/eora
if(/datum/patron/divine/noc)
- neck = /obj/item/clothing/neck/psycross/silver/noc
+ neck = /obj/item/clothing/neck/psycross/silver/divine/noc
if(/datum/patron/divine/pestra)
- neck = /obj/item/clothing/neck/psycross/silver/pestra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/pestra
if(/datum/patron/divine/dendor)
- neck = /obj/item/clothing/neck/psycross/silver/dendor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/dendor
if(/datum/patron/divine/abyssor)
- neck = /obj/item/clothing/neck/psycross/silver/abyssor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/abyssor
if(/datum/patron/divine/ravox)
- neck = /obj/item/clothing/neck/psycross/silver/ravox
+ neck = /obj/item/clothing/neck/psycross/silver/divine/ravox
if(/datum/patron/divine/xylix)
- neck = /obj/item/clothing/neck/psycross/silver/xylix
+ neck = /obj/item/clothing/neck/psycross/silver/divine/xylix
if(/datum/patron/divine/malum)
- neck = /obj/item/clothing/neck/psycross/silver/malum
+ neck = /obj/item/clothing/neck/psycross/silver/divine/malum
diff --git a/code/modules/jobs/job_types/adventurer/types/pilgrim/briar.dm b/code/modules/jobs/job_types/adventurer/types/pilgrim/briar.dm
index 67752d5f504..056f9956f91 100644
--- a/code/modules/jobs/job_types/adventurer/types/pilgrim/briar.dm
+++ b/code/modules/jobs/job_types/adventurer/types/pilgrim/briar.dm
@@ -67,7 +67,7 @@
name = "Briar (Pilgrim)"
belt = /obj/item/storage/belt/leather/rope
mask = /obj/item/clothing/face/druid
- neck = /obj/item/clothing/neck/psycross/silver/dendor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/dendor
shirt = /obj/item/clothing/armor/leather/vest
armor = /obj/item/clothing/shirt/robe/dendor
wrists = /obj/item/clothing/wrists/bracers/leather
diff --git a/code/modules/jobs/job_types/adventurer/types/pilgrim/rare/grenzelhoft.dm b/code/modules/jobs/job_types/adventurer/types/pilgrim/rare/grenzelhoft.dm
index 3b83958760c..c785d103e18 100644
--- a/code/modules/jobs/job_types/adventurer/types/pilgrim/rare/grenzelhoft.dm
+++ b/code/modules/jobs/job_types/adventurer/types/pilgrim/rare/grenzelhoft.dm
@@ -61,7 +61,7 @@
name = "Grenzelhoft Count (Pilgrim)"
shoes = /obj/item/clothing/shoes/rare/grenzelhoft
gloves = /obj/item/clothing/gloves/angle/grenzel
- wrists = /obj/item/clothing/neck/psycross/g
+ wrists = /obj/item/clothing/neck/psycross/gold
head = /obj/item/clothing/head/helmet/skullcap/grenzelhoft
armor = /obj/item/clothing/armor/brigandine
belt = /obj/item/storage/belt/leather/plaquesilver
diff --git a/code/modules/jobs/job_types/adventurer/types/special/crusader.dm b/code/modules/jobs/job_types/adventurer/types/special/crusader.dm
index 040df3c042e..327ee0b8123 100644
--- a/code/modules/jobs/job_types/adventurer/types/special/crusader.dm
+++ b/code/modules/jobs/job_types/adventurer/types/special/crusader.dm
@@ -82,13 +82,13 @@
switch(equipped_human.patron?.type)
if(/datum/patron/divine/astrata)
cloak = /obj/item/clothing/cloak/stabard/templar/astrata
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
if(/datum/patron/divine/necra)
cloak = /obj/item/clothing/cloak/stabard/templar/necra
- wrists = /obj/item/clothing/neck/psycross/silver/necra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/necra
else
cloak = /obj/item/clothing/cloak/stabard/templar/ravox
- wrists = /obj/item/clothing/neck/psycross/silver/ravox
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/ravox
if(equipped_human.gender == FEMALE)
head = /obj/item/clothing/head/helmet/heavy/crusader/t
diff --git a/code/modules/jobs/job_types/adventurer/types/wretch/heretic.dm b/code/modules/jobs/job_types/adventurer/types/wretch/heretic.dm
index c9509bd5ea3..24de37e0136 100644
--- a/code/modules/jobs/job_types/adventurer/types/wretch/heretic.dm
+++ b/code/modules/jobs/job_types/adventurer/types/wretch/heretic.dm
@@ -142,27 +142,27 @@
switch(equipped_human.patron?.type)
if(/datum/patron/divine/astrata)
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
head = /obj/item/clothing/head/helmet/heavy/necked/astrata
cloak = /obj/item/clothing/cloak/stabard/templar/astrata
backr = /obj/item/weapon/sword/long/exe/astrata
if(/datum/patron/divine/noc)
- wrists = /obj/item/clothing/neck/psycross/silver/noc
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/noc
head = /obj/item/clothing/head/helmet/heavy/necked/noc
cloak = /obj/item/clothing/cloak/stabard/templar/noc
beltl = /obj/item/weapon/sword/sabre/noc
if(/datum/patron/divine/dendor)
- wrists = /obj/item/clothing/neck/psycross/silver/dendor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/dendor
head = /obj/item/clothing/head/helmet/heavy/necked/dendorhelm
cloak = /obj/item/clothing/cloak/stabard/templar/dendor
backr = /obj/item/weapon/polearm/halberd/bardiche/dendor
if(/datum/patron/divine/necra)
- wrists = /obj/item/clothing/neck/psycross/silver/necra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/necra
head = /obj/item/clothing/head/helmet/heavy/necked/necra
cloak = /obj/item/clothing/cloak/stabard/templar/necra
beltl = /obj/item/weapon/flail/sflail/necraflail
if(/datum/patron/divine/pestra)
- wrists = /obj/item/clothing/neck/psycross/silver/pestra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/pestra
head = /obj/item/clothing/head/helmet/heavy/necked/pestrahelm
cloak = /obj/item/clothing/cloak/stabard/templar/pestra
backpack_contents += /obj/item/reagent_containers/glass/bottle/strongpoison
@@ -170,27 +170,27 @@
beltl = /obj/item/weapon/knife/dagger/steel/pestrasickle
if(/datum/patron/divine/eora)
head = /obj/item/clothing/head/helmet/sallet/eoran
- wrists = /obj/item/clothing/neck/psycross/silver/eora
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/eora
cloak = /obj/item/clothing/cloak/stabard/templar/eora
beltr = /obj/item/weapon/sword/rapier/eora
if(/datum/patron/divine/ravox)
- wrists = /obj/item/clothing/neck/psycross/silver/ravox
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/ravox
head = /obj/item/clothing/head/helmet/heavy/necked/ravox
cloak = /obj/item/clothing/cloak/stabard/templar/ravox
backr = /obj/item/weapon/sword/long/ravox
if(/datum/patron/divine/malum)
- wrists = /obj/item/clothing/neck/psycross/silver/malum
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/malum
head = /obj/item/clothing/head/helmet/heavy/necked/malumhelm
cloak = /obj/item/clothing/cloak/stabard/templar/malum
backr = /obj/item/weapon/hammer/sledgehammer/war/malum
if(/datum/patron/divine/abyssor)
head = /obj/item/clothing/head/helmet/heavy/necked/abyssor
armor = /obj/item/clothing/armor/brigandine/abyssor
- wrists = /obj/item/clothing/neck/psycross/silver/abyssor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/abyssor
cloak = /obj/item/clothing/cloak/stabard/templar/abyssor
backr = /obj/item/weapon/polearm/spear/abyssor
if(/datum/patron/divine/xylix)
- wrists = /obj/item/clothing/neck/psycross/silver/xylix
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/xylix
head = /obj/item/clothing/head/helmet/heavy/necked/xylix
cloak = /obj/item/clothing/cloak/stabard/templar/xylix
beltl = /obj/item/weapon/whip/xylix
@@ -239,7 +239,7 @@
beltr = /obj/item/weapon/knife/dagger/steel/dirk/baotha
beltl = /obj/item/weapon/knife/dagger/steel/dirk/baotha
if(/datum/patron/psydon, /datum/patron/psydon/extremist)
- wrists = /obj/item/clothing/neck/psycross/g
+ wrists = /obj/item/clothing/neck/psycross/gold
armor = /obj/item/clothing/armor/cuirass/fluted
cloak = /obj/item/clothing/cloak/psydontabard
gloves = /obj/item/clothing/gloves/chain/psydon
@@ -249,6 +249,6 @@
beltl = /obj/item/weapon/scabbard/sword
else
head = /obj/item/clothing/head/helmet/heavy/bucket
- wrists = /obj/item/clothing/neck/psycross/silver/undivided
+ wrists = /obj/item/clothing/neck/psycross/silver/divine
cloak = /obj/item/clothing/cloak/templar/undivided
beltr = /obj/item/weapon/sword/long/decorated
diff --git a/code/modules/jobs/job_types/church/gmtemplar.dm b/code/modules/jobs/job_types/church/gmtemplar.dm
index 8ab2ce28e86..5853bb6b7f9 100644
--- a/code/modules/jobs/job_types/church/gmtemplar.dm
+++ b/code/modules/jobs/job_types/church/gmtemplar.dm
@@ -62,12 +62,12 @@
var/holder = spawned.patron?.devotion_holder
if(holder)
var/datum/devotion/devotion = new holder()
- devotion.make_templar()
+ devotion.make_gmtemplar()
devotion.grant_to(spawned)
var/static/list/selectableweapon = list(
"Longsword" = /obj/item/weapon/sword/long/grandmaster,
- "Spear" = /obj/item/weapon/polearm/spear/grandmaster,
+ "Trident" = /obj/item/weapon/polearm/spear/grandmaster,
"Axe" = /obj/item/weapon/greataxe/steel/grandmaster,
"Mace" = /obj/item/weapon/mace/goden/steel/grandmaster,
)
@@ -101,7 +101,7 @@
belt = /obj/item/storage/belt/leather/black
ring = /obj/item/clothing/ring/silver/rontz
gloves = /obj/item/clothing/gloves/plate/silver
- wrists = /obj/item/clothing/neck/psycross/silver/ravox
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/ravox
diff --git a/code/modules/jobs/job_types/church/monk.dm b/code/modules/jobs/job_types/church/monk.dm
index 621e12258eb..dead588036c 100644
--- a/code/modules/jobs/job_types/church/monk.dm
+++ b/code/modules/jobs/job_types/church/monk.dm
@@ -150,13 +150,13 @@
switch(equipped_human.patron?.type)
if(/datum/patron/divine/astrata)
head = /obj/item/clothing/head/roguehood/astrata
- neck = /obj/item/clothing/neck/psycross/silver/astrata
+ neck = /obj/item/clothing/neck/psycross/silver/divine/astrata
wrists = /obj/item/clothing/wrists/wrappings
shoes = /obj/item/clothing/shoes/sandals
armor = /obj/item/clothing/shirt/robe/astrata
if(/datum/patron/divine/necra)
head = /obj/item/clothing/head/padded/deathshroud
- neck = /obj/item/clothing/neck/psycross/silver/necra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/necra
shoes = /obj/item/clothing/shoes/boots
pants = /obj/item/clothing/pants/trou/leather/mourning
armor = /obj/item/clothing/shirt/robe/necra
@@ -167,46 +167,46 @@
backl = /obj/item/weapon/polearm/woodstaff/quarterstaff
if(/datum/patron/divine/eora)
mask = /obj/item/clothing/face/operavisage
- neck = /obj/item/clothing/neck/psycross/silver/eora
+ neck = /obj/item/clothing/neck/psycross/silver/divine/eora
shoes = /obj/item/clothing/shoes/sandals
armor = /obj/item/clothing/shirt/robe/eora
if(/datum/patron/divine/noc)
head = /obj/item/clothing/head/roguehood/nochood
- neck = /obj/item/clothing/neck/psycross/silver/noc
+ neck = /obj/item/clothing/neck/psycross/silver/divine/noc
wrists = /obj/item/clothing/wrists/nocwrappings
shoes = /obj/item/clothing/shoes/sandals
armor = /obj/item/clothing/shirt/robe/noc
if(/datum/patron/divine/pestra)
head = /obj/item/clothing/head/padded/pestra
- neck = /obj/item/clothing/neck/psycross/silver/pestra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/pestra
shoes = /obj/item/clothing/shoes/sandals
armor = /obj/item/clothing/shirt/robe/pestra
backpack_contents += /obj/item/needle/blessed
if(/datum/patron/divine/dendor)
head = /obj/item/clothing/head/padded/briarthorns
- neck = /obj/item/clothing/neck/psycross/silver/dendor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/dendor
shoes = /obj/item/clothing/shoes/sandals
armor = /obj/item/clothing/shirt/robe/dendor
if(/datum/patron/divine/abyssor)
head = /obj/item/clothing/head/padded/abyssor
- neck = /obj/item/clothing/neck/psycross/silver/abyssor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/abyssor
shoes = /obj/item/clothing/shoes/boots
armor = /obj/item/clothing/shirt/robe/abyssor
if(/datum/patron/divine/ravox)
head = /obj/item/clothing/head/helmet/leather/headscarf
- neck = /obj/item/clothing/neck/psycross/silver/ravox
+ neck = /obj/item/clothing/neck/psycross/silver/divine/ravox
shoes = /obj/item/clothing/shoes/boots
shirt = /obj/item/clothing/armor/gambeson/light
armor = /obj/item/clothing/armor/leather
cloak = /obj/item/clothing/cloak/stabard/templar/ravox
if(/datum/patron/divine/xylix)
head = /obj/item/clothing/head/roguehood/colored/random
- neck = /obj/item/clothing/neck/psycross/silver/xylix
+ neck = /obj/item/clothing/neck/psycross/silver/divine/xylix
shoes = /obj/item/clothing/shoes/boots
armor = /obj/item/clothing/shirt/robe/colored/purple
if(/datum/patron/divine/malum)
head = /obj/item/clothing/head/headband/colored/red
- neck = /obj/item/clothing/neck/psycross/silver/malum
+ neck = /obj/item/clothing/neck/psycross/silver/divine/malum
shoes = /obj/item/clothing/shoes/boots
armor = /obj/item/clothing/shirt/robe/colored/red
backl = /obj/item/weapon/polearm/woodstaff/quarterstaff
diff --git a/code/modules/jobs/job_types/church/priest.dm b/code/modules/jobs/job_types/church/priest.dm
index 1bb84787224..5deb89781bd 100644
--- a/code/modules/jobs/job_types/church/priest.dm
+++ b/code/modules/jobs/job_types/church/priest.dm
@@ -20,9 +20,9 @@
outfit = /datum/outfit/priest
spells = list(
- /datum/action/cooldown/spell/undirected/list_target/convert_role/templar,
- /datum/action/cooldown/spell/undirected/list_target/convert_role/acolyte,
- /datum/action/cooldown/spell/undirected/list_target/convert_role/churchling,
+ /datum/action/cooldown/spell/undirected/list_target/convert_role/church/templar,
+ /datum/action/cooldown/spell/undirected/list_target/convert_role/church/acolyte,
+ /datum/action/cooldown/spell/undirected/list_target/convert_role/church/churchling,
/datum/action/cooldown/spell/undirected/call_bird/priest,
)
@@ -62,11 +62,7 @@
spawned.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE)
spawned.adjust_skillrank(/datum/skill/magic/holy, 1, TRUE)
- add_verb(spawned, /mob/living/carbon/human/proc/coronate_lord)
- add_verb(spawned, /mob/living/carbon/human/proc/churchexcommunicate)
- add_verb(spawned, /mob/living/carbon/human/proc/churchcurse)
- add_verb(spawned, /mob/living/carbon/human/proc/churchannouncement)
- add_verb(spawned, list(/mob/living/carbon/human/proc/absolve_penance_verb, /mob/living/carbon/human/proc/assign_penance_verb))
+ spawned.give_priest_verbs()
spawned.virginity = TRUE
@@ -78,7 +74,7 @@
/datum/outfit/priest
name = "Priest"
- neck = /obj/item/clothing/neck/psycross/silver/astrata
+ neck = /obj/item/clothing/neck/psycross/silver/divine/astrata
head = /obj/item/clothing/head/priestmask
shirt = /obj/item/clothing/shirt/undershirt/priest
pants = /obj/item/clothing/pants/tights/colored/black
@@ -235,3 +231,21 @@
return FALSE
priority_announce("[inputty]", title = "The [get_role_title()] Speaks", sound = 'sound/misc/bell.ogg')
src.log_talk("[TIMETOTEXT4LOGS] [inputty]", LOG_SAY, tag="Priest announcement")
+
+/// Helper for giving priest verbs, and whether that should include coronation or penance verbs.
+/mob/living/carbon/human/proc/give_priest_verbs(coronate = TRUE, penance = TRUE)
+ add_verb(src, /mob/living/carbon/human/proc/churchexcommunicate)
+ add_verb(src, /mob/living/carbon/human/proc/churchcurse)
+ add_verb(src, /mob/living/carbon/human/proc/churchannouncement)
+ if(coronate)
+ add_verb(src, /mob/living/carbon/human/proc/coronate_lord)
+ if(penance)
+ add_verb(src, list(/mob/living/carbon/human/proc/absolve_penance_verb, /mob/living/carbon/human/proc/assign_penance_verb))
+
+/// Helper for removing priest verbs
+/mob/living/carbon/human/proc/remove_priest_verbs()
+ remove_verb(src, /mob/living/carbon/human/proc/churchexcommunicate)
+ remove_verb(src, /mob/living/carbon/human/proc/churchcurse)
+ remove_verb(src, /mob/living/carbon/human/proc/churchannouncement)
+ remove_verb(src, /mob/living/carbon/human/proc/coronate_lord)
+ remove_verb(src, list(/mob/living/carbon/human/proc/absolve_penance_verb, /mob/living/carbon/human/proc/assign_penance_verb))
diff --git a/code/modules/jobs/job_types/church/templar.dm b/code/modules/jobs/job_types/church/templar.dm
index 6fe0cbf7d5a..2f413bb0b28 100644
--- a/code/modules/jobs/job_types/church/templar.dm
+++ b/code/modules/jobs/job_types/church/templar.dm
@@ -146,27 +146,27 @@
. = ..()
switch(equipped_human.patron?.type)
if(/datum/patron/divine/astrata)
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
head = /obj/item/clothing/head/helmet/heavy/necked/astrata
cloak = /obj/item/clothing/cloak/stabard/templar/astrata
backr = /obj/item/weapon/sword/long/exe/astrata
if(/datum/patron/divine/noc)
- wrists = /obj/item/clothing/neck/psycross/silver/noc
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/noc
head = /obj/item/clothing/head/helmet/heavy/necked/noc
cloak = /obj/item/clothing/cloak/stabard/templar/noc
beltl = /obj/item/weapon/sword/sabre/noc
if(/datum/patron/divine/dendor)
- wrists = /obj/item/clothing/neck/psycross/silver/dendor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/dendor
head = /obj/item/clothing/head/helmet/heavy/necked/dendorhelm
cloak = /obj/item/clothing/cloak/stabard/templar/dendor
backr = /obj/item/weapon/polearm/halberd/bardiche/dendor
if(/datum/patron/divine/necra)
- wrists = /obj/item/clothing/neck/psycross/silver/necra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/necra
head = /obj/item/clothing/head/helmet/heavy/necked/necra
cloak = /obj/item/clothing/cloak/stabard/templar/necra
beltl = /obj/item/weapon/flail/sflail/necraflail
if(/datum/patron/divine/pestra)
- wrists = /obj/item/clothing/neck/psycross/silver/pestra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/pestra
head = /obj/item/clothing/head/helmet/heavy/necked/pestrahelm
cloak = /obj/item/clothing/cloak/stabard/templar/pestra
backpack_contents += /obj/item/reagent_containers/glass/bottle/poison
@@ -174,25 +174,25 @@
beltl = /obj/item/weapon/knife/dagger/steel/pestrasickle
if(/datum/patron/divine/eora)
head = /obj/item/clothing/head/helmet/sallet/eoran
- wrists = /obj/item/clothing/neck/psycross/silver/eora
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/eora
cloak = /obj/item/clothing/cloak/stabard/templar/eora
if(/datum/patron/divine/ravox)
- wrists = /obj/item/clothing/neck/psycross/silver/ravox
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/ravox
head = /obj/item/clothing/head/helmet/heavy/necked/ravox
cloak = /obj/item/clothing/cloak/stabard/templar/ravox
backr = /obj/item/weapon/sword/long/ravox
if(/datum/patron/divine/malum)
- wrists = /obj/item/clothing/neck/psycross/silver/malum
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/malum
head = /obj/item/clothing/head/helmet/heavy/necked/malumhelm
cloak = /obj/item/clothing/cloak/stabard/templar/malum
backr = /obj/item/weapon/hammer/sledgehammer/war/malum
if(/datum/patron/divine/abyssor)
head = /obj/item/clothing/head/helmet/heavy/necked/abyssor
armor = /obj/item/clothing/armor/brigandine/abyssor
- wrists = /obj/item/clothing/neck/psycross/silver/abyssor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/abyssor
cloak = /obj/item/clothing/cloak/stabard/templar/abyssor
if(/datum/patron/divine/xylix)
- wrists = /obj/item/clothing/neck/psycross/silver/xylix
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/xylix
head = /obj/item/clothing/head/helmet/heavy/necked/xylix
cloak = /obj/item/clothing/cloak/stabard/templar/xylix
beltl = /obj/item/weapon/whip/xylix
diff --git a/code/modules/jobs/job_types/garrison/town_elder.dm b/code/modules/jobs/job_types/garrison/town_elder.dm
index 93a3d449328..ca6e8310fe5 100644
--- a/code/modules/jobs/job_types/garrison/town_elder.dm
+++ b/code/modules/jobs/job_types/garrison/town_elder.dm
@@ -371,26 +371,26 @@
. = ..()
switch(equipped_human.patron?.type)
if(/datum/patron/divine/astrata)
- neck = /obj/item/clothing/neck/psycross/silver/astrata
+ neck = /obj/item/clothing/neck/psycross/silver/divine/astrata
if(/datum/patron/divine/necra)
- neck = /obj/item/clothing/neck/psycross/silver/necra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/necra
if(/datum/patron/divine/eora)
- neck = /obj/item/clothing/neck/psycross/silver/eora
+ neck = /obj/item/clothing/neck/psycross/silver/divine/eora
if(/datum/patron/divine/noc)
- neck = /obj/item/clothing/neck/psycross/silver/noc
+ neck = /obj/item/clothing/neck/psycross/silver/divine/noc
if(/datum/patron/divine/pestra)
- neck = /obj/item/clothing/neck/psycross/silver/pestra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/pestra
backpack_contents += /obj/item/needle/blessed
if(/datum/patron/divine/dendor)
- neck = /obj/item/clothing/neck/psycross/silver/dendor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/dendor
if(/datum/patron/divine/abyssor)
- neck = /obj/item/clothing/neck/psycross/silver/abyssor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/abyssor
if(/datum/patron/divine/ravox)
- neck = /obj/item/clothing/neck/psycross/silver/ravox
+ neck = /obj/item/clothing/neck/psycross/silver/divine/ravox
if(/datum/patron/divine/xylix)
- neck = /obj/item/clothing/neck/psycross/silver/xylix
+ neck = /obj/item/clothing/neck/psycross/silver/divine/xylix
if(/datum/patron/divine/malum)
- neck = /obj/item/clothing/neck/psycross/silver/malum
+ neck = /obj/item/clothing/neck/psycross/silver/divine/malum
backpack_contents += /obj/item/weapon/hammer/iron
else
neck = /obj/item/clothing/neck/psycross/silver
diff --git a/code/modules/jobs/job_types/inquistion/puritian/preceptor.dm b/code/modules/jobs/job_types/inquistion/puritian/preceptor.dm
index 29509681126..ef5e3e576ea 100644
--- a/code/modules/jobs/job_types/inquistion/puritian/preceptor.dm
+++ b/code/modules/jobs/job_types/inquistion/puritian/preceptor.dm
@@ -68,7 +68,7 @@
head = /obj/item/clothing/head/headband/naledi
mask = /obj/item/clothing/face/lordmask/naledi/sojourner
gloves = /obj/item/clothing/gloves/bandages/pugilist
- neck = /obj/item/clothing/neck/psycross/g
+ neck = /obj/item/clothing/neck/psycross/gold
wrists = /obj/item/clothing/wrists/bracers/naledi
ring = /obj/item/clothing/ring/signet
diff --git a/code/modules/jobs/job_types/nobility/archivist.dm b/code/modules/jobs/job_types/nobility/archivist.dm
index 79da01d5800..d461c2e4772 100644
--- a/code/modules/jobs/job_types/nobility/archivist.dm
+++ b/code/modules/jobs/job_types/nobility/archivist.dm
@@ -92,7 +92,7 @@
beltl = /obj/item/storage/keyring/archivist
beltr = /obj/item/book/granter/spellbook/apprentice
backl = /obj/item/storage/backpack/satchel
- neck = /obj/item/clothing/neck/psycross/silver/noc
+ neck = /obj/item/clothing/neck/psycross/silver/divine/noc
backpack_contents = list(
/obj/item/textbook = 1,
/obj/item/natural/feather = 1
@@ -156,7 +156,7 @@
belt = /obj/item/storage/belt/leather/plaquesilver
beltr = /obj/item/storage/keyring/archivist
wrists = /obj/item/clothing/wrists/nocwrappings
- neck = /obj/item/clothing/neck/psycross/silver/noc
+ neck = /obj/item/clothing/neck/psycross/silver/divine/noc
backl = /obj/item/storage/backpack/satchel
backpack_contents = list(
/obj/item/storage/belt/pouch/coins/poor = 1,
diff --git a/code/modules/jobs/job_types/other/folkheroes/lakkariancleric.dm b/code/modules/jobs/job_types/other/folkheroes/lakkariancleric.dm
index 0dde84ca777..db5f615f1ec 100644
--- a/code/modules/jobs/job_types/other/folkheroes/lakkariancleric.dm
+++ b/code/modules/jobs/job_types/other/folkheroes/lakkariancleric.dm
@@ -68,7 +68,7 @@
armor = /obj/item/clothing/armor/gambeson/heavy/lakkarijupon
shirt = /obj/item/clothing/shirt/undershirt/fancy
gloves = /obj/item/clothing/gloves/leather
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
pants = /obj/item/clothing/pants/trou/leather/quiltedkilt/colored/blue
shoes = /obj/item/clothing/shoes/boots/leather
neck = /obj/item/clothing/neck/coif/cloth // price to pay for being a speedy class, less neck protection
diff --git a/code/modules/jobs/job_types/other/folkheroes/monsterhunter.dm b/code/modules/jobs/job_types/other/folkheroes/monsterhunter.dm
index a51a197f1e3..0781bc0a643 100644
--- a/code/modules/jobs/job_types/other/folkheroes/monsterhunter.dm
+++ b/code/modules/jobs/job_types/other/folkheroes/monsterhunter.dm
@@ -65,10 +65,10 @@
if(/datum/patron/psydon, /datum/patron/psydon/extremist)
wrists = /obj/item/clothing/neck/psycross/silver
if(/datum/patron/divine/astrata)
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
if(/datum/patron/divine/necra)
- wrists = /obj/item/clothing/neck/psycross/silver/necra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/necra
if(/datum/patron/divine/pestra)
- wrists = /obj/item/clothing/neck/psycross/silver/pestra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/pestra
else
wrists = /obj/item/clothing/neck/silveramulet
diff --git a/code/modules/jobs/job_types/other/folkheroes/paladin.dm b/code/modules/jobs/job_types/other/folkheroes/paladin.dm
index 718bde6d1c1..cb210620883 100644
--- a/code/modules/jobs/job_types/other/folkheroes/paladin.dm
+++ b/code/modules/jobs/job_types/other/folkheroes/paladin.dm
@@ -50,7 +50,7 @@
spawned.adjust_stat_modifier(STATMOD_JOB, STATKEY_CON, 1)
spawned.adjust_stat_modifier(STATMOD_JOB, STATKEY_PER, 1)
spawned.grant_language(/datum/language/newpsydonic)
- ADD_TRAIT(spawned, TRAIT_PSYDONIAN_GRIT, TRAIT_GENERIC)
+ ADD_TRAIT(spawned, TRAIT_PSYDONIAN_GRIT, JOB_TRAIT)
if(/datum/patron/divine/astrata)
spawned.cmode_music = 'sound/music/cmode/church/CombatAstrata.ogg'
if(/datum/patron/divine/noc)
@@ -61,7 +61,7 @@
spawned.cmode_music = 'sound/music/cmode/church/CombatAbyssor.ogg'
if(/datum/patron/divine/necra)
spawned.cmode_music = 'sound/music/cmode/church/CombatGravekeeper.ogg'
- ADD_TRAIT(spawned, TRAIT_GRAVEROBBER, TRAIT_GENERIC)
+ ADD_TRAIT(spawned, TRAIT_GRAVEROBBER, JOB_TRAIT)
if(/datum/patron/divine/ravox)
spawned.cmode_music = 'sound/music/cmode/church/CombatRavox.ogg'
if(/datum/patron/divine/xylix)
@@ -73,11 +73,11 @@
if(/datum/patron/divine/eora)
spawned.cmode_music = 'sound/music/cmode/church/CombatEora.ogg'
spawned.virginity = FALSE
- ADD_TRAIT(spawned, TRAIT_BEAUTIFUL, TRAIT_GENERIC)
+ ADD_TRAIT(spawned, TRAIT_BEAUTIFUL, JOB_TRAIT)
else
spawned.cmode_music = 'sound/music/cmode/church/CombatInquisitor.ogg'
- if(!spawned.has_language(/datum/language/celestial) && (spawned.patron?.type in ALL_TEMPLE_PATRONS) && spawned.patron?.type != /datum/patron/psydon)
+ if(!spawned.has_language(/datum/language/celestial) && (spawned.patron?.type in ALL_TEMPLE_PATRONS))
spawned.grant_language(/datum/language/celestial)
to_chat(spawned, "I can speak Celestial with ,c before my speech.")
@@ -113,34 +113,34 @@
switch(H.patron?.type)
if(/datum/patron/psydon, /datum/patron/psydon/extremist)
head = /obj/item/clothing/head/helmet/heavy/bucket/gold
- wrists = /obj/item/clothing/neck/psycross/g
+ wrists = /obj/item/clothing/neck/psycross/gold
if(/datum/patron/divine/astrata)
head = /obj/item/clothing/head/helmet/heavy/necked/astrata
- wrists = /obj/item/clothing/neck/psycross/silver/astrata
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/astrata
if(/datum/patron/divine/noc)
head = /obj/item/clothing/head/helmet/heavy/necked/noc
- wrists = /obj/item/clothing/neck/psycross/silver/noc
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/noc
if(/datum/patron/divine/dendor)
head = /obj/item/clothing/head/helmet/heavy/necked/dendorhelm
- wrists = /obj/item/clothing/neck/psycross/silver/dendor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/dendor
if(/datum/patron/divine/abyssor)
head = /obj/item/clothing/head/helmet/heavy/necked/abyssor
- wrists = /obj/item/clothing/neck/psycross/silver/abyssor
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/abyssor
if(/datum/patron/divine/necra)
head = /obj/item/clothing/head/helmet/heavy/necked/necra
- wrists = /obj/item/clothing/neck/psycross/silver/necra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/necra
if(/datum/patron/divine/ravox)
head = /obj/item/clothing/head/helmet/heavy/necked/ravox
- wrists = /obj/item/clothing/neck/psycross/silver/ravox
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/ravox
if(/datum/patron/divine/xylix)
head = /obj/item/clothing/head/helmet/heavy/necked/xylix
- wrists = /obj/item/clothing/neck/psycross/silver/xylix
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/xylix
if(/datum/patron/divine/pestra)
head = /obj/item/clothing/head/helmet/heavy/necked/pestrahelm
- wrists = /obj/item/clothing/neck/psycross/silver/pestra
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/pestra
if(/datum/patron/divine/malum)
head = /obj/item/clothing/head/helmet/heavy/necked/malumhelm
- wrists = /obj/item/clothing/neck/psycross/silver/malum
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/malum
if(/datum/patron/divine/eora)
head = /obj/item/clothing/head/helmet/sallet/eoran
- wrists = /obj/item/clothing/neck/psycross/silver/eora
+ wrists = /obj/item/clothing/neck/psycross/silver/divine/eora
diff --git a/code/modules/jobs/job_types/other/folkheroes/swashbuckler.dm b/code/modules/jobs/job_types/other/folkheroes/swashbuckler.dm
index 7db16648ed1..6e86a31b0e0 100644
--- a/code/modules/jobs/job_types/other/folkheroes/swashbuckler.dm
+++ b/code/modules/jobs/job_types/other/folkheroes/swashbuckler.dm
@@ -59,7 +59,7 @@
beltl = /obj/item/weapon/sword/sabre/cutlass
beltr = /obj/item/weapon/knife/dagger
shoes = /obj/item/clothing/shoes/boots
- neck = /obj/item/clothing/neck/psycross/silver/abyssor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/abyssor
/datum/outfit/folkhero/swashbuckler/pre_equip(mob/living/carbon/human/H, visuals_only)
. = ..()
diff --git a/code/modules/jobs/job_types/peasants/gravedigger.dm b/code/modules/jobs/job_types/peasants/gravedigger.dm
index f619f1ea02f..21301084d8e 100644
--- a/code/modules/jobs/job_types/peasants/gravedigger.dm
+++ b/code/modules/jobs/job_types/peasants/gravedigger.dm
@@ -65,7 +65,7 @@
/datum/outfit/undertaker
name = "Gravetender"
head = /obj/item/clothing/head/padded/deathshroud
- neck = /obj/item/clothing/neck/psycross/silver/necra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/necra
pants = /obj/item/clothing/pants/trou/leather/mourning
armor = /obj/item/clothing/shirt/robe/necra
shoes = /obj/item/clothing/shoes/boots
diff --git a/code/modules/jobs/job_types/youngfolk/churchling.dm b/code/modules/jobs/job_types/youngfolk/churchling.dm
index 8c3d0bfb232..139a8e536fd 100644
--- a/code/modules/jobs/job_types/youngfolk/churchling.dm
+++ b/code/modules/jobs/job_types/youngfolk/churchling.dm
@@ -14,7 +14,7 @@
allowed_ages = list(AGE_CHILD)
allowed_races = RACES_PLAYER_ALL
- allowed_patrons = ALL_TEMPLE_PATRONS
+ allowed_patrons = UNDIVIDED_TEMPLE_PATRONS
outfit = /datum/outfit/churchling
give_bank_account = TRUE
@@ -46,12 +46,12 @@
var/holder = spawned.patron?.devotion_holder
if(holder)
var/datum/devotion/devotion = new holder()
- devotion.make_churching()
+ devotion.make_churchling()
devotion.grant_to(spawned)
/datum/outfit/churchling
name = "Churchling"
- neck = /obj/item/clothing/neck/psycross/silver/undivided
+ neck = /obj/item/clothing/neck/psycross/silver/divine
armor = /obj/item/clothing/shirt/robe
shirt = /obj/item/clothing/shirt/undershirt
pants = /obj/item/clothing/pants/tights
@@ -68,22 +68,22 @@
switch(equipped_human.patron?.type)
if(/datum/patron/divine/astrata)
- neck = /obj/item/clothing/neck/psycross/silver/astrata
+ neck = /obj/item/clothing/neck/psycross/silver/divine/astrata
if(/datum/patron/divine/necra)
- neck = /obj/item/clothing/neck/psycross/silver/necra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/necra
if(/datum/patron/divine/eora)
- neck = /obj/item/clothing/neck/psycross/silver/eora
+ neck = /obj/item/clothing/neck/psycross/silver/divine/eora
if(/datum/patron/divine/noc)
- neck = /obj/item/clothing/neck/psycross/silver/noc
+ neck = /obj/item/clothing/neck/psycross/silver/divine/noc
if(/datum/patron/divine/pestra)
- neck = /obj/item/clothing/neck/psycross/silver/pestra
+ neck = /obj/item/clothing/neck/psycross/silver/divine/pestra
if(/datum/patron/divine/dendor)
- neck = /obj/item/clothing/neck/psycross/silver/dendor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/dendor
if(/datum/patron/divine/abyssor)
- neck = /obj/item/clothing/neck/psycross/silver/abyssor
+ neck = /obj/item/clothing/neck/psycross/silver/divine/abyssor
if(/datum/patron/divine/ravox)
- neck = /obj/item/clothing/neck/psycross/silver/ravox
+ neck = /obj/item/clothing/neck/psycross/silver/divine/ravox
if(/datum/patron/divine/xylix)
- neck = /obj/item/clothing/neck/psycross/silver/xylix
+ neck = /obj/item/clothing/neck/psycross/silver/divine/xylix
if(/datum/patron/divine/malum)
- neck = /obj/item/clothing/neck/psycross/silver/malum
+ neck = /obj/item/clothing/neck/psycross/silver/divine/malum
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index ec51f4e621d..85165a2fce8 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -259,6 +259,9 @@
else
. += span_redtext("[m1] an ex-agent of the court.")
+ if(HAS_TRAIT(user, TRAIT_DIVINE_SERVANT) && (HAS_TRAIT(src, TRAIT_DIVINE_CENTRIST) && !HAS_TRAIT(src, TRAIT_DIVINE_SERVANT)))
+ . += SPAN_GOD_ASTRATA("An 'Enlightened Centrist'. Shame!")
+
if(real_name in GLOB.excommunicated_players)
. += span_userdanger("EXCOMMUNICATED!")
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index db26e4d5eef..dc5f7de967a 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -185,7 +185,9 @@
/mob/living/carbon/human/get_status_tab_items()
. = ..()
if(clan)
- . += "VITAE: [bloodpool]"
+ . += "VITAE: [round(bloodpool)]/[maxbloodpool]"
+ if(cleric)
+ . += "Devotion: [round(cleric.devotion)]/[cleric.max_devotion]"
/mob/living/carbon/human/show_inv(mob/user)
user.set_machine(src)
diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm
index 61a82e2ca3a..a7b197340d2 100644
--- a/code/modules/mob/living/stats.dm
+++ b/code/modules/mob/living/stats.dm
@@ -41,7 +41,7 @@
var/has_rolled_for_stats = FALSE
/mob/living/proc/init_faith()
- patron = GLOB.patron_list[/datum/patron/godless/godless]
+ patron = GLOB.patrons_by_type[/datum/patron/godless/godless]
/mob/living/proc/set_patron(datum/patron/new_patron, check_antag = FALSE)
if(!new_patron)
@@ -49,15 +49,45 @@
if(check_antag && mind?.special_role)
return FALSE
if(ispath(new_patron))
- new_patron = GLOB.patron_list[new_patron]
+ new_patron = GLOB.patrons_by_type[new_patron]
if(!istype(new_patron))
return FALSE
if(patron && !ispath(patron))
patron.on_remove(src)
mana_pool?.remove_attunements(patron)
+
+ var/mob/living/carbon/human/devout
+ var/stored_cleric_class
+ if(ishuman(src))
+ devout = src
+ if(devout.cleric)
+ stored_cleric_class = devout.cleric.devotion_class
+ qdel(devout.cleric)
+
patron = new_patron
patron.on_gain(src)
mana_pool?.set_attunements(patron)
+ if(devout && stored_cleric_class)
+ var/holder = devout.patron?.devotion_holder
+ if(holder)
+ var/datum/devotion/devotion = new holder()
+ switch(stored_cleric_class)
+ if(DEVOTION_CLASS_PRIEST)
+ devotion.make_priest()
+ if(DEVOTION_CLASS_GRANDMASTER)
+ devotion.make_gmtemplar()
+ if(DEVOTION_CLASS_TEMPLAR)
+ devotion.make_templar()
+ if(DEVOTION_CLASS_ACOLYTE)
+ devotion.make_acolyte()
+ if(DEVOTION_CLASS_ABSOLVER)
+ devotion.make_absolver()
+ if(DEVOTION_CLASS_CLERIC)
+ devotion.make_cleric()
+ if(DEVOTION_CLASS_CHURCHLING)
+ devotion.make_churchling()
+ devotion.grant_to(devout)
+
return TRUE
///Rolls random stats base 10, +-1, for SPECIAL, and applies species stats and age stats.
diff --git a/code/modules/spells/spell_types/pointed/aoe/churn_undead.dm b/code/modules/spells/spell_types/pointed/aoe/churn_undead.dm
index cedbc225d00..27d6fa77c99 100644
--- a/code/modules/spells/spell_types/pointed/aoe/churn_undead.dm
+++ b/code/modules/spells/spell_types/pointed/aoe/churn_undead.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/necra)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/necra)
invocation = "The Undermaiden rebukes!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/avert.dm b/code/modules/spells/spell_types/pointed/avert.dm
index 6931df59250..01089ed031e 100644
--- a/code/modules/spells/spell_types/pointed/avert.dm
+++ b/code/modules/spells/spell_types/pointed/avert.dm
@@ -13,7 +13,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/necra)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/necra)
invocation = "Undermaiden avert your gaze!"
invocation_type = INVOCATION_SHOUT
@@ -29,6 +29,11 @@
"Some vast, immeasurably distant figure looms beyond my perception - I feel it, more than I see. It waits. It watches.",
)
+/datum/action/cooldown/spell/avert/templar
+ name = "Divine Grace"
+ invocation = "May The Ten grace you with time!"
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine)
+
/datum/action/cooldown/spell/avert/is_valid_target(atom/cast_on)
. = ..()
if(!.)
diff --git a/code/modules/spells/spell_types/pointed/beast_tame.dm b/code/modules/spells/spell_types/pointed/beast_tame.dm
index 9d88aa6f409..afda358b325 100644
--- a/code/modules/spells/spell_types/pointed/beast_tame.dm
+++ b/code/modules/spells/spell_types/pointed/beast_tame.dm
@@ -10,7 +10,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
attunements = list(
/datum/attunement/earth = 1,
)
diff --git a/code/modules/spells/spell_types/pointed/blindness.dm b/code/modules/spells/spell_types/pointed/blindness.dm
index 7da79c67def..d149a9b618b 100644
--- a/code/modules/spells/spell_types/pointed/blindness.dm
+++ b/code/modules/spells/spell_types/pointed/blindness.dm
@@ -34,7 +34,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/noc)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/noc)
invocation = "Noc blinds thee of thy sins!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/burial_rites.dm b/code/modules/spells/spell_types/pointed/burial_rites.dm
index c1ec2542b6f..49f8f0e86a1 100644
--- a/code/modules/spells/spell_types/pointed/burial_rites.dm
+++ b/code/modules/spells/spell_types/pointed/burial_rites.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/necra)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/necra)
invocation = "Undermaiden grant thee passage forth and spare the trials of the forgotten."
invocation_type = INVOCATION_WHISPER
diff --git a/code/modules/spells/spell_types/pointed/conjure/garden_fae.dm b/code/modules/spells/spell_types/pointed/conjure/garden_fae.dm
index 46ccabb9510..d3ff5dd065c 100644
--- a/code/modules/spells/spell_types/pointed/conjure/garden_fae.dm
+++ b/code/modules/spells/spell_types/pointed/conjure/garden_fae.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
cooldown_time = 5 MINUTES
spell_cost = 50
charge_time = 2 SECONDS
diff --git a/code/modules/spells/spell_types/pointed/conjure/kneestingers.dm b/code/modules/spells/spell_types/pointed/conjure/kneestingers.dm
index 6245267bca9..38e25f32c63 100644
--- a/code/modules/spells/spell_types/pointed/conjure/kneestingers.dm
+++ b/code/modules/spells/spell_types/pointed/conjure/kneestingers.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
attunements = list(
/datum/attunement/earth = 0.6,
)
diff --git a/code/modules/spells/spell_types/pointed/enchantment/_enchantment.dm b/code/modules/spells/spell_types/pointed/enchantment/_enchantment.dm
index 0ec0e2af755..db3a87a25e1 100644
--- a/code/modules/spells/spell_types/pointed/enchantment/_enchantment.dm
+++ b/code/modules/spells/spell_types/pointed/enchantment/_enchantment.dm
@@ -42,6 +42,7 @@
if(!enchant_item)
to_chat(owner, span_warning("There is nothing to enchant!"))
return
- enchantment_duration *= attuned_strength
- enchant_item.AddComponent(/datum/component/enchanted_weapon, enchantment_duration, allows_refresh, associated_skill, enchantment, holder)
+ if(spell_type != SPELL_MIRACLE)
+ enchantment_duration *= attuned_strength
+ enchant_item.AddComponent(/datum/component/enchanted_weapon, enchantment_duration, allows_refresh, associated_skill, 1, enchantment, holder)
cooldown_time = cooldown_time || enchantment_duration
diff --git a/code/modules/spells/spell_types/pointed/enchantment/holyflame_blade.dm b/code/modules/spells/spell_types/pointed/enchantment/holyflame_blade.dm
new file mode 100644
index 00000000000..9f684b01293
--- /dev/null
+++ b/code/modules/spells/spell_types/pointed/enchantment/holyflame_blade.dm
@@ -0,0 +1,37 @@
+/datum/action/cooldown/spell/enchantment/holy_flame
+ name = "Imbue Holy Fire"
+ desc = "Enchant a weapon with divine flames."
+ button_icon_state = "enchant_weapon"
+
+ enchantment_duration = 5 MINUTES
+ attunements = list(
+ /datum/attunement/fire = 0.3,
+ )
+
+ charge_required = FALSE
+ spell_cost = 30
+ spell_flags = SPELL_RITUOS
+ enchantment = DIVINE_FIRE_ENCHANT
+ spell_type = SPELL_MIRACLE
+ associated_skill = /datum/skill/magic/holy
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine)
+
+/datum/action/cooldown/spell/enchantment/holy_flame/is_valid_target(atom/cast_on)
+ var/obj/item/weapon/enchant_item
+ if(istype(cast_on, /obj/item/weapon))
+ enchant_item = cast_on
+ else if(isliving(cast_on))
+ var/mob/living/living_mob = cast_on
+ var/obj/item/weapon/held = living_mob.get_active_held_item()
+ if(istype(held))
+ enchant_item = held
+
+ if(!enchant_item)
+ to_chat(owner, span_warning("There is nothing to enchant!"))
+ return FALSE
+
+ if(enchant_item.GetComponent(/datum/component/martyrweapon))
+ to_chat(owner, span_warning("You cannot imbue such a powerful weapon with any more divine power!"))
+ return FALSE
+
+ return TRUE
diff --git a/code/modules/spells/spell_types/pointed/endure.dm b/code/modules/spells/spell_types/pointed/endure.dm
index ed4f5a5d787..bee596f3f41 100644
--- a/code/modules/spells/spell_types/pointed/endure.dm
+++ b/code/modules/spells/spell_types/pointed/endure.dm
@@ -68,7 +68,7 @@
psicross_bonus = 0.3
if(/obj/item/clothing/neck/psycross/silver)
psicross_bonus = 0.4
- if(/obj/item/clothing/neck/psycross/g) // PURITY AFLOAT.
+ if(/obj/item/clothing/neck/psycross/gold) // PURITY AFLOAT.
psicross_bonus = 0.4
if(damtotal >= 300) // ARE THEY ENDURING MUCH, IN ONE WAY OR ANOTHER?
situational_bonus += 0.3
diff --git a/code/modules/spells/spell_types/pointed/eoran_bloom.dm b/code/modules/spells/spell_types/pointed/eoran_bloom.dm
index beb587b23c8..20d2beefa5a 100644
--- a/code/modules/spells/spell_types/pointed/eoran_bloom.dm
+++ b/code/modules/spells/spell_types/pointed/eoran_bloom.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/eora)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/eora)
invocation = "Be at peace with Eora."
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/eoran_charm.dm b/code/modules/spells/spell_types/pointed/eoran_charm.dm
index ffef44b04cc..e31cfdcd698 100644
--- a/code/modules/spells/spell_types/pointed/eoran_charm.dm
+++ b/code/modules/spells/spell_types/pointed/eoran_charm.dm
@@ -31,7 +31,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/eora)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/eora)
invocation = "Experiamur vim amoris!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/hammer_fall.dm b/code/modules/spells/spell_types/pointed/hammer_fall.dm
index f3173963c5c..40fe882601f 100644
--- a/code/modules/spells/spell_types/pointed/hammer_fall.dm
+++ b/code/modules/spells/spell_types/pointed/hammer_fall.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/malum)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/malum)
invocation = "Let the weight of Malum's hammer fall!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/healing.dm b/code/modules/spells/spell_types/pointed/healing.dm
index 38a4d85759b..5a59bf063ca 100644
--- a/code/modules/spells/spell_types/pointed/healing.dm
+++ b/code/modules/spells/spell_types/pointed/healing.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine)
charge_required = FALSE
cooldown_time = 10 SECONDS
@@ -25,6 +25,8 @@
var/stun_undead = FALSE
/// Unholy, profane healing
var/is_profane = FALSE
+ /// Patron Restrictive
+ var/patron_restrictive = FALSE
/datum/action/cooldown/spell/healing/is_valid_target(atom/cast_on)
. = ..()
@@ -34,11 +36,25 @@
/datum/action/cooldown/spell/healing/cast(mob/living/cast_on)
. = ..()
+ if(is_profane && patron_restrictive && !(cast_on.patron in ALL_PROFANE_PATRONS))
+ cast_on.visible_message(
+ span_warning("The Inhumen Four sear the flesh of [cast_on]! a non-believer and weakling!"),
+ span_notice("The Inhumen Four lash out at me with a wave of pain!"),
+ )
+ cast_on.emote("scream")
+ return
+
if(!is_profane)
if(HAS_TRAIT(cast_on, TRAIT_ASTRATA_CURSE))
cast_on.visible_message(span_danger("[cast_on] recoils in pain!"), span_userdanger("Divine healing shuns me!"))
cast_on.cursed_freak_out()
return
+ /// The Ten won't provide greater healing to centrist worshippers, they do not approve.
+ /// This is ignored if they're already a divine servant, like a Templar, as undivded can only become church roles from round start.
+ if(HAS_TRAIT(cast_on, TRAIT_DIVINE_CENTRIST) && !HAS_TRAIT(cast_on, TRAIT_DIVINE_SERVANT) && patron_restrictive)
+ cast_on.visible_message(span_danger("[cast_on] recoils in shame!"), span_userdanger("The Ten reject my indecisiveness!"))
+ cast_on.cursed_freak_out()
+ return
if(cast_on.mob_biotypes & MOB_UNDEAD) //positive energy harms the undead
if(cast_on.mind?.has_antag_datum(/datum/antagonist/vampire/lord))
cast_on.visible_message(span_warning("[cast_on] overpowers being burned!"), span_greentext("I overpower being burned!"))
@@ -50,9 +66,9 @@
cast_on.adjust_divine_fire_stacks(1)
cast_on.IgniteMob()
return
- if((cast_on.real_name in GLOB.excommunicated_players) && !HAS_TRAIT(cast_on, TRAIT_FANATICAL))
+ if(((cast_on.real_name in GLOB.excommunicated_players) || (cast_on.real_name in GLOB.heretical_players)) && !HAS_TRAIT(cast_on, TRAIT_FANATICAL))
cast_on.visible_message(
- span_warning("The angry Ten the flesh of [cast_on]! a foolish blasphemer and heretic!"),
+ span_warning("The angry Ten sear the flesh of [cast_on]! a foolish blasphemer and heretic!"),
span_notice("I am despised by the Ten, rejected, and they remind me just how unlovable I am with a wave of pain!"),
)
cast_on.emote("scream")
@@ -218,6 +234,7 @@
antimagic_flags = MAGIC_RESISTANCE_UNHOLY
required_items = null
is_profane = TRUE
+ required_items = list(/obj/item/clothing/neck/psycross)
/datum/action/cooldown/spell/healing/greater
name = "Miracle"
@@ -232,6 +249,7 @@
wound_modifier = 0.5
blood_restoration = BLOOD_VOLUME_SURVIVE
stun_undead = TRUE
+ patron_restrictive = TRUE
/datum/action/cooldown/spell/healing/greater/profane
name = "Corrupt Miracle"
@@ -239,3 +257,4 @@
required_items = null
stun_undead = FALSE
is_profane = TRUE
+ required_items = list(/obj/item/clothing/neck/psycross)
diff --git a/code/modules/spells/spell_types/pointed/heat_metal.dm b/code/modules/spells/spell_types/pointed/heat_metal.dm
index 0fbf5ff0172..0cc48294fce 100644
--- a/code/modules/spells/spell_types/pointed/heat_metal.dm
+++ b/code/modules/spells/spell_types/pointed/heat_metal.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/malum)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/malum)
invocation = "Metal bends to the heat of Malum's forge!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/instill_perfection.dm b/code/modules/spells/spell_types/pointed/instill_perfection.dm
index 4b8543dfe89..2505fa38c21 100644
--- a/code/modules/spells/spell_types/pointed/instill_perfection.dm
+++ b/code/modules/spells/spell_types/pointed/instill_perfection.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/eora)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/eora)
invocation = "Eora, lend some of your divine beauty!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/ocean_embrace.dm b/code/modules/spells/spell_types/pointed/ocean_embrace.dm
index 6c88fe4d426..ef603f8cab0 100644
--- a/code/modules/spells/spell_types/pointed/ocean_embrace.dm
+++ b/code/modules/spells/spell_types/pointed/ocean_embrace.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/abyssor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/abyssor)
invocation = "Embrace the waters of Abyssor's domain!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/persistence.dm b/code/modules/spells/spell_types/pointed/persistence.dm
index a618c36f994..bf2e1cb4821 100644
--- a/code/modules/spells/spell_types/pointed/persistence.dm
+++ b/code/modules/spells/spell_types/pointed/persistence.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/ravox)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/ravox)
invocation = "Ravox deems your persistence worthy!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/projectile/eora_curse.dm b/code/modules/spells/spell_types/pointed/projectile/eora_curse.dm
index 17096651ed3..5eaacf24f33 100644
--- a/code/modules/spells/spell_types/pointed/projectile/eora_curse.dm
+++ b/code/modules/spells/spell_types/pointed/projectile/eora_curse.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/eora)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/eora)
invocation = "Nulla felicitas sine amore!"
invocation_type = INVOCATION_WHISPER
diff --git a/code/modules/spells/spell_types/pointed/projectile/falcon_disrupt.dm b/code/modules/spells/spell_types/pointed/projectile/falcon_disrupt.dm
index 46f945ff857..440eac9f9a7 100644
--- a/code/modules/spells/spell_types/pointed/projectile/falcon_disrupt.dm
+++ b/code/modules/spells/spell_types/pointed/projectile/falcon_disrupt.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
attunements = list(/datum/attunement/earth = 0.5)
charge_time = 1 SECONDS
charge_drain = 1
diff --git a/code/modules/spells/spell_types/pointed/projectile/moonlit_dagger.dm b/code/modules/spells/spell_types/pointed/projectile/moonlit_dagger.dm
index d3d3dcaf78d..97994b42cbe 100644
--- a/code/modules/spells/spell_types/pointed/projectile/moonlit_dagger.dm
+++ b/code/modules/spells/spell_types/pointed/projectile/moonlit_dagger.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/noc)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/noc)
invocation = "Begone foul beasts!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/projectile/swordfish.dm b/code/modules/spells/spell_types/pointed/projectile/swordfish.dm
index 149492d268f..b2e6d8a83ad 100644
--- a/code/modules/spells/spell_types/pointed/projectile/swordfish.dm
+++ b/code/modules/spells/spell_types/pointed/projectile/swordfish.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/abyssor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/abyssor)
invocation = "Feel Abyssor's rage!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/respite.dm b/code/modules/spells/spell_types/pointed/respite.dm
index 98da15950c3..e8dddc9aacc 100644
--- a/code/modules/spells/spell_types/pointed/respite.dm
+++ b/code/modules/spells/spell_types/pointed/respite.dm
@@ -32,7 +32,7 @@
psicross_bonus = -5
if(/obj/item/clothing/neck/psycross/silver)
psicross_bonus = -7
- if(/obj/item/clothing/neck/psycross/g) // PURITY AFLOAT.
+ if(/obj/item/clothing/neck/psycross/gold) // PURITY AFLOAT.
psicross_bonus = -7
if(brute > 100)
sit_bonus1 = -2
diff --git a/code/modules/spells/spell_types/pointed/revive.dm b/code/modules/spells/spell_types/pointed/revive.dm
index dcedb35344e..9a643d12e1e 100644
--- a/code/modules/spells/spell_types/pointed/revive.dm
+++ b/code/modules/spells/spell_types/pointed/revive.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/astrata)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/astrata)
charge_time = 5 SECONDS
charge_slowdown = 0.7
diff --git a/code/modules/spells/spell_types/pointed/sacred_flame.dm b/code/modules/spells/spell_types/pointed/sacred_flame.dm
index 5c757e1cd08..c3f7d9f8633 100644
--- a/code/modules/spells/spell_types/pointed/sacred_flame.dm
+++ b/code/modules/spells/spell_types/pointed/sacred_flame.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/astrata)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/astrata)
invocation = "Cleansing flames, kindle!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/pointed/status/divine_shield.dm b/code/modules/spells/spell_types/pointed/status/divine_shield.dm
new file mode 100644
index 00000000000..c4c86cdf066
--- /dev/null
+++ b/code/modules/spells/spell_types/pointed/status/divine_shield.dm
@@ -0,0 +1,104 @@
+#define SHIELD_DURATION 1 MINUTES
+/// Duration + (3 * Duration)
+#define SHIELD_COOLDOWN ((3 * SHIELD_DURATION) + SHIELD_DURATION)
+
+/datum/action/cooldown/spell/status/divine_shield
+ name = "Divine Shield"
+ desc = "Protect the target from harm, taking their suffering unto yourself."
+ button_icon_state = "regression"
+ sound = 'sound/magic/holyshield.ogg'
+ charge_sound = 'sound/magic/holycharging.ogg'
+
+ cast_range = 3
+ spell_type = SPELL_MIRACLE
+ antimagic_flags = MAGIC_RESISTANCE_HOLY
+ associated_skill = /datum/skill/magic/holy
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine)
+
+ self_cast_possible = FALSE
+
+ charge_required = TRUE
+ charge_time = 3 SECONDS
+ cooldown_time = SHIELD_COOLDOWN
+
+ invocation = "May The Ten protect you!"
+ invocation_type = INVOCATION_SHOUT
+
+ spell_cost = 100
+
+ status_effect = /datum/status_effect/buff/divine_shield
+
+/datum/action/cooldown/spell/status/divine_shield/before_cast(mob/living/cast_on)
+ . = ..()
+ extra_args = list(owner)
+
+/datum/status_effect/buff/divine_shield
+ id = "divine_shield"
+ alert_type = /atom/movable/screen/alert/status_effect/buff/divine_shield
+ duration = SHIELD_DURATION
+ effectedstats = list(STATKEY_CON = 3)
+ var/static/mutable_appearance/shielded = mutable_appearance('icons/effects/effects.dmi', "shieldsparkles")
+ var/mob/living/carbon/protector_mob
+ COOLDOWN_DECLARE(message_cooldown)
+ var/changed_godmode = FALSE
+
+/datum/status_effect/buff/divine_shield/on_creation(mob/living/new_owner, duration_override, mob/living/protector)
+ if(!protector)
+ qdel(src)
+ return FALSE
+
+ protector_mob = protector
+ protector_mob.apply_status_effect(arglist(list(/datum/status_effect/debuff/divine_shield, duration)))
+ return ..()
+
+/datum/status_effect/buff/divine_shield/on_apply()
+ . = ..()
+ var/mob/living/target = owner
+ target.add_overlay(shielded)
+ target.AddElement(/datum/element/relay_attackers)
+ RegisterSignal(target, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(upon_attacked))
+ if(target.status_flags & GODMODE)
+ return
+ changed_godmode = TRUE
+ target.status_flags |= GODMODE
+
+/datum/status_effect/buff/divine_shield/on_remove()
+ var/mob/living/target = owner
+ target.cut_overlay(shielded)
+ target.RemoveElement(/datum/element/relay_attackers)
+ UnregisterSignal(target, COMSIG_ATOM_WAS_ATTACKED)
+ if(changed_godmode)
+ owner.status_flags &= ~GODMODE
+ return ..()
+
+/datum/status_effect/buff/divine_shield/proc/upon_attacked(mob/living/attacked, mob/living/carbon/human/attacker, damage)
+ SIGNAL_HANDLER
+ protector_mob.apply_damage(damage, BRUTE, forced = TRUE)
+ owner.heal_overall_damage(damage, damage)//Currently the closest option I have, I can't find a way to relay damage but also not take the damage.
+
+ if(COOLDOWN_FINISHED(src, message_cooldown))
+ to_chat(protector_mob, SPAN_GOD_RAVOX("Your divine shield reflects damage to you from [owner.real_name]."))
+ to_chat(owner, SPAN_GOD_RAVOX("Your divine shield reflects damage from you to [protector_mob.real_name]."))
+ COOLDOWN_START(src, message_cooldown, 5 SECONDS)
+
+/atom/movable/screen/alert/status_effect/buff/divine_shield
+ name = "Divine Shield"
+ desc = span_nicegreen("I am shielded by divine energies.")
+ icon_state = "buff"
+
+
+/datum/status_effect/debuff/divine_shield
+ id = "divine_shield_r"
+ alert_type = /atom/movable/screen/alert/status_effect/debuff/divine_shield
+ duration = SHIELD_DURATION
+ effectedstats = list(STATKEY_CON = -2)
+
+/atom/movable/screen/alert/status_effect/debuff/divine_shield
+ name = "Divine Shield"
+ desc = span_red("I am channeling divine power to shield my target.")
+ icon_state = "debuff"
+ alert_group = ALERT_DEBUFF
+
+
+#undef SHIELD_DURATION
+#undef SHIELD_COOLDOWN
diff --git a/code/modules/spells/spell_types/pointed/status/fortune_wheel.dm b/code/modules/spells/spell_types/pointed/status/fortune_wheel.dm
index c3d3fe0da33..ed81332362d 100644
--- a/code/modules/spells/spell_types/pointed/status/fortune_wheel.dm
+++ b/code/modules/spells/spell_types/pointed/status/fortune_wheel.dm
@@ -6,7 +6,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/xylix)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/xylix)
charge_required = FALSE
spell_cost = 35
diff --git a/code/modules/spells/spell_types/pointed/status/invisibility.dm b/code/modules/spells/spell_types/pointed/status/invisibility.dm
index e6f9cc0d283..9eb7c3acfe6 100644
--- a/code/modules/spells/spell_types/pointed/status/invisibility.dm
+++ b/code/modules/spells/spell_types/pointed/status/invisibility.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/noc)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/noc)
charge_required = FALSE
cooldown_time = 2 MINUTES
diff --git a/code/modules/spells/spell_types/pointed/status/vigorous_craft.dm b/code/modules/spells/spell_types/pointed/status/vigorous_craft.dm
index 647f194f11f..c6dbb9abcf4 100644
--- a/code/modules/spells/spell_types/pointed/status/vigorous_craft.dm
+++ b/code/modules/spells/spell_types/pointed/status/vigorous_craft.dm
@@ -8,7 +8,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/malum)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/malum)
invocation = "Through ash and flame! Legere librum!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/undirected/beast_sense.dm b/code/modules/spells/spell_types/undirected/beast_sense.dm
index 720392e8fd5..80481ad0251 100644
--- a/code/modules/spells/spell_types/undirected/beast_sense.dm
+++ b/code/modules/spells/spell_types/undirected/beast_sense.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
attunements = list(
/datum/attunement/earth = 0.5,
)
diff --git a/code/modules/spells/spell_types/undirected/bless_crops.dm b/code/modules/spells/spell_types/undirected/bless_crops.dm
index b28297c7bac..77f73059643 100644
--- a/code/modules/spells/spell_types/undirected/bless_crops.dm
+++ b/code/modules/spells/spell_types/undirected/bless_crops.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
attunements = list(
/datum/attunement/earth = 0.5,
/datum/attunement/life = 0.5,
diff --git a/code/modules/spells/spell_types/undirected/call_of_the_moon.dm b/code/modules/spells/spell_types/undirected/call_of_the_moon.dm
index 3065e72877a..41dc8ed8819 100644
--- a/code/modules/spells/spell_types/undirected/call_of_the_moon.dm
+++ b/code/modules/spells/spell_types/undirected/call_of_the_moon.dm
@@ -4,7 +4,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
has_visual_effects = TRUE
use_language = TRUE
diff --git a/code/modules/spells/spell_types/undirected/call_to_arms.dm b/code/modules/spells/spell_types/undirected/call_to_arms.dm
index 768d56b1ecb..251356e20e3 100644
--- a/code/modules/spells/spell_types/undirected/call_to_arms.dm
+++ b/code/modules/spells/spell_types/undirected/call_to_arms.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/ravox)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/ravox)
invocation = "MAY THE FIGHT BE BLOODY!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/undirected/conjure_item/briar_claw.dm b/code/modules/spells/spell_types/undirected/conjure_item/briar_claw.dm
index 7e6a322df1d..b63416fdeb6 100644
--- a/code/modules/spells/spell_types/undirected/conjure_item/briar_claw.dm
+++ b/code/modules/spells/spell_types/undirected/conjure_item/briar_claw.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
spell_cost = 15
item_duration = 1 MINUTES
cooldown_time = 4 MINUTES
diff --git a/code/modules/spells/spell_types/undirected/conjure_item/summon_leech.dm b/code/modules/spells/spell_types/undirected/conjure_item/summon_leech.dm
index 7b128219a58..2aef1942024 100644
--- a/code/modules/spells/spell_types/undirected/conjure_item/summon_leech.dm
+++ b/code/modules/spells/spell_types/undirected/conjure_item/summon_leech.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/abyssor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/abyssor)
invocation = "Abyssor bless me with one of your servants!"
invocation_type = INVOCATION_WHISPER
@@ -24,7 +24,7 @@
desc = "Summon a leech by Pestra's will."
button_icon_state = "diagnose"
- required_items = list(/obj/item/clothing/neck/psycross/silver/pestra)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/pestra)
invocation = "Pestra grant me the creacher to cleanse the blood!"
invocation_type = INVOCATION_WHISPER
diff --git a/code/modules/spells/spell_types/undirected/conjure_item/summon_trident.dm b/code/modules/spells/spell_types/undirected/conjure_item/summon_trident.dm
index 2249fd03f82..bedb06ceb36 100644
--- a/code/modules/spells/spell_types/undirected/conjure_item/summon_trident.dm
+++ b/code/modules/spells/spell_types/undirected/conjure_item/summon_trident.dm
@@ -26,7 +26,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/abyssor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/abyssor)
invocation = "Let Abyssor's wrath be known!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/undirected/divine_strike.dm b/code/modules/spells/spell_types/undirected/divine_strike.dm
index e8805356f6b..bb54c97b210 100644
--- a/code/modules/spells/spell_types/undirected/divine_strike.dm
+++ b/code/modules/spells/spell_types/undirected/divine_strike.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/ravox)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/ravox)
invocation = "Ravox deems your persistence worthy!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/spells/spell_types/undirected/jaunt/bush_jaunt.dm b/code/modules/spells/spell_types/undirected/jaunt/bush_jaunt.dm
index 858b7d3c185..3dcf7bbc3b0 100644
--- a/code/modules/spells/spell_types/undirected/jaunt/bush_jaunt.dm
+++ b/code/modules/spells/spell_types/undirected/jaunt/bush_jaunt.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
cooldown_time = 2 MINUTES
spell_cost = 20
has_visual_effects = FALSE
diff --git a/code/modules/spells/spell_types/undirected/jaunt/illusory_prop.dm b/code/modules/spells/spell_types/undirected/jaunt/illusory_prop.dm
index 59469cd8b18..faeb34cdca9 100644
--- a/code/modules/spells/spell_types/undirected/jaunt/illusory_prop.dm
+++ b/code/modules/spells/spell_types/undirected/jaunt/illusory_prop.dm
@@ -9,7 +9,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/xylix)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/xylix)
cooldown_time = 2 MINUTES
spell_cost = 25
has_visual_effects = FALSE
diff --git a/code/modules/spells/spell_types/undirected/list_target/convert_role/brotherhood.dm b/code/modules/spells/spell_types/undirected/list_target/convert_role/brotherhood.dm
index 794c3690a43..c5e3d090d06 100644
--- a/code/modules/spells/spell_types/undirected/list_target/convert_role/brotherhood.dm
+++ b/code/modules/spells/spell_types/undirected/list_target/convert_role/brotherhood.dm
@@ -8,7 +8,7 @@
accept_message = "All for one and one for all!"
refuse_message = "I refuse."
-/datum/action/cooldown/spell/undirected/list_target/convert_role/guard/on_conversion(mob/living/cast_on)
+/datum/action/cooldown/spell/undirected/list_target/convert_role/brotherhood/on_conversion(mob/living/cast_on)
. = ..()
if(cast_on.gender == FEMALE)
new_role = "Sister"
diff --git a/code/modules/spells/spell_types/undirected/list_target/convert_role/church.dm b/code/modules/spells/spell_types/undirected/list_target/convert_role/church.dm
index 431802a2636..0b0b7345165 100644
--- a/code/modules/spells/spell_types/undirected/list_target/convert_role/church.dm
+++ b/code/modules/spells/spell_types/undirected/list_target/convert_role/church.dm
@@ -1,4 +1,40 @@
-/datum/action/cooldown/spell/undirected/list_target/convert_role/templar
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church
+ name = "Recruit Church Nerd"
+ var/allow_centrist = FALSE
+
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/cast(mob/living/carbon/human/cast_on)
+ // Patron-specific checks happen here, AFTER priest picks the target
+ var/mob/living/living_owner = owner
+
+ if(cast_on.cleric)
+ to_chat(owner, span_info("[cast_on.real_name] already serves their god(s)."))
+ return
+
+ if(!cast_on.patron)
+ to_chat(owner, span_info("The Ten glare upon you in confusion. CHILD, [cast_on.real_name] has no form of faith."))
+ return
+
+ if(cast_on.patron.type in ALL_PROFANE_PATRONS)
+ to_chat(owner, span_danger("The Ten glare upon you in fury. CHILD, [cast_on.real_name] serves the Inhumen, do not disgrace Our name."))
+ living_owner.adjust_divine_fire_stacks(50) // Half of the damage that you get if you say a profane word, hurts alot.
+ living_owner.IgniteMob()
+ return // Stop the recruitment entirely
+
+ if(istype(cast_on.patron, /datum/patron/psydon))
+ to_chat(owner, span_info("The Ten glare upon you in sadness. CHILD, [cast_on.real_name] serves Psydon, he is dead, nobody can answer these prayers."))
+ return // Stop recruitment
+
+ if(!allow_centrist && istype(cast_on.patron, /datum/patron/divine/centrist))
+ to_chat(owner, span_info("The Ten glare upon you in stubbornness. [cast_on.real_name] worships The Ten equally. They can serve only one."))
+ return // Stop recruitment
+
+ if(!(cast_on.patron.type in ALL_TEMPLE_PATRONS))
+ to_chat(owner, span_danger("The Ten glare upon you in anger. CHILD, [cast_on.real_name] does not worship Our divinity. They are undeserving of Our grace."))
+ return // Stop recruitment
+
+ return ..()
+
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/templar
name = "Recruit Templar"
button_icon_state = "recruit_templar"
@@ -8,7 +44,7 @@
accept_message = "FOR THE TEN!"
refuse_message = "I refuse."
-/datum/action/cooldown/spell/undirected/list_target/convert_role/templar/on_conversion(mob/living/carbon/human/cast_on)
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/templar/on_conversion(mob/living/carbon/human/cast_on)
. = ..()
var/holder = cast_on.patron?.devotion_holder
if(holder)
@@ -17,25 +53,7 @@
devotion.grant_to(cast_on)
-/datum/action/cooldown/spell/undirected/list_target/convert_role/templar/cast(mob/living/carbon/human/cast_on)
- // Patron-specific checks happen here, AFTER priest picks the target
- var/mob/living/living_owner = owner
-
- if(cast_on.patron && (cast_on.patron.type in ALL_PROFANE_PATRONS))
- to_chat(owner, span_danger("The Ten glare upon you in fury. CHILD, [cast_on.real_name] serves the Inhumen, do not disgrace Our name."))
- living_owner.adjust_divine_fire_stacks(50) // Half of the damage that you get if you say a profane word, hurts alot.
- living_owner.IgniteMob()
- return // Stop the recruitment entirely
-
- if(cast_on.patron && istype(cast_on.patron, /datum/patron/psydon))
- to_chat(owner, span_info("The Ten glare upon you in sadness. CHILD, [cast_on.real_name] serves Psydon, he is dead, nobody can answer these prayers."))
- return // Stop recruitment
-
- return ..()
-
-
-
-/datum/action/cooldown/spell/undirected/list_target/convert_role/acolyte
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/acolyte
name = "Recruit Acolyte"
button_icon_state = "recruit_acolyte"
@@ -45,25 +63,7 @@
accept_message = "FOR THE TEN!"
refuse_message = "I refuse."
-
-/datum/action/cooldown/spell/undirected/list_target/convert_role/acolyte/cast(mob/living/carbon/human/cast_on)
- // Patron-specific checks happen here, AFTER priest picks the target
- var/mob/living/living_owner = owner
-
- if(cast_on.patron && (cast_on.patron.type in ALL_PROFANE_PATRONS))
- to_chat(owner, span_danger("The Ten glare upon you in fury. CHILD, [cast_on.real_name] serves the Inhumen, do not disgrace Our name."))
- living_owner.adjust_divine_fire_stacks(50) // Half of the damage that you get if you say a profane word, hurts alot.
- living_owner.IgniteMob()
- return // Stop the recruitment entirely
-
- if(cast_on.patron && istype(cast_on.patron, /datum/patron/psydon))
- to_chat(owner, span_info("The Ten glare upon you in sadness. CHILD, [cast_on.real_name] serves Psydon, he is dead, nobody can answer these prayers."))
- return // Stop recruitment
-
- return ..()
-
-
-/datum/action/cooldown/spell/undirected/list_target/convert_role/acolyte/on_conversion(mob/living/carbon/human/cast_on)
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/acolyte/on_conversion(mob/living/carbon/human/cast_on)
. = ..()
var/holder = cast_on.patron?.devotion_holder
if(holder)
@@ -71,7 +71,7 @@
devotion.make_acolyte()
devotion.grant_to(cast_on)
-/datum/action/cooldown/spell/undirected/list_target/convert_role/churchling
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/churchling
name = "Recruit Churchling"
button_icon_state = "recruit_acolyte"
@@ -81,25 +81,17 @@
accept_message = "FOR THE TEN!"
refuse_message = "I refuse."
+ allow_centrist = TRUE
-/datum/action/cooldown/spell/undirected/list_target/convert_role/churchling/cast(mob/living/carbon/human/cast_on)
- // Patron-specific checks happen here, AFTER priest picks the target
- if(cast_on.patron && istype(cast_on.patron, /datum/patron/psydon))
- to_chat(owner, span_info("The Ten glare upon you in sadness. CHILD, [cast_on.real_name] serves Psydon, he is dead, nobody can answer these prayers."))
- return // Stop recruitment
-
- return ..()
-
-
-/datum/action/cooldown/spell/undirected/list_target/convert_role/churchling/on_conversion(mob/living/carbon/human/cast_on)
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/churchling/on_conversion(mob/living/carbon/human/cast_on)
. = ..()
var/holder = cast_on.patron?.devotion_holder
if(holder)
var/datum/devotion/devotion = new holder()
- devotion.make_churching()
+ devotion.make_churchling()
devotion.grant_to(cast_on)
-/datum/action/cooldown/spell/undirected/list_target/convert_role/churchling/can_convert(mob/living/carbon/human/cast_on)
+/datum/action/cooldown/spell/undirected/list_target/convert_role/church/churchling/can_convert(mob/living/carbon/human/cast_on)
if(QDELETED(cast_on))
return FALSE
//need a mind
@@ -107,6 +99,7 @@
return FALSE
//only orphans who aren't apprentices
if(istype(cast_on.mind.assigned_role, /datum/job/orphan) && cast_on.is_apprentice())
+ to_chat(owner, span_info("You cannot recruit a child already in an apprenticeship."))
return FALSE
if(cast_on.age != AGE_CHILD)
return FALSE
diff --git a/code/modules/spells/spell_types/undirected/list_target/vicious_mimicry.dm b/code/modules/spells/spell_types/undirected/list_target/vicious_mimicry.dm
index ba8f02417cd..ee47294dc09 100644
--- a/code/modules/spells/spell_types/undirected/list_target/vicious_mimicry.dm
+++ b/code/modules/spells/spell_types/undirected/list_target/vicious_mimicry.dm
@@ -6,7 +6,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/xylix)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/xylix)
cooldown_time = 1 MINUTES
spell_cost = 25
diff --git a/code/modules/spells/spell_types/undirected/locate_dead.dm b/code/modules/spells/spell_types/undirected/locate_dead.dm
index e493c2e2960..7ce59f77413 100644
--- a/code/modules/spells/spell_types/undirected/locate_dead.dm
+++ b/code/modules/spells/spell_types/undirected/locate_dead.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/necra)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/necra)
invocation = "Undermaiden, guide my hand to those who have lost their way."
invocation_type = INVOCATION_WHISPER
diff --git a/code/modules/spells/spell_types/undirected/shapeshift/troll_form.dm b/code/modules/spells/spell_types/undirected/shapeshift/troll_form.dm
index a179876828b..e413de78651 100644
--- a/code/modules/spells/spell_types/undirected/shapeshift/troll_form.dm
+++ b/code/modules/spells/spell_types/undirected/shapeshift/troll_form.dm
@@ -7,7 +7,7 @@
charge_required = FALSE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
possible_shapes = list(/mob/living/simple_animal/hostile/retaliate/troll)
@@ -41,6 +41,6 @@
. = ..()
if(!.)
return
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
spell_cost = 100
spell_type = SPELL_MIRACLE
diff --git a/code/modules/spells/spell_types/undirected/soul_speak.dm b/code/modules/spells/spell_types/undirected/soul_speak.dm
index d41c56b9ba6..37a3b0d8b0c 100644
--- a/code/modules/spells/spell_types/undirected/soul_speak.dm
+++ b/code/modules/spells/spell_types/undirected/soul_speak.dm
@@ -7,7 +7,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/necra)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/necra)
invocation = "Undermaiden grant thee passage forth and spare the trials of the forgotten."
invocation_type = INVOCATION_WHISPER
diff --git a/code/modules/spells/spell_types/undirected/touch/entangler.dm b/code/modules/spells/spell_types/undirected/touch/entangler.dm
index 530248dfb60..ca69036bf5b 100644
--- a/code/modules/spells/spell_types/undirected/touch/entangler.dm
+++ b/code/modules/spells/spell_types/undirected/touch/entangler.dm
@@ -6,7 +6,7 @@
spell_type = SPELL_MIRACLE
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
attunements = list(
/datum/attunement/earth = 0.5,
)
diff --git a/code/modules/spells/spell_types/undirected/troll_shape.dm b/code/modules/spells/spell_types/undirected/troll_shape.dm
index 64b57b33b65..ff3a60dd5b6 100644
--- a/code/modules/spells/spell_types/undirected/troll_shape.dm
+++ b/code/modules/spells/spell_types/undirected/troll_shape.dm
@@ -11,7 +11,7 @@
spell_type = SPELL_MIRACLE
antimagic_flags = MAGIC_RESISTANCE_HOLY
associated_skill = /datum/skill/magic/holy
- required_items = list(/obj/item/clothing/neck/psycross/silver/dendor)
+ required_items = list(/obj/item/clothing/neck/psycross/silver/divine/dendor)
invocation = "DENDOR LEND ME YOUR POWER!!"
invocation_type = INVOCATION_SHOUT
diff --git a/code/modules/unit_tests/craftable_clothes.dm b/code/modules/unit_tests/craftable_clothes.dm
index 8ffc6b91eab..2b614bddf4e 100644
--- a/code/modules/unit_tests/craftable_clothes.dm
+++ b/code/modules/unit_tests/craftable_clothes.dm
@@ -48,7 +48,6 @@ abstract types are automatically excluded.
/obj/item/clothing/head/helmet/heavy/ordinatorhelm, ///special item //! probably can add this at some point
/obj/item/clothing/head/roguehood/psydon/confessor, ///inqport
/obj/item/clothing/face/facemask/steel/confessor, ///inqport
- /obj/item/clothing/neck/psycross/silver/undivided, //Not supposed to get this, not yet at the very least.
/obj/item/clothing/gloves/bandages/pugilist,
/obj/item/clothing/armor/gambeson/heavy/otavan/inq, ///inqport
/obj/item/clothing/armor/gambeson/heavy/otavan, ///null
@@ -83,7 +82,7 @@ abstract types are automatically excluded.
var/list/excluded_paths_with_their_subtypes = list(
/obj/item/clothing/neck/mercmedal, // only earnable via hermes
/obj/item/clothing/neck/shalal, // this is a medal
- /obj/item/clothing/neck/psycross/silver/holy, // unimplemented
+ /obj/item/clothing/neck/psycross/silver/divine/eora/potion, // unimplemented
/obj/item/clothing/armor/skin_armor, // bruh
/obj/item/clothing/head/hooded, // abstract items connected to a cloak, shouldn't be craftable
/obj/item/clothing/accessory, // ???
diff --git a/icons/roguetown/clothing/neck.dmi b/icons/roguetown/clothing/neck.dmi
index 8203b9929b7..41db683b98b 100644
Binary files a/icons/roguetown/clothing/neck.dmi and b/icons/roguetown/clothing/neck.dmi differ
diff --git a/strings/rt/Lore_Primer.txt b/strings/rt/Lore_Primer.txt
index 1f0c06c7494..fbac88854ce 100644
--- a/strings/rt/Lore_Primer.txt
+++ b/strings/rt/Lore_Primer.txt
@@ -230,6 +230,17 @@ While it's not required reading, leadership roles may find this information usef
The time of Psydon has passed, The Ten are righteous. Necra leads us to salvation.
+
+ Divine Centrism
+
+ Equal, and perhaps confused, worship of The Ten.
+
+ A common stance for youths who are too young or uninformed to truly devote themselves to a sole pantheon, it is the duty of The Church to guide them to choose and profess themselves to a sole patron god.
+
+ For an adult not in direct service of the pantheon to profess themselves with such faith is a slight upon the gods. They should be shamed, educated, and brought to the light of a sole patron. Astrata turns her gaze away from such indecisiveness.
+
+
+
Astrata
diff --git a/tools/UpdatePaths/Scripts/3532_Prayer_and_psycross_changes.txt b/tools/UpdatePaths/Scripts/3532_Prayer_and_psycross_changes.txt
index 98b47e48729..dfa4072bec4 100644
--- a/tools/UpdatePaths/Scripts/3532_Prayer_and_psycross_changes.txt
+++ b/tools/UpdatePaths/Scripts/3532_Prayer_and_psycross_changes.txt
@@ -1,2 +1,2 @@
-/obj/item/clothing/neck/psycross/noc : /obj/item/clothing/neck/psycross/silver/noc{@OLD}
-/obj/item/clothing/neck/psycross/silver/malum_steel : /obj/item/clothing/neck/psycross/silver/malum/steel{@OLD}
+/obj/item/clothing/neck/psycross/noc : /obj/item/clothing/neck/psycross/silver/divine/noc{@OLD}
+/obj/item/clothing/neck/psycross/silver/divine/malum_steel : /obj/item/clothing/neck/psycross/silver/divine/malum/steel{@OLD}
diff --git a/vanderlin.dme b/vanderlin.dme
index cccfeec54d7..bd8a0894277 100644
--- a/vanderlin.dme
+++ b/vanderlin.dme
@@ -3541,6 +3541,7 @@
#include "code\modules\spells\spell_types\pointed\conjure\web.dm"
#include "code\modules\spells\spell_types\pointed\enchantment\_enchantment.dm"
#include "code\modules\spells\spell_types\pointed\enchantment\greenflame_blade.dm"
+#include "code\modules\spells\spell_types\pointed\enchantment\holyflame_blade.dm"
#include "code\modules\spells\spell_types\pointed\projectile\_projectile.dm"
#include "code\modules\spells\spell_types\pointed\projectile\acid_splash.dm"
#include "code\modules\spells\spell_types\pointed\projectile\arcyne_bolt.dm"
@@ -3563,6 +3564,7 @@
#include "code\modules\spells\spell_types\pointed\projectile\unholy_grasp.dm"
#include "code\modules\spells\spell_types\pointed\status\_status.dm"
#include "code\modules\spells\spell_types\pointed\status\booming_blade.dm"
+#include "code\modules\spells\spell_types\pointed\status\divine_shield.dm"
#include "code\modules\spells\spell_types\pointed\status\fortune_wheel.dm"
#include "code\modules\spells\spell_types\pointed\status\frostbite.dm"
#include "code\modules\spells\spell_types\pointed\status\guidance.dm"