Massive research refactor; changes research system to techwebs; Decentralized research

This commit is contained in:
kevinz000
2017-11-18 19:55:40 -08:00
committed by kevinz000
parent dabd669913
commit caa1e1f400
329 changed files with 5694 additions and 4220 deletions
@@ -0,0 +1,30 @@
//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 = point_value.
var/autounlock_by_boost = TRUE //boosting this will autounlock this node.
var/export_price = 0 //Cargo export price.
var/research_cost = 0 //Point cost to research.
var/actual_cost = 0
var/category = "Misc" //Category
/datum/techweb_node/New()
actual_cost = research_cost
/datum/techweb_node/proc/get_price(datum/techweb/host)
if(!host)
return actual_cost
var/discount = boost_item_paths[host.boosted_nodes[src]]
actual_cost = research_cost - discount
return actual_cost