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..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(70)) // cum. not counting download: 40%. - 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)