Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -458,3 +458,12 @@ GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE))

//Misc text define. Does 4 spaces. Used as a makeshift tabulator.
#define FOURSPACES "    "

//Religion

#define HOLY_ROLE_PRIEST 1 //default priestly role
#define HOLY_ROLE_HIGHPRIEST 2 //the one who designates the religion

#define ALIGNMENT_GOOD "good"
#define ALIGNMENT_NEUT "neutral"
#define ALIGNMENT_EVIL "evil"
9 changes: 0 additions & 9 deletions code/_globalvars/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,3 @@ GLOBAL_LIST_EMPTY(powernets)
GLOBAL_VAR_INIT(bsa_unlock, FALSE) //BSA unlocked by head ID swipes

GLOBAL_LIST_EMPTY(player_details) // ckey -> /datum/player_details

// All religion stuff
GLOBAL_VAR(religion)
GLOBAL_VAR(deity)
GLOBAL_VAR(bible_name)
GLOBAL_VAR(bible_icon_state)
GLOBAL_VAR(bible_item_state)
GLOBAL_VAR(holy_weapon_type)
GLOBAL_VAR(holy_armor_type)
14 changes: 14 additions & 0 deletions code/_globalvars/religion.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// All religion stuff
GLOBAL_VAR(religion)
GLOBAL_VAR(deity)
GLOBAL_DATUM(religious_sect, /datum/religion_sect)
GLOBAL_VAR(favor)

//bible
GLOBAL_VAR(bible_name)
GLOBAL_VAR(bible_icon_state)
GLOBAL_VAR(bible_item_state)

//gear
GLOBAL_VAR(holy_weapon_type)
GLOBAL_VAR(holy_armor_type)
4 changes: 2 additions & 2 deletions code/datums/mind.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
var/damnation_type = 0
var/datum/mind/soulOwner //who owns the soul. Under normal circumstances, this will point to src
var/hasSoul = TRUE // If false, renders the character unable to sell their soul.
var/isholy = FALSE //is this person a chaplain or admin role allowed to use bibles
var/holy_role = NONE //is this person a chaplain or admin role allowed to use bibles, Any rank besides 'NONE' allows for this.

var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems)
var/datum/language_holder/language_holder
Expand Down Expand Up @@ -778,4 +778,4 @@
/mob/living/silicon/pai/mind_initialize()
..()
mind.assigned_role = ROLE_PAI
mind.special_role = ""
mind.special_role = ""
2 changes: 1 addition & 1 deletion code/game/gamemodes/cult/cult.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
if(!istype(M))
return FALSE
if(M.mind)
if(ishuman(M) && (M.mind.isholy))
if(ishuman(M) && (M.mind.holy_role))
return FALSE
if(specific_cult && specific_cult.is_sacrifice_target(M.mind))
return FALSE
Expand Down
8 changes: 5 additions & 3 deletions code/game/objects/items/holy_weapons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
desc = "Contains a set of armaments for the chaplain."

/obj/item/choice_beacon/holy/canUseBeacon(mob/living/user)
if(user.mind && user.mind.isholy)
if(user.mind && user.mind.holy_role)
return ..()
else
playsound(src, 'sound/machines/buzz-sigh.ogg', 40, 1)
Expand Down Expand Up @@ -252,7 +252,7 @@
return (BRUTELOSS|FIRELOSS)

/obj/item/nullrod/attack_self(mob/user)
if(user.mind && (user.mind.isholy) && !reskinned)
if(user.mind && (user.mind.holy_role) && !reskinned)
reskin_holy_weapon(user)

/*
Expand Down Expand Up @@ -675,11 +675,13 @@

/obj/item/nullrod/carp/attack_self(mob/living/user)
if(used_blessing)
else if(user.mind && (user.mind.isholy))
else if(user.mind && (user.mind.holy_role))
to_chat(user, "You are blessed by Carp-Sie. Wild space carp will no longer attack you.")
user.faction |= "carp"
used_blessing = TRUE



/obj/item/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking
name = "monk's staff"
desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, it is now used to harass the clown."
Expand Down
20 changes: 13 additions & 7 deletions code/game/objects/items/storage/book.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
if(!H.can_read(src))
return FALSE
// If H is the Chaplain, we can set the icon_state of the bible (but only once!)
if(!GLOB.bible_icon_state && H.job == "Chaplain")
if(!GLOB.bible_icon_state && H.mind.holy_role == HOLY_ROLE_HIGHPRIEST)
var/dat = "<html><head><meta charset='UTF-8'><title>Pick Bible Style</title></head><body><center><h2>Pick a bible style</h2></center><table>"

for(var/i in 1 to GLOB.biblestates.len)
var/icon/bibleicon = icon('icons/obj/storage.dmi', GLOB.biblestates[i])
var/nicename = GLOB.biblenames[i]
Expand Down Expand Up @@ -91,7 +92,12 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
SSblackbox.record_feedback("text", "religion_book", 1, "[biblename]")
usr << browse(null, "window=editicon")

/obj/item/storage/book/bible/proc/bless(mob/living/carbon/human/H, mob/living/user)
/obj/item/storage/book/bible/proc/bless(mob/living/L, mob/living/user)
if(GLOB.religious_sect)
return GLOB.religious_sect.sect_bless(L,user)
if(!ishuman(L))
return
var/mob/living/carbon/human/H = L
for(var/X in H.bodyparts)
var/obj/item/bodypart/BP = X
if(BP.status == BODYPART_ROBOTIC)
Expand Down Expand Up @@ -125,7 +131,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
return

var/chaplain = 0
if(user.mind && (user.mind.isholy))
if(user.mind && (user.mind.holy_role))
chaplain = 1

if(!chaplain)
Expand All @@ -143,7 +149,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
to_chat(user, "<span class='warning'>You can't heal yourself!</span>")
return

if(ishuman(M) && prob(60) && bless(M, user))
if(prob(60) && bless(M, user))
smack = 0
else if(iscarbon(M))
var/mob/living/carbon/C = M
Expand All @@ -167,10 +173,10 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
return
if(isfloorturf(A))
to_chat(user, "<span class='notice'>You hit the floor with the bible.</span>")
if(user.mind && (user.mind.isholy))
if(user.mind && (user.mind.holy_role))
for(var/obj/effect/rune/R in orange(2,user))
R.invisibility = 0
if(user.mind && (user.mind.isholy))
if(user?.mind?.holy_role)
if(A.reagents && A.reagents.has_reagent(/datum/reagent/water)) // blesses all the water in the holder
to_chat(user, "<span class='notice'>You bless [A].</span>")
var/water2holy = A.reagents.get_reagent_amount(/datum/reagent/water)
Expand Down Expand Up @@ -245,7 +251,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",

/obj/item/storage/book/bible/syndicate/attack_self(mob/living/carbon/human/H)
if (uses)
H.mind.isholy = TRUE
H.mind.holy_role = HOLY_ROLE_PRIEST
uses -= 1
to_chat(H, "<span class='userdanger'>You try to open the book AND IT BITES YOU!</span>")
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@

/obj/item/clockwork/component/pickup(mob/living/user)
..()
if(iscultist(user) || (user.mind && user.mind.isholy))
if(iscultist(user) || (user.mind && user.mind.holy_role))
to_chat(user, "<span class='[message_span]'>[cultist_message]</span>")
if(user.mind && user.mind.isholy)
if(user.mind && user.mind.holy_role)
to_chat(user, "<span class='boldannounce'>The power of your faith melts away [src]!</span>")
var/obj/item/stack/ore/slag/wrath = new /obj/item/stack/ore/slag
qdel(src)
Expand Down
12 changes: 10 additions & 2 deletions code/modules/antagonists/ert/ert.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,17 @@
/datum/antagonist/ert/medic/inquisitor
outfit = /datum/outfit/ert/medic/inquisitor

/datum/antagonist/ert/medic/inquisitor/on_gain()
. = ..()
owner.holy_role = HOLY_ROLE_PRIEST

/datum/antagonist/ert/security/inquisitor
outfit = /datum/outfit/ert/security/inquisitor

/datum/antagonist/ert/security/inquisitor/on_gain()
. = ..()
owner.holy_role = HOLY_ROLE_PRIEST

/datum/antagonist/ert/chaplain
role = "Chaplain"
outfit = /datum/outfit/ert/chaplain
Expand All @@ -86,14 +94,14 @@

/datum/antagonist/ert/chaplain/on_gain()
. = ..()
owner.isholy = TRUE
owner.holy_role = HOLY_ROLE_PRIEST

/datum/antagonist/ert/commander/inquisitor
outfit = /datum/outfit/ert/commander/inquisitor

/datum/antagonist/ert/commander/inquisitor/on_gain()
. = ..()
owner.isholy = TRUE
owner.holy_role = HOLY_ROLE_PRIEST

/datum/antagonist/ert/janitor
role = "Janitor"
Expand Down
8 changes: 6 additions & 2 deletions code/modules/jobs/job_types/chaplain.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@

/datum/job/chaplain/after_spawn(mob/living/H, mob/M)
. = ..()
if(H.mind)
H.mind.isholy = TRUE

var/obj/item/storage/book/bible/booze/B = new

if(GLOB.religion)
if(H.mind)
H.mind.holy_role = HOLY_ROLE_PRIEST
B.deity_name = GLOB.deity
B.name = GLOB.bible_name
B.icon_state = GLOB.bible_icon_state
Expand All @@ -36,7 +36,11 @@
var/nrt = GLOB.holy_weapon_type || /obj/item/nullrod
var/obj/item/nullrod/N = new nrt(H)
H.put_in_hands(N)
if(GLOB.religious_sect)
GLOB.religious_sect.on_conversion(H)
return
if(H.mind)
H.mind.holy_role = HOLY_ROLE_HIGHPRIEST

var/new_religion = DEFAULT_RELIGION
if(M.client && M.client.prefs.custom_names["religion"])
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/carbon/human/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@

msg += "</span>"

if(HAS_TRAIT(user, TRAIT_SPIRITUAL) && mind?.isholy)
if(HAS_TRAIT(user, TRAIT_SPIRITUAL) && mind?.holy_role)
msg += "[t_He] [t_has] a holy aura about [t_him].\n"
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "religious_comfort", /datum/mood_event/religiously_comforted)

Expand Down Expand Up @@ -362,4 +362,4 @@
new_text = replacetext(new_text, "[pronoun_replacement] is", "[pronoun_replacement] [p_are()]") //To make sure something become "They are" or "She is", not "They are" and "She are"
dat += "[new_text]\n" //dat.Join("\n") doesn't work here, for some reason
if(dat.len)
return dat.Join()
return dat.Join()
Original file line number Diff line number Diff line change
Expand Up @@ -2054,7 +2054,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "boozy Catholicism in a glass."

/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/M)
if(M.mind.isholy)
if(M.mind.holy_role)
M.adjustFireLoss(-2.5, 0)
M.jitteriness = max(0, M.jitteriness-1)
M.stuttering = max(0, M.stuttering-1)
Expand Down
Loading