// level.js

// Maintains level dependent fields.

// Dependencies:
//     general.js
//     abilities.js

// Updates all level dependencies.
function OnLevelChanged()
{
  // All we need to do is update the max ranks for the skills.

  if (disable_autocalc())
    return;

  // Determine the total level of the character.
  var levels = sheet().Level.value.split("/");
  var totalLevel = 0;
  var halfLevel = 0;
  for (var i in levels)
    totalLevel += isNaN(parseInt(levels[i])) ? 0 : parseInt(levels[i]);
  if (!totalLevel)
    return;  
  
  //Calc Defenses
  sheet().ACBase.value = Math.floor(sheet().Level.value / 2);
  sheet().FortBase.value = Math.floor(sheet().Level.value / 2);
  sheet().RefBase.value = Math.floor(sheet().Level.value / 2);
  sheet().WillBase.value = Math.floor(sheet().Level.value / 2);

  //Calc Abilities
  OnAbilityChanged(sheet().Str);
  OnAbilityChanged(sheet().Con);
  OnAbilityChanged(sheet().Dex);
  OnAbilityChanged(sheet().Int);
  OnAbilityChanged(sheet().Wis);
  OnAbilityChanged(sheet().Cha);
  
  debug.trace("Calculated max ranks.");
}
