mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
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:
committed by
yogstation13-bot
parent
c3238fc7a4
commit
b88b441239
@@ -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."
|
||||
|
||||
31
code/modules/cargo/bounties/engineering.dm
Normal file
31
code/modules/cargo/bounties/engineering.dm
Normal 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)
|
||||
51
code/modules/cargo/bounties/mining.dm
Normal file
51
code/modules/cargo/bounties/mining.dm
Normal 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)
|
||||
@@ -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])
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user