Files
Bubberstation/code/modules/cargo/exports/large_objects.dm
ArcaneMusic e09a9032da Crates and bountes are now defined by crate's value and paygrades. Civilian bounty payout is higher and uncheesable. (#55413)
Does a value-wise refactor of crates and bounties in order to scale the value of these imports and exports to the value of crate exports (500 credits each). Then, I have adjusted the value of crate exports to 200 credits down from 500 to place the most standard unit of profit within cargo to a scale within that of roundstart paygrades currently on station. (350-1400 credits).

This effectively balances one of the biggest disparities left within the in-game economy, which is that cargo's price scales have really never been re-balanced with the considerations of on station prices, and have been still to the same scale as when they were based on cargo points 3 years ago. While admittedly some prices in vendors were scale to those original cargo values, so many of them weren't that it warranted a massive rebalance PR in order to places the scale of these items within an appropriate range of their intended user's cost values.
2020-12-10 23:43:46 +00:00

153 lines
4.9 KiB
Plaintext

/datum/export/large/crate
cost = CARGO_CRATE_VALUE
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)
/datum/export/large/crate/total_printout(datum/export_report/ex, notes = TRUE) // That's why a goddamn metal crate costs that much.
. = ..()
if(. && notes)
. += " Thanks for participating in Nanotrasen Crates Recycling Program."
/datum/export/large/crate/wooden
cost = CARGO_CRATE_VALUE/5
unit_name = "large 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)
/datum/export/large/crate/wood
cost = CARGO_CRATE_VALUE * 0.48
unit_name = "wooden crate"
export_types = list(/obj/structure/closet/crate/wooden)
exclude_types = list()
/datum/export/large/crate/coffin
cost = CARGO_CRATE_VALUE/2 //50 wooden crates cost 2000 points, and you can make 10 coffins in seconds with those planks. Each coffin selling for 250 means you can make a net gain of 500 points for wasting your time making coffins.
unit_name = "coffin"
export_types = list(/obj/structure/closet/crate/coffin)
/datum/export/large/reagent_dispenser
cost = CARGO_CRATE_VALUE * 0.5 // +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 = CARGO_CRATE_VALUE * 3.5
export_types = list(/obj/structure/reagent_dispensers/beerkeg)
/datum/export/large/pipedispenser
cost = CARGO_CRATE_VALUE * 2.5
unit_name = "pipe dispenser"
export_types = list(/obj/machinery/pipedispenser)
/datum/export/large/emitter
cost = CARGO_CRATE_VALUE * 2.75
unit_name = "emitter"
export_types = list(/obj/machinery/power/emitter)
/datum/export/large/field_generator
cost = CARGO_CRATE_VALUE * 2.75
unit_name = "field generator"
export_types = list(/obj/machinery/field/generator)
/datum/export/large/collector
cost = CARGO_CRATE_VALUE * 2
unit_name = "radiation collector"
export_types = list(/obj/machinery/power/rad_collector)
/datum/export/large/tesla_coil
cost = CARGO_CRATE_VALUE * 2.25
unit_name = "tesla coil"
export_types = list(/obj/machinery/power/tesla_coil)
/datum/export/large/supermatter
cost = CARGO_CRATE_VALUE * 16
unit_name = "supermatter shard"
export_types = list(/obj/machinery/power/supermatter_crystal/shard)
/datum/export/large/grounding_rod
cost = CARGO_CRATE_VALUE * 1.2
unit_name = "grounding rod"
export_types = list(/obj/machinery/power/grounding_rod)
/datum/export/large/iv
cost = CARGO_CRATE_VALUE * 0.25
unit_name = "iv drip"
export_types = list(/obj/machinery/iv_drip)
/datum/export/large/barrier
cost = CARGO_CRATE_VALUE * 0.25
unit_name = "security barrier"
export_types = list(/obj/item/grenade/barrier, /obj/structure/barricade/security)
/datum/export/large/gas_canister
cost = CARGO_CRATE_VALUE * 0.05 //Base cost of canister. You get more for nice gases inside.
unit_name = "Gas Canister"
export_types = list(/obj/machinery/portable_atmospherics/canister)
k_elasticity = 0.00033
/datum/export/large/gas_canister/get_cost(obj/O)
var/obj/machinery/portable_atmospherics/canister/C = O
var/worth = 10
var/canister_mix = C.air_contents.gases
var/list/gases_to_check = list(/datum/gas/bz,
/datum/gas/stimulum,
/datum/gas/hypernoblium,
/datum/gas/miasma,
/datum/gas/tritium,
/datum/gas/pluoxium,
/datum/gas/freon,
/datum/gas/hydrogen,
/datum/gas/healium,
/datum/gas/proto_nitrate,
/datum/gas/zauker,
/datum/gas/helium,
/datum/gas/antinoblium,
/datum/gas/halon
)
var/list/gas_prices = list(/datum/gas/bz = 2,
/datum/gas/stimulum = 100,
/datum/gas/hypernoblium = 5,
/datum/gas/miasma = 2,
/datum/gas/tritium = 5,
/datum/gas/pluoxium = 5,
/datum/gas/freon = 15,
/datum/gas/hydrogen = 1,
/datum/gas/healium = 19,
/datum/gas/proto_nitrate = 5,
/datum/gas/zauker = 1050,
/datum/gas/helium = 6,
/datum/gas/antinoblium = 10,
/datum/gas/halon = 9
)
for(var/gasID in gases_to_check)
C.air_contents.assert_gas(gasID)
if(canister_mix[gasID][MOLES] > 0)
worth += round((gas_prices[gasID]/k_elasticity) * (1 - NUM_E**(-1 * k_elasticity * canister_mix[gasID][MOLES])))
C.air_contents.garbage_collect()
return worth