1 RMS_Territories
trac edited this page 2008-02-23 04:18:59 +01:00

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.