diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 2f395cc149..be05a0a9bf 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -73,7 +73,7 @@ Credit where due: return TRUE return FALSE -/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE) +/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE, ignore_eligibility = FALSE) if(!L || !L.mind) return var/update_type = /datum/antagonist/clockcult @@ -84,6 +84,7 @@ Credit where due: 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/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index f0e9ee4944..f10d9daba9 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -45,22 +45,10 @@ /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)) + if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE, TRUE)) spent = TRUE else - var/has_mindshield = locate(/obj/item/implant/mindshield) in user - var/str = "It looks like your mind is protected. You can probably refund this with your uplink." - if(has_mindshield) - str = "It looks like your mind is shielded, offering you a choice." - to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") - if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") - if(spent || !user.CanReach(src) || user.incapacitated() || user.IsKnockdown() || user.IsStun()) - return - qdel(has_mindshield) - if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE)) - spent = TRUE - else - to_chat(user, "[src] falls dark. It appears you weren't worthy.") + to_chat(user, "[src] falls dark. It appears you weren't worthy.") return ..() //ATTACK HAND IGNORING PARENT RETURN VALUE diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index 7462620287..ef52975da3 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -9,6 +9,7 @@ var/datum/team/clockcult/clock_team 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 /datum/antagonist/clockcult/silent silent = TRUE @@ -41,7 +42,7 @@ /datum/antagonist/clockcult/can_be_owned(datum/mind/new_owner) . = ..() - if(.) + if(. && !ignore_eligibility_check) . = is_eligible_servant(new_owner.current) /datum/antagonist/clockcult/greet() diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 4dbdf6a7d5..ce60045817 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -13,10 +13,14 @@ var/give_equipment = FALSE 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 /datum/antagonist/cult/neutered neutered = TRUE +/datum/antagonist/cult/neutered/traitor + ignore_eligibility_checks = TRUE + /datum/antagonist/cult/get_team() return cult_team @@ -46,7 +50,7 @@ /datum/antagonist/cult/can_be_owned(datum/mind/new_owner) . = ..() - if(. && !ignore_implant) + if(. && !ignore_implant && !ignore_eligibility_checks) . = is_convertable_to_cult(new_owner.current,cult_team) /datum/antagonist/cult/greet() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 5d7cb86ca4..c4fd2a657b 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -15,22 +15,10 @@ /obj/item/tome/traitor/attack_self(mob/living/user) if(!iscultist(user) && !spent) to_chat(user, "You press your hand onto [src], sinister tendrils of corrupted magic swirling around you. Was this the best of ideas?") - if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered)) + if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered/traitor)) spent = TRUE else - var/has_mindshield = locate(/obj/item/implant/mindshield) in user - var/str = "It looks like your mind is protected. You can probably refund this with your uplink." - if(has_mindshield) - str = "It looks like your mind is shielded, offering you a choice." - to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") - if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") - if(spent || !user.CanReach(src) || user.incapacitated() || user.IsKnockdown() || user.IsStun()) - return - qdel(has_mindshield) - if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered)) - spent = TRUE - else - to_chat(user, "[src] falls dark. It appears you weren't worthy.") + to_chat(user, "[src] falls dark. It appears you weren't worthy.") return ..() /obj/item/melee/cultblade/dagger