diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 906f60d65b..535f1154e7 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -557,10 +557,16 @@
var/list/objective_parts = list()
var/count = 1
for(var/datum/objective/objective in objectives)
- if(objective.check_completion())
- objective_parts += "Objective #[count]: [objective.explanation_text] Success!"
+ if(objective.completable)
+ var/completion = objective.check_completion()
+ if(completion >= 1)
+ objective_parts += "Objective #[count]: [objective.explanation_text] Success!"
+ else if(completion <= 0)
+ objective_parts += "Objective #[count]: [objective.explanation_text] Fail."
+ else
+ objective_parts += "Objective #[count]: [objective.explanation_text] [completion*100]%"
else
- objective_parts += "Objective #[count]: [objective.explanation_text] Fail."
+ objective_parts += "Objective #[count]: [objective.explanation_text]"
count++
return objective_parts.Join("
")
diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm
index 467983a346..248524f1d2 100644
--- a/code/game/gamemodes/objective_sabotage.dm
+++ b/code/game/gamemodes/objective_sabotage.dm
@@ -84,7 +84,7 @@
sabotage_type = "integrity"
/datum/sabotage_objective/station_integrity/check_conditions()
- return 100/(100-max(SSticker.station_integrity,80))
+ return 5-(max(SSticker.station_integrity*4,320)/80)
/datum/sabotage_objective/cloner
name = "Destroy all Nanotrasen cloning machines."
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index 6f9cf78514..2b6c24f8dc 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -425,13 +425,16 @@
parts += "The cultists' objectives were:"
var/count = 1
for(var/datum/objective/objective in objectives)
- var/completion = objective.check_completion()
- if(completion >= 1)
- parts += "Objective #[count]: [objective.explanation_text] Success!"
- else if(completion <= 0)
- parts += "Objective #[count]: [objective.explanation_text] Fail."
+ if(objective.completable)
+ var/completion = objective.check_completion()
+ if(completion >= 1)
+ parts += "Objective #[count]: [objective.explanation_text] Success!"
+ else if(completion <= 0)
+ parts += "Objective #[count]: [objective.explanation_text] Fail."
+ else
+ parts += "Objective #[count]: [objective.explanation_text] [completion*100]%"
else
- parts += "Objective #[count]: [objective.explanation_text] [completion*100]%"
+ parts += "Objective #[count]: [objective.explanation_text]"
count++
if(members.len)
diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm
index 3d3de3bab2..3c7de589d9 100644
--- a/code/modules/antagonists/disease/disease_datum.dm
+++ b/code/modules/antagonists/disease/disease_datum.dm
@@ -44,14 +44,17 @@
var/objectives_text = ""
var/count = 1
for(var/datum/objective/objective in objectives)
- var/completion = objective.check_completion()
- if(completion >= 1)
- result += "Objective #[count]: [objective.explanation_text] Success!"
- else if(completion <= 0)
- result += "Objective #[count]: [objective.explanation_text] Fail."
- win = FALSE
+ if(objective.completable)
+ var/completion = objective.check_completion()
+ if(completion >= 1)
+ result += "Objective #[count]: [objective.explanation_text] Success!"
+ else if(completion <= 0)
+ result += "Objective #[count]: [objective.explanation_text] Fail."
+ win = FALSE
+ else
+ result += "Objective #[count]: [objective.explanation_text] [completion*100]%"
else
- result += "Objective #[count]: [objective.explanation_text] [completion*100]%"
+ result += "Objective #[count]: [objective.explanation_text]"
count++
result += objectives_text
diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm
index 3fd0d3263c..c5e365d4eb 100644
--- a/code/modules/antagonists/wizard/wizard.dm
+++ b/code/modules/antagonists/wizard/wizard.dm
@@ -266,14 +266,17 @@
var/count = 1
var/wizardwin = 1
for(var/datum/objective/objective in objectives)
- var/completion = objective.check_completion()
- if(completion >= 1)
- parts += "Objective #[count]: [objective.explanation_text] Success!"
- else if(completion <= 0)
- parts += "Objective #[count]: [objective.explanation_text] Fail."
- wizardwin = FALSE
+ if(objective.completable)
+ var/completion = objective.check_completion()
+ if(completion >= 1)
+ parts += "Objective #[count]: [objective.explanation_text] Success!"
+ else if(completion <= 0)
+ parts += "Objective #[count]: [objective.explanation_text] Fail."
+ wizardwin = FALSE
+ else
+ parts += "Objective #[count]: [objective.explanation_text] [completion*100]%"
else
- parts += "Objective #[count]: [objective.explanation_text] [completion*100]%"
+ parts += "Objective #[count]: [objective.explanation_text]"
count++
if(wizardwin)