diff --git a/code/controllers/Processes/shuttles/supply.dm b/code/controllers/Processes/shuttles/supply.dm
index 0954436247d..ce990a7226b 100644
--- a/code/controllers/Processes/shuttles/supply.dm
+++ b/code/controllers/Processes/shuttles/supply.dm
@@ -177,6 +177,10 @@
if(cost)
shuttle_master.techLevels[tech.id] = tech.level
shuttle_master.points += cost
+ for(var/mob/M in player_list)
+ if(M.mind)
+ for(var/datum/job_objective/further_research/objective in M.mind.job_objectives)
+ objective.unit_completed(cost)
msg += "+[cost]: [tech.name] - new data.
"
// Sell max reliablity designs
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 45fb9284638..e5687ba2050 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -114,17 +114,18 @@
msg="We see that you completed [newunits] new unit[newunits>1?"s":""] for Task #[count]! "
pay=objective.completion_payment * newunits
objective.units_compensated += newunits
+ objective.is_completed() // So we don't get many messages regarding completion
else if(!objective.completed)
if(objective.is_completed())
pay=objective.completion_payment
msg="Task #[count] completed! "
if(pay>0)
if(M.mind.initial_account)
- M.mind.initial_account.money += objective.completion_payment
+ M.mind.initial_account.money += pay
var/datum/transaction/T = new()
T.target_name = "[command_name()] Payroll"
T.purpose = "Payment"
- T.amount = objective.completion_payment
+ T.amount = pay
T.date = current_date_string
T.time = worldtime2text()
T.source_terminal = "\[CLASSIFIED\] Terminal #[rand(111,333)]"
diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm
index 5247727034a..c52a783b3ba 100644
--- a/code/game/jobs/job/science.dm
+++ b/code/game/jobs/job/science.dm
@@ -20,7 +20,7 @@
// All science-y guys get bonuses for maxing out their tech.
required_objectives=list(
- /datum/job_objective/maximize_research
+ /datum/job_objective/further_research
)
equip(var/mob/living/carbon/human/H)
@@ -58,7 +58,7 @@
// All science-y guys get bonuses for maxing out their tech.
required_objectives=list(
- /datum/job_objective/maximize_research
+ /datum/job_objective/further_research
)
equip(var/mob/living/carbon/human/H)
@@ -94,7 +94,6 @@
required_objectives=list(
/datum/job_objective/make_cyborg,
-// /datum/job_objective/make_mommi,
/datum/job_objective/make_ripley
)
diff --git a/code/game/jobs/job_objectives/science.dm b/code/game/jobs/job_objectives/science.dm
index 64cd041838c..ac646b24080 100644
--- a/code/game/jobs/job_objectives/science.dm
+++ b/code/game/jobs/job_objectives/science.dm
@@ -3,31 +3,20 @@
/////////////////////////////////////////////////////////////////////////////////////////
// MAXIMUM SCIENCE
-/datum/job_objective/maximize_research
- completion_payment = 1000
+/datum/job_objective/further_research
+ completion_payment = 5
+ per_unit = 1
-/datum/job_objective/maximize_research/get_description()
- var/desc = "Maximize all legal research tech levels."
+/datum/job_objective/further_research/get_description()
+ var/desc = "Research tech levels, and have cargo ship them to centcomm."
+ desc += "([units_completed] completed.)"
return desc
/datum/job_objective/maximize_research/check_for_completion()
- var/obj/machinery/r_n_d/server/server = null
- for(var/obj/machinery/r_n_d/server/serber in machines)
- if(serber.name == "Core R&D Server")
- server = serber
- break
- if(!server)
- return 0
-
- for(var/datum/tech/T in server.files.possible_tech)
- if(T.max_level==0) // Ignore illegal tech, etc
- continue
- var/datum/tech/KT = locate(T.type, server.files.known_tech)
- if(!KT)
- return 0 // Obviously haven't maxed everything if we don't know a tech.
- if(KT.level 0)
+ return 1
+ return 0
/////////////////////////////////////////////////////////////////////////////////////////
// Robotics
@@ -51,6 +40,6 @@
per_unit = 1
/datum/job_objective/make_ripley/get_description()
- var/desc = "Make a Ripley."
+ var/desc = "Make a Ripley or Firefighter."
desc += "([units_completed] created.)"
return desc
\ No newline at end of file
diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm
index 519005f2cc0..08d0541bfb5 100644
--- a/code/game/mecha/mecha_construction_paths.dm
+++ b/code/game/mecha/mecha_construction_paths.dm
@@ -97,6 +97,7 @@
/datum/construction/reversible/mecha/ripley
result = "/obj/mecha/working/ripley"
+ taskpath = /datum/job_objective/make_ripley
steps = list(
//1
list("key"=/obj/item/weapon/weldingtool,
@@ -585,6 +586,7 @@
/datum/construction/reversible/mecha/firefighter
result = "/obj/mecha/working/ripley/firefighter"
+ taskpath = /datum/job_objective/make_ripley
steps = list(
//1
list("key"=/obj/item/weapon/weldingtool,