index : btroops | |
Virtual board game-aid for BattleTroops, an infantry combat simulator wargame published by FASA in 1989. |
aboutsummaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/game/soldier.js | 18 | ||||
-rw-r--r-- | src/modules/gameboard.js | 8 | ||||
-rw-r--r-- | src/modules/record_sheet.js | 10 |
3 files changed, 25 insertions, 11 deletions
diff --git a/src/modules/game/soldier.js b/src/modules/game/soldier.js index 7a3ffaa..3ac7b37 100644 --- a/src/modules/game/soldier.js +++ b/src/modules/game/soldier.js @@ -57,18 +57,28 @@ function createTrace(previous, current, selected) { } export function createCounter(selected, weapon = 'rifle') { - const use = document.createElementNS(svgns, 'use'); const g = document.createElementNS(svgns, 'g'); + const weaponCounter = document.createElementNS(svgns, 'use'); const assignedWeapon = isRecord(selected) ? extractWeaponFromRecord(selected) : weapon; + const troopNum = document.createElementNS(svgns, 'use'); + const squadNum = document.createElementNS(svgns, 'use'); - use.setAttributeNS(null, 'href', `../../${counters}#${assignedWeapon}`); - use.classList.add('primary-weapon'); + weaponCounter.setAttributeNS(null, 'href', `../../${counters}#${assignedWeapon}`); + weaponCounter.classList.add('primary-weapon'); + + troopNum.setAttributeNS(null, 'href', `../../${counters}#number-${selected.dataset.number}`); + troopNum.classList.add('troop-number'); + + squadNum.setAttributeNS(null, 'href', `../../${counters}#number-${selected.dataset.squad}`); + squadNum.classList.add('squad-number'); g.classList.add('counter'); g.dataset.allegiance = selected.dataset.allegiance; g.dataset.number = selected.dataset.number; g.dataset.squad = selected.dataset.squad; - g.appendChild(use); + g.appendChild(weaponCounter); + g.appendChild(troopNum); + g.appendChild(squadNum); return g; } diff --git a/src/modules/gameboard.js b/src/modules/gameboard.js index a716ca8..a6b3e22 100644 --- a/src/modules/gameboard.js +++ b/src/modules/gameboard.js @@ -290,11 +290,11 @@ export function start(el) { }); // debug // - const attacker = { dataset: { allegiance: 'attacker', number: 1, squad: 1 }}; - const defender = { dataset: { allegiance: 'defender', number: 1, squad: 2 }}; + // const attacker = { dataset: { allegiance: 'attacker', number: 1, squad: 1 }}; + // const defender = { dataset: { allegiance: 'defender', number: 1, squad: 2 }}; - soldier.place(svg, soldier.createCounter(attacker, 'blazer'), getCell(0, 0, 0, 0)); - soldier.place(svg, soldier.createCounter(defender, 'rifle'), getCell(-1, 0, 1, 0)); + // soldier.place(svg, soldier.createCounter(attacker, 'blazer'), getCell(0, 0, 0, 0)); + // soldier.place(svg, soldier.createCounter(defender, 'rifle'), getCell(-1, 0, 1, 0)); /////////// Observable.subscribe('select', select); diff --git a/src/modules/record_sheet.js b/src/modules/record_sheet.js index 5f14852..0e26155 100644 --- a/src/modules/record_sheet.js +++ b/src/modules/record_sheet.js @@ -63,15 +63,19 @@ function createWeaponIcon(type) { function createRecord(unit) { const { dataset: { allegiance, number, squad }} = unit, - primaryWeapon = unit.querySelector('.primary-weapon'), - pw = primaryWeapon.getAttributeNS(null, 'href').split('#').pop() || 'rifle', + + pw = unit.classList && unit.classList.contains('counter') + ? unit.querySelector('.primary-weapon').getAttributeNS(null, 'href').split('#').pop() + : unit.dataset.weapon || 'rifle', + div = document.createElement('soldier-record-block'), spans = Array(6).fill('span').map(t => document.createElement(t)), [tn, sn, pwt, pwd, pwrs, pwrl] = spans; div.classList.add('soldier-record'); - if (unit.classList.contains('selected')) div.classList.add('selected'); + if (unit.classList && unit.classList.contains('selected')) div.classList.add('selected'); div.dataset.number = number; + div.dataset.squad = squad; div.dataset.allegiance = allegiance; tn.setAttribute('slot', 'troop-number'); |