validate static method

bool validate(
  1. int keystone,
  2. int primary1,
  3. int primary2,
  4. int primary3,
  5. int secondary1,
  6. int secondary2,
  7. int perk1,
  8. int perk2,
  9. int perk3
)

Validates a candidate page layout to make sure it's an allowed configuration.

Implementation

static bool validate(int keystone, int primary1, int primary2, int primary3,
    int secondary1, int secondary2, int perk1, int perk2, int perk3) {
  int primaryTree = Rune.treeId(keystone);
  int secondaryTree = Rune.treeId(secondary1);
  if (Rune.treeId(primary1) != primaryTree ||
      Rune.treeId(primary2) != primaryTree ||
      Rune.treeId(primary3) != primaryTree) return false;

  if (Rune.treeId(secondary2) != secondaryTree) return false;

  if (primaryTree == secondaryTree) return false;

  if (Rune.runeTier(keystone) != 0 ||
      Rune.runeTier(primary1) != 1 ||
      Rune.runeTier(primary2) != 2 ||
      Rune.runeTier(primary3) != 3) return false;

  if (Rune.runeTier(secondary1) >= Rune.runeTier(secondary2)) return false;

  if (!(Rune.perkTierValidate(perk1, 0) &&
      Rune.perkTierValidate(perk2, 1) &&
      Rune.perkTierValidate(perk3, 2))) return false;

  return true;
}