File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed
code/modules/antagonists/heretic
knowledge/sacrifice_knowledge Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change 747
747
/ datum / objective/ major_sacrifice
748
748
name = " major sacrifice"
749
749
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
751
751
752
752
/ datum / objective/ major_sacrifice/ check_completion()
753
753
var /datum /antagonist/heretic/heretic_datum = owner?. has_antag_datum(/ datum / antagonist/ heretic)
Original file line number Diff line number Diff line change 68
68
atoms += user
69
69
return TRUE
70
70
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
71
75
// If we have targets, we can check to see if we can do a sacrifice
72
76
// Let's remove any humans in our atoms list that aren't a sac target
73
77
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)
77
83
atoms -= sacrifice
84
+ // monkestation end
78
85
79
86
// Finally, return TRUE if we have a target in the list
80
87
if (locate (/ mob / living/ carbon/ human) in atoms)
You can’t perform that action at this time.
0 commit comments