From 8f26325822347f599d85167ab5a225d607301144 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Sun, 26 Jan 2020 21:05:51 -0700
Subject: [PATCH] more stuff
---
code/game/gamemodes/clock_cult/clock_cult.dm | 11 +++++------
code/game/gamemodes/cult/cult.dm | 4 ++--
.../clockcult/clock_items/clockwork_slab.dm | 2 +-
code/modules/antagonists/clockcult/clockcult.dm | 5 +++++
code/modules/antagonists/cult/cult.dm | 2 ++
.../reagents/chemistry/reagents/other_reagents.dm | 4 ++--
6 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm
index be05a0a9bf..8201d6472a 100644
--- a/code/game/gamemodes/clock_cult/clock_cult.dm
+++ b/code/game/gamemodes/clock_cult/clock_cult.dm
@@ -45,11 +45,11 @@ Credit where due:
// PROCS //
///////////
-/proc/is_servant_of_ratvar(mob/M, require_full_power = FALSE)
+/proc/is_servant_of_ratvar(mob/M, require_full_power = FALSE, holy_water_check = FALSE)
if(!istype(M) || isobserver(M))
return FALSE
var/datum/antagonist/clockcult/D = M?.mind?.has_antag_datum(/datum/antagonist/clockcult)
- return D && (!require_full_power || !D.neutered)
+ return D && (!require_full_power || !D.neutered) && (!holy_water_check || !D.ignore_holy_water)
/proc/is_eligible_servant(mob/M)
if(!istype(M))
@@ -73,18 +73,17 @@ Credit where due:
return TRUE
return FALSE
-/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE, ignore_eligibility = FALSE)
+/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, override_type)
if(!L || !L.mind)
return
var/update_type = /datum/antagonist/clockcult
if(silent)
update_type = /datum/antagonist/clockcult/silent
- if(neutered) //prioritizes
- update_type = /datum/antagonist/clockcult/neutered
+ if(override_type) //prioritizes
+ update_type = override_type
var/datum/antagonist/clockcult/C = new update_type(L.mind)
C.make_team = create_team
C.show_in_roundend = create_team //tutorial scarabs begone
- C.ignore_eligibility_check = ignore_eligibility
if(iscyborg(L))
var/mob/living/silicon/robot/R = L
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 1b295bcc50..6329f5ad18 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -3,11 +3,11 @@
/datum/game_mode
var/list/datum/mind/cult = list()
-/proc/iscultist(mob/living/M, require_full_power = FALSE)
+/proc/iscultist(mob/living/M, require_full_power = FALSE, holy_water_check = FALSE)
if(!istype(M))
return FALSE
var/datum/antagonist/cult/D = M?.mind?.has_antag_datum(/datum/antagonist/cult)
- return D && (!require_full_power || !D.neutered)
+ return D && (!require_full_power || !D.neutered) && (!holy_water_check || !D.ignore_holy_water)
/datum/team/cult/proc/is_sacrifice_target(datum/mind/mind)
for(var/datum/objective/sacrifice/sac_objective in objectives)
diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
index f10d9daba9..8e3b7f10de 100644
--- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
@@ -45,7 +45,7 @@
/obj/item/clockwork/slab/traitor/attack_self(mob/living/user)
if(!is_servant_of_ratvar(user) && !spent)
to_chat(user, "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?")
- if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE, TRUE))
+ if(add_servant_of_ratvar(user, FALSE, FALSE, /datum/antagonist/clockcult/neutered/traitor))
spent = TRUE
else
to_chat(user, "[src] falls dark. It appears you weren't worthy.")
diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm
index ef52975da3..64637d0635 100644
--- a/code/modules/antagonists/clockcult/clockcult.dm
+++ b/code/modules/antagonists/clockcult/clockcult.dm
@@ -10,6 +10,7 @@
var/make_team = TRUE //This should be only false for tutorial scarabs
var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact
var/ignore_eligibility_check = FALSE
+ var/ignore_holy_water = FALSE
/datum/antagonist/clockcult/silent
silent = TRUE
@@ -18,6 +19,10 @@
/datum/antagonist/clockcult/neutered
neutered = TRUE
+/datum/antagonist/clockcult/neutered/traitor
+ ignore_eligibility_check = TRUE
+ ignore_holy_water = TRUE
+
/datum/antagonist/clockcult/Destroy()
qdel(hierophant_network)
return ..()
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index ce60045817..195a37aec5 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -14,12 +14,14 @@
var/datum/team/cult/cult_team
var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact
var/ignore_eligibility_checks = FALSE
+ var/ignore_holy_water = FALSE
/datum/antagonist/cult/neutered
neutered = TRUE
/datum/antagonist/cult/neutered/traitor
ignore_eligibility_checks = TRUE
+ ignore_holy_water = TRUE
/datum/antagonist/cult/get_team()
return cult_team
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index ccc966e7e4..8e28365d7d 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -341,7 +341,7 @@
data = 1
data++
M.jitteriness = min(M.jitteriness+4,10)
- if(iscultist(M))
+ if(iscultist(M, FALSE, TRUE))
for(var/datum/action/innate/cult/blood_magic/BM in M.actions)
if(!BM.holy_dispel)
BM.holy_dispel = TRUE
@@ -370,7 +370,7 @@
if("emote")
M.visible_message("[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].")
if(data >= 60) // 30 units, 135 seconds
- if(iscultist(M) || is_servant_of_ratvar(M))
+ if(iscultist(M, FALSE, TRUE) || is_servant_of_ratvar(M, FALSE, TRUE))
if(iscultist(M))
SSticker.mode.remove_cultist(M.mind, FALSE, TRUE)
else if(is_servant_of_ratvar(M))