Skip to content

Commit b4c3958

Browse files
authored
Heretics can now sacrifice *any* head of staff for the objective. (Monkestation#2309)
1 parent 12effcf commit b4c3958

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

code/modules/antagonists/heretic/heretic_antag.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,7 @@
747747
/datum/objective/major_sacrifice
748748
name = "major sacrifice"
749749
target_amount = 1
750-
explanation_text = "Sacrifice 1 head of staff."
750+
explanation_text = "Sacrifice any head of staff." // monkestation edit: clarify that any head can be sacrificed
751751

752752
/datum/objective/major_sacrifice/check_completion()
753753
var/datum/antagonist/heretic/heretic_datum = owner?.has_antag_datum(/datum/antagonist/heretic)

code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,20 @@
6868
atoms += user
6969
return TRUE
7070

71+
72+
// monkestation edit: allow stamcrit targets to be sacrificed (bc they're incapable of putting up resistance)
73+
// in addition, if you need to sac a head of staff, any of them will do.
74+
var/datum/objective/major_sacrifice/sac_head = locate() in heretic_datum.objectives
7175
// If we have targets, we can check to see if we can do a sacrifice
7276
// Let's remove any humans in our atoms list that aren't a sac target
7377
for(var/mob/living/carbon/human/sacrifice in atoms)
74-
// If the mob's not in soft crit or worse, or isn't one of the sacrifices, remove it from the list
75-
// monke edit: allow stamcrit targets to be sacrificed (bc they're incapable of putting up resistance)
76-
if(!(sacrifice in heretic_datum.sac_targets) || (sacrifice.stat < SOFT_CRIT && !HAS_TRAIT_FROM(sacrifice, TRAIT_INCAPACITATED, STAMINA)))
78+
var/is_target = (sacrifice in heretic_datum.sac_targets)
79+
var/sac_department_flag = (sacrifice.mind?.assigned_role?.departments_bitflags | sacrifice.last_mind?.assigned_role?.departments_bitflags)
80+
var/is_needed_command = (sac_head && !sac_head.check_completion() && (sac_department_flag & DEPARTMENT_BITFLAG_COMMAND))
81+
var/is_valid_state = (sacrifice.stat < SOFT_CRIT && !HAS_TRAIT_FROM(sacrifice, TRAIT_INCAPACITATED, STAMINA))
82+
if(!(is_target || is_needed_command) || !is_valid_state)
7783
atoms -= sacrifice
84+
// monkestation end
7885

7986
// Finally, return TRUE if we have a target in the list
8087
if(locate(/mob/living/carbon/human) in atoms)

0 commit comments

Comments
 (0)