'; var printableHTML = part1 + part2; //Print var newWindow = window.open(""); newWindow.document.write(printableHTML); } function LoadRandomPoints() { var randomPoints = localStorage.getItem("FOWList Random Points"); if (!randomPoints) randomPoints = 1500; document.getElementById("Random-Points").value = randomPoints; } function LoadSaved(FOWList) { var listName = FOWList.getAttribute("id"); var saved = GetSearch(); if (saved == "") saved = GetSaved(listName); if (saved == "") { UpdateAll(listName); return; } var splitSaved = saved.split(","); var splitCount = splitSaved.length; var splitIndex = 0; var savedSelection = splitSaved[0]; var unitCount = GetUnitCount(listName); //set unit type var unitType = document.getElementById(listName + "-Selection"); if (unitType != null && savedSelection != "") { unitType.options[savedSelection].selected = true; splitIndex = splitIndex + 1; savedSelection = splitSaved[splitIndex]; } unitType = document.getElementById(listName + "-Selection2"); if (unitType != null && savedSelection != "") { unitType.options[savedSelection].selected = true; splitIndex = splitIndex + 1; savedSelection = splitSaved[splitIndex]; } unitType = document.getElementById(listName + "-Selection3"); if (unitType != null && savedSelection != "") { unitType.options[savedSelection].selected = true; splitIndex = splitIndex + 1; savedSelection = splitSaved[splitIndex]; } //set unit selections for (var i = 1; i <= unitCount; i++) { var unitElement = document.getElementById(listName + "-Unit" + i); LoadSavedUnit(unitElement, savedSelection); splitIndex = splitIndex + 1; savedSelection = splitSaved[splitIndex]; } UpdateAll(listName); //summarize if required if (savedSelection == "S") { SummarizeList(FOWList); } } function LoadSavedUnit(unitElement, savedSelection) { if (unitElement.nodeName == "INPUT") { if (savedSelection) { unitElement.checked = true; } else { unitElement.checked = false; } return; } unitElement.options[savedSelection].selected = true; } function Print() { var FOWLists = document.getElementsByClassName("FOWList"); for (i = 0; i < FOWLists.length; i++) { var FOWList = FOWLists[i]; PrintList(FOWList); } } function PrintList(FOWList) { var listName = FOWList.getAttribute("id"); var totalPoints = document.getElementById(listName + "-Total-Points").innerHTML; var totalPlatoons = document.getElementById(listName + "-Total-Platoons").innerHTML; var newWindow = window.open(""); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(''); WriteTitle(FOWList, newWindow); PrintDivider(newWindow); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(' '); newWindow.document.writeln(''); var listGroups = FOWList.getElementsByClassName("listGroup"); for (var i = 0; i < listGroups.length; i++) { var listGroup = listGroups[i]; PrintGroup(listGroup, newWindow); } newWindow.document.writeln(''); newWindow.document.writeln(' '); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln('
MoralePointsPlatoons
' + totalPoints + '' + totalPlatoons + '
'); var arsenalPrinted = {printed:false}; PrintDivider(newWindow); PrintArsenals(newWindow, FOWList, arsenalPrinted); if (arsenalPrinted.printed) PrintDivider(newWindow); newWindow.document.writeln('
OSZAR »
'); newWindow.document.writeln(''); newWindow.stop(); } function PrintGroup(listGroup, newWindow) { var groupHeaders = listGroup.getElementsByClassName("listHeader"); var groupHeader = groupHeaders[0]; var groupHeaderText = groupHeader.innerHTML; var printHeader = {text:groupHeaderText, printed:false}; var groupOptions = listGroup.getElementsByClassName("listOption"); for (var i = 0; i < groupOptions.length; i++) { var groupOption = groupOptions[i]; PrintOption(groupOption, newWindow, printHeader); } } function PrintOption(groupOption, newWindow, printHeader) { var optionTables = groupOption.getElementsByTagName("table"); var optionTable = optionTables[0]; var optionTableRowCount = optionTable.rows.length; for (var i = 0; i < optionTableRowCount; i++) { var optionRow = optionTable.rows[i]; PrintRow(optionRow, newWindow, printHeader); } } function PrintRow(optionRow, newWindow, printHeader) { var cell0 = GetCellText(optionRow.cells[0]); var cell1 = GetCellText(optionRow.cells[1]); var cell3 = GetCellText(optionRow.cells[3]); // dont print blank row if (cell0 == "") return ""; // dont print rows with no selection if (cell1 != "" && cell3 == "") return ""; // something to print -- write a header if appropriate if (!printHeader.printed) { printHeader.printed = true; newWindow.document.writeln(''); newWindow.document.writeln(' ' + printHeader.text + ''); newWindow.document.writeln(''); } newWindow.document.writeln(''); newWindow.document.writeln(PrintCell(optionRow.cells[0], "colUnit")); newWindow.document.writeln(PrintCell(optionRow.cells[1], "colSelection")); newWindow.document.writeln(PrintCell(optionRow.cells[2], "colMorale")); newWindow.document.writeln(PrintCell(optionRow.cells[3], "colPoints")); newWindow.document.writeln(PrintCell(optionRow.cells[4], "colPlatoons")); newWindow.document.writeln(''); } function PrintCell(cell, cellClass) { var text = GetCellText(cell); return ' ' + text + ''; } function PrintArsenals(newWindow, FOWList, arsenalPrinted) { //get the list of arsenal items to display var listName = FOWList.getAttribute("id"); var arsenalItemsToDisplay = GetArsenalItemsToDisplay(listName); //get all arsenal tables, and update each table var arsenals = FOWList.getElementsByClassName("arsenal"); for (var i = 0; i < arsenals.length; i++) { PrintArsenal(newWindow, arsenals[i], arsenalItemsToDisplay, arsenalPrinted); } } function PrintArsenal(newWindow, arsenal, arsenalItemsToDisplay, arsenalPrinted) { var arsenalTitles = arsenal.getElementsByClassName("arsenalTitle"); var arsenalTitle = arsenalTitles[0]; var arsenalTitleText = arsenalTitle.innerHTML; var arsenalHeader = {text:arsenalTitleText, printed:false, headerRows:0 }; var arsenalTables = arsenal.getElementsByTagName("table"); var arsenalTable = arsenalTables[0]; for (var i = 0; i < arsenalTable.rows.length; i++) { currentRow = arsenalTable.rows[i]; rowType = GetRowType(currentRow); if (rowType == "arsenalHeader") { arsenalHeader.headerRows = i; } else if (rowType == "arsenalUnit") { if (DisplayArsenalRow(currentRow, arsenalItemsToDisplay)) { if (!arsenalHeader.printed) { PrintArsenalHeader(newWindow, arsenalTable, arsenalHeader); } PrintArsenalRow(newWindow, arsenalTable, i, ""); arsenalPrinted.printed = true; } } } if (arsenalHeader.printed) PrintArsenalEnd(newWindow); } function PrintArsenalHeader(newWindow, table, arsenalHeader) { arsenalHeader.printed = true; newWindow.document.writeln('

'); newWindow.document.writeln('

'); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(' '); newWindow.document.writeln(''); for (var i = 0; i <= arsenalHeader.headerRows; i++) { PrintArsenalRow(newWindow, table, i, "minorHeading"); } } function PrintArsenalRow(newWindow, table, row, HTMLclass) { currentRow = table.rows[row].innerHTML; if (HTMLclass == '') { newWindow.document.writeln('' + currentRow + ''); } else { newWindow.document.writeln('' + currentRow + ''); } } function PrintArsenalEnd(newWindow) { newWindow.document.writeln(''); newWindow.document.writeln('
' + arsenalHeader.text + '
'); } function PrintDivider(newWindow) { newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln(' '); newWindow.document.writeln(''); newWindow.document.writeln(''); newWindow.document.writeln('
'); } function Randomise() { var randomPointsElement = document.getElementById("Random-Points"); var randomPointsMaximum = randomPointsElement.value; if (isNaN(randomPointsMaximum)) randomPointsMaximum = 1500; if (randomPointsMaximum == "") randomPointsMaximum = 1500; if (randomPointsMaximum == 0) randomPointsMaximum = 1500; SaveRandomPoints(); //see if we are on a list of lists var armyLists = document.getElementsByClassName("armyList"); if (armyLists.length) { var selectedList = Math.floor(Math.random() * armyLists.length); var selectedId = armyLists[selectedList].id; document.getElementById(selectedId).click(); } //now process a list var FOWLists = document.getElementsByClassName("FOWList"); for (i = 0; i < FOWLists.length; i++) { var FOWList = FOWLists[i]; RandomiseList(FOWList, randomPointsMaximum); } } function RandomiseList(FOWList, randomPointsMaximum) { var listName = FOWList.getAttribute("id"); //create an array of unit groups var unitTree = new Array(); //first, build up a tree structure of units var listGroups = FOWList.getElementsByClassName("listGroup"); for (var i = 0; i < listGroups.length; i++) { var listGroup = listGroups[i]; UnitTreeGroup(listGroup, unitTree); } //now we have the structure, start picking randomly var totalPoints = 0; var randomPickCount = 0; do { //start off with a blank slate ResetListIgnoringSelection(FOWList); //remove any picked flags for (var i = 0; i < unitTree.length; i++) { unitTree[i].picked = false; } //first, pick from the compulsory blocks. Note if pick didnt work, retry for (var j = 0; j < unitTree.length; j++) { if (unitTree[j].compulsory) { while (!unitTree[j].picked) { RandomPick(listName, unitTree[j]); randomPickCount++; } } } //now keep picking totalPoints = CalculatePoints(listName);; while (totalPoints < (randomPointsMaximum * 0.98) && randomPickCount < 500) { var numberOfOptions = unitTree.length; var selectedOption = Math.floor(Math.random() * numberOfOptions); RandomPick(listName, unitTree[selectedOption]); randomPickCount++; totalPoints = CalculatePoints(listName); } } while (totalPoints > randomPointsMaximum && randomPickCount < 300); SaveSelections(listName); } function RandomPick(listName, option) { if (option.picked) return; option.picked = true; var numberOfUnits = option.units.length; var selectedUnit = Math.floor(Math.random() * numberOfUnits); var selectedUnitId = option.units[selectedUnit].unit; var selectedElement = document.getElementById(selectedUnitId); var numberOfOptions = selectedElement.options.length; var selectedOption = Math.floor(Math.random() * numberOfOptions); var selectedOptionElement = selectedElement.options[selectedOption]; var selectedOptionText = selectedOptionElement.firstChild.data; var selectedOptionPoints = CalculateOptionPoints(listName, selectedOptionElement); var tries = 0; if (selectedOptionText == "None" || selectedOptionPoints == "N/A") { option.picked = false; return; } selectedElement.options[selectedOption].selected = true; for (var i = 0; i < option.units[selectedUnit].upgrades.length; i++) { upgradeId = option.units[selectedUnit].upgrades[i]; upgradeElement = document.getElementById(upgradeId); if (upgradeElement.nodeName == "INPUT") { if (Math.random < 0.5) { upgradeElement.checked = true; } } else { numberOfOptions = upgradeElement.options.length; selectedOption = Math.floor(Math.random() * numberOfOptions); selectedOptionElement = upgradeElement.options[selectedOption] selectedOptionText = selectedOptionElement.firstChild.data; selectedOptionPoints = CalculateOptionPoints(listName, selectedOptionElement); if (selectedOptionPoints != "N/A") document.getElementById(upgradeId).options[selectedOption].selected = true; } } UpdateAll(listName); } function Reset() { var FOWLists = document.getElementsByClassName("FOWList"); for (var i = 0; i < FOWLists.length; i++) { FOWList = FOWLists[i]; ResetList(FOWList); } } function ResetList(FOWList) { var listName = FOWList.getAttribute("id"); selections = "0"; var unitCount = GetUnitCount(listName); var unitType = document.getElementById(listName + "-Selection"); if (unitType != null) { unitType.options[0].selected = true; } var unitType = document.getElementById(listName + "-Selection2"); if (unitType != null) { unitType.options[0].selected = true; } var unitType = document.getElementById(listName + "-Selection3"); if (unitType != null) { unitType.options[0].selected = true; } for (var i = 1; i <= unitCount; i++) { var unitOption = document.getElementById(listName + "-Unit" + i); if (unitOption.checked) { unitOption.checked = false; } if (unitOption.options) { unitOption.options[0].selected = true; } } UpdateAll(listName); SaveSelections(listName); } function ResetListIgnoringSelection(FOWList) { var listName = FOWList.getAttribute("id"); var unitCount = GetUnitCount(listName); for (var i = 1; i <= unitCount; i++) { document.getElementById(listName + "-Unit" + i).options[0].selected = true; } UpdateAll(listName); SaveSelections(listName); } function SaveRandomPoints() { var randomPoints = document.getElementById("Random-Points").value; if (isNaN(randomPoints)) randomPoints = 1500; localStorage.setItem("FOWList Random Points", randomPoints); } function SaveSelections(listName) { if (typeof(localStorage) != "undefined") { var selections = new Array(); var unitSelection = document.getElementById(listName + "-Selection"); if (unitSelection != null) { selections.push(unitSelection.selectedIndex); } unitSelection = document.getElementById(listName + "-Selection2"); if (unitSelection != null) { selections.push(unitSelection.selectedIndex); } var unitSelection = document.getElementById(listName + "-Selection3"); if (unitSelection != null) { selections.push(unitSelection.selectedIndex); } var unitCount = GetUnitCount(listName); for (var i = 1; i <= unitCount; i++) { var unitElement = document.getElementById(listName + "-Unit" + i); selections.push(SaveSelectionsUnit(unitElement)); } if (document.getElementById("Summarize-Button").value == "Summarize") { selections.push("E"); } else { selections.push("S"); } localStorage.setItem(listName, selections.join()); } } function SaveSelectionsUnit(unitElement) { if (unitElement.checked) { return "1"; } if (unitElement.selectedIndex) { return unitElement.selectedIndex; } return "0"; } function Summarize() { summarizeFlag = false; if (document.getElementById("Summarize-Button").value == "Summarize") { summarizeFlag = true; } var FOWLists = document.getElementsByClassName("FOWList"); for (var i = 0; i < FOWLists.length; i++) { var FOWList = FOWLists[i]; if (summarizeFlag) { SummarizeList(FOWList); } else { ExpandList(FOWList); } } } function SummarizeList(FOWList) { var listName = FOWList.getAttribute("id"); var listGroups = FOWList.getElementsByClassName("listGroup"); for (var i = 0; i < listGroups.length; i++) { var listGroup = listGroups[i]; SummarizeGroup(listGroup); } var arsenalItemsToDisplay = GetArsenalItemsToDisplay(listName); var arsenals = FOWList.getElementsByClassName("arsenal"); for (var j = 0; j < arsenals.length; j++) { var arsenal = arsenals[j]; SummarizeArsenal(arsenal, arsenalItemsToDisplay); } document.getElementById("Summarize-Button").value = "Expand"; SaveSelections(listName); } function SummarizeGroup(listGroup) { var groupOptions = listGroup.getElementsByClassName("listOption"); var displayGroup = false; for (var i = 0; i < groupOptions.length; i++) { var groupOption = groupOptions[i]; var optionDisplayed = SummarizeOption(groupOption); displayGroup = displayGroup || optionDisplayed; } if (!displayGroup) { listGroup.style.display = "none"; } return displayGroup; } function SummarizeOption(groupOption) { var optionTables = groupOption.getElementsByTagName("table"); var optionTable = optionTables[0]; var optionTableRowCount = optionTable.rows.length; var currentRow; var rowText; var displayOption = false; for (var i = 0; i < optionTableRowCount; i++) { currentRow = optionTable.rows[i]; rowText = currentRow.cells[3].innerHTML; if (rowText == "") { currentRow.style.display = "none"; } else { displayOption = true; } } if (!displayOption) { groupOption.style.display = "none"; } return displayOption; } function SummarizeArsenal(arsenal, arsenalItemsToDisplay) { var arsenalTables = arsenal.getElementsByTagName("table"); var arsenalTable = arsenalTables[0]; //display rows in the arsenal as required var headerRows = 0; var lastSubHeader = arsenalTable.rows[0]; var displayHeader = false; for (var i = 0; i < arsenalTable.rows.length; i++) { currentRow = arsenalTable.rows[i]; rowType = GetRowType(currentRow); if (rowType == "arsenalHeader") { headerRows = i; currentRow.style.display = "none"; } else if (rowType == "arsenalSubHeader") { lastSubHeader = currentRow; currentRow.style.display = "none"; } else if (rowType == "arsenalUnit") { if (DisplayArsenalRow(currentRow, arsenalItemsToDisplay)) { lastSubHeader.style.display = ""; currentRow.style.display = ""; displayHeader = true; } else { currentRow.style.display = "none"; } } else { currentRow.style.display = "none"; } } if (displayHeader) { for (var j = 0; j <= headerRows; j++) { arsenalTable.rows[j].style.display = ""; } } else { arsenalTable.style.display = "none"; arsenal.style.display = "none"; } } function Text() { var FOWLists = document.getElementsByClassName("FOWList"); for (var i = 0; i < FOWLists.length; i++) { var FOWList = FOWLists[i]; TextList(FOWList); } } function TextList(FOWList) { var newWindow = window.open(""); var listName = FOWList.getAttribute("id"); var displayName = document.getElementById(listName + "-Unit-Name").value; var totalPoints = document.getElementById(listName + "-Total-Points").innerHTML; var totalPlatoons = document.getElementById(listName + "-Total-Platoons").innerHTML; newWindow.document.writeln(""); newWindow.document.writeln(""); newWindow.document.writeln(""); WriteTitle(FOWList, newWindow); var listGroups = FOWList.getElementsByClassName("listGroup"); for (var i = 0; i < listGroups.length; i++) { var listGroup = listGroups[i]; TextGroup(listGroup, newWindow); } newWindow.document.writeln("
"); newWindow.document.writeln("
" + totalPoints + " Points, " + totalPlatoons + " Platoons"); newWindow.document.writeln("
OSZAR »
"); newWindow.document.writeln(""); newWindow.stop(); } function TextGroup(listGroup, newWindow) { var groupOptions = listGroup.getElementsByClassName("listOption"); for (var i = 0; i < groupOptions.length; i++) { var groupOption = groupOptions[i]; TextOption(groupOption, newWindow); } } function TextOption(groupOption, newWindow) { var optionTables = groupOption.getElementsByTagName("table"); var optionTable = optionTables[0]; var optionTableRowCount = optionTable.rows.length; for (var i = 0; i < optionTableRowCount; i++) { var optionRow = optionTable.rows[i]; TextRow(optionRow, newWindow); } } function TextRow(optionRow, newWindow) { var cell0 = GetCellText(optionRow.cells[0]); var cell1 = GetCellText(optionRow.cells[1]); var cell3 = GetCellText(optionRow.cells[3]); // dont print rows with no selection if (cell3 == "") return ""; if (cell0.substring(0, 1) == "-") { newWindow.document.writeln(" - " + cell1 + " (" + cell3 + " pts)
"); } else { newWindow.document.writeln("
" + cell0 + " - " + cell1 + " (" + cell3 + " pts)
"); } } function UnitTreeGroup(listGroup, unitTree) { var groupOptions = listGroup.getElementsByClassName("listOption"); for (var i = 0; i < groupOptions.length; i++) { var groupOption = groupOptions[i]; UnitTreeOption(groupOption, unitTree); } } function UnitTreeOption(groupOption, unitTree) { var newOption = new Option(); var optionTables = groupOption.getElementsByTagName("table"); var optionTable = optionTables[0]; var optionTableRowCount = optionTable.rows.length; for (var i = 0; i < optionTableRowCount; i++) { var optionRow = optionTable.rows[i]; UnitTreeRow(optionRow, newOption); } unitTree.push(newOption) } function UnitTreeRow(optionRow, newOption) { //get the cell label, to decide if its a unit or option var cell0 = GetCellText(optionRow.cells[0]); var cell1 = optionRow.cells[1]; var selectElement = cell1.getElementsByTagName('SELECT').item(0); var selectId = selectElement.id; //if its a unit, add it to the last group. Otherwise its an option to add to the last unit if (cell0.substring(0, 2) == "- ") { //it must be an upgrade option var lastUnit = newOption.units.length - 1; newOption.units[lastUnit].upgrades.push(selectId); } else { //add the new unit var newUnit = new Unit(selectId); newOption.units.push(newUnit); //if it is compulsory, mark the block so if (cell0.substring(0, 10) == "Compulsory") { newOption.compulsory = true; } } } function Update(listName, unitName) { UpdateDisplay(listName, unitName); CalculatePoints(listName); CalculatePlatoons(listName); SaveSelections(listName); } function UpdateDisplay(listName, unitName) { var optionElement = document.getElementById(listName + "-" + unitName); var optionValue; var values; var platoons; var points; var morale; if (optionElement.type == "checkbox") { if (optionElement.checked) { optionValue = optionElement.value; values = GetValueObject(optionValue); platoons = values.platoons; points = values.pointsAndMorale[0]; morale = values.pointsAndMorale[1]; } else { values = GetValueObject(",,"); platoons = ""; points = ""; morale = ""; } } else { optionValue = optionElement.value; values = GetValueObject(optionValue); platoons = values.platoons; points = values.pointsAndMorale[0]; morale = values.pointsAndMorale[1]; } var selectionElement = document.getElementById(listName + "-Selection" + values.selection); if (selectionElement) { var offset = selectionElement.value - 2; if (offset <= values.pointsAndMorale.length) { points = values.pointsAndMorale[offset - 1]; morale = values.pointsAndMorale[offset]; } } document.getElementById(listName + "-" + unitName + "-Morale").innerHTML = morale; document.getElementById(listName + "-" + unitName + "-Points").innerHTML = points; document.getElementById(listName + "-" + unitName + "-Platoons").innerHTML = platoons; } function UpdateAll(listName) { var unitCount = GetUnitCount(listName); for (var i = 1; i <= unitCount; i++) { UpdateDisplay(listName, "Unit" + i); } CalculatePoints(listName); CalculatePlatoons(listName); } function WriteTitle(FOWList, newWindow) { var listName = FOWList.getAttribute("id"); var displayName = ""; var hiddenInputName = document.getElementById(listName + "-Unit-Name"); if (hiddenInputName) { displayName = hiddenInputName.value; } var displayType = ""; var hiddenInputType = document.getElementById(listName + "-Type"); if (hiddenInputType) { displayType = hiddenInputType.value; } var displayPage = ""; var hiddenInputPage = document.getElementById(listName + "-Page"); if (hiddenInputPage) { displayPage = hiddenInputPage.value; } var displayBook = ""; var hiddenInputBook = document.getElementById(listName + "-Book"); if (hiddenInputBook) { displayBook = hiddenInputBook.value; } var displayNation = ""; var hiddenInputNation = document.getElementById(listName + "-Nationality"); if (hiddenInputNation) { displayNation = hiddenInputNation.value; } var listSelection = document.getElementById(listName + "-Selection"); var displaySelection = ""; if (listSelection) { displaySelection = GetSelectionText(listSelection); } var listSelection2 = document.getElementById(listName + "-Selection2"); var displaySelection2 = ""; if (listSelection2) { displaySelection2 = GetSelectionText(listSelection2); } var listSelection3 = document.getElementById(listName + "-Selection3"); var displaySelection3 = ""; if (listSelection3) { displaySelection3 = GetSelectionText(listSelection3); } var displayTitle = displayNation + ' ' + displayName; var displaySubTitle = ""; var displayRow = ""; if (displayType != '') displaySubTitle = displayType; if (displaySelection != '') { if (displaySubTitle != '') { displaySubTitle = displaySubTitle + ', ' + displaySelection; } else { displaySubTitle = displaySelection; } } if (displaySelection2 != '') { displaySubTitle = displaySubTitle + ', ' + displaySelection2; } if (displaySelection3 != '') { displaySubTitle = displaySubTitle + ', ' + displaySelection3; } if (displayBook != '') { if (displaySubTitle != '') { displaySubTitle = displaySubTitle + ', from ' + displayBook; } else { displaySubTitle = 'From ' + displayBook; } } if (displayPage != '') { if (displaySubTitle != '') { displaySubTitle = displaySubTitle + ', page ' + displayPage; } else { displaySubTitle = 'Page ' + displayPage; } } newWindow.document.writeln('

' + displayTitle + '

'); if (displaySubTitle != '') { newWindow.document.writeln('

' + displaySubTitle + '

'); } } function Option() { this.compulsory = false; this.picked = false; this.units = new Array(); } function Unit(id) { this.unit = id; this.upgrades = new Array(); }

Friday, April 14, 2017

Napoleon At War - Spanish - Infantry Division

Infantry Division Morale Points Platoons
Combat
Compulsory Division Commander
Compulsory Line Infantry Brigade
- Provincial Line Battalion
- Line Battalion (up to 1/2 of the Battalions)
- Overstrength Infantry
Compulsory Line Infantry Brigade
- Provincial Line Battalion
- Line Battalion (up to 1/2 of the Battalions)
- Overstrength Infantry
Line Cavalry Brigade
- Cavalry Upgrade
- Guard Cavalry
- Normal Strength Cavalry
Light Cavalry Brigade
- Cavalry Upgrade
- Volunteer Lancers
- Normal Strength Cavalry
Heavy Artillery Battery
Support
Guard Infantry Regiment
Grenadier Brigade
Marine Infantry Regiment
Medium Artillery Battery
Light Artillery Battery
Reserve Line Infantry Brigade
- Provincial Line Battalion
- Line Battalion (up to 1/2 of the Battalions)
- Overstrength Infantry
Reserve Light Infantry Brigade
- Light Infantry Battalion
Reserve Guard Infantry Regiment
Reserve Grenadier Brigade
Reserve Marine Infantry Regiment
Reserve Line Cavalry Brigade
- Cavalry Upgrade
- Guard Cavalry
- Normal Strength Cavalry
Reserve Light Cavalry Brigade
- Cavalry Upgrade
- Volunteer Lancers
- Normal Strength Cavalry
Reserve Medium Artillery Battery
Reserve Light Artillery Battery
Reserve Heavy Artillery Battery
Reserve Cavalry Artillery Battery

 
OSZAR »