Techweb

A datum representing a research techweb
Techweb datums are meant to store unlocked research, being able to be stored on research consoles, servers, and disks. They are NOT global.
Vars | |
| available_experiments | Available experiments |
|---|---|
| available_nodes | Nodes that can immediately be researched, all reqs met. assoc list, id = TRUE |
| boosted_nodes | Already boosted nodes that can't be boosted again. node id = path of boost object. |
| completed_experiments | Completed experiments |
| custom_designs | Custom inserted designs like from disks that should survive recalculation. |
| deconstructed_items | Items already deconstructed for a generic point boost, path = list(point_type = points) |
| discovered_mutations | Mutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console |
| hidden_nodes | Hidden nodes. id = TRUE. Used for unhiding nodes when requirements are met by removing the entry of the node. |
| last_bitcoins | Current per-second production, used for display only. |
| organization | Organization name, used for display |
| research_logs | IC logs |
| research_points | Available research points, type = number |
| researched_designs | Designs that are available for use. Assoc list, id = TRUE |
| researched_nodes | Already unlocked and all designs are now available. Assoc list, id = TRUE |
| tiers | Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on |
| visible_nodes | Visible nodes, doesn't mean it can be researched. Assoc list, id = TRUE |
Procs | |
| add_experiment | Adds an experiment to this techweb by its type, ensures that no duplicates are added. |
| add_experiments | Adds a list of experiments to this techweb by their types, ensures that no duplicates are added. |
| can_unlock_node | Checks if a node can be unlocked on this techweb, having the required points and experiments |
| complete_experiment | Notifies the techweb that an experiment has been completed, updating internal state of the techweb to reflect this. |
| have_experiments_for_node | Checks if all experiments have been completed for a given node on this techweb |
Var Details
available_experiments

Available experiments
available_nodes

Nodes that can immediately be researched, all reqs met. assoc list, id = TRUE
boosted_nodes

Already boosted nodes that can't be boosted again. node id = path of boost object.
completed_experiments

Completed experiments
custom_designs

Custom inserted designs like from disks that should survive recalculation.
deconstructed_items

Items already deconstructed for a generic point boost, path = list(point_type = points)
discovered_mutations

Mutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console
hidden_nodes

Hidden nodes. id = TRUE. Used for unhiding nodes when requirements are met by removing the entry of the node.
last_bitcoins

Current per-second production, used for display only.
organization

Organization name, used for display
research_logs

IC logs
research_points

Available research points, type = number
researched_designs

Designs that are available for use. Assoc list, id = TRUE
researched_nodes

Already unlocked and all designs are now available. Assoc list, id = TRUE
tiers

Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on
visible_nodes

Visible nodes, doesn't mean it can be researched. Assoc list, id = TRUE
Proc Details
add_experiment
Adds an experiment to this techweb by its type, ensures that no duplicates are added.
Arguments:
- experiment_type - the type of the experiment to add
add_experiments
Adds a list of experiments to this techweb by their types, ensures that no duplicates are added.
Arguments:
- experiment_list - the list of types of experiments to add
can_unlock_node
Checks if a node can be unlocked on this techweb, having the required points and experiments
Arguments:
- node - the node to check
complete_experiment
Notifies the techweb that an experiment has been completed, updating internal state of the techweb to reflect this.
Arguments:
- completed_experiment - the experiment which was completed
have_experiments_for_node
Checks if all experiments have been completed for a given node on this techweb
Arguments:
- node - the node to check