Other great resources: Official JS API docs, Scripting Forum
findResearch()
Overview
Returns a list of technologies that need to be researched to achieve a specific research goal.This is an incredibly useful function because you can use it to make decisions about your research path.
Availability
Warzone 3.2 and above.
Syntax
var returnValue = findResearch(targetTechnology);
Parameters
Parameter | Type | Mandatory | Description | Game version |
---|---|---|---|---|
targetTechnology | String | The technology you want to research. | 3.2 |
Return value
Value | Type | Description | Game version |
---|---|---|---|
<array> | Array | An array of Research objects starting with the targetTechnology (at index 0) and then listing all pre-requisite technologies, if any, that need to be researched first. If you've already researched the pre-requisite technologies, but haven't yet researched the targetTechnology, the array will just contain the targetTechnology. If the targetTechnology is already researched then the array will be empty. | 3.2 |
<error> | Error | If the specified targetTechnology does not exist, an error will be thrown. | 3.2 |
Example
Which AA defence is most achievable?
// Scenario: You've just been attacked by VTOLS... // ... but you've not yet researched Anti-Aircraft (AA) defences! // You're strapped for cash (power) - what is the cheapest AA defence to research? Â var researchPath = [ /* big list of research items */ ]; Â var noAATech = true; // initially we have no AA tech function costToResearch(tech) { var cost = 0; var reqs = findResearch(tech); for (var r=0; r<reqs.length; r++) { cost += reqs[r].power; } return cost; } function cheapestToResearch(tech1,tech2) { return (costToResearch(tech1) < costToResearch(tech2)) ? tech1 : tech2; } function eventAttacked(victim,attacker) { if (noAATech && isVTOL(attacker)) { // R-Defense-Sunburst will be cheaper if we've been researching rockets // R-Defense-AASite-QuadMg1 (Hurricane) will be cheaper if we've been researching machineguns/cannons researchPath.unshift(cheapestToResearch("R-Defense-Sunburst", "R-Defense-AASite-QuadMg1")); noAATech = false; // we've now prioritised AA tech research } } function eventResearched(research,structure) { // in case we research AA defences before first VTOLs attack us // Note: && has precedence over || // (see: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence ) if (noAATech && research.name == "R-Defense-Sunburst" || research.name == "R-Defense-AASite-QuadMg1") { noAATech = false; // you probably want to instruct your trucks to start building AA defences at this point! } }Â
See also
- Research & Technology – quick reference for JS API features relating to research