mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
35 lines
1.4 KiB
Plaintext
35 lines
1.4 KiB
Plaintext
|
|
//Techweb nodes are GLOBAL, there should only be one instance of them in the game. Persistant changes should never be made to them in-game.
|
|
|
|
/datum/techweb_node
|
|
var/id
|
|
var/display_name = "Errored Node"
|
|
var/description = "Why are you seeing this?"
|
|
var/hidden = FALSE //Whether it starts off hidden.
|
|
var/starting_node = FALSE //Whether it's available without any research.
|
|
var/list/prereq_ids = list()
|
|
var/list/design_ids = list()
|
|
var/list/datum/techweb_node/prerequisites = list() //Assoc list id = datum
|
|
var/list/datum/techweb_node/unlocks = list() //CALCULATED FROM OTHER NODE'S PREREQUISITES. Assoc list id = datum.
|
|
var/list/datum/design/designs = list() //Assoc list id = datum
|
|
var/list/boost_item_paths = list() //Associative list, path = list(point type = point_value).
|
|
var/autounlock_by_boost = TRUE //boosting this will autounlock this node.
|
|
var/export_price = 0 //Cargo export price.
|
|
var/list/research_costs = list() //Point cost to research. type = amount
|
|
var/category = "Misc" //Category
|
|
|
|
/datum/techweb_node/proc/get_price(datum/techweb/host)
|
|
if(host)
|
|
var/list/actual_costs = research_costs
|
|
if(host.boosted_nodes[src])
|
|
var/list/L = host.boosted_nodes[src]
|
|
for(var/i in L)
|
|
if(actual_costs[i])
|
|
actual_costs[i] -= L[i]
|
|
return actual_costs
|
|
else
|
|
return research_costs
|
|
|
|
/datum/techweb_node/proc/price_display(datum/techweb/TN)
|
|
return techweb_point_display_generic(get_price(TN))
|