/tg/ Station 13 - Modules - TypesVar Details - Proc Details

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_experimentsThis is a list of all incomplete experiment datums that are accessible for scientists to complete
available_nodesNodes that can immediately be researched, all reqs met. assoc list, id = TRUE
boosted_nodesAlready boosted nodes that can't be boosted again. node id = path of boost object.
completed_experimentsA list of all experiment datums that have been complete
consoles_accessingAll RD consoles connected to this individual techweb.
custom_designsCustom inserted designs like from disks that should survive recalculation.
deconstructed_itemsList of items already deconstructed for research points, preventing infinite research point generation.
discovered_mutationsMutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console
hidden_nodesHidden nodes. id = TRUE. Used for unhiding nodes when requirements are met by removing the entry of the node.
idThe id/name of the whole Techweb viewable to players.
income_modifierA multiplier applied to all research gain, cut in half if the Master server was sabotaged.
last_bitcoinsCurrent per-second production, used for display only.
last_incomeThe amount of research points generated the techweb generated the latest time it generated.
organizationOrganization name, used for display
published_papersAssoc list of papers already published by the crew. published_papers[experiment_typepath][tier] = paper Filled with nulls on init, populated only on publication.
research_logsGame logs of research nodes, "node_name" "node_cost" "node_researcher" "node_research_location"
research_pointsAvailable research points, type = number
research_queue_nodesAssoc list of nodes queued for automatic research when there are enough points available research_queue_nodes[node_id] = user_enqueued
researched_designsDesigns that are available for use. Assoc list, id = TRUE
researched_nodesAlready unlocked and all designs are now available. Assoc list, id = TRUE
scientific_cooperationAssoc list of relationships with various partners scientific_cooperation[partner_typepath] = relationship
should_generate_pointsBoolean on whether the techweb should generate research points overtime.
skipped_experiment_typesAssoc list of all experiment datums that have been skipped, to tech point reward for completing them - That is, upon researching a node without completing its associated discounts, their experiments go here. Completing these experiments will have a refund.
techweb_serversAll research servers connected to this individual techweb.
tiersAssoc list, id = number, 1 is available, 2 is all reqs are 1, so on
visible_nodesVisible nodes, doesn't mean it can be researched. Assoc list, id = TRUE

Procs

add_design_by_idadd_design_by_id The main way to add add designs to techweb Uses the techweb node's ID Args: id - the ID of the techweb node to research custom - Boolean on whether the node should also be added to custom_designs add_to - A custom list to add the node to, overwriting research_designs.
add_experimentAdds an experiment to this techweb by its type, ensures that no duplicates are added.
add_experimentsAdds a list of experiments to this techweb by their types, ensures that no duplicates are added.
add_scientific_paperPublish the paper into our techweb. Cancel if we are not allowed to.
boost_techweb_nodeBoosts a techweb node.
can_unlock_nodeChecks if a node can be unlocked on this techweb, having the required points and experiments
complete_experimentNotifies the techweb that an experiment has been completed, updating internal state of the techweb to reflect this.
have_experiments_for_nodeChecks if all experiments have been completed for a given node on this techweb
initialize_published_papersFill published_papers with nulls.
unhide_nodeRemoves a node from the hidden_nodes list, making it viewable and researchable (if no experiments are required).

Var Details

available_experiments

This is a list of all incomplete experiment datums that are accessible for scientists to complete

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

A list of all experiment datums that have been complete

consoles_accessing

All RD consoles connected to this individual techweb.

custom_designs

Custom inserted designs like from disks that should survive recalculation.

deconstructed_items

List of items already deconstructed for research points, preventing infinite research point generation.

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.

id

The id/name of the whole Techweb viewable to players.

income_modifier

A multiplier applied to all research gain, cut in half if the Master server was sabotaged.

last_bitcoins

Current per-second production, used for display only.

last_income

The amount of research points generated the techweb generated the latest time it generated.

organization

Organization name, used for display

published_papers

Assoc list of papers already published by the crew. published_papers[experiment_typepath][tier] = paper Filled with nulls on init, populated only on publication.

research_logs

Game logs of research nodes, "node_name" "node_cost" "node_researcher" "node_research_location"

research_points

Available research points, type = number

research_queue_nodes

Assoc list of nodes queued for automatic research when there are enough points available research_queue_nodes[node_id] = user_enqueued

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

scientific_cooperation

Assoc list of relationships with various partners scientific_cooperation[partner_typepath] = relationship

should_generate_points

Boolean on whether the techweb should generate research points overtime.

skipped_experiment_types

Assoc list of all experiment datums that have been skipped, to tech point reward for completing them - That is, upon researching a node without completing its associated discounts, their experiments go here. Completing these experiments will have a refund.

techweb_servers

All research servers connected to this individual techweb.

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_design_by_id

add_design_by_id The main way to add add designs to techweb Uses the techweb node's ID Args: id - the ID of the techweb node to research custom - Boolean on whether the node should also be added to custom_designs add_to - A custom list to add the node to, overwriting research_designs.

add_experiment

Adds an experiment to this techweb by its type, ensures that no duplicates are added.

Arguments:

add_experiments

Adds a list of experiments to this techweb by their types, ensures that no duplicates are added.

Arguments:

add_scientific_paper

Publish the paper into our techweb. Cancel if we are not allowed to.

boost_techweb_node

Boosts a techweb node.

can_unlock_node

Checks if a node can be unlocked on this techweb, having the required points and experiments

Arguments:

complete_experiment

Notifies the techweb that an experiment has been completed, updating internal state of the techweb to reflect this.

Arguments:

have_experiments_for_node

Checks if all experiments have been completed for a given node on this techweb

Arguments:

initialize_published_papers

Fill published_papers with nulls.

unhide_node

Removes a node from the hidden_nodes list, making it viewable and researchable (if no experiments are required).