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 | 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 | 
| 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_refund_ratio | If science researches something without completing its discount experiments, they have the option to complete them later for a refund This ratio determines how much of the original discount is refunded | 
| 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 | 
| Procs | |
| 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. | 
| add_experiments | Adds a list of experiments to this techweb by their types, ensures that no duplicates are added. | 
| 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 | 
| 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 | 
| 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). | 
| update_tiers | Make it available if the prereq ids are already researched | 
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
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_refund_ratio
            
        
    
            
        
        If science researches something without completing its discount experiments, they have the option to complete them later for a refund This ratio determines how much of the original discount is refunded
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:
- 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
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:
- 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
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).
update_tiers
Make it available if the prereq ids are already researched