more stuff

This commit is contained in:
kevinz000
2020-01-26 21:05:51 -07:00
parent 7471f59bc3
commit 8f26325822
6 changed files with 17 additions and 11 deletions
+5 -6
View File
@@ -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
+2 -2
View File
@@ -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)
@@ -45,7 +45,7 @@
/obj/item/clockwork/slab/traitor/attack_self(mob/living/user)
if(!is_servant_of_ratvar(user) && !spent)
to_chat(user, "<span class='userdanger'>You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?</span>")
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, "<span class='userdanger'>[src] falls dark. It appears you weren't worthy.</span>")
@@ -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 ..()
+2
View File
@@ -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
@@ -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("<span class='warning'>[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].</span>")
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))