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))