mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
[PTBF] Incriminate objective for Traitor (#30704)
* incriminate obj * target fix * kill indententations with bricks
This commit is contained in:
+4
-1
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user