From 556a69ac789fa3f684376b9c9c0ef6f32f6e2df5 Mon Sep 17 00:00:00 2001 From: Putnam Date: Sat, 19 Sep 2020 22:45:32 -0700 Subject: [PATCH 1/2] Removed the supermatter objective; made sabotage objectives less common. --- code/game/gamemodes/objective_sabotage.dm | 4 ++-- code/modules/antagonists/traitor/classes/subterfuge.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm index f08d84eae2..c8f1ef4713 100644 --- a/code/game/gamemodes/objective_sabotage.dm +++ b/code/game/gamemodes/objective_sabotage.dm @@ -56,7 +56,7 @@
  • There are many other ways; be creative!
  • \ " -/datum/sabotage_objective/processing/supermatter +/*/datum/sabotage_objective/processing/supermatter name = "Sabotage the supermatter so that it goes under 50% integrity. If it is delaminated, you will fail." sabotage_type = "supermatter" special_equipment = list(/obj/item/paper/guides/antag/supermatter_sabotage) @@ -77,7 +77,7 @@ /datum/sabotage_objective/processing/supermatter/can_run() return (locate(/obj/machinery/power/supermatter_crystal) in GLOB.machines) -/* + /datum/sabotage_objective/station_integrity name = "Make sure the station is at less than 80% integrity by the end. Smash walls, windows etc. to reach this goal." sabotage_type = "integrity" diff --git a/code/modules/antagonists/traitor/classes/subterfuge.dm b/code/modules/antagonists/traitor/classes/subterfuge.dm index ad049f3264..5c6d69b768 100644 --- a/code/modules/antagonists/traitor/classes/subterfuge.dm +++ b/code/modules/antagonists/traitor/classes/subterfuge.dm @@ -28,7 +28,7 @@ download_objective.owner = T.owner download_objective.gen_amount_goal() T.add_objective(download_objective) - else if(prob(70)) // cum. not counting download: 40%. + else if(prob(90)) var/datum/objective/steal/steal_objective = new steal_objective.owner = T.owner steal_objective.find_target() From 63b0d61c5b8174627c74f5a7443abea6cf59da32 Mon Sep 17 00:00:00 2001 From: Putnam Date: Sat, 19 Sep 2020 23:35:04 -0700 Subject: [PATCH 2/2] Reworked the selection to scale automatically with objective counts. --- .../antagonists/traitor/classes/subterfuge.dm | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/code/modules/antagonists/traitor/classes/subterfuge.dm b/code/modules/antagonists/traitor/classes/subterfuge.dm index 5c6d69b768..07707b69e1 100644 --- a/code/modules/antagonists/traitor/classes/subterfuge.dm +++ b/code/modules/antagonists/traitor/classes/subterfuge.dm @@ -23,18 +23,23 @@ maroon_objective.find_target() T.add_objective(maroon_objective) else - if(prob(15) && !(locate(/datum/objective/download) in T.objectives) && !(T.owner.assigned_role in list("Research Director", "Scientist", "Roboticist"))) - var/datum/objective/download/download_objective = new - download_objective.owner = T.owner - download_objective.gen_amount_goal() - T.add_objective(download_objective) - else if(prob(90)) - var/datum/objective/steal/steal_objective = new - steal_objective.owner = T.owner - steal_objective.find_target() - T.add_objective(steal_objective) - else - var/datum/objective/sabotage/sabotage_objective = new - sabotage_objective.owner = T.owner - sabotage_objective.find_target() - T.add_objective(sabotage_objective) + var/list/weights = list() + weights["sabo"] = length(subtypesof(/datum/sabotage_objective)) + weights["steal"] = length(subtypesof(/datum/objective_item/steal)) + weights["download"] = !(locate(/datum/objective/download) in T.objectives || (T.owner.assigned_role in list("Research Director", "Scientist", "Roboticist"))) + switch(pickweight(weights)) + if("sabo") + var/datum/objective/sabotage/sabotage_objective = new + sabotage_objective.owner = T.owner + sabotage_objective.find_target() + T.add_objective(sabotage_objective) + if("steal") + var/datum/objective/steal/steal_objective = new + steal_objective.owner = T.owner + steal_objective.find_target() + T.add_objective(steal_objective) + if("download") + var/datum/objective/download/download_objective = new + download_objective.owner = T.owner + download_objective.gen_amount_goal() + T.add_objective(download_objective)