diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 51fc6ed8030..a50d3efac6a 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -724,51 +724,18 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu if(vox_total_kills > vox_allowed_kills) return 0 return 1 -// Traders -/datum/objective/trade // Yes, I know there's no check_completion. The objectives exist only to tell the traders what to get. -/datum/objective/trade/proc/choose_target(var/station) +// Traders +// These objectives have no check_completion, they exist only to tell Sol Traders what to aim for. + +/datum/objective/trade/proc/choose_target() return -/datum/objective/trade/stock // Stock or spare parts. - var/target_rating = 1 -/datum/objective/trade/stock/choose_target(var/station) - var/itemname - switch(rand(1,8)) - if(1) - target = /obj/item/stock_parts/cell - target_amount = 10 - target_rating = 3 - itemname = "ten high-capacity power cells" - if(2) - target = /obj/item/stock_parts/manipulator - target_amount = 20 - itemname = "twenty micro manipulators" - if(3) - target = /obj/item/stock_parts/matter_bin - target_amount = 20 - itemname = "twenty matter bins" - if(4) - target = /obj/item/stock_parts/micro_laser - target_amount = 15 - itemname = "fifteen micro-lasers" - if(5) - target = /obj/item/stock_parts/capacitor - target_amount = 15 - itemname = "fifteen capacitors" - if(6) - target = /obj/item/stock_parts/subspace/filter - target_amount = 4 - itemname = "four hyperwave filters" - if(7) - target = /obj/item/solar_assembly - target_amount = 10 - itemname = "ten solar panel assemblies" - if(8) - target = /obj/item/flash - target_amount = 6 - itemname = "six flashes" - explanation_text = "We are running low on spare parts. Trade for [itemname]." +/datum/objective/trade/plasma/choose_target() + explanation_text = "Acquire at least 15 sheets of plasma through trade." + +/datum/objective/trade/credits/choose_target() + explanation_text = "Acquire at least 10,000 credits through trade." //wizard diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index ce9becd5a6e..6cd5572782c 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -192,23 +192,20 @@ /obj/item/clothing/under/psyjump = 50 ) - /obj/effect/spawner/lootdrop/trade_sol/minerals name = "2. minerals" lootdoubles = 1 loot = list( // Common stuff you get from mining which isn't already present on the station + // Note that plasma and derived hybrid materials are NOT included in this list because plasma is the trader's objective! /obj/item/stack/sheet/mineral/silver = 50, /obj/item/stack/sheet/mineral/gold = 50, - /obj/item/stack/sheet/mineral/plasma = 50, /obj/item/stack/sheet/mineral/uranium = 50, /obj/item/stack/sheet/mineral/diamond = 50, /obj/item/stack/sheet/mineral/titanium = 50, /obj/item/stack/sheet/plasteel = 50, // Hybrid stuff you could in theory get from mining - /obj/item/stack/sheet/plasmaglass = 50, - /obj/item/stack/sheet/plasmarglass = 50, /obj/item/stack/sheet/titaniumglass = 50, // Rare stuff you can't get from mining diff --git a/code/modules/events/traders.dm b/code/modules/events/traders.dm index 2d198200422..5ca48bfa589 100644 --- a/code/modules/events/traders.dm +++ b/code/modules/events/traders.dm @@ -55,17 +55,14 @@ var/global/list/unused_trade_stations = list("sol") show_objectives(M.mind) /datum/event/traders/proc/forge_trader_objectives() - var/i = 1 - var/max_objectives = pick(2, 2, 2, 2, 3, 3, 3, 4) var/list/objs = list() - var/list/goals = list("stockparts") - while(i<= max_objectives) - var/goal = pick(goals) - var/datum/objective/trade/O - if(goal == "stockparts") - O = new /datum/objective/trade/stock(station) - O.choose_target() - objs += O - i++ + var/datum/objective/trade/plasma/P = new /datum/objective/trade/plasma + P.choose_target() + objs += P + + var/datum/objective/trade/credits/C = new /datum/objective/trade/credits + C.choose_target() + objs += C + return objs