// Requires:
// - mh_stat_cheeses.js
// - mh_stat_locations_keys.js
// - mh_statcmpd_location_mice.js

////////////////////
// Compound Tables //
////////////////////

// This can be built using a loop through the data. It does not need to be sorted in any order as each item [Location, Cheese, AttRate] is handled separately.
var attraction_rate_raw=[
// Location, Cheese, Attraction Rate
  [_L_AR,_C_ANCIENT,0.85], [_L_AR,_C_BRIE,0.0], [_L_AR,_C_CHEDDAR,0.0], [_L_AR,_C_RB,0.295], [_L_AR,_C_RUNIC,0.97], [_L_AR,_C_SB,0.0], [_L_AR,_C_SWISS,0.0], [_L_AR,_C_WCHED,0.0], // Acolyte Realm
  [_L_BAZAAR,_C_BRIE,0.85], [_L_BAZAAR,_C_RB,0.25], [_L_BAZAAR,_C_SB,0.99], [_L_BAZAAR,_C_SWISS,0.725], // Bazaar
  [_L_CC,_C_BRIE,0.85], [_L_CC,_C_MARBLE,0.6], [_L_CC,_C_SB,0.99], [_L_CC,_C_SWISS,0.75], // Calm Clearing
  [_L_CCLAWED,_C_BRIE,0.65], [_L_CCLAWED,_C_CRUNCHY,0.95], [_L_CCLAWED,_C_GOUDA,0.85], [_L_CCLAWED,_C_GUMBO,0.95], [_L_CCLAWED,_C_SHELL,0.95], [_L_CCLAWED,_C_SB,0.99], [_L_CCLAWED,_C_SWISS,0.65], // Cape Clawed
  [_L_CAT,_C_ANCIENT,0.885], [_L_CAT,_C_CHEDDAR,0.55], [_L_CAT,_C_RB,0.835], [_L_CAT,_C_SB,0.99], [_L_CAT,_C_WCHED,0.55], // Catacombs
  [_L_DERR,_C_BRIE,0.6], [_L_DERR,_C_CRUNCHY,0.99], [_L_DERR,_C_GOUDA,0.7], [_L_DERR,_C_SB,0.99], // Derr Dunes
  [_L_DOJO,_C_BRIE,0.82], [_L_DOJO,_C_MAKI,0.85], [_L_DOJO,_C_MARBLE,0.57], [_L_DOJO,_C_RB,0.09], [_L_DOJO,_C_SB,0.94], [_L_DOJO,_C_SWISS,0.75], // Dojo
  [_L_DRACANO,_C_HAV_INF,0.99], // Dracano
  [_L_ELUB,_C_BRIE,0.55], [_L_ELUB,_C_GOUDA,0.85], [_L_ELUB,_C_SHELL,0.99], [_L_ELUB,_C_SB,0.99], // Elub Shore
  [_L_FG,_C_ANCIENT,0.85], [_L_FG,_C_RB,0.8], // Forbidden Grove
  [_L_GGT,_C_BRIE,0.81], [_L_GGT,_C_CHEDDAR,0.375], [_L_GGT,_C_GNARLED,0.93], [_L_GGT,_C_MAKI,0.825], [_L_GGT,_C_MARBLE,0.5], [_L_GGT,_C_RB,0.23], [_L_GGT,_C_SB,0.95], [_L_GGT,_C_SWISS,0.75], // Great Gnarled Tree
  [_L_HARBOUR,_C_BRIE,0.85], [_L_HARBOUR,_C_CHEDDAR,0.45], [_L_HARBOUR,_C_MARBLE,0.6], [_L_HARBOUR,_C_SB,0.99], [_L_HARBOUR,_C_SWISS,0.75], [_L_HARBOUR,_C_WCHED,0.45], // Harbour
  [_L_JDREAD,_C_HAV_ORG,0.85], [_L_JDREAD,_C_HAV_GRN,0.85], [_L_JDREAD,_C_HAV_BLU,0.85], [_L_JDREAD,_C_HAV_PUR,0.85], [_L_JDREAD,_C_HAV_RED,0.85], [_L_JDREAD,_C_HAV_YEL,0.85], //Jungle of Dread
  [_L_LAB,_C_BRIE,0.82], [_L_LAB,_C_CHEDDAR,0.4], [_L_LAB,_C_MARBLE,0.565], [_L_LAB,_C_RB,0.95], [_L_LAB,_C_RUNIC,0.0], [_L_LAB,_C_SWISS,0.75], [_L_LAB,_C_WCHED,0.3], //Laboratory
  [_L_LAGOON,_C_GNARLED,0.96], [_L_LAGOON,_C_SB,0.56], [_L_LAGOON,_C_WICKED,0.96], //Lagoon
  [_L_MEADOW,_C_BRIE,0.85], [_L_MEADOW,_C_CHEDDAR,0.45], [_L_MEADOW,_C_MARBLE,0.65], [_L_MEADOW,_C_RB,0.1], [_L_MEADOW,_C_SB,0.99], [_L_MEADOW,_C_SWISS,0.65], [_L_MEADOW,_C_WCHED,0.75], //Meadow
  [_L_MEDI,_C_BRIE,0.15], [_L_MEDI,_C_COMBAT,0.9], [_L_MEDI,_C_GLUTTER,0.9], [_L_MEDI,_C_SUSH,0.9], //Meditation Room
  [_L_MTN,_C_BRIE,0.85], [_L_MTN,_C_MARBLE,0.6], [_L_MTN,_C_RB,0.15], [_L_MTN,_C_SB,0.99], [_L_MTN,_C_SWISS,0.75], [_L_MTN,_C_WCHED,0.45], //Mountain
  [_L_MOZ,_C_ANCIENT,0.9], [_L_MOZ,_C_MAKI,0.42], [_L_MOZ,_C_MOON,0.8], [_L_MOZ,_C_RB,0.9], //Mousoleum
  [_L_NERG,_C_BRIE,0.45], [_L_NERG,_C_GOUDA,0.85], [_L_NERG,_C_GUMBO,0.99], [_L_NERG,_C_SB,0.99], //Nerg Plains
  [_L_PINN,_C_BRIE,0.20], [_L_PINN,_C_ONYX,0.95], [_L_PINN,_C_RUMBLE,0.96], //Pinnacle Chamber
  [_L_SSH,_C_BRIE,0.735], [_L_SSH,_C_GNARLED,0.805], [_L_SSH,_C_GOUDA,0.73], [_L_SSH,_C_SB,0.985], [_L_SSH,_C_SWISS,0.68], //S.S. Huntington II
  [_L_DIGBY,_C_BRIE,0.85], [_L_DIGBY,_C_LIME,0.985], [_L_DIGBY,_C_MARBLE,0.575], [_L_DIGBY,_C_SWISS,0.75], //Town of Digby
  [_L_GNAWNIA,_C_BRIE,0.85], [_L_GNAWNIA,_C_CHEDDAR,0.45], [_L_GNAWNIA,_C_MARBLE,0.55], [_L_GNAWNIA,_C_SWISS,0.75], //Town of Gnawnia
  [_L_TRG,_C_BRIE,0.8], [_L_TRG,_C_SB,0.97], [_L_TRG,_C_SWISS,0.7] //Training Grounds
  //[_L_COMET,_C_BRIE,0.7], [_L_COMET,_C_SB,0.98], [_L_COMET,_C_GINGERB,0.75] //Festive Comet
];

// Multiplier for cheese attraction at a location.
var location_attractionrate=new Array(n_locations);
// Create a i x j array of 0s.
for (i=0; i<n_locations; i++) {
  location_attractionrate[i]=new Array(n_cheeses);  
  for (j=0; j<n_cheeses; j++) {
    location_attractionrate[i][j]=-1; // Negative value by default, shows cheese is not done
  }
}
// Fill with attraction rates
for (i=0; i<attraction_rate_raw.length; i++) {
  locId=locations_rev_order[attraction_rate_raw[i][0]];
  cheeseId=cheeses_rev_order[attraction_rate_raw[i][1]];
  location_attractionrate[locId][cheeseId]=attraction_rate_raw[i][2];
}

// Locations with insufficient information, such as no mice and/or no cheese attraction data
var location_not_done=[];
for (i=0; i<locations.length; i++) {  
  if (miceinlocs[i].length==0) {
    // Add those with no mice
    location_not_done.push(i);
  } else {
    // Check if there is no cheese done for this location.
    var hasAtt=false;
    for (j=0; j<cheeses.length; j++) {
      if (location_attractionrate[i][j]>=0) {
        hasAtt=true;
        break;
      }
    }
    if (!hasAtt) location_not_done.push(i);
  }
}
