Web Dev Solutions

Catalin Mititiuc

aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatalin Mititiuc <webdevcat@proton.me>2024-04-30 10:17:45 -0700
committerCatalin Mititiuc <webdevcat@proton.me>2024-04-30 10:17:45 -0700
commit82d3a4b415ba920176058d615b697e84a49adabc (patch)
tree7bc250d9f332689e3dc0c4e7aec5949175a0f9fa /src/modules/gameboard.js
parenta4888a3e0905f3561781cb0ef4686befc0dff122 (diff)
Create record sheet dynamically when map is loaded
Diffstat (limited to 'src/modules/gameboard.js')
-rw-r--r--src/modules/gameboard.js36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/modules/gameboard.js b/src/modules/gameboard.js
index 5a804a3..47533dd 100644
--- a/src/modules/gameboard.js
+++ b/src/modules/gameboard.js
@@ -2,6 +2,10 @@ import * as firingArc from './game/firing_arc.js';
import * as sightLine from './game/sight_line.js';
import * as soldier from './game/soldier.js';
+let svg, distanceCallback, proneFlagCallback, selectCallback,
+ selected,
+ placing = [];
+
function getCellContents(cell) {
return cell.querySelectorAll('*:not(use[href="#hex"])');
}
@@ -26,8 +30,8 @@ function getLockedSightLine(svg) {
return svg.querySelector('line.sight-line:not(.active)');
}
-export function getSightLine(svg) {
- return svg.querySelector('line.sight-line');
+function getSightLine() {
+ return sightLine.getSightLine();
}
function getActiveSightLine(svg) {
@@ -109,8 +113,9 @@ function drawSightLine(sourceCell, targetCell) {
distanceCallback && distanceCallback(hexes.length - 1);
}
-let svg, distanceCallback, proneFlagCallback, selectCallback,
- placing = [];
+export function getUnits() {
+ return soldier.getAllCounters(svg);
+}
export function setDistanceCallback(callback) {
distanceCallback = callback;
@@ -143,13 +148,7 @@ export function start(el) {
} else if (toPlace && !state.occupant) {
soldier.place(svg, toPlace, cell);
placing.push(toPlace);
- const lockedSl = getLockedSightLine(svg);
-
- if (!lockedSl) {
- clearSightLine();
- } else {
- updateSightLine(cell);
- }
+ getLockedSightLine(svg) ? updateSightLine(cell) : clearSightLine();
} else if (toPlace && state.occupant) {
if (toPlace === state.occupant) {
if ('previous' in toPlace.dataset) {
@@ -187,13 +186,7 @@ export function start(el) {
toPlace = state.occupant;
soldier.removeClones(svg, toPlace);
soldier.getTrace(svg, toPlace).remove();
- const lockedSl = getLockedSightLine(svg);
-
- if (!lockedSl) {
- clearSightLine();
- } else {
- updateSightLine(cell);
- }
+ getLockedSightLine(svg) ? updateSightLine(cell) : clearSightLine();
} else {
const index = getGridIndex(state.occupant),
trace = soldier.getTrace(svg, toPlace),
@@ -242,10 +235,15 @@ export function start(el) {
});
cell.addEventListener('pointerover', () => {
+ // should we draw a sight line?
+ // conditions:
+ // we have a soldier selected
+ // that soldier's counter is on the board
+ // the sight line is not locked
let selected = getSelected();
if (selected) {
- let sl = getSightLine(svg),
+ let sl = getSightLine(),
isOnBoard = selected.parentElement.hasAttribute('data-x'),
sourceCell = selected.parentElement;