// mainauto.js

/*
  3EProfiler character sheet source file.
  Copyright (C) 2008 Myth-Weavers Games
  **
*/

// Updates all level dependencies. (Which is almost everything.)
function OnLevelChanged()
{
	ZeroFill(
		sheet().StrMod,
		sheet().ConMod,
		sheet().DexMod,
		sheet().IntMod,
		sheet().WisMod,
		sheet().ChaMod);
	
	var totalLevel = _getLevel();
	_FillHalfLevel(totalLevel);
	
	// For some reason eval() won't take external functions, so there's some lines to be written...
	
	_calcDepStr(sheet().StrMod.value);
	_calcDepCon(sheet().ConMod.value);
	_calcDepDex(sheet().DexMod.value);
	_calcDepInt(sheet().IntMod.value);
	_calcDepWis(sheet().WisMod.value);
	_calcDepCha(sheet().ChaMod.value);
	AttackCalc();
	DamageCalc();
}

// Well, get the current Level.
function _getLevel() {
  if (isNaN(sheet()["Level"].value))
		return;

	return sheet()["Level"].value;
}

// Calculate Half Level
function _calcHalfLevel() {
	
	var totalLevel = _getLevel();
	
		var halfLevel = 0;
		
		if ((totalLevel % 2) == 1) {
			halfLevel = (totalLevel - 1) / 2;
		}
		else {
			halfLevel = totalLevel / 2;
		}
		
		return halfLevel;
}

// as titled.
function _FillHalfLevel(totalLevel) {
	
	var halfLevel = _calcHalfLevel();
		
		// Puts half level into all needed slots, barring skill and modifiers.
	sheet().InitHalfLevel.value = halfLevel;
	
	sheet().ACTenPlusHalfLevel.value = halfLevel + 10;
	sheet().FortTenPlusHalfLevel.value = halfLevel + 10;
	sheet().ReflexTenPlusHalfLevel.value = halfLevel + 10;
	sheet().WillTenPlusHalfLevel.value = halfLevel + 10;
	
	sheet().AB1HalfLevel.value = halfLevel;
	sheet().AB2HalfLevel.value = halfLevel;
}