From 7471f59bc3cb83b383eb4dccc8c04be98647885a Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Sun, 26 Jan 2020 13:56:04 -0700
Subject: [PATCH] ignore eligibility checks
---
code/game/gamemodes/clock_cult/clock_cult.dm | 3 ++-
.../clockcult/clock_items/clockwork_slab.dm | 16 ++--------------
code/modules/antagonists/clockcult/clockcult.dm | 3 ++-
code/modules/antagonists/cult/cult.dm | 6 +++++-
code/modules/antagonists/cult/cult_items.dm | 16 ++--------------
5 files changed, 13 insertions(+), 31 deletions(-)
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