The offstation cargo update (Ready) (#1764)

## About The Pull Request

First things first, credit to tmyqlfpir aka Feignsleep for making the
initial cargo crate import code. I probably butchered it when I messed
with it to make it only import on console so make sure to yell at me if
there are issues.

This PR does several things. 

FIRST it brings Tarkon up to date with Interdyne as far as cargo goes.
In this case, that means an express cargo console, selling pad, and
powerator tied to a budget account.

Second, thing, both Interdyne and Tarkon now have access to cargo
company items. Its a bit janky but it should do for at least now. With
how it was done, we should be able to add unique items to the consoles
for each faction, although that might need some work.

As a minor note, I also nerfed the interdyne powerator. It had a 2x
multiplier and I'm not sure that is really needed.

## Why It's Good For The Game

Cargo goes brrrt, also Tarkon could use some love.

## Proof Of Testing


![image](https://github.com/Bubberstation/Bubberstation/assets/46614774/a34cd62a-e40d-4c35-9305-20e3f77aed18)

## Changelog

🆑
add: Cargo Companies are now available to offstation factions
add: Tarkon now has a cargo setup available to them
balance: rebalanced something
/🆑

---------

Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: Swift <jackwars4@gmail.com>
This commit is contained in:
shellspeed1
2024-09-15 17:45:06 +00:00
committed by GitHub
co-authored by The Sharkening Waterpig Swift
parent 3e9ff52b8d
commit 83a0f35c71
8 changed files with 163 additions and 12 deletions
+5 -1
View File
@@ -2,6 +2,10 @@
#define CIV_JOB_SMITH 21 //By making this higher we avoid having to maintain this value if more bounties are added upstream
#define CIV_JOB_PRISONER 22 //Basically restricted assistant bounties
//This is needed for dauntless to have their own cargo express console/powerator
//This is needed for Dauntless to have their own cargo express console/powerator
#define ACCOUNT_INT "INT"
#define ACCOUNT_INT_NAME "Interdyne Budget"
//This is needed for Tarkon to have their own cargo express console/powerator
#define ACCOUNT_TAR "TAR"
#define ACCOUNT_TAR_NAME "Tarkon Budget"
+1
View File
@@ -15,6 +15,7 @@ SUBSYSTEM_DEF(economy)
ACCOUNT_CAR = ACCOUNT_CAR_NAME,
ACCOUNT_CMD = ACCOUNT_CMD_NAME, // SKYRAT EDIT
ACCOUNT_INT = ACCOUNT_INT_NAME, // BUBBER EDIT
ACCOUNT_TAR = ACCOUNT_TAR_NAME, // END BUBBER EDIT
ACCOUNT_SEC = ACCOUNT_SEC_NAME)
var/list/departmental_accounts = list()
/**
@@ -27,7 +27,11 @@
design_ids = list(
"mod_plating_tarkon",
"arcs",
"rcd_tarkon"
"rcd_tarkon", //BUBBER EDIT (comma)
"powerator_tarkon",//BUBBER EDIT Addition start
"cargoconsole_tarkon",
"bountypad_tarkon",
"bountyconsole_tarkon"//BUBBER EDIT Addition end
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
hidden = TRUE
@@ -80,7 +84,7 @@
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
///// Now we make the physical server /////
/obj/item/circuitboard/machine/rdserver/tarkon
@@ -176,3 +180,4 @@
qdel(research_notes)
return
return ..()
@@ -135,3 +135,27 @@
pad.icon_state = pad.idle_state
#undef SYN_BOUNTY_PAD_WARM_TIME
//Tarkon Pad
/obj/item/circuitboard/machine/syndiepad/tarkon
name = "tarkon bounty pad"
greyscale_colors = CIRCUIT_COLOR_GENERIC
build_path = /obj/machinery/piratepad/syndiepad/tarkon
/obj/machinery/piratepad/syndiepad/tarkon
name = "Tarkon bounty pad"
desc = "A standard Tarkon bounty pad used by Tarkon Industries \
send any (non-living) object to an distant off-sector\ \
for processing. No returns!"
circuit = /obj/item/circuitboard/machine/syndiepad/tarkon
/obj/item/circuitboard/computer/syndiepad/tarkon
name = "tarkon bounty control terminal"
build_path = /obj/machinery/computer/piratepad_control/syndiepad/tarkon
/obj/machinery/computer/piratepad_control/syndiepad/tarkon
name = "Tarkon bounty control terminal"
desc = "A console for an old model of a citizen bounty pad."
circuit = /obj/item/circuitboard/computer/syndiepad/tarkon
credits_account = ACCOUNT_TAR
@@ -10,19 +10,78 @@
being emagged by the Syndicate cadets of the SSV Dauntless."
circuit = /obj/item/circuitboard/computer/cargo/express/interdyne
req_access = list(ACCESS_SYNDICATE)
podType = /obj/structure/closet/supplypod/bluespacepod
cargo_account = ACCOUNT_INT
contraband = TRUE
var/allowed_categories = list(COMPANY_NAME_VITEZSTVI_AMMO, //used for company items import supports companies and specific categories
COMPANY_NAME_ALLSTAR_ENERGY,
COMPANY_NAME_MICRON_CONTROL_SYSTEMS,
COMPANY_NAME_SOL_DEFENSE_DEFENSE,
COMPANY_NAME_FRONTIER_EQUIPMENT,
COMPANY_NAME_KAHRAMAN_INDUSTRIES,
COMPANY_NAME_DONK_CO,
COMPANY_NAME_DEFOREST_MEDICAL,
COMPANY_NAME_NRI_SURPLUS,
COMPANY_NAME_BLACKSTEEL_FOUNDATION,
COMPANY_NAME_NAKAMURA_ENGINEERING_MODSUITS
)
podType = /obj/structure/closet/supplypod/bluespacepod
/obj/machinery/computer/cargo/express/interdyne/emag_act(mob/user, obj/item/card/emag/emag_card)
if(user)
to_chat(user, span_notice("You try to change the routing protocols, however the machine displays a runtime error and reboots."))
return FALSE//never let this console be emagged
/obj/machinery/computer/cargo/express/interdyne/packin_up()//we're the dauntless, add the company imports stuff to our express console
. = ..()
if(!meme_pack_data["Company Imports"])
meme_pack_data["Company Imports"] = list(
"name" = "Company Imports",
"packs" = list()
)
for(var/armament_category as anything in SSarmaments.entries)//babe! it's 4pm, time for the company importing logic
for(var/subcategory as anything in SSarmaments.entries[armament_category][CATEGORY_ENTRY])
if(armament_category in allowed_categories)
for(var/datum/armament_entry/armament_entry as anything in SSarmaments.entries[armament_category][CATEGORY_ENTRY][subcategory])
meme_pack_data["Company Imports"]["packs"] += list(list(
"name" = "[armament_category]: [armament_entry.name]",
"cost" = armament_entry.cost,
"id" = REF(armament_entry),
"description" = armament_entry.description,
))
/obj/machinery/computer/cargo/express/interdyne/ui_act(action, params, datum/tgui/ui)
if(action == "add")//if we're generating a supply order
if (!beacon || !usingBeacon)//if not using beacon
say("Error! Destination is not whitelisted, aborting.")
return
. = ..()
var/id = params["id"]
id = text2path(id) || id
var/datum/supply_pack/is_supply_pack = SSshuttle.supply_packs[id]
if(!is_supply_pack || !istype(is_supply_pack))//if we're ordering a company import pack, add a temp pack to the global supply packs list, and remove it
var/datum/armament_entry/armament_order = locate(id)
params["id"] = length(SSshuttle.supply_packs) + 1
var/datum/supply_pack/armament/temp_pack = new
temp_pack.name = initial(armament_order.item_type.name)
temp_pack.cost = armament_order.cost
temp_pack.contains = list(armament_order.item_type)
SSshuttle.supply_packs += temp_pack
. = ..()
SSshuttle.supply_packs -= temp_pack
return .
return ..()
//Tarkons console
/obj/item/circuitboard/computer/cargo/express/interdyne/tarkon
name = "Tarkon Express Supply Console"
build_path = /obj/machinery/computer/cargo/express/interdyne/tarkon
contraband = TRUE
/obj/machinery/computer/cargo/express/interdyne/tarkon
name = "interdyne express supply console"
desc = "A standard Tarkon express console."
circuit = /obj/item/circuitboard/computer/cargo/express/interdyne/tarkon
req_access = list(ACCESS_TARKON)
cargo_account = ACCOUNT_TAR
@@ -1,16 +1,25 @@
/obj/item/circuitboard/machine/powerator/interdyne
name = "Ancient Powerator"
name = "Interdyne Powerator"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
build_path = /obj/machinery/powerator/interdyne
/obj/machinery/powerator/interdyne
name = "ancient powerator"
name = "Interdyne powerator"
desc = "Beyond the ridiculous name, it is the standard for transporting and selling energy to power networks that require additional sources! It appears to be an earlier variant before environmental regulation reduced its efficiency."
circuit = /obj/item/circuitboard/machine/powerator/interdyne
/// the account credits will be sent towards
credits_account = ACCOUNT_INT
/obj/machinery/powerator/interdyne/RefreshParts()
. = ..()
divide_ratio *= 2 //Make it easier for the folks down at Interdyne to make some CASH MONEY
/obj/item/circuitboard/machine/powerator/tarkon
name = "Tarkon Powerator"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
build_path = /obj/machinery/powerator/tarkon
/obj/machinery/powerator/tarkon
name = "Tarkon powerator"
desc = "Beyond the ridiculous name, it is the standard for transporting and selling energy to power networks that require additional sources! It appears to be an earlier variant before environmental regulation reduced its efficiency."
circuit = /obj/item/circuitboard/machine/powerator/tarkon
/// the account credits will be sent towards
credits_account = ACCOUNT_TAR
@@ -0,0 +1,48 @@
///// Bubber added Tarkon Tech /////
/datum/design/tarkonpowerator
name = "Tarkon Powerator"
desc = "The circuit board for a machine that can sell power."
id = "powerator_tarkon"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
build_path = /obj/item/circuitboard/machine/powerator/tarkon
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/tarkonexpressconsole
name = "Tarkon Express Cargo Console"
desc = "The circuit board for a computer used to purchase goods."
id = "cargoconsole_tarkon"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
build_path = /obj/item/circuitboard/computer/cargo/express/interdyne/tarkon
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/bountypad
name = "Tarkon Bounty Pad"
desc = "The circuit board for a machine used to sell goods."
id = "bountypad_tarkon"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
build_path = /obj/item/circuitboard/machine/syndiepad/tarkon
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/bountypadconsole
name = "Tarkon Express Cargo Console"
desc = "The circuit board for the Ta used to sell goods."
id = "bountyconsole_tarkon"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
build_path = /obj/item/circuitboard/computer/syndiepad/tarkon
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
+1
View File
@@ -9194,6 +9194,7 @@
#include "modular_zubbers\code\modules\surgery\organs\external\wings.dm"
#include "modular_zubbers\code\modules\surgery\organs\internal\eyes\_eyes.dm"
#include "modular_zubbers\code\modules\surgery\organs\internal\lungs\_lungs.dm"
#include "modular_zubbers\code\modules\tarkon\code\misc-fluff\research.dm"
#include "modular_zubbers\code\modules\taur_mechanics\serpentine_taur.dm"
#include "modular_zubbers\code\modules\title_screen\code\title_screen_subsystem.dm"
#include "modular_zubbers\code\modules\vehicles\mech_fabricator.dm"