initial commit - cross reference with 5th port - obviously has compile errors
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
// Armor, gloves, space suits - it all goes here
|
||||
|
||||
/datum/export/gear
|
||||
|
||||
// Security gear
|
||||
/datum/export/gear/sec_helmet
|
||||
cost = 100
|
||||
unit_name = "helmet"
|
||||
export_types = list(/obj/item/clothing/head/helmet/sec)
|
||||
|
||||
/datum/export/gear/sec_armor
|
||||
cost = 100
|
||||
unit_name = "armor vest"
|
||||
export_types = list(/obj/item/clothing/suit/armor/vest)
|
||||
include_subtypes = FALSE
|
||||
|
||||
|
||||
/datum/export/gear/riot_helmet
|
||||
cost = 250
|
||||
unit_name = "riot helmet"
|
||||
export_types = list(/obj/item/clothing/head/helmet/riot)
|
||||
|
||||
/datum/export/gear/riot_armor
|
||||
cost = 250
|
||||
unit_name = "riot armor suit"
|
||||
export_types = list(/obj/item/clothing/suit/armor/riot)
|
||||
|
||||
/datum/export/gear/bulletproof_armor
|
||||
cost = 250
|
||||
unit_name = "bulletproof armor vest"
|
||||
export_types = list(/obj/item/clothing/suit/armor/bulletproof)
|
||||
|
||||
/datum/export/gear/reflector_armor
|
||||
cost = 650
|
||||
unit_name = "reflector armor vest"
|
||||
export_types = list(/obj/item/clothing/suit/armor/laserproof)
|
||||
|
||||
|
||||
/datum/export/gear/riot_shield
|
||||
cost = 400
|
||||
unit_name = "riot shield"
|
||||
export_types = list(/obj/item/weapon/shield/riot)
|
||||
|
||||
|
||||
// Masks
|
||||
/datum/export/gear/mask/breath
|
||||
cost = 2
|
||||
unit_name = "breath mask"
|
||||
export_types = list(/obj/item/clothing/mask/breath)
|
||||
|
||||
/datum/export/gear/mask/gas
|
||||
cost = 10
|
||||
unit_name = "gas mask"
|
||||
export_types = list(/obj/item/clothing/mask/gas)
|
||||
include_subtypes = FALSE
|
||||
|
||||
|
||||
|
||||
// EVA gear
|
||||
/datum/export/gear/space
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/gear/space/helmet
|
||||
cost = 500
|
||||
unit_name = "space helmet"
|
||||
export_types = list(/obj/item/clothing/head/helmet/space, /obj/item/clothing/head/helmet/space/eva)
|
||||
|
||||
/datum/export/gear/space/suit
|
||||
cost = 600
|
||||
unit_name = "space suit"
|
||||
export_types = list(/obj/item/clothing/suit/space, /obj/item/clothing/suit/space/eva)
|
||||
|
||||
|
||||
/datum/export/gear/space/voidhelmet
|
||||
cost = 550
|
||||
unit_name = "void helmet"
|
||||
export_types = list(/obj/item/clothing/head/helmet/space/nasavoid)
|
||||
|
||||
/datum/export/gear/space/voidsuit
|
||||
cost = 650
|
||||
unit_name = "void suit"
|
||||
export_types = list(/obj/item/clothing/suit/space/nasavoid)
|
||||
|
||||
|
||||
/datum/export/gear/space/syndiehelmet
|
||||
cost = 1000
|
||||
unit_name = "Syndicate space helmet"
|
||||
export_types = list(/obj/item/clothing/head/helmet/space/syndicate)
|
||||
include_subtypes = TRUE
|
||||
|
||||
/datum/export/gear/space/syndiesuit
|
||||
cost = 1500
|
||||
unit_name = "Syndicate space suit"
|
||||
export_types = list(/obj/item/clothing/suit/space/syndicate)
|
||||
include_subtypes = TRUE
|
||||
|
||||
|
||||
// Radsuits
|
||||
/datum/export/gear/radhelmet
|
||||
cost = 50
|
||||
unit_name = "radsuit hood"
|
||||
export_types = list(/obj/item/clothing/head/radiation)
|
||||
|
||||
/datum/export/gear/radsuit
|
||||
cost = 100
|
||||
unit_name = "radsuit"
|
||||
export_types = list(/obj/item/clothing/suit/radiation)
|
||||
|
||||
// Biosuits
|
||||
/datum/export/gear/biohood
|
||||
cost = 50
|
||||
unit_name = "biosuit hood"
|
||||
export_types = list(/obj/item/clothing/head/bio_hood)
|
||||
|
||||
/datum/export/gear/biosuit
|
||||
cost = 100
|
||||
unit_name = "biosuit"
|
||||
export_types = list(/obj/item/clothing/suit/bio_suit)
|
||||
|
||||
// Bombsuits
|
||||
/datum/export/gear/bombhelmet
|
||||
cost = 100
|
||||
unit_name = "bomb suit hood"
|
||||
export_types = list(/obj/item/clothing/head/bomb_hood)
|
||||
|
||||
/datum/export/gear/bombsuit
|
||||
cost = 300
|
||||
unit_name = "bomb suit"
|
||||
export_types = list(/obj/item/clothing/suit/bomb_suit)
|
||||
@@ -0,0 +1,74 @@
|
||||
// Drop the dox!
|
||||
|
||||
// Selling Syndicate docs to NT
|
||||
/datum/export/intel
|
||||
cost = 25000
|
||||
unit_name = "original article"
|
||||
message = "of enemy intelligence"
|
||||
var/global/originals_recieved = list()
|
||||
var/global/copies_recieved = list()
|
||||
var/copy_path = null
|
||||
export_types = list(/obj/item/documents/syndicate)
|
||||
|
||||
/datum/export/intel/applies_to(obj/O, contr = 0, emag = 0)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
if(emagged != emag) // Emagging the console will stop you from selling Syndicate docs to NT.
|
||||
return FALSE
|
||||
|
||||
// No docs double-selling!
|
||||
if(istype(O, /obj/item/documents/photocopy))
|
||||
var/obj/item/documents/photocopy/C = O
|
||||
if(!C.copy_type)
|
||||
return FALSE
|
||||
if((C.copy_type in originals_recieved) || (C.copy_type in copies_recieved))
|
||||
return FALSE
|
||||
if(copy_path && !ispath(C.copy_type, copy_path))
|
||||
return FALSE
|
||||
|
||||
else if(O.type in originals_recieved)
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/export/intel/get_cost(obj/O)
|
||||
if(O.type in copies_recieved)
|
||||
return ..() - 15000 // Already have a copy of it, deduce the cost.
|
||||
return ..()
|
||||
|
||||
/datum/export/intel/sell_object(obj/O)
|
||||
..()
|
||||
if(istype(O, /obj/item/documents/photocopy))
|
||||
var/obj/item/documents/photocopy/C = O
|
||||
copies_recieved += C.copy_type
|
||||
else
|
||||
originals_recieved += O.type
|
||||
|
||||
/datum/export/intel/photocopy
|
||||
cost = 15000 // Allows double agents to earn some cargo points without failing their objectives.
|
||||
unit_name = "photocopied article"
|
||||
export_types = list(/obj/item/documents/photocopy)
|
||||
copy_path = /obj/item/documents/syndicate
|
||||
|
||||
|
||||
|
||||
// Selling NT docs to Syndicate
|
||||
/datum/export/intel/syndie
|
||||
message = "of Nanotrasen intelligence"
|
||||
export_types = list(/obj/item/documents/nanotrasen)
|
||||
emagged = TRUE
|
||||
|
||||
/datum/export/intel/syndie/photocopy
|
||||
cost = 15000
|
||||
unit_name = "photocopied article"
|
||||
export_types = list(/obj/item/documents/photocopy)
|
||||
copy_path = /obj/item/documents/nanotrasen
|
||||
|
||||
// Selling Syndicate docs to Syndicate, why not?
|
||||
/datum/export/intel/syndie/recovered
|
||||
cost = 15000
|
||||
unit_name = "recovered article"
|
||||
message = "of Syndicate intelligence"
|
||||
export_types = list(/obj/item/documents/syndicate)
|
||||
// Syndicate only wants originals of their docs recovered.
|
||||
@@ -0,0 +1,110 @@
|
||||
// Large objects that don't fit in crates, but must be sellable anyway.
|
||||
|
||||
// Crates, boxes, lockers.
|
||||
/datum/export/large/crate
|
||||
cost = 500
|
||||
unit_name = "crate"
|
||||
export_types = list(/obj/structure/closet/crate)
|
||||
exclude_types = list(/obj/structure/closet/crate/large)
|
||||
|
||||
/datum/export/large/crate/total_printout() // That's why a goddamn metal crate costs that much.
|
||||
. = ..()
|
||||
if(.)
|
||||
. += " Thanks for participating in Nanotrasen Crates Recycling Program."
|
||||
|
||||
/datum/export/large/crate/wooden
|
||||
cost = 100
|
||||
unit_name = "wooden crate"
|
||||
export_types = list(/obj/structure/closet/crate/large)
|
||||
exclude_types = list()
|
||||
|
||||
/datum/export/large/crate/wooden/ore
|
||||
unit_name = "ore box"
|
||||
export_types = list(/obj/structure/ore_box)
|
||||
|
||||
|
||||
// Reagent dispensers.
|
||||
/datum/export/large/reagent_dispenser
|
||||
cost = 100 // +0-400 depending on amount of reagents left
|
||||
var/contents_cost = 400
|
||||
|
||||
/datum/export/large/reagent_dispenser/get_cost(obj/O)
|
||||
var/obj/structure/reagent_dispensers/D = O
|
||||
var/ratio = D.reagents.total_volume / D.reagents.maximum_volume
|
||||
|
||||
return ..() + round(contents_cost * ratio)
|
||||
|
||||
/datum/export/large/reagent_dispenser/water
|
||||
unit_name = "watertank"
|
||||
export_types = list(/obj/structure/reagent_dispensers/watertank)
|
||||
contents_cost = 200
|
||||
|
||||
/datum/export/large/reagent_dispenser/fuel
|
||||
unit_name = "fueltank"
|
||||
export_types = list(/obj/structure/reagent_dispensers/fueltank)
|
||||
|
||||
/datum/export/large/reagent_dispenser/beer
|
||||
unit_name = "beer keg"
|
||||
contents_cost = 700
|
||||
export_types = list(/obj/structure/reagent_dispensers/beerkeg)
|
||||
|
||||
|
||||
|
||||
// Heavy engineering equipment. Singulo/Tesla parts mostly.
|
||||
/datum/export/large/emitter
|
||||
cost = 400
|
||||
unit_name = "emitter"
|
||||
export_types = list(/obj/machinery/power/emitter)
|
||||
|
||||
/datum/export/large/field_generator
|
||||
cost = 400
|
||||
unit_name = "field generator"
|
||||
export_types = list(/obj/machinery/field/generator)
|
||||
|
||||
/datum/export/large/collector
|
||||
cost = 600
|
||||
unit_name = "collector"
|
||||
export_types = list(/obj/machinery/power/rad_collector)
|
||||
|
||||
/datum/export/large/collector/pa
|
||||
cost = 300
|
||||
unit_name = "particle accelerator part"
|
||||
export_types = list(/obj/structure/particle_accelerator)
|
||||
|
||||
/datum/export/large/collector/pa/controls
|
||||
cost = 500
|
||||
unit_name = "particle accelerator control console"
|
||||
export_types = list(/obj/machinery/particle_accelerator/control_box)
|
||||
|
||||
/datum/export/large/pipedispenser
|
||||
cost = 500
|
||||
unit_name = "pipe dispenser"
|
||||
export_types = list(/obj/machinery/pipedispenser)
|
||||
|
||||
|
||||
/datum/export/large/singularitygen
|
||||
cost = 4000 // If you have one left after engine setup, sell it.
|
||||
unit_name = "unused gravitational singularity generator"
|
||||
export_types = list(/obj/machinery/the_singularitygen)
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/large/singularitygen/tesla
|
||||
unit_name = "unused energy ball generator"
|
||||
export_types = list(/obj/machinery/the_singularitygen/tesla)
|
||||
|
||||
/datum/export/large/supermatter
|
||||
cost = 9000
|
||||
unit_name = "supermatter shard"
|
||||
export_types = list(/obj/machinery/power/supermatter_shard)
|
||||
|
||||
|
||||
// Misc
|
||||
/datum/export/large/iv
|
||||
cost = 300
|
||||
unit_name = "iv drip"
|
||||
export_types = list(/obj/machinery/iv_drip)
|
||||
|
||||
/datum/export/large/barrier
|
||||
cost = 325
|
||||
unit_name = "security barrier"
|
||||
export_types = list(/obj/item/weapon/grenade/barrier, /obj/structure/barricade/security)
|
||||
@@ -0,0 +1,76 @@
|
||||
// Approved manifest.
|
||||
// +200 credits flat.
|
||||
/datum/export/manifest_correct
|
||||
cost = 200
|
||||
unit_name = "approved manifest"
|
||||
export_types = list(/obj/item/weapon/paper/manifest)
|
||||
|
||||
/datum/export/manifest_correct/applies_to(obj/O)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
if(M.is_approved() && !M.errors)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
// Correctly denied manifest.
|
||||
// Refunds the package cost minus the cost of crate.
|
||||
/datum/export/manifest_error_denied
|
||||
cost = -500
|
||||
unit_name = "correctly denied manifest"
|
||||
export_types = list(/obj/item/weapon/paper/manifest)
|
||||
|
||||
/datum/export/manifest_error_denied/applies_to(obj/O)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
if(M.is_denied() && M.errors)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/export/manifest_error_denied/get_cost(obj/O)
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
return ..() + M.order_cost
|
||||
|
||||
|
||||
// Erroneously approved manifest.
|
||||
// Substracts the package cost.
|
||||
/datum/export/manifest_error
|
||||
unit_name = "erroneously approved manifest"
|
||||
export_types = list(/obj/item/weapon/paper/manifest)
|
||||
|
||||
/datum/export/manifest_error/applies_to(obj/O)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
if(M.is_approved() && M.errors)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/export/manifest_error/get_cost(obj/O)
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
return -M.order_cost
|
||||
|
||||
|
||||
// Erroneously denied manifest.
|
||||
// Substracts the package cost minus the cost of crate.
|
||||
/datum/export/manifest_correct_denied
|
||||
cost = 500
|
||||
unit_name = "erroneously denied manifest"
|
||||
export_types = list(/obj/item/weapon/paper/manifest)
|
||||
|
||||
/datum/export/manifest_correct_denied/applies_to(obj/O)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
if(M.is_denied() && !M.errors)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/export/manifest_correct_denied/get_cost(obj/O)
|
||||
var/obj/item/weapon/paper/manifest/M = O
|
||||
return ..() - M.order_cost
|
||||
@@ -0,0 +1,89 @@
|
||||
/datum/export/material
|
||||
cost = 5 // Cost per MINERAL_MATERIAL_AMOUNT, which is 2000cm3 as of April 2016.
|
||||
message = "cm3 of developer's tears. Please, report this on github"
|
||||
var/material_id = null
|
||||
export_types = list(
|
||||
/obj/item/stack/sheet/mineral, /obj/item/stack/tile/mineral,
|
||||
/obj/item/weapon/ore, /obj/item/weapon/coin)
|
||||
// Yes, it's a base type containing export_types.
|
||||
// But it has no material_id, so any applies_to check will return false, and these types reduce amount of copypasta a lot
|
||||
|
||||
/datum/export/material/get_amount(obj/O)
|
||||
if(!material_id)
|
||||
return 0
|
||||
if(!istype(O, /obj/item))
|
||||
return 0
|
||||
var/obj/item/I = O
|
||||
if(!(material_id in I.materials))
|
||||
return 0
|
||||
|
||||
var/amount = I.materials[material_id]
|
||||
|
||||
if(istype(I, /obj/item/stack))
|
||||
var/obj/item/stack/S = I
|
||||
amount *= S.amount
|
||||
else if(istype(I, /obj/item/weapon/ore))
|
||||
amount *= 0.8 // Station's ore redemption equipment is really goddamn good.
|
||||
|
||||
return round(amount)
|
||||
|
||||
/datum/export/material/get_cost(obj/O)
|
||||
return round(..() / MINERAL_MATERIAL_AMOUNT)
|
||||
|
||||
// Materials. Nothing but plasma is really worth selling. Better leave it all to RnD and sell some plasma instead.
|
||||
|
||||
// Bananium. Exporting it makes the clown cry. Priceless.
|
||||
/datum/export/material/bananium
|
||||
cost = 5000
|
||||
material_id = MAT_BANANIUM
|
||||
message = "cm3 of bananium"
|
||||
|
||||
// Diamonds. Rare and expensive.
|
||||
/datum/export/material/diamond
|
||||
cost = 2500
|
||||
material_id = MAT_DIAMOND
|
||||
message = "cm3 of diamonds"
|
||||
|
||||
// Plasma. The oil of 26 century. The reason why you are here.
|
||||
/datum/export/material/plasma
|
||||
cost = 500
|
||||
material_id = MAT_PLASMA
|
||||
message = "cm3 of plasma"
|
||||
|
||||
/datum/export/material/plasma/get_cost(obj/O, contr = 0, emag = 0)
|
||||
. = ..()
|
||||
if(emag) // Syndicate pays you more for the plasma.
|
||||
. = round(. * 1.5)
|
||||
|
||||
// Uranium. Still useful for both power generation and nuclear annihilation.
|
||||
/datum/export/material/uranium
|
||||
cost = 400
|
||||
material_id = MAT_URANIUM
|
||||
message = "cm3 of uranium"
|
||||
|
||||
// Gold. Used in electronics and corrosion-resistant plating.
|
||||
/datum/export/material/gold
|
||||
cost = 250
|
||||
material_id = MAT_GOLD
|
||||
message = "cm3 of gold"
|
||||
|
||||
// Silver.
|
||||
/datum/export/material/silver
|
||||
cost = 100
|
||||
material_id = MAT_SILVER
|
||||
message = "cm3 of silver"
|
||||
|
||||
// Metal. Common building material.
|
||||
/datum/export/material/metal
|
||||
message = "cm3 of metal"
|
||||
material_id = MAT_METAL
|
||||
export_types = list(
|
||||
/obj/item/stack/sheet/metal, /obj/item/stack/tile/plasteel,
|
||||
/obj/item/stack/rods, /obj/item/weapon/ore, /obj/item/weapon/coin)
|
||||
|
||||
// Glass. Common building material.
|
||||
/datum/export/material/glass
|
||||
message = "cm3 of glass"
|
||||
material_id = MAT_GLASS
|
||||
export_types = list(/obj/item/stack/sheet/glass, /obj/item/weapon/ore,
|
||||
/obj/item/weapon/shard)
|
||||
@@ -0,0 +1,24 @@
|
||||
// Space Cash. Now it isn't that useless.
|
||||
/datum/export/stack/cash
|
||||
cost = 1 // Multiplied both by value of each bill and by amount of bills in stack.
|
||||
unit_name = "credit"
|
||||
export_types = list(/obj/item/stack/spacecash)
|
||||
|
||||
/datum/export/stack/cash/get_amount(obj/O)
|
||||
var/obj/item/stack/spacecash/C = O
|
||||
return ..() * C.value
|
||||
|
||||
|
||||
// Coins. At least the coins that do not contain any materials.
|
||||
// Material-containing coins cost just as much as their materials do, see materials.dm for exact rates.
|
||||
/datum/export/coin
|
||||
cost = 1 // Multiplied by coin's value
|
||||
unit_name = "credit"
|
||||
message = "worth of rare coins"
|
||||
export_types = list(/obj/item/weapon/coin)
|
||||
|
||||
/datum/export/coin/get_amount(obj/O)
|
||||
var/obj/item/weapon/coin/C = O
|
||||
if(C.materials && C.materials.len)
|
||||
return 0 // Sold as raw material instead.
|
||||
return ..() * C.value
|
||||
@@ -0,0 +1,108 @@
|
||||
// Organs.
|
||||
|
||||
|
||||
// Alien organs
|
||||
/datum/export/organ/alien/get_cost(O, contr = 0, emag = 0)
|
||||
. = ..()
|
||||
if(emag) // Syndicate really wants some new bio-weapons.
|
||||
. *= 2
|
||||
|
||||
/datum/export/organ/alien/brain
|
||||
cost = 2000
|
||||
unit_name = "alien brain"
|
||||
export_types = list(/obj/item/organ/brain/alien)
|
||||
|
||||
/datum/export/organ/alien/acid
|
||||
cost = 1500
|
||||
unit_name = "alien acid gland"
|
||||
export_types = list(/obj/item/organ/alien/acid)
|
||||
|
||||
/datum/export/organ/alien/hivenode
|
||||
cost = 2000
|
||||
unit_name = "alien hive node"
|
||||
export_types = list(/obj/item/organ/alien/hivenode)
|
||||
|
||||
/datum/export/organ/alien/neurotoxin
|
||||
cost = 2000
|
||||
unit_name = "alien neurotoxin gland"
|
||||
export_types = list(/obj/item/organ/alien/neurotoxin)
|
||||
|
||||
/datum/export/organ/alien/resinspinner
|
||||
cost = 1000
|
||||
unit_name = "alien resin spinner"
|
||||
|
||||
/datum/export/organ/alien/plasmavessel
|
||||
cost = 1000
|
||||
unit_name = "alien plasma vessel"
|
||||
export_types = list(/obj/item/organ/alien/plasmavessel)
|
||||
|
||||
/datum/export/organ/alien/plasmavessel/get_cost(obj/item/organ/alien/plasmavessel/P)
|
||||
return ..() + (P.max_plasma * 2) + (P.plasma_rate * 20)
|
||||
|
||||
|
||||
|
||||
/datum/export/organ/alien/embryo
|
||||
cost = 5000 // Allows buyer to set up his own alien farm.
|
||||
unit_name = "alien embryo"
|
||||
export_types = list(/obj/item/organ/body_egg/alien_embryo)
|
||||
|
||||
/datum/export/organ/alien/eggsac
|
||||
cost = 10000 // Even better than a single embryo.
|
||||
unit_name = "alien egg sac"
|
||||
export_types = list(/obj/item/organ/alien/eggsac)
|
||||
|
||||
|
||||
// Other alien organs.
|
||||
/datum/export/organ/alien/abductor
|
||||
cost = 2500
|
||||
unit_name = "abductor gland"
|
||||
export_types = list(/obj/item/organ/gland)
|
||||
|
||||
/datum/export/organ/alien/changeling_egg
|
||||
cost = 50000 // Holy. Fuck.
|
||||
unit_name = "changeling egg"
|
||||
export_types = list(/obj/item/organ/body_egg/changeling_egg)
|
||||
|
||||
|
||||
/datum/export/organ/hivelord
|
||||
cost = 1500
|
||||
unit_name = "active hivelord core"
|
||||
export_types = list(/obj/item/organ/hivelord_core)
|
||||
|
||||
/datum/export/organ/alien/plasmavessel/get_cost(obj/item/organ/hivelord_core/C)
|
||||
if(C.inert)
|
||||
return ..() / 3
|
||||
if(C.preserved)
|
||||
return ..() * 2
|
||||
return ..()
|
||||
|
||||
|
||||
// Human organs.
|
||||
|
||||
// Do not put human brains here, they are not sellable for a purpose.
|
||||
// If they would be sellable, X-Porter cannon's finishing move (selling victim's organs) will be instakill with no revive.
|
||||
|
||||
/datum/export/organ/human
|
||||
contraband = TRUE
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/organ/human/heart
|
||||
cost = 500
|
||||
unit_name = "heart"
|
||||
export_types = list(/obj/item/organ/heart)
|
||||
|
||||
/datum/export/organ/human/lungs
|
||||
cost = 400
|
||||
unit_name = "pair"
|
||||
message = "of lungs"
|
||||
export_types = list(/obj/item/organ/lungs)
|
||||
|
||||
/datum/export/organ/human/appendix
|
||||
cost = 50
|
||||
unit_name = "appendix"
|
||||
export_types = list(/obj/item/organ/appendix)
|
||||
|
||||
/datum/export/organ/human/appendix/get_cost(obj/item/organ/appendix/O)
|
||||
if(O.inflamed)
|
||||
return 0
|
||||
return ..()
|
||||
@@ -0,0 +1,32 @@
|
||||
// Circuit boards, spare parts, etc.
|
||||
|
||||
/datum/export/solar/assembly
|
||||
cost = 50
|
||||
unit_name = "solar panel assembly"
|
||||
export_types = list(/obj/item/solar_assembly)
|
||||
|
||||
/datum/export/solar/tracker_board
|
||||
cost = 100
|
||||
unit_name = "solar tracker board"
|
||||
export_types = list(/obj/item/weapon/electronics/tracker)
|
||||
|
||||
/datum/export/solar/control_board
|
||||
cost = 150
|
||||
unit_name = "solar panel control board"
|
||||
export_types = list(/obj/item/weapon/circuitboard/computer/solar_control)
|
||||
|
||||
|
||||
|
||||
/datum/export/swarmer
|
||||
cost = 2000
|
||||
unit_name = "deactivated alien deconstruction drone"
|
||||
export_types = list(/obj/item/device/unactivated_swarmer)
|
||||
|
||||
/datum/export/swarmer/applies_to(obj/O, contr = 0, emag = 0)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
var/obj/item/device/unactivated_swarmer/S = O
|
||||
if(!S.crit_fail)
|
||||
return FALSE
|
||||
return TRUE
|
||||
@@ -0,0 +1,19 @@
|
||||
// Sell tech levels
|
||||
/datum/export/tech
|
||||
cost = 500
|
||||
unit_name = "technology data disk"
|
||||
export_types = list(/obj/item/weapon/disk/tech_disk)
|
||||
var/list/techLevels = list()
|
||||
|
||||
/datum/export/tech/get_cost(obj/O)
|
||||
var/obj/item/weapon/disk/tech_disk/D = O
|
||||
if(!D.stored)
|
||||
return 0
|
||||
var/datum/tech/tech = D.stored
|
||||
return ..() * tech.getCost(techLevels[tech.id])
|
||||
|
||||
/datum/export/tech/sell_object(obj/O)
|
||||
..()
|
||||
var/obj/item/weapon/disk/tech_disk/D = O
|
||||
var/datum/tech/tech = D.stored
|
||||
techLevels[tech.id] = tech.level
|
||||
@@ -0,0 +1,36 @@
|
||||
/datum/export/seed
|
||||
cost = 100 // Gets multiplied by potency
|
||||
unit_name = "new plant species sample"
|
||||
export_types = list(/obj/item/seeds)
|
||||
var/needs_discovery = FALSE // Only for undiscovered species
|
||||
var/global/list/discoveredPlants = list()
|
||||
|
||||
/datum/export/seed/get_cost(obj/O)
|
||||
var/obj/item/seeds/S = O
|
||||
if(!needs_discovery && (S.type in discoveredPlants))
|
||||
return 0
|
||||
if(needs_discovery && !(S.type in discoveredPlants))
|
||||
return 0
|
||||
return ..() * S.rarity // That's right, no bonus for potency. Send a crappy sample first to "show improvement" later.
|
||||
|
||||
/datum/export/seed/sell_object(obj/O)
|
||||
..()
|
||||
var/obj/item/seeds/S = O
|
||||
discoveredPlants[S.type] = S.potency
|
||||
|
||||
|
||||
/datum/export/seed/potency
|
||||
cost = 2.5 // Gets multiplied by potency and rarity.
|
||||
unit_name = "improved plant sample"
|
||||
export_types = list(/obj/item/seeds)
|
||||
needs_discovery = TRUE // Only for already discovered species
|
||||
|
||||
/datum/export/seed/potency.get_cost(obj/O)
|
||||
var/obj/item/seeds/S = O
|
||||
var/cost = ..()
|
||||
if(!cost)
|
||||
return 0
|
||||
|
||||
var/potDiff = max(S.potency - discoveredPlants[S.type], 0)
|
||||
|
||||
return round(..() * potDiff)
|
||||
@@ -0,0 +1,132 @@
|
||||
//
|
||||
// Sheet Exports
|
||||
//
|
||||
|
||||
/datum/export/stack
|
||||
unit_name = "sheet"
|
||||
|
||||
/datum/export/stack/get_amount(obj/O)
|
||||
var/obj/item/stack/S = O
|
||||
if(istype(S))
|
||||
return S.amount
|
||||
return 0
|
||||
|
||||
|
||||
// Leather, skin and other farming by-products.
|
||||
|
||||
/datum/export/stack/skin
|
||||
unit_name = ""
|
||||
|
||||
// Monkey hide. Cheap.
|
||||
/datum/export/stack/skin/monkey
|
||||
cost = 150
|
||||
unit_name = "monkey hide"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/monkey)
|
||||
|
||||
// Human skin. Illegal
|
||||
/datum/export/stack/skin/human
|
||||
cost = 2000
|
||||
contraband = 1
|
||||
unit_name = "piece"
|
||||
message = "of human skin"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/human)
|
||||
|
||||
// Goliath hide. Expensive.
|
||||
/datum/export/stack/skin/goliath_hide
|
||||
cost = 2500
|
||||
unit_name = "goliath hide"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/goliath_hide)
|
||||
|
||||
// Cat hide. Just in case Runtime is catsploding again.
|
||||
/datum/export/stack/skin/cat
|
||||
cost = 2000
|
||||
contraband = 1
|
||||
unit_name = "cat hide"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/cat)
|
||||
|
||||
// Corgi hide. You monster.
|
||||
/datum/export/stack/skin/corgi
|
||||
cost = 2500
|
||||
contraband = 1
|
||||
unit_name = "corgi hide"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/corgi)
|
||||
|
||||
// Lizard hide. Very expensive.
|
||||
/datum/export/stack/skin/lizard
|
||||
cost = 5000
|
||||
unit_name = "lizard hide"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/lizard)
|
||||
|
||||
// Alien hide. Extremely expensive.
|
||||
/datum/export/stack/skin/xeno
|
||||
cost = 15000
|
||||
unit_name = "alien hide"
|
||||
export_types = list(/obj/item/stack/sheet/animalhide/xeno)
|
||||
|
||||
|
||||
// Common materials.
|
||||
// For base materials, see materials.dm
|
||||
|
||||
// Plasteel. Lightweight, strong and contains some plasma too.
|
||||
/datum/export/stack/plasteel
|
||||
cost = 85
|
||||
message = "of plasteel"
|
||||
export_types = list(/obj/item/stack/sheet/plasteel)
|
||||
|
||||
// Reinforced Glass. Common building material. 1 glass + 0.5 metal, cost is rounded up.
|
||||
/datum/export/stack/rglass
|
||||
cost = 8
|
||||
message = "of reinforced glass"
|
||||
export_types = list(/obj/item/stack/sheet/rglass)
|
||||
|
||||
// Wood. Quite expensive in the grim and dark 26 century.
|
||||
/datum/export/stack/wood
|
||||
cost = 25
|
||||
unit_name = "wood plank"
|
||||
export_types = list(/obj/item/stack/sheet/mineral/wood)
|
||||
|
||||
// Cardboard. Cheap.
|
||||
/datum/export/stack/cardboard
|
||||
cost = 2
|
||||
message = "of cardboard"
|
||||
export_types = list(/obj/item/stack/sheet/cardboard)
|
||||
|
||||
// Sandstone. Literally dirt cheap.
|
||||
/datum/export/stack/sandstone
|
||||
cost = 1
|
||||
unit_name = "block"
|
||||
message = "of sandstone"
|
||||
export_types = list(/obj/item/stack/sheet/mineral/sandstone)
|
||||
|
||||
// Cable.
|
||||
/datum/export/stack/cable
|
||||
cost = 0.2
|
||||
unit_name = "cable piece"
|
||||
export_types = list(/obj/item/stack/cable_coil)
|
||||
|
||||
/datum/export/stack/cable/get_cost(O)
|
||||
return round(..())
|
||||
|
||||
|
||||
// Weird Stuff
|
||||
|
||||
// Alien Alloy. Like plasteel, but better.
|
||||
// Major players would pay a lot to get some, so you can get a lot of money from producing and selling those.
|
||||
// Just don't forget to fire all your production staff before the end of month.
|
||||
/datum/export/stack/abductor
|
||||
cost = 10000
|
||||
message = "of alien alloy"
|
||||
export_types = list(/obj/item/stack/sheet/mineral/abductor)
|
||||
|
||||
// Adamantine. Does not occur naurally.
|
||||
/datum/export/stack/adamantine
|
||||
unit_name = "bar"
|
||||
cost = 7500
|
||||
message = "of adamantine"
|
||||
export_types = list(/obj/item/stack/sheet/mineral/adamantine)
|
||||
|
||||
// Mythril. Does not occur naurally.
|
||||
/datum/export/stack/mythril
|
||||
cost = 15000
|
||||
message = "of mythril"
|
||||
export_types = list(/obj/item/stack/sheet/mineral/mythril)
|
||||
@@ -0,0 +1,118 @@
|
||||
// Various tools and handheld engineering devices.
|
||||
|
||||
/datum/export/toolbox
|
||||
cost = 4
|
||||
unit_name = "toolbox"
|
||||
export_types = list(/obj/item/weapon/storage/toolbox)
|
||||
|
||||
// mechanical toolbox: 22cr
|
||||
// emergency toolbox: 17-20cr
|
||||
// electrical toolbox: 36cr
|
||||
// robust: priceless
|
||||
|
||||
// Basic tools
|
||||
/datum/export/screwdriver
|
||||
cost = 2
|
||||
unit_name = "screwdriver"
|
||||
export_types = list(/obj/item/weapon/screwdriver)
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/wrench
|
||||
cost = 2
|
||||
unit_name = "wrench"
|
||||
export_types = list(/obj/item/weapon/wrench)
|
||||
|
||||
/datum/export/crowbar
|
||||
cost = 2
|
||||
unit_name = "crowbar"
|
||||
export_types = list(/obj/item/weapon/crowbar)
|
||||
|
||||
/datum/export/wirecutters
|
||||
cost = 2
|
||||
unit_name = "pair"
|
||||
message = "of wirecutters"
|
||||
export_types = list(/obj/item/weapon/wirecutters)
|
||||
|
||||
|
||||
// Welding tools
|
||||
/datum/export/weldingtool
|
||||
cost = 5
|
||||
unit_name = "welding tool"
|
||||
export_types = list(/obj/item/weapon/weldingtool)
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/weldingtool/emergency
|
||||
cost = 2
|
||||
unit_name = "emergency welding tool"
|
||||
export_types = list(/obj/item/weapon/weldingtool/mini)
|
||||
|
||||
/datum/export/weldingtool/industrial
|
||||
cost = 10
|
||||
unit_name = "industrial welding tool"
|
||||
export_types = list(/obj/item/weapon/weldingtool/largetank, /obj/item/weapon/weldingtool/hugetank)
|
||||
|
||||
|
||||
// Fire extinguishers
|
||||
/datum/export/extinguisher
|
||||
cost = 15
|
||||
unit_name = "fire extinguisher"
|
||||
export_types = list(/obj/item/weapon/extinguisher)
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/extinguisher/mini
|
||||
cost = 2
|
||||
unit_name = "pocket fire extinguisher"
|
||||
export_types = list(/obj/item/weapon/extinguisher/mini)
|
||||
|
||||
|
||||
// Flashlights
|
||||
/datum/export/flashlight
|
||||
cost = 5
|
||||
unit_name = "flashlight"
|
||||
export_types = list(/obj/item/device/flashlight)
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/flashlight/flare
|
||||
cost = 2
|
||||
unit_name = "flare"
|
||||
export_types = list(/obj/item/device/flashlight/flare)
|
||||
|
||||
/datum/export/flashlight/seclite
|
||||
cost = 10
|
||||
unit_name = "seclite"
|
||||
export_types = list(/obj/item/device/flashlight/seclite)
|
||||
|
||||
|
||||
// Analyzers and Scanners
|
||||
/datum/export/analyzer
|
||||
cost = 5
|
||||
unit_name = "analyzer"
|
||||
export_types = list(/obj/item/device/analyzer)
|
||||
|
||||
/datum/export/analyzer/t_scanner
|
||||
cost = 10
|
||||
unit_name = "t-ray scanner"
|
||||
export_types = list(/obj/item/device/t_scanner)
|
||||
|
||||
|
||||
/datum/export/radio
|
||||
cost = 5
|
||||
unit_name = "radio"
|
||||
export_types = list(/obj/item/device/radio)
|
||||
|
||||
|
||||
// High-tech tools.
|
||||
/datum/export/rcd
|
||||
cost = 100 // 15 metal -> 75 credits, +25 credits for production
|
||||
unit_name = "rapid construction device"
|
||||
export_types = list(/obj/item/weapon/rcd)
|
||||
|
||||
/datum/export/rcd_ammo
|
||||
cost = 15 // 1.5 metal, 1 glass -> 12.5 credits, +2.5 credits
|
||||
unit_name = "compressed matter cardridge"
|
||||
export_types = list(/datum/design/rcd_ammo)
|
||||
|
||||
/datum/export/rpd
|
||||
cost = 350 // 37.5 metal, 18.75 glass -> 281.25 credits, + some
|
||||
unit_name = "rapid piping device"
|
||||
export_types = list(/obj/item/weapon/pipe_dispenser)
|
||||
@@ -0,0 +1,72 @@
|
||||
// Weapon exports. Stun batons, disablers, etc.
|
||||
|
||||
/datum/export/weapon
|
||||
include_subtypes = FALSE
|
||||
|
||||
/datum/export/weapon/baton
|
||||
cost = 100
|
||||
unit_name = "stun baton"
|
||||
export_types = list(/obj/item/weapon/melee/baton)
|
||||
exclude_types = list(/obj/item/weapon/melee/baton/cattleprod)
|
||||
include_subtypes = TRUE
|
||||
|
||||
/datum/export/weapon/knife
|
||||
cost = 750
|
||||
unit_name = "combat knife"
|
||||
export_types = list(/obj/item/weapon/kitchen/knife/combat)
|
||||
|
||||
|
||||
/datum/export/weapon/taser
|
||||
cost = 250
|
||||
unit_name = "advanced taser"
|
||||
export_types = list(/obj/item/weapon/gun/energy/gun/advtaser)
|
||||
|
||||
/datum/export/weapon/laser
|
||||
cost = 250
|
||||
unit_name = "laser gun"
|
||||
export_types = list(/obj/item/weapon/gun/energy/laser)
|
||||
|
||||
/datum/export/weapon/disabler
|
||||
cost = 100
|
||||
unit_name = "disabler"
|
||||
export_types = list(/obj/item/weapon/gun/energy/disabler)
|
||||
|
||||
/datum/export/weapon/energy_gun
|
||||
cost = 900
|
||||
unit_name = "energy gun"
|
||||
export_types = list(/obj/item/weapon/gun/energy/gun)
|
||||
|
||||
|
||||
/datum/export/weapon/wt550
|
||||
cost = 1400
|
||||
unit_name = "WT-550 automatic rifle"
|
||||
export_types = list(/obj/item/weapon/gun/projectile/automatic/wt550)
|
||||
|
||||
/datum/export/weapon/shotgun
|
||||
cost = 350
|
||||
unit_name = "combat shotgun"
|
||||
export_types = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat)
|
||||
|
||||
|
||||
/datum/export/weapon/flashbang
|
||||
cost = 15
|
||||
unit_name = "flashbang grenade"
|
||||
export_types = list(/obj/item/weapon/grenade/flashbang)
|
||||
|
||||
/datum/export/weapon/teargas
|
||||
cost = 15
|
||||
unit_name = "tear gas grenade"
|
||||
export_types = list(/obj/item/weapon/grenade/chem_grenade/teargas)
|
||||
|
||||
|
||||
/datum/export/weapon/flash
|
||||
cost = 10
|
||||
unit_name = "handheld flash"
|
||||
export_types = list(/obj/item/device/assembly/flash)
|
||||
include_subtypes = TRUE
|
||||
|
||||
/datum/export/weapon/handcuffs
|
||||
cost = 3
|
||||
unit_name = "pair"
|
||||
message = "of handcuffs"
|
||||
export_types = list(/obj/item/weapon/restraints/handcuffs)
|
||||
Reference in New Issue
Block a user