From 22f21610b201a338b3a6cdad5226b3d0733f7764 Mon Sep 17 00:00:00 2001 From: SomeguyManperson Date: Sat, 11 Sep 2021 07:19:45 -0400 Subject: [PATCH 1/7] switches phazons from a bounty to an export so they can be sold more easily adds an export limit variable that limits the number of times something can be exported removes price elasticity adds a couple new exports buffs several exports because lol --- code/modules/cargo/bounties/mech.dm | 5 - code/modules/cargo/console.dm | 6 +- code/modules/cargo/exports.dm | 57 ++++----- code/modules/cargo/exports/gear.dm | 7 +- code/modules/cargo/exports/large_objects.dm | 40 +++++- code/modules/cargo/exports/manifest.dm | 2 - code/modules/cargo/exports/materials.dm | 17 ++- code/modules/cargo/exports/organs.dm | 127 ++++++++++++++++++++ code/modules/cargo/exports/seeds.dm | 1 - code/modules/cargo/exports/sheets.dm | 33 +++-- yogstation.dme | 1 + 11 files changed, 234 insertions(+), 62 deletions(-) create mode 100644 code/modules/cargo/exports/organs.dm diff --git a/code/modules/cargo/bounties/mech.dm b/code/modules/cargo/bounties/mech.dm index 62c846ea96a3..eb947425995a 100644 --- a/code/modules/cargo/bounties/mech.dm +++ b/code/modules/cargo/bounties/mech.dm @@ -37,8 +37,3 @@ name = "Durand" reward = 20000 wanted_types = list(/obj/mecha/combat/durand) - -/datum/bounty/item/mech/phazon - name = "Phazon" - reward = 50000 - wanted_types = list(/obj/mecha/combat/phazon) diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index 08b89e07f88e..992bb8746aa2 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -29,11 +29,11 @@ obj_flags &= ~EMAGGED /obj/machinery/computer/cargo/proc/get_export_categories() - var/cat = EXPORT_CARGO + . = EXPORT_CARGO if(contraband) - cat |= EXPORT_CONTRABAND + . |= EXPORT_CONTRABAND if(obj_flags & EMAGGED) - cat |= EXPORT_EMAG + . |= EXPORT_EMAG /obj/machinery/computer/cargo/emag_act(mob/user) if(obj_flags & EMAGGED) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 47f16c5e596e..39d3893e973c 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -1,6 +1,6 @@ /* How it works: The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. - + Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. */ @@ -19,6 +19,8 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they then the player gets the profit from selling his own wasted time. */ +#define NO_LIMIT INFINITY + // Simple holder datum to pass export results around /datum/export_report var/list/exported_atoms = list() //names of atoms sold/deleted by export @@ -26,12 +28,12 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/list/total_value = list() //export instance => total value of sold objects // external_report works as "transaction" object, pass same one in if you're doing more than one export in single go -/proc/export_item_and_contents(atom/movable/AM, allowed_categories = EXPORT_CARGO, apply_elastic = TRUE, delete_unsold = TRUE, dry_run=FALSE, datum/export_report/external_report) +/proc/export_item_and_contents(atom/movable/AM, allowed_categories = EXPORT_CARGO, apply_limit = TRUE, delete_unsold = TRUE, dry_run=FALSE, datum/export_report/external_report) if(!GLOB.exports_list.len) setupExports() var/list/contents = AM.GetAllContents() - + var/datum/export_report/report = external_report if(!report) //If we don't have any longer transaction going on report = new @@ -45,8 +47,8 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they for(var/datum/export/E in GLOB.exports_list) if(!E) continue - if(E.applies_to(thing, allowed_categories, apply_elastic)) - sold = E.sell_object(thing, report, dry_run, allowed_categories , apply_elastic) + if(E.applies_to(thing, allowed_categories, apply_limit)) + sold = E.sell_object(thing, report, dry_run, allowed_categories , apply_limit) report.exported_atoms += " [thing.name]" break if(!dry_run && (sold || delete_unsold)) @@ -60,21 +62,16 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message var/message = "" var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above. - var/k_elasticity = 1/30 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" + var/export_limit = NO_LIMIT //how many times this export can be sold. var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type. var/include_subtypes = TRUE // Set to FALSE to make the datum apply only to a strict type. var/list/exclude_types = list() // Types excluded from export - //cost includes elasticity, this does not. - var/init_cost - //All these need to be present in export call parameter for this to apply. var/export_category = EXPORT_CARGO /datum/export/New() ..() - SSprocessing.processing += src - init_cost = cost export_types = typecacheof(export_types) exclude_types = typecacheof(exclude_types) @@ -82,22 +79,13 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they SSprocessing.processing -= src return ..() -/datum/export/process() - ..() - cost *= NUM_E**(k_elasticity * (1/30)) - if(cost > init_cost) - cost = init_cost - // Checks the cost. 0 cost items are skipped in export. -/datum/export/proc/get_cost(obj/O, allowed_categories = NONE, apply_elastic = TRUE) +/datum/export/proc/get_cost(obj/O, allowed_categories = NONE, apply_limit = TRUE) var/amount = get_amount(O) - if(apply_elastic) - if(k_elasticity!=0) - return round((cost/k_elasticity) * (1 - NUM_E**(-1 * k_elasticity * amount))) //anti-derivative of the marginal cost function - else - return round(cost * amount) //alternative form derived from L'Hopital to avoid division by 0 + if(apply_limit && export_limit != NO_LIMIT) + return clamp(amount, 0, export_limit) * cost else - return round(init_cost * amount) + return round(cost * amount) // Checks the amount of exportable in object. Credits in the bill, sheets in the stack, etc. // Usually acts as a multiplier for a cost, so item that has 0 amount will be skipped in export. @@ -121,23 +109,23 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they // Called only once, when the object is actually sold by the datum. // Adds item's cost and amount to the current export cycle. // get_cost, get_amount and applies_to do not neccesary mean a successful sale. -/datum/export/proc/sell_object(obj/O, datum/export_report/report, dry_run = TRUE, allowed_categories = EXPORT_CARGO , apply_elastic = TRUE) - var/the_cost = get_cost(O, allowed_categories , apply_elastic) +/datum/export/proc/sell_object(obj/O, datum/export_report/report, dry_run = TRUE, allowed_categories = EXPORT_CARGO , apply_limit = TRUE) + var/the_cost = get_cost(O, allowed_categories , apply_limit) var/amount = get_amount(O) - if(amount <=0 || the_cost <=0) + if(amount <=0 || the_cost <=0 || export_limit <=0) return FALSE - + report.total_value[src] += the_cost - - if(istype(O, /datum/export/material)) + + if(istype(src, /datum/export/material)) report.total_amount[src] += amount*MINERAL_MATERIAL_AMOUNT else report.total_amount[src] += amount if(!dry_run) - if(apply_elastic) - cost *= NUM_E**(-1*k_elasticity*amount) //marginal cost modifier + if(apply_limit && export_limit != NO_LIMIT) + export_limit-= amount SSblackbox.record_feedback("nested tally", "export_sold_cost", 1, list("[O.type]", "[the_cost]")) return TRUE @@ -150,7 +138,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/total_value = ex.total_value[src] var/total_amount = ex.total_amount[src] - + var/msg = "[total_value] credits: Received [total_amount] " if(total_value > 0) msg = "+" + msg @@ -166,6 +154,9 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they msg += message msg += "." + + if(export_limit <= 0) + msg += " No further units are required." return msg GLOBAL_LIST_EMPTY(exports_list) diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index c15f9c39f46b..170e2ac9ab3b 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -83,17 +83,20 @@ export_types = list(/obj/item/clothing/suit/bomb_suit) /datum/export/gear/lizardboots - cost = 350 + cost = 3000 + export_limit = 50 unit_name = "lizard skin boots" export_types = list(/obj/item/clothing/shoes/cowboy/lizard) include_subtypes = FALSE /datum/export/gear/lizardmasterwork - cost = 1000 + cost = 5000 + export_limit = 10 unit_name = "Hugs-the-Feet lizard boots" export_types = list(/obj/item/clothing/shoes/cowboy/lizard/masterwork) /datum/export/gear/bilton cost = 2500 + export_limit = 40 unit_name = "bilton wrangler boots" export_types = list(/obj/item/clothing/shoes/cowboy/fancy) diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 184b66b5bd5d..5311e8e1fc82 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -1,6 +1,5 @@ /datum/export/large/crate cost = 500 - k_elasticity = 0 unit_name = "crate" export_types = list(/obj/structure/closet/crate) exclude_types = list(/obj/structure/closet/crate/large, /obj/structure/closet/crate/wooden, /obj/structure/closet/crate/secure/cheap, /obj/structure/closet/crate/secure/owned) @@ -121,3 +120,42 @@ cost = 25 unit_name = "security barrier" export_types = list(/obj/item/grenade/barrier, /obj/structure/barricade/security) + +//Mecha +/datum/export/large/mech + export_types = list(/obj/mecha) + var/sellable + +/datum/export/large/mech/applies_to(obj/O) + if(!..()) + return FALSE + + var/obj/mecha/ME = O + ME.wreckage = null // So the mech doesn't blow up in the cargo shuttle + if(sellable) + return TRUE + +/datum/export/large/mech/sellable + export_types = list() + sellable = TRUE + +/datum/export/large/mech/sellable/firefighter + cost = 9000 + unit_name = "APLU \"Firefighter\"" + export_types = list(/obj/mecha/working/ripley/firefighter) + +/datum/export/large/mech/sellable/phazon + cost = 50000 // 15767 material + anomaly core. Fuck it, if you're willing to try selling one of these you should get BIG FUCKING MONEY + unit_name = "phazon" + export_types = list(/obj/mecha/combat/phazon) + export_limit = 10 //you get half of a bike if you for some reason mass produce these, diversify your holdings + +/datum/export/large/mech/sellable/syndiegygax + cost = 50000 // You somehow stole a nuke op's gygax and sold it to nanotrasen. Go you. + unit_name = "captured syndicate gygax" + export_types = list(/obj/mecha/combat/gygax/dark) + +/datum/export/large/mech/sellable/mauler + cost = 87500 // Whoa, momma. + unit_name = "captured mauler" + export_types = list(/obj/mecha/combat/marauder/mauler) \ No newline at end of file diff --git a/code/modules/cargo/exports/manifest.dm b/code/modules/cargo/exports/manifest.dm index d59ef1093fc0..cdda8017f068 100644 --- a/code/modules/cargo/exports/manifest.dm +++ b/code/modules/cargo/exports/manifest.dm @@ -2,7 +2,6 @@ // +200 credits flat. /datum/export/manifest_correct cost = 200 - k_elasticity = 0 unit_name = "approved manifest" export_types = list(/obj/item/paper/fluff/jobs/cargo/manifest) @@ -19,7 +18,6 @@ // Refunds the package cost minus the cost of crate. /datum/export/manifest_error_denied cost = -500 - k_elasticity = 0 unit_name = "correctly denied manifest" export_types = list(/obj/item/paper/fluff/jobs/cargo/manifest) diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 42e76436c799..6ad4288d57ff 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -30,33 +30,37 @@ // Materials. Nothing but plasma is really worth selling. Better leave it all to RnD and sell some plasma instead. /datum/export/material/bananium - cost = 1000 + cost = 2500 + export_limit = 50 material_id = /datum/material/bananium message = "cm3 of bananium" /datum/export/material/diamond - cost = 500 + cost = 1000 + export_limit = 100 material_id = /datum/material/diamond message = "cm3 of diamonds" /datum/export/material/plasma cost = 200 - k_elasticity = 0 + material_id = /datum/material/plasma message = "cm3 of plasma" /datum/export/material/uranium - cost = 100 + cost = 400 + export_limit = 300 material_id = /datum/material/uranium message = "cm3 of uranium" /datum/export/material/gold - cost = 125 + cost = 250 + export_limit = 500 material_id = /datum/material/gold message = "cm3 of gold" /datum/export/material/silver - cost = 50 + cost = 100 material_id = /datum/material/silver message = "cm3 of silver" @@ -87,6 +91,7 @@ /datum/export/material/hot_ice cost = 400 + export_limit = 250 message = "cm3 of Hot Ice" material_id = /datum/material/hot_ice export_types = list(/obj/item/stack/sheet/hot_ice) diff --git a/code/modules/cargo/exports/organs.dm b/code/modules/cargo/exports/organs.dm new file mode 100644 index 000000000000..b269eafd2354 --- /dev/null +++ b/code/modules/cargo/exports/organs.dm @@ -0,0 +1,127 @@ +// Organs. + + +// Alien organs +/datum/export/organ/alien/get_cost(obj/O, allowed_categories = NONE, apply_limit = TRUE) + . = ..() + if(EXPORT_EMAG in allowed_categories) // Syndicate really wants some new bio-weapons. + . *= 1.25 + +/datum/export/organ/alien/brain + cost = 5000 + unit_name = "alien brain" + export_types = list(/obj/item/organ/brain/alien) + +/datum/export/organ/alien/acid + cost = 3000 + unit_name = "alien acid gland" + export_types = list(/obj/item/organ/alien/acid) + +/datum/export/organ/alien/hivenode + cost = 5000 + unit_name = "alien hive node" + export_types = list(/obj/item/organ/alien/hivenode) + +/datum/export/organ/alien/neurotoxin + cost = 5000 + unit_name = "alien neurotoxin gland" + export_types = list(/obj/item/organ/alien/neurotoxin) + +/datum/export/organ/alien/resinspinner + cost = 2000 + 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. + export_limit = 20 + 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. + export_limit = 10 + unit_name = "alien egg sac" + export_types = list(/obj/item/organ/alien/eggsac) + + +// Other alien organs. +/datum/export/organ/alien/abductor + cost = 2500 + export_limit = 10 + unit_name = "abductor gland" + export_types = list(/obj/item/organ/heart/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 = "regenerative core" + export_types = list(/obj/item/organ/regenerative_core) + +/datum/export/organ/hivelord/get_cost(obj/O, allowed_categories = NONE, apply_limit = TRUE) + var/obj/item/organ/regenerative_core/C = O + if(C.inert) + return ..() / 3 + if(C.preserved) + return ..() * 2 + return ..() + +// Mutant race organs. +/datum/export/organ/mutant/cat_ears + cost = 100 //as much as plasma when sold in a set, not counting the skin + unit_name = "cat ears pair" + export_types = list(/obj/item/organ/ears/cat) + +/datum/export/organ/mutant/cat_tail + cost = 100 + unit_name = "cat tail" + export_types = list(/obj/item/organ/tail/cat) + +/datum/export/organ/mutant/lizard_tail + cost = 300 + unit_name = "lizard tail" + export_types = list(/obj/item/organ/tail/lizard) + +// 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. //remind me to add the X-porter cannon in like a month or something itll be funny i swear + +/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 ..() diff --git a/code/modules/cargo/exports/seeds.dm b/code/modules/cargo/exports/seeds.dm index 7a3a09df209c..43a60309e346 100644 --- a/code/modules/cargo/exports/seeds.dm +++ b/code/modules/cargo/exports/seeds.dm @@ -2,7 +2,6 @@ GLOBAL_LIST_EMPTY(discoveredPlants) /datum/export/seed cost = 50 // Gets multiplied by potency - k_elasticity = 1 //price inelastic/quantity elastic, only need to export a few samples unit_name = "new plant species sample" export_types = list(/obj/item/seeds) var/needs_discovery = FALSE // Only for undiscovered species diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index acefd85b7b79..eb344b37ebda 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -10,36 +10,41 @@ // Hides /datum/export/stack/skin/monkey - cost = 50 + cost = 150 unit_name = "monkey hide" export_types = list(/obj/item/stack/sheet/animalhide/monkey) /datum/export/stack/skin/human - cost = 100 + cost = 2000 + export_limit = 50 export_category = EXPORT_CONTRABAND unit_name = "piece" message = "of human skin" export_types = list(/obj/item/stack/sheet/animalhide/human) /datum/export/stack/skin/goliath_hide - cost = 200 + cost = 2500 + export_limit = 50 unit_name = "goliath hide" export_types = list(/obj/item/stack/sheet/animalhide/goliath_hide) /datum/export/stack/skin/cat - cost = 150 + cost = 500 + export_limit = 100 export_category = EXPORT_CONTRABAND unit_name = "cat hide" export_types = list(/obj/item/stack/sheet/animalhide/cat) /datum/export/stack/skin/corgi - cost = 200 + cost = 500 + export_limit = 100 export_category = EXPORT_CONTRABAND unit_name = "corgi hide" export_types = list(/obj/item/stack/sheet/animalhide/corgi) /datum/export/stack/skin/lizard - cost = 150 + cost = 2500 + export_limit = 200 unit_name = "lizard hide" export_types = list(/obj/item/stack/sheet/animalhide/lizard) @@ -49,7 +54,7 @@ export_types = list(/obj/item/stack/sheet/animalhide/gondola) /datum/export/stack/skin/xeno - cost = 500 + cost = 3000 unit_name = "alien hide" export_types = list(/obj/item/stack/sheet/animalhide/xeno) @@ -57,7 +62,7 @@ // For base materials, see materials.dm /datum/export/stack/plasteel - cost = 155 // 2000u of plasma + 2000u of metal. + cost = 205 // 2000u of plasma + 2000u of metal. message = "of plasteel" export_types = list(/obj/item/stack/sheet/plasteel) @@ -68,7 +73,8 @@ export_types = list(/obj/item/stack/sheet/rglass) /datum/export/stack/bscrystal - cost = 300 + cost = 750 + export_limit = 200 message = "of bluespace crystals" export_types = list(/obj/item/stack/sheet/bluespace_crystal) @@ -102,12 +108,21 @@ /datum/export/stack/abductor cost = 1000 + export_limit = 100 message = "of alien alloy" export_types = list(/obj/item/stack/sheet/mineral/abductor) /datum/export/stack/adamantine unit_name = "bar" cost = 500 + export_limit = 200 message = "of adamantine" export_types = list(/obj/item/stack/sheet/mineral/adamantine) +// Mythril. Does not occur naurally. +/datum/export/stack/mythril + cost = 5000 + export_limit = 50 + message = "of mythril" + export_types = list(/obj/item/stack/sheet/mineral/mythril) + diff --git a/yogstation.dme b/yogstation.dme index 9075712fb6a0..2b48b24acd37 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -1679,6 +1679,7 @@ #include "code\modules\cargo\exports\lavaland.dm" #include "code\modules\cargo\exports\manifest.dm" #include "code\modules\cargo\exports\materials.dm" +#include "code\modules\cargo\exports\organs.dm" #include "code\modules\cargo\exports\parts.dm" #include "code\modules\cargo\exports\seeds.dm" #include "code\modules\cargo\exports\sheets.dm" From 64c281f1485fb8942c4f68927ccdf62ce4ffbf2f Mon Sep 17 00:00:00 2001 From: SomeguyManperson Date: Sat, 11 Sep 2021 08:17:25 -0400 Subject: [PATCH 2/7] silver bit and failure to compiwe --- code/modules/cargo/exports/materials.dm | 1 + code/modules/events/pirates.dm | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 6ad4288d57ff..df1605df7bb0 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -61,6 +61,7 @@ /datum/export/material/silver cost = 100 + export_limit = 500 material_id = /datum/material/silver message = "cm3 of silver" diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 13abf5bf54a5..b98c6a3208cb 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -357,7 +357,7 @@ for(var/atom/movable/AM in get_turf(pad)) if(AM == pad) continue - export_item_and_contents(AM, EXPORT_PIRATE | EXPORT_CARGO | EXPORT_CONTRABAND | EXPORT_EMAG, apply_elastic = FALSE, dry_run = TRUE, external_report = ex) + export_item_and_contents(AM, EXPORT_PIRATE | EXPORT_CARGO | EXPORT_CONTRABAND | EXPORT_EMAG, apply_limit = FALSE, dry_run = TRUE, external_report = ex) for(var/datum/export/E in ex.total_amount) status_report += E.total_printout(ex,notes = FALSE) @@ -376,7 +376,7 @@ for(var/atom/movable/AM in get_turf(pad)) if(AM == pad) continue - export_item_and_contents(AM, EXPORT_PIRATE | EXPORT_CARGO | EXPORT_CONTRABAND | EXPORT_EMAG, apply_elastic = FALSE, delete_unsold = FALSE, external_report = ex) + export_item_and_contents(AM, EXPORT_PIRATE | EXPORT_CARGO | EXPORT_CONTRABAND | EXPORT_EMAG, apply_limit = FALSE, delete_unsold = FALSE, external_report = ex) status_report = "Sold: " var/value = 0 From 9c5842c800a495a398c9e3fcbcdf4e06e05ea575 Mon Sep 17 00:00:00 2001 From: Theos Date: Sat, 11 Sep 2021 10:28:03 -0400 Subject: [PATCH 3/7] Update organs.dm --- code/modules/cargo/exports/organs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/exports/organs.dm b/code/modules/cargo/exports/organs.dm index b269eafd2354..cf4131cf15e5 100644 --- a/code/modules/cargo/exports/organs.dm +++ b/code/modules/cargo/exports/organs.dm @@ -102,7 +102,7 @@ // If they would be sellable, X-Porter cannon's finishing move (selling victim's organs) will be instakill with no revive. //remind me to add the X-porter cannon in like a month or something itll be funny i swear /datum/export/organ/human - contraband = TRUE + export_category = EXPORT_CONTRABAND include_subtypes = FALSE /datum/export/organ/human/heart From 3f217090ce421a0394440b5c853d4b6b2785157a Mon Sep 17 00:00:00 2001 From: Theos Date: Sat, 11 Sep 2021 10:28:34 -0400 Subject: [PATCH 4/7] fixing merge conflicts is an art --- code/modules/cargo/exports/seeds.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/cargo/exports/seeds.dm b/code/modules/cargo/exports/seeds.dm index aeffd892f192..86fe564830a9 100644 --- a/code/modules/cargo/exports/seeds.dm +++ b/code/modules/cargo/exports/seeds.dm @@ -2,7 +2,6 @@ GLOBAL_LIST_EMPTY(discoveredPlants) /datum/export/seed cost = 50 // Gets multiplied by potency - k_elasticity = 0 //price inelastic/quantity elastic, only need to export a few samples unit_name = "new plant species sample" export_types = list(/obj/item/seeds) var/needs_discovery = FALSE // Only for undiscovered species From 3d599e2e58f40a3c19f106232bb38557df45583e Mon Sep 17 00:00:00 2001 From: Theos Date: Tue, 14 Sep 2021 00:30:56 -0400 Subject: [PATCH 5/7] reduce human skin 2000 > 1000 since it's easy to get --- code/modules/cargo/exports/sheets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index eb344b37ebda..a3eea1923033 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -15,7 +15,7 @@ export_types = list(/obj/item/stack/sheet/animalhide/monkey) /datum/export/stack/skin/human - cost = 2000 + cost = 1000 export_limit = 50 export_category = EXPORT_CONTRABAND unit_name = "piece" From 9e89f6671f78070fc31de282d306faf79cc5bd06 Mon Sep 17 00:00:00 2001 From: Theos Date: Tue, 14 Sep 2021 00:38:15 -0400 Subject: [PATCH 6/7] Update sheets.dm --- code/modules/cargo/exports/sheets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index a3eea1923033..abb5226d9fc7 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -15,7 +15,7 @@ export_types = list(/obj/item/stack/sheet/animalhide/monkey) /datum/export/stack/skin/human - cost = 1000 + cost = 500 //surprisingly easy to get human skin who would have thought export_limit = 50 export_category = EXPORT_CONTRABAND unit_name = "piece" From a9fea8eab41d0502c39d571ffa9945bc65644408 Mon Sep 17 00:00:00 2001 From: Theos Date: Tue, 14 Sep 2021 00:40:20 -0400 Subject: [PATCH 7/7] nerfs organ prices so monkey spam can't get infinite cash --- code/modules/cargo/exports/organs.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/cargo/exports/organs.dm b/code/modules/cargo/exports/organs.dm index cf4131cf15e5..7c5d7c19c3c6 100644 --- a/code/modules/cargo/exports/organs.dm +++ b/code/modules/cargo/exports/organs.dm @@ -101,23 +101,23 @@ // 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. //remind me to add the X-porter cannon in like a month or something itll be funny i swear -/datum/export/organ/human +/datum/export/organ/human //it is regrettably easy to get human organs with very little moral dubiation so the prices have to be quite small to still allow organ farms export_category = EXPORT_CONTRABAND include_subtypes = FALSE /datum/export/organ/human/heart - cost = 500 + cost = 100 unit_name = "heart" export_types = list(/obj/item/organ/heart) /datum/export/organ/human/lungs - cost = 400 + cost = 50 unit_name = "pair" message = "of lungs" export_types = list(/obj/item/organ/lungs) /datum/export/organ/human/appendix - cost = 50 + cost = 10 unit_name = "appendix" export_types = list(/obj/item/organ/appendix)