[PTBF] Protect Objective (#30697)

* protect objective

* fix bugs, add protect into rotation

* make sure other antags can roll protect as well

* get vampire chance on par with other antags

* linter oops

* lintma balls

* weight 100

---------

Signed-off-by: Paul <90473506+pwbokie@users.noreply.github.com>
This commit is contained in:
Paul
2025-10-25 16:53:32 -04:00
committed by GitHub
parent 4c48f18cb1
commit ebc920fb7b
5 changed files with 98 additions and 3 deletions
@@ -431,6 +431,7 @@ GLOBAL_LIST_EMPTY(antagonists)
#define KILL_OBJECTIVE "KILL"
#define THEFT_OBJECTIVE "STEAL"
#define PROTECT_OBJECTIVE "PROTECT"
#define INCRIMINATE_OBJECTIVE "INCRIMINATE"
#define DESTROY_OBJECTIVE "DESTROY"
@@ -448,7 +449,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 = 45, INCRIMINATE_OBJECTIVE = 5)
var/list/static/the_objective_list = list(KILL_OBJECTIVE = 47, THEFT_OBJECTIVE = 42, INCRIMINATE_OBJECTIVE = 5, PROTECT_OBJECTIVE = 6)
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
@@ -476,17 +477,22 @@ GLOBAL_LIST_EMPTY(antagonists)
if(ASS_OBJECTIVE)
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(PROTECT_OBJECTIVE)
objective_to_add = /datum/objective/protect
if(delayed_objectives)
objective_to_add = new /datum/objective/delayed(objective_to_add)
add_antag_objective(objective_to_add)
#undef KILL_OBJECTIVE
#undef THEFT_OBJECTIVE
#undef PROTECT_OBJECTIVE
#undef INCRIMINATE_OBJECTIVE
#undef DESTROY_OBJECTIVE
@@ -157,6 +157,8 @@ RESTRICT_TYPE(/datum/antagonist/changeling)
if(prob(60))
add_antag_objective(/datum/objective/steal)
else if(prob(10))
add_antag_objective(/datum/objective/protect)
else
add_antag_objective(/datum/objective/debrain)
@@ -358,7 +358,11 @@ RESTRICT_TYPE(/datum/antagonist/vampire)
/datum/antagonist/vampire/give_objectives()
add_antag_objective(/datum/objective/blood)
add_antag_objective(/datum/objective/assassinate)
add_antag_objective(/datum/objective/steal)
if(prob(5)) // 5% chance of getting protect. 95% chance of getting steal.
add_antag_objective(/datum/objective/protect)
else
add_antag_objective(/datum/objective/steal)
if(prob(20)) // 20% chance of getting survive. 80% chance of getting escape.
add_antag_objective(/datum/objective/survive)