diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm index e9fdda293686d..0bb8e8ad930e8 100644 --- a/code/__DEFINES/cargo.dm +++ b/code/__DEFINES/cargo.dm @@ -58,6 +58,6 @@ //At 320 it's 475 credits, at 1400 it's 669 credits, at 3000 (around gun crates) its 778, at 8000 (hat crate) it's 925 credits, at 9000 (expensive atmos cans) it's 943 credits, and at the 20k crate it's 1070 credits. /// Multiplies the logarithmic value calculating the free crate delivery reward -#define DEPARTMENTAL_ORDER_REWARD_COEFFICIENT 120 +#define DEPARTMENTAL_ORDER_REWARD_COEFFICIENT 40 // BANDASTATION EDIT - Original: 120 /// Used for the power of the logarithmic value for the free crate delivery reward #define DEPARTMENTAL_ORDER_REWARD_EXPONENT 1.5 diff --git a/code/controllers/subsystem/stock_market.dm b/code/controllers/subsystem/stock_market.dm index 7d0e0ea9262ee..576f02ad8e9a6 100644 --- a/code/controllers/subsystem/stock_market.dm +++ b/code/controllers/subsystem/stock_market.dm @@ -1,7 +1,7 @@ SUBSYSTEM_DEF(stock_market) name = "Stock Market" - wait = 60 SECONDS + wait = 180 SECONDS // BANDASTATION EDIT - Original: 60 SECONDS init_order = INIT_ORDER_DEFAULT runlevels = RUNLEVEL_GAME @@ -48,10 +48,10 @@ SUBSYSTEM_DEF(stock_market) var/new_price = materials_prices[mat.type] + delta //get the limits - var/price_minimum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 0.5) + var/price_minimum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 0.8) // BANDASTATION EDIT - Original: * 0.5) if(!isnull(mat.minimum_value_override)) price_minimum = round(mat.minimum_value_override * SHEET_MATERIAL_AMOUNT) - var/price_maximum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 3) + var/price_maximum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 2) // BANDASTATION EDIT - Original: * 3) //clamp it down new_price = round(clamp(new_price, price_minimum, price_maximum)) @@ -81,10 +81,10 @@ SUBSYSTEM_DEF(stock_market) var/trend_life = materials_trend_life[mat] var/price_units = materials_prices[mat] - var/price_minimum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 0.5) + var/price_minimum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 0.8) // BANDASTATION EDIT - Original: * 0.5) if(!isnull(mat.minimum_value_override)) price_minimum = round(mat.minimum_value_override * SHEET_MATERIAL_AMOUNT) - var/price_maximum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 3) + var/price_maximum = round(mat.value_per_unit * SHEET_MATERIAL_AMOUNT * 2) // BANDASTATION EDIT - Original: * 3) var/price_baseline = mat.value_per_unit * SHEET_MATERIAL_AMOUNT var/quantity_baseline = mat.tradable_base_quantity diff --git a/code/datums/elements/deliver_first.dm b/code/datums/elements/deliver_first.dm index b49c4dc28f4bf..8ae25c5ed0a43 100644 --- a/code/datums/elements/deliver_first.dm +++ b/code/datums/elements/deliver_first.dm @@ -90,7 +90,6 @@ if(area_check(target)) //noice, delivered! var/datum/bank_account/cargo_account = SSeconomy.get_dep_account(ACCOUNT_CAR) - cargo_account.adjust_money(DEPARTMENTAL_ORDER_REWARD_COEFFICIENT * (log(10, payment) ** DEPARTMENTAL_ORDER_REWARD_EXPONENT)) remove_lock(target) diff --git a/code/modules/hydroponics/unique_plant_genes.dm b/code/modules/hydroponics/unique_plant_genes.dm index 64097a26c7627..65449e434ea4f 100644 --- a/code/modules/hydroponics/unique_plant_genes.dm +++ b/code/modules/hydroponics/unique_plant_genes.dm @@ -15,15 +15,16 @@ if(!.) return var/obj/item/seeds/our_seed = our_plant.get_plant_seed() - shield_uses = round(our_seed.potency / 20) + shield_uses = round(our_seed.potency / 95) // BANDASTATION EDIT - Original: / 20) //deliver us from evil o melon god - our_plant.AddComponent(/datum/component/anti_magic, \ - antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, \ - inventory_flags = ITEM_SLOT_HANDS, \ - charges = shield_uses, \ - drain_antimagic = CALLBACK(src, PROC_REF(drain_antimagic)), \ - expiration = CALLBACK(src, PROC_REF(expire)), \ - ) + if(shield_uses >= 1) // BANDASTATION Addition - No more shield if potency less than 95 + our_plant.AddComponent(/datum/component/anti_magic, \ + antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, \ + inventory_flags = ITEM_SLOT_HANDS, \ + charges = shield_uses, \ + drain_antimagic = CALLBACK(src, PROC_REF(drain_antimagic)), \ + expiration = CALLBACK(src, PROC_REF(expire)), \ + ) /// When the plant our gene is hosted in is drained of an anti-magic charge. /datum/plant_gene/trait/anti_magic/proc/drain_antimagic(mob/user, obj/item/our_plant) diff --git a/modular_bandastation/balance/_balance.dme b/modular_bandastation/balance/_balance.dme index 4221a4ce97334..4e6790437dcb3 100644 --- a/modular_bandastation/balance/_balance.dme +++ b/modular_bandastation/balance/_balance.dme @@ -3,12 +3,19 @@ #include "code/~defines.dm" #include "code/bodyparts/head.dm" +#include "code/cargo/exports/materials.dm" +#include "code/cargo/packs/goodies.dm" +#include "code/cargo/packs/livestock.dm" +#include "code/cargo/packs/science.dm" +#include "code/cargo/packs/security.dm" #include "code/crew_manifest.dm" #include "code/dynamic.dm" #include "code/events.dm" +#include "code/laser.dm" +#include "code/materials_market.dm" +#include "code/religion.dm" #include "code/speed/base_speed.dm" #include "code/speed/movespeed_modifier.dm" -#include "code/religion.dm" #include "code/station_traits.dm" #include "code/supply_packs.dm" #include "code/wounds/cranial_fissure.dm" diff --git a/modular_bandastation/balance/code/cargo/exports/materials.dm b/modular_bandastation/balance/code/cargo/exports/materials.dm new file mode 100644 index 0000000000000..a0c3dfa0d66d4 --- /dev/null +++ b/modular_bandastation/balance/code/cargo/exports/materials.dm @@ -0,0 +1,40 @@ +// MARK: EXPORT MATERIAL PRICES +/datum/export/material/plasma + cost = CARGO_CRATE_VALUE * 0.1 + +/datum/export/material/bananium + cost = CARGO_CRATE_VALUE * 0.5 + +/datum/export/material/adamantine // For whatever reason, adamantine doesn't truly exist in export list + cost = CARGO_CRATE_VALUE * 0.7 + material_id = /datum/material/adamantine + message = "cm3 of adamantine" + +/datum/export/material/mythril + cost = CARGO_CRATE_VALUE * 0.75 + +/datum/export/material/plastic + cost = CARGO_CRATE_VALUE * 0.0125 + +/datum/export/material/runite + cost = CARGO_CRATE_VALUE * 0.3 + +/datum/export/material/diamond + cost = CARGO_CRATE_VALUE * 0.7 + material_id = /datum/material/diamond // For whatever reason, in original there is adamantine instead of diamond + message = "cm3 of diamond" + +/datum/export/material/uranium + cost = CARGO_CRATE_VALUE * 0.4 + +/datum/export/material/gold + cost = CARGO_CRATE_VALUE * 0.5 + +/datum/export/material/silver + cost = CARGO_CRATE_VALUE * 0.2 + +/datum/export/material/titanium + cost = CARGO_CRATE_VALUE * 0.5 + +/datum/export/material/bscrystal + cost = CARGO_CRATE_VALUE * 0.7 diff --git a/modular_bandastation/balance/code/cargo/packs/goodies.dm b/modular_bandastation/balance/code/cargo/packs/goodies.dm new file mode 100644 index 0000000000000..bee28d0d6bc2e --- /dev/null +++ b/modular_bandastation/balance/code/cargo/packs/goodies.dm @@ -0,0 +1,31 @@ +// MARK: GUNS +/datum/supply_pack/goody/mars_single + cost = PAYCHECK_CREW * 60 // Original price: 2000 New price: 3000 + +/datum/supply_pack/goody/ballistic_single + cost = PAYCHECK_COMMAND * 22.5 // Original price: 1500 New price: 2250 + +/datum/supply_pack/goody/energy_single + cost = PAYCHECK_COMMAND * 18 // Original price: 1200 New price: 1800 + +/datum/supply_pack/goody/laser_single + cost = PAYCHECK_COMMAND * 9 // Original price: 600 New price: 900 + +/datum/supply_pack/goody/double_barrel + cost = PAYCHECK_COMMAND * 27 // Original price: 1800 New price: 2700 + +// MARK: AMMO +/datum/supply_pack/goody/dumdum38 + cost = PAYCHECK_CREW * 4 // Original price: 100 New price: 200 + +/datum/supply_pack/goody/match38 + cost = PAYCHECK_CREW * 4 // Original price: 100 New price: 200 + +/datum/supply_pack/goody/rubber + cost = PAYCHECK_CREW * 3 // Original price: 75 New price: 150 + +/datum/supply_pack/goody/dumdum38br + cost = PAYCHECK_CREW * 4 // Original price: 100 New price: 200 + +/datum/supply_pack/goody/match38br + cost = PAYCHECK_CREW * 4 // Original price: 100 New price: 200 diff --git a/modular_bandastation/balance/code/cargo/packs/livestock.dm b/modular_bandastation/balance/code/cargo/packs/livestock.dm new file mode 100644 index 0000000000000..885916bfb587c --- /dev/null +++ b/modular_bandastation/balance/code/cargo/packs/livestock.dm @@ -0,0 +1,3 @@ +// MARK: LIVESTOCK +/datum/supply_pack/critter/pony // Fun not allowed or has to be too expensive + cost = 9000 // Original price: 800 New price: 9000 diff --git a/modular_bandastation/balance/code/cargo/packs/science.dm b/modular_bandastation/balance/code/cargo/packs/science.dm new file mode 100644 index 0000000000000..09697ad95ea57 --- /dev/null +++ b/modular_bandastation/balance/code/cargo/packs/science.dm @@ -0,0 +1,27 @@ +// MARK: SCIENCE +/datum/supply_pack/science/raw_flux_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_hallucination_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_grav_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_vortex_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_ectoplasm_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_bluespace_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_pyro_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_bioscrambler_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 + +/datum/supply_pack/science/raw_dimensional_anomaly + cost = CARGO_CRATE_VALUE * 25 // Original price: 2000 New price: 5000 diff --git a/modular_bandastation/balance/code/cargo/packs/security.dm b/modular_bandastation/balance/code/cargo/packs/security.dm new file mode 100644 index 0000000000000..52179a06e2dee --- /dev/null +++ b/modular_bandastation/balance/code/cargo/packs/security.dm @@ -0,0 +1,25 @@ +// MARK: WEAPONS +/datum/supply_pack/security/laser + cost = CARGO_CRATE_VALUE * 6 // Original price: 800 New price: 1200 + +/datum/supply_pack/security/armory/ballistic + cost = CARGO_CRATE_VALUE * 26 // Original price: 3500 New price: 5200 + +/datum/supply_pack/security/armory/energy + cost = CARGO_CRATE_VALUE * 27 // Original price: 3600 New price: 5400 + +/datum/supply_pack/security/armory/laser_carbine + cost = CARGO_CRATE_VALUE * 13.5 // Original price: 1800 New price: 2700 + +/datum/supply_pack/security/armory/disabler_smg + cost = CARGO_CRATE_VALUE * 11 // Original price: 1400 New price: 2200 + +/datum/supply_pack/security/armory/battle_rifle + cost = CARGO_CRATE_VALUE * 60 // Original price: 20000 New price: 12000 + +// MARK: AMMO +/datum/supply_pack/security/ammo + cost = CARGO_CRATE_VALUE * 12 // Original price: 1600 New price: 2400 + +/datum/supply_pack/security/armory/br_mag + cost = CARGO_CRATE_VALUE * 10.5 // Original price: 1400 New price: 2100 diff --git a/modular_bandastation/balance/code/laser.dm b/modular_bandastation/balance/code/laser.dm new file mode 100644 index 0000000000000..83ad5df35e4a9 --- /dev/null +++ b/modular_bandastation/balance/code/laser.dm @@ -0,0 +1,11 @@ +// MARK: Сarbine changes +/obj/item/ammo_casing/energy/lasergun/carbine + e_cost = LASER_SHOTS(30, STANDARD_CELL_CHARGE) // Original: LASER_SHOTS(40, STANDARD_CELL_CHARGE) + +/obj/projectile/beam/laser/carbine/Initialize(mapload) + . = ..() + speed = speed * 0.7 // Original: 1.25 + +/obj/item/gun/energy/laser/carbine/Initialize(mapload) + . = ..() + AddComponent(/datum/component/automatic_fire, 0.2 SECONDS, allow_akimbo = FALSE) // Original: automatic_fire, 0.15 SECONDS diff --git a/modular_bandastation/balance/code/materials_market.dm b/modular_bandastation/balance/code/materials_market.dm new file mode 100644 index 0000000000000..00d12d2807a2b --- /dev/null +++ b/modular_bandastation/balance/code/materials_market.dm @@ -0,0 +1,13 @@ +// MARK: Override mateials market desc and opportunity to sell minerals + +/obj/machinery/materials_market + desc = "Данная машина позволяет пользователю покупать различные полезные материалы \ + по всей системе. Ещё недавно она предоставляла возможность не только покупать, но и продавать материалы. Однако после обвала рынка минералов в 2565 году механизм продажи был удалён. \ + Известно, что цены колеблются довольно часто, как правило в течение нескольких минут. Все сделки являются окончательными." + +/obj/machinery/materials_market/attackby(obj/item/attacking_item, mob/user, params) + if(is_type_in_list(attacking_item, exportable_material_items)) + say("Продажа материалов через Галактический рынок материалов невозможна из-за Красного экономического закона №0931, введённого Отделом экономического роста и развития НТ. Пожалуйста, экспортируйте материалы с использованием стандартных транспортно-грузовых отношений в соответствии с рабочими процедурами НТ.") + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, FALSE) + return TRUE + return ..()