Adds mining and engineering cargo bounties (#39568)

The game can use more bounties that require actual effort and cooperation to
complete, but give far higher rewards than the "collect some glass shards"
Assistant type bounties. Thanks again to Tlaltecuhtli for these ideas.

I added the following:

Engineering
Various atmos gases, price determined by how hard they are to acquire. I
deliberately left out Stimulum/Hypernobilium, as only a handful of players even
have an idea of how to make them. Plasma tank bounty got removed, since it's
just a case of "put tank into plasma canister and open valve".

Contained Tesla ball. The idea is to build a tesla setup inside the supply
shuttle, then ship it off. This pays a lot, since players have to purchase a
bunch of packs, get them unlocked+approved by heads of staff and finally
construct the whole thing inside a cramped shuttle. Materials alone cost about
14.000 credits for this one.

Tesla containment maintains power during the shuttle ride and it gets deleted
successfully on arrival at CentCom. As a failsafe, I've added both singulo and
tesla as 1 credit exports in case someone ships them over to CentCom without an
active bounty.

Mining
Almost everything you can craft from Lavaland fauna, from lava grilled steaks
over bone axes to goliath hide boats.
This commit is contained in:
81Denton
2018-08-09 06:12:56 +02:00
committed by yogstation13-bot
parent c3238fc7a4
commit b88b441239
7 changed files with 116 additions and 18 deletions

View File

@@ -240,21 +240,6 @@
var/obj/structure/bonfire/B = O
return !!B.burning
/datum/bounty/item/assistant/plasma_tank
name = "Full Tank of Plasma"
description = "Station 12 has requested supplies to set up a singularity engine. In particular, they request 28 moles of plasma."
reward = 2500
wanted_types = list(/obj/item/tank)
var/moles_required = 20 // A full tank is 28 moles, but CentCom ignores that fact.
/datum/bounty/item/assistant/plasma_tank/applies_to(obj/O)
if(!..())
return FALSE
var/obj/item/tank/T = O
if(!T.air_contents.gases[/datum/gas/plasma])
return FALSE
return T.air_contents.gases[/datum/gas/plasma][MOLES] >= moles_required
/datum/bounty/item/assistant/corgimeat
name = "Raw Corgi Meat"
description = "The Syndicate recently stole all of CentCom's corgi meat. Ship out a replacement immediately."

View File

@@ -0,0 +1,31 @@
/datum/bounty/item/engineering/gas
name = "Full Tank of Pluoxium"
description = "CentCom RnD is researching extra compact internals. Ship us a tank full of Pluoxium and you'll be compensated."
reward = 7500
wanted_types = list(/obj/item/tank)
var/moles_required = 20 // A full tank is 28 moles, but CentCom ignores that fact.
var/gas_type = /datum/gas/pluoxium
/datum/bounty/item/engineering/gas/applies_to(obj/O)
if(!..())
return FALSE
var/obj/item/tank/T = O
if(!T.air_contents.gases[gas_type])
return FALSE
return T.air_contents.gases[gas_type][MOLES] >= moles_required
/datum/bounty/item/engineering/gas/nitryl_tank
name = "Full Tank of Nitryl"
description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitryl so they can get started."
gas_type = /datum/gas/nitryl
/datum/bounty/item/engineering/gas/tritium_tank
name = "Full Tank of Tritium"
description = "Station 49 is looking to kickstart their research program. Ship them a tank full of Tritium."
gas_type = /datum/gas/tritium
/datum/bounty/item/engineering/energy_ball
name = "Contained Tesla Ball"
description = "Station 24 is being overrun by hordes of angry Mothpeople. They are requesting the ultimate bug zapper."
reward = 75000 //requires 14k credits of purchases, not to mention cooperation with engineering/heads of staff to set up inside the cramped shuttle
wanted_types = list(/obj/singularity/energy_ball)

View File

@@ -0,0 +1,51 @@
/datum/bounty/item/mining/goliath_steaks
name = "Lava-Cooked Goliath Steaks"
description = "Admiral Pavlov has gone on hunger strike ever since the canteen started serving only monkey and monkey byproducts. She is demanding lava-cooked Goliath steaks."
reward = 5000
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/meat/steak/goliath)
/datum/bounty/item/mining/goliath_boat
name = "Goliath Hide Boat"
description = "Commander Menkov wants to participate in the annual Lavaland Regatta. He is asking your shipwrights to build the swiftest boat known to man."
reward = 10000
wanted_types = list(/obj/vehicle/ridden/lavaboat)
/datum/bounty/item/mining/bone_oar
name = "Bone Oars"
description = "Commander Menkov requires oars to participate in the annual Lavaland Regatta. Ship a pair over."
reward = 4000
required_count = 2
wanted_types = list(/obj/item/oar)
/datum/bounty/item/mining/bone_axe
name = "Bone Axe"
description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement."
reward = 7500
wanted_types = list(/obj/item/twohanded/fireaxe/boneaxe)
/datum/bounty/item/mining/bone_armor
name = "Bone Armor"
description = "Station 14 has volunteered their lizard crew for ballistic armor testing. Ship over some bone armor."
reward = 5000
wanted_types = list(/obj/item/clothing/suit/armor/bone)
/datum/bounty/item/mining/skull_helmet
name = "Skull Helmet"
description = "Station 42's Head of Security has her birthday tomorrow! We want to suprise her with a fashionable skull helmet."
reward = 4000
wanted_types = list(/obj/item/clothing/head/helmet/skull)
/datum/bounty/item/mining/bone_talisman
name = "Bone Talismans"
description = "Station 14's Research Director claims that pagan bone talismans protect their wearer. Ship them a few so they can start testing."
reward = 7500
required_count = 3
wanted_types = list(/obj/item/clothing/accessory/talisman)
/datum/bounty/item/mining/bone_dagger
name = "Bone Daggers"
description = "Central Command's canteen is undergoing budget cuts. Ship over some bone daggers so our Chef can keep working."
reward = 5000
required_count = 3
wanted_types = list(/obj/item/kitchen/knife/combat/bone)

View File

@@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(bounties_list)
// Returns a new bounty of random type, but does not add it to GLOB.bounties_list.
/proc/random_bounty()
switch(rand(1, 9))
switch(rand(1, 11))
if(1)
var/subtype = pick(subtypesof(/datum/bounty/item/assistant))
return new subtype
@@ -103,6 +103,12 @@ GLOBAL_LIST_EMPTY(bounties_list)
if(9)
var/subtype = pick(subtypesof(/datum/bounty/item/slime))
return new subtype
if(10)
var/subtype = pick(subtypesof(/datum/bounty/item/engineering))
return new subtype
if(11)
var/subtype = pick(subtypesof(/datum/bounty/item/mining))
return new subtype
// Called lazily at startup to populate GLOB.bounties_list with random bounties.
/proc/setup_bounties()
@@ -114,7 +120,9 @@ GLOBAL_LIST_EMPTY(bounties_list)
/datum/bounty/item/mech = 1,
/datum/bounty/item/chef = 2,
/datum/bounty/item/security = 1,
/datum/bounty/virus = 1)
/datum/bounty/virus = 1,
/datum/bounty/item/engineering = 1,
/datum/bounty/item/mining = 2)
for(var/the_type in easy_add_list_subtypes)
for(var/i in 1 to easy_add_list_subtypes[the_type])

View File

@@ -110,3 +110,23 @@
cost = 100
unit_name = "rapid piping device"
export_types = list(/obj/item/pipe_dispenser)
/datum/export/singulo //failsafe in case someone decides to ship a live singularity to CentCom without the corresponding bounty
cost = 1
unit_name = "singularity"
export_types = list(/obj/singularity)
include_subtypes = FALSE
/datum/export/singulo/total_printout()
. = ..()
if(.)
. += " ERROR: Invalid object detected."
/datum/export/singulo/tesla //see above
unit_name = "energy ball"
export_types = list(/obj/singularity/energy_ball)
/datum/export/singulo/tesla/total_printout()
. = ..()
if(.)
. += " ERROR: Unscheduled energy ball delivery detected."

View File

@@ -6,7 +6,8 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list(
/obj/item/disk/nuclear,
/obj/machinery/nuclearbomb,
/obj/item/beacon,
/obj/singularity,
/obj/singularity/narsie,
/obj/singularity/wizard,
/obj/machinery/teleport/station,
/obj/machinery/teleport/hub,
/obj/machinery/quantumpad,

View File

@@ -1363,8 +1363,10 @@
#include "code\modules\cargo\supplypod_beacon.dm"
#include "code\modules\cargo\bounties\assistant.dm"
#include "code\modules\cargo\bounties\chef.dm"
#include "code\modules\cargo\bounties\engineering.dm"
#include "code\modules\cargo\bounties\item.dm"
#include "code\modules\cargo\bounties\mech.dm"
#include "code\modules\cargo\bounties\mining.dm"
#include "code\modules\cargo\bounties\reagent.dm"
#include "code\modules\cargo\bounties\science.dm"
#include "code\modules\cargo\bounties\security.dm"