[PTBF] Incriminate objective for Traitor (#30704)

* incriminate obj

* target fix

* kill indententations with bricks
This commit is contained in:
Zelf
2025-10-25 01:41:10 +00:00
committed by GitHub
parent 2ecff9033a
commit 4cef8afc69
3 changed files with 21 additions and 2 deletions
+4 -1
View File
@@ -680,7 +680,7 @@
var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list(
"assassinate", "assassinateonce", "blood", "debrain", "protect", "prevent", "hijack", "escape", "survive", "steal",
"nuclear", "absorb", "destroy", "maroon", "identity theft", "custom")
"nuclear", "absorb", "destroy", "maroon", "identity theft", "incriminate", "custom")
if(!new_obj_type)
return
@@ -798,6 +798,9 @@
new_objective.update_explanation_text()
var/datum/objective/escape/escape_with_identity/O = new_objective
O.target_real_name = new_objective.target.current.real_name
if("incriminate")
new_objective = /datum/objective/incriminate
if("custom")
var/expl = sanitize(copytext_char(input("Custom objective:", "Objective", objective ? objective.explanation_text : "") as text|null, 1, MAX_MESSAGE_LEN))
if(!expl)
+12
View File
@@ -595,6 +595,18 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
var/theft_area
var/datum/theft_objective/steal_target
/datum/objective/incriminate
name = "Incriminate"
martyr_compatible = TRUE
delayed_objective_text = "Your objective is to incriminate a crew member for a major level crime without revealing yourself. You will receive further information in a few minutes."
completed = TRUE
/datum/objective/incriminate/update_explanation_text()
if(target?.current)
explanation_text = "Deceive the station. Incriminate [target.current.real_name], the [target.assigned_role] for a major level crime and ensure that you are not revealed as the perpetrator."
else
explanation_text = "Free Objective"
/datum/objective/steal/found_target()
return steal_target
@@ -429,6 +429,7 @@ GLOBAL_LIST_EMPTY(antagonists)
#define KILL_OBJECTIVE "KILL"
#define THEFT_OBJECTIVE "STEAL"
#define INCRIMINATE_OBJECTIVE "INCRIMINATE"
#define DESTROY_OBJECTIVE "DESTROY"
#define DEBRAIN_OBJECTIVE "DEBRAIN"
@@ -445,7 +446,7 @@ GLOBAL_LIST_EMPTY(antagonists)
*/
/datum/antagonist/proc/forge_single_human_objective()
var/datum/objective/objective_to_add
var/list/static/the_objective_list = list(KILL_OBJECTIVE = 50, THEFT_OBJECTIVE = 50)
var/list/static/the_objective_list = list(KILL_OBJECTIVE = 50, THEFT_OBJECTIVE = 45, INCRIMINATE_OBJECTIVE = 5)
var/list/the_nonstatic_kill_list = list(DEBRAIN_OBJECTIVE = 50, MAROON_OBJECTIVE = 285, ASS_ONCE_OBJECTIVE = 199, ASS_OBJECTIVE = 466)
// If our org has an objectives list, give one to us if we pass a roll on the org's focus
@@ -475,6 +476,8 @@ GLOBAL_LIST_EMPTY(antagonists)
objective_to_add = /datum/objective/assassinate
if(THEFT_OBJECTIVE)
objective_to_add = /datum/objective/steal
if(INCRIMINATE_OBJECTIVE)
objective_to_add = /datum/objective/incriminate
if(delayed_objectives)
objective_to_add = new /datum/objective/delayed(objective_to_add)
@@ -482,6 +485,7 @@ GLOBAL_LIST_EMPTY(antagonists)
#undef KILL_OBJECTIVE
#undef THEFT_OBJECTIVE
#undef INCRIMINATE_OBJECTIVE
#undef DESTROY_OBJECTIVE
#undef DEBRAIN_OBJECTIVE