== territory(parentArea) == This is the constructor. It defines the parent area. == divide(int) == This method equally divides the territory a specified number of times. == next() == This method increments to the next divided area. == isValid() == This method returns whether or not there are more divided areas to iterate through: true/false. == reset() == This method resets to the first divided area. == retrieve(int) == This method returns an area object of a specified divided area. Here is a sample code of how to implement territories: {{{ 1: 2: terr = new territory(MAP); 3: terr.divide(player.num); 4: terr.create; 5: 6: prov = new array(player.num); 7: 8: for(terr.reset;terr.isValid;terr.next) 9: { 10: prov[terr.current] = new territory(terr.retrieve); 11: prov[terr.current].divide(4); 12: prov[terr.current].create; 13: } 14: 15: function attrition() 16: { 17: for(i=0;i < player.num;i++) 18: { 19: for(x=0;x < player.num;x++) 20: { 21: if(playerinarea(i, terr.retrieve(x)) && x != i) 22: { 23: playerAttrit(i, terr.retrieve(x), 20); 24: } 25: else 26: { 27: playerAttrit(i, terr.retrieve(x)); 28: } 29: } 30: } 31: } 32: 33: trigAttrition = new trigger("attrition"); 34: trigAttrition.enable; }}} * Line 2 creates a territory object within the whole map area * Line 3 divides the territory by the number of players * Line 4 registers the territory * Line 6 defines an array, an item for each player * Line 8 defines a loop that uses the territory's iterator to go through each divided territory * Line 10 creates a new territory object for each divided territory (provinces) * Line 11 divides each territory by 4 * Line 12 registeres each territory * Line 15-31 defines the trigger function for attrition. It loops through each player checking if a player finds his way into another player's territory and starts off the attrition effect. "&& x != i" makes sure it doesn't run the attrition on a player for being on his own territory. Calling the effect without an interval unregisters the attrition so as to cancel the effect.