(lightbulb) Looking for info on the NEXUS faction in the game? It's in the Warzone Encyclopaedia

Classify Subroutines

Generates an "Object Key".

 

Purpose

You can use "Object Keys" to create a consistent way of describing the types and properties of objects you're working with.

A classify subroutine is responsible for providing the Object Key of a given object.

This is particularly useful when you use Object Keys as part of the TaskID. Let's say you classify a construction truck object as ".droid.construction" – if you use that as part of your task IDs, they'll look like this:

  • droidBuilt.droid.truck
  • objectSeen.droid.truck
  • attacked.droid.truck
  • destroyed.droid.truck
  • etc...

Some ready-made classify subroutines are shown to the right, they should be sufficient for most scenarios.

Build your own

A classify subroutine defines the NEXUS.classify() method – when passed an object it should return an "Object Key", which is a taxonomy path describing the object.

Your subroutine should be structured like this:

NEXUS.classify = (function() {
 
  // /////////////////////////////////////////////////////////////////
  // PRIVATE VARS

  var chimp = "hairy"; // just an example :p
 
  // /////////////////////////////////////////////////////////////////
  // PUBLIC CLASSIFY FUNCTION

  var classify = function(obj) {
    // classify the object here to determine its "object key"
    // up to you how to do that, take a look at existing mods for examples (:
 
    return objKey; // objKey must be a string, ideally with "." at the start
  }
 
  // /////////////////////////////////////////////////////////////////
  // PRIVATE FUNCTIONS
 
  var isFoo = function(foo) { // just an example :p
    return (foo != "bar");
  }
 
  // return your classify function
  return classify;
 
})(); 

If you want to be super-helpful to other people looking at your code:

  1. Make it easy to understand!
  2. Show some sample classifications (or document them all!)

File name convention

Classify mods use the following naming convention: "NEXUS.classify_modName.js", where "modName" is the name of your mod.

You can only have one classify subroutine per NEXUS instance.

Subroutines

Absorb:

Memory Banks

Observe: