diff --git a/code/controllers/subsystem/religion.dm b/code/controllers/subsystem/religion.dm new file mode 100644 index 00000000000..cba19f954f5 --- /dev/null +++ b/code/controllers/subsystem/religion.dm @@ -0,0 +1,14 @@ +var/datum/subsystem/religion/SSreligion + +/datum/subsystem/religion + name = "religion" + init_order = 19 + flags = SS_NO_FIRE|SS_NO_INIT + + var/bible_deity_name + var/Bible_icon_state + var/Bible_item_state + var/Bible_name + var/Bible_deity_name + + var/holy_weapon \ No newline at end of file diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index b58d10fd127..4c3540810f9 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -22,12 +22,6 @@ var/datum/subsystem/ticker/ticker var/list/datum/mind/minds = list() //The characters in the game. Used for objective tracking. - //These bible variables should be a preference - var/Bible_icon_state //icon_state the chaplain has chosen for his bible - var/Bible_item_state //item_state the chaplain has chosen for his bible - var/Bible_name //name of the bible - var/Bible_deity_name //name of chaplin's deity - var/list/syndicate_coalition = list() //list of traitor-compatible factions var/list/factions = list() //list of all factions var/list/availablefactions = list() //list of factions with openings @@ -565,11 +559,6 @@ var/datum/subsystem/ticker/ticker minds = ticker.minds - Bible_icon_state = ticker.Bible_icon_state - Bible_item_state = ticker.Bible_item_state - Bible_name = ticker.Bible_name - Bible_deity_name = ticker.Bible_deity_name - syndicate_coalition = ticker.syndicate_coalition factions = ticker.factions availablefactions = ticker.availablefactions diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 3c2f4629652..3006391afda 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -21,22 +21,30 @@ reskin_holy_weapon(user) /obj/item/weapon/nullrod/proc/reskin_holy_weapon(mob/M) - var/list/holy_weapons_list = typesof(/obj/item/weapon/nullrod) - var/list/display_names = list() - for(var/V in holy_weapons_list) - var/atom/A = V - display_names += initial(A.name) + var/obj/item/weapon/nullrod/holy_weapon - var/choice = input(M,"What theme would you like for your holy weapon?","Holy Weapon Theme") as null|anything in display_names - if(!src || !choice || M.stat || !in_range(M, src) || M.restrained() || !M.canmove || reskinned) - return + if(SSreligion.holy_weapon) + holy_weapon = SSreligion.holy_weapon + else + var/list/holy_weapons_list = typesof(/obj/item/weapon/nullrod) + var/list/display_names = list() + for(var/V in holy_weapons_list) + var/atom/A = V + display_names += initial(A.name) - var/index = display_names.Find(choice) - var/A = holy_weapons_list[index] + var/choice = input(M,"What theme would you like for your holy weapon?","Holy Weapon Theme") as null|anything in display_names + if(!src || !choice || M.stat || !in_range(M, src) || M.restrained() || !M.canmove || reskinned) + return - var/obj/item/weapon/nullrod/holy_weapon = new A + var/index = display_names.Find(choice) + var/A = holy_weapons_list[index] + + holy_weapon = new A + + SSreligion.holy_weapon = holy_weapon.type + + feedback_set_details("chaplain_weapon","[choice]") - feedback_set_details("chaplain_weapon","[choice]") if(holy_weapon) holy_weapon.reskinned = TRUE diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm index fa7760847db..d3eeeb0146b 100644 --- a/code/game/objects/items/weapons/storage/book.dm +++ b/code/game/objects/items/weapons/storage/book.dm @@ -50,7 +50,7 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", " /obj/item/weapon/storage/book/bible/attack_self(mob/living/carbon/human/H) if(!istype(H)) return - if(ticker && !ticker.Bible_icon_state && H.job == "Chaplain") + if(!SSreligion.Bible_icon_state && H.job == "Chaplain") //Open bible selection var/dat = "Pick Bible Style

Pick a bible style

" @@ -95,7 +95,7 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", " T.setDir(10) /obj/item/weapon/storage/book/bible/Topic(href, href_list) - if(href_list["seticon"] && ticker && !ticker.Bible_icon_state) + if(href_list["seticon"] && ticker && !SSreligion.Bible_icon_state) var/iconi = text2num(href_list["seticon"]) var/biblename = biblenames[iconi] @@ -107,9 +107,9 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", " //Set biblespecific chapels setupbiblespecifics(B, usr) - if(ticker) - ticker.Bible_icon_state = B.icon_state - ticker.Bible_item_state = B.item_state + + SSreligion.Bible_icon_state = B.icon_state + SSreligion.Bible_item_state = B.item_state feedback_set_details("religion_book","[biblename]") usr << browse(null, "window=editicon") // Close window diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index ba2ccc76d6d..da424739fa3 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -25,8 +25,8 @@ cross = image('icons/obj/storage.dmi',"kingyellow") font_color = "blue" prayer_type = "CHAPLAIN PRAYER" - if (ticker && ticker.Bible_deity_name) - deity = ticker.Bible_deity_name + if(SSreligion.Bible_deity_name) + deity = SSreligion.Bible_deity_name else if(iscultist(usr)) cross = image('icons/obj/storage.dmi',"tome") font_color = "red" diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index fd4e07be1d5..6605b7784b2 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -37,10 +37,10 @@ Chaplain var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(H) - if(ticker && ticker.Bible_deity_name) - B.deity_name = ticker.Bible_deity_name - B.name = ticker.Bible_name - H << "There is already an established religion onboard the station. You are an acolyte of [ticker.Bible_deity_name]. Defer to the Chaplain." + if(SSreligion.Bible_deity_name) + B.deity_name = SSreligion.Bible_deity_name + B.name = SSreligion.Bible_name + H << "There is already an established religion onboard the station. You are an acolyte of [SSreligion.Bible_deity_name]. Defer to the Chaplain." H.equip_to_slot_or_del(B, slot_in_backpack) var/obj/item/weapon/nullrod/N = new(H) H.equip_to_slot_or_del(N, slot_in_backpack) @@ -77,14 +77,13 @@ Chaplain else B.name = "The Holy Book of [new_religion]" feedback_set_details("religion_name","[new_religion]") - ticker.Bible_name = B.name + SSreligion.Bible_name = B.name var/new_deity = "Space Jesus" if(H.client && H.client.prefs.custom_names["deity"]) new_deity = H.client.prefs.custom_names["deity"] B.deity_name = new_deity - if(ticker) - ticker.Bible_deity_name = B.deity_name + SSreligion.Bible_deity_name = B.deity_name feedback_set_details("religion_deity","[new_deity]") H.equip_to_slot_or_del(B, slot_in_backpack) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index ad2609c5546..97b26cba54d 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -337,11 +337,11 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums if(!bibledelay) var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible(src.loc) - if(ticker && ( ticker.Bible_icon_state && ticker.Bible_item_state) ) - B.icon_state = ticker.Bible_icon_state - B.item_state = ticker.Bible_item_state - B.name = ticker.Bible_name - B.deity_name = ticker.Bible_deity_name + if(SSreligion.Bible_icon_state && SSreligion.Bible_item_state) + B.icon_state = SSreligion.Bible_icon_state + B.item_state = SSreligion.Bible_item_state + B.name = SSreligion.Bible_name + B.deity_name = SSreligion.Bible_deity_name bibledelay = 1 spawn(60) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 895622cd285..4b548a50e85 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -60,8 +60,10 @@ playsound(get_turf(holder.my_atom), 'sound/effects/pray.ogg', 80, 0, round(created_volume/48)) strengthdiv = 8 for(var/mob/living/simple_animal/revenant/R in get_hearers_in_view(7,get_turf(holder.my_atom))) - var/deity = ticker.Bible_deity_name - if(!ticker.Bible_deity_name) + var/deity + if(SSreligion.Bible_deity_name) + deity = SSreligion.Bible_deity_name + else deity = "Christ" R << "The power of [deity] compels you!" R.stun(20) diff --git a/tgstation.dme b/tgstation.dme index e7ce6f4ab59..10cbfb76971 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -159,6 +159,7 @@ #include "code\controllers\subsystem\persistence.dm" #include "code\controllers\subsystem\pool.dm" #include "code\controllers\subsystem\radio.dm" +#include "code\controllers\subsystem\religion.dm" #include "code\controllers\subsystem\server_maintenance.dm" #include "code\controllers\subsystem\shuttles.dm" #include "code\controllers\subsystem\spacedrift.dm"