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,