Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
themeEclipse
languagejavascript
titleAdd .isAlly, .isEnemy and .isMe properties to player data objects
linenumberstrue
var playerData.primaryTarget = null;
for (var p=0; p<playerData.length; p++) {
  // Add a hidden and read-only .id property that returns the player number
  playerData[p].uAddProperty(
    DATA_READONLY_HIDDEN,
    "id",
    p
  );
  // Add a read-only .isAlly property that returns true if this player is an ally
  // Note: No setter function (fSet) means read only
  playerData[p].uAddProperty(
    ACCESSOR_NORMAL,
    "isAlly",
    allianceExistsBetween.uCurry(me,p)
  );
  // Add a read-only .isMe property that returns true if this player is me
  playerData[p].uAddProperty(
    ACCESSOR_NORMAL,
    "isMe",
    function() {
      return (this.id==me);
    }
  );
  // Add a read-only .isEnemy property that returns true if this player is an enemy
  playerData[p].uAddProperty(
    ACCESSOR_NORMAL,
    "isEnemy",
    function() {
      return (!(this.isAlly || this.isMe));
    }
  );
  // Add a read-write .isPrimaryTarget boolean property
  playerData[p].uAddProperty(
    ACCESSOR_NORMAL,
    "isPrimaryTarget",
    function() {
      return (playerData.primaryTarget == this.id);
    },
    function(bool) {
      playerData.primaryTarget = (!!bool) ? this.id : null;
      return (!!bool);
    }
  );
}

...