Remove 'reveal pattern' from counter module
This commit is contained in:
parent
25c74d9a8e
commit
b88945ced6
@ -1,6 +1,6 @@
|
||||
import * as firingArc from './game/firingArc.js';
|
||||
import * as sightLine from './game/sightLine.js';
|
||||
import Counter from './game/counter.js';
|
||||
import * as counterMod from './game/counter.js';
|
||||
|
||||
const svgns = "http://www.w3.org/2000/svg";
|
||||
|
||||
@ -113,7 +113,7 @@ function drawSightLine(sourceCell, targetCell) {
|
||||
|
||||
let svg, distanceCallback, proneFlagCallback, selectCallback;
|
||||
|
||||
let board, counterMod,
|
||||
let board,
|
||||
placing = [];
|
||||
|
||||
export function setDistanceCallback(callback) {
|
||||
@ -131,7 +131,6 @@ export function setSelectCallback(callback) {
|
||||
export function start(el) {
|
||||
svg = el;
|
||||
board = svg.querySelector('.board');
|
||||
counterMod = Counter(svg, board);
|
||||
|
||||
getCells(svg).forEach(cell => {
|
||||
cell.addEventListener('click', e => {
|
||||
@ -147,7 +146,7 @@ export function start(el) {
|
||||
if (isGrenade(toPlace)) {
|
||||
state.hex.after(toPlace);
|
||||
} else if (toPlace && !state.occupant) {
|
||||
counterMod.place(toPlace, cell);
|
||||
counterMod.place(svg, toPlace, cell);
|
||||
placing.push(toPlace);
|
||||
const lockedSl = getLockedSightLine(svg);
|
||||
|
||||
@ -159,11 +158,11 @@ export function start(el) {
|
||||
} else if (toPlace && state.occupant) {
|
||||
if (toPlace === state.occupant) {
|
||||
if ('previous' in toPlace.dataset) {
|
||||
const trace = counterMod.getTrace(toPlace);
|
||||
const trace = counterMod.getTrace(svg, toPlace);
|
||||
toPlace.remove();
|
||||
toPlace = getCounterAtGridIndex(...toPlace.dataset.previous.split(','));
|
||||
toPlace.classList.remove('clone');
|
||||
toPlace.classList.add(counterMod.selectedClass);
|
||||
toPlace.classList.add(counterMod.getSelectedClass());
|
||||
if (!('previous' in toPlace.dataset)) {
|
||||
trace.remove();
|
||||
} else {
|
||||
@ -188,11 +187,11 @@ export function start(el) {
|
||||
if (isClone(state.occupant).of(toPlace)) {
|
||||
if (!('previous' in state.occupant.dataset)) {
|
||||
state.occupant.classList.remove('clone');
|
||||
state.occupant.classList.add(counterMod.selectedClass);
|
||||
state.occupant.classList.add(counterMod.getSelectedClass());
|
||||
toPlace.remove();
|
||||
toPlace = state.occupant;
|
||||
counterMod.removeClones(toPlace);
|
||||
counterMod.getTrace(toPlace).remove();
|
||||
counterMod.removeClones(svg, toPlace);
|
||||
counterMod.getTrace(svg, toPlace).remove();
|
||||
const lockedSl = getLockedSightLine(svg);
|
||||
|
||||
if (!lockedSl) {
|
||||
@ -202,7 +201,7 @@ export function start(el) {
|
||||
}
|
||||
} else {
|
||||
const index = getGridIndex(state.occupant),
|
||||
trace = counterMod.getTrace(toPlace),
|
||||
trace = counterMod.getTrace(svg, toPlace),
|
||||
pos = getCellPosition(cell),
|
||||
points = trace.getAttribute('points').split(' ').filter(p => p != `${pos.x},${pos.y}`).join(' ');;
|
||||
|
||||
@ -283,18 +282,18 @@ export function start(el) {
|
||||
});
|
||||
|
||||
// debug
|
||||
const c = counterMod.getCounter({ dataset: { allegiance: 'davion', number: '1' }});
|
||||
counterMod.place(c, getCell(17, 25));
|
||||
const c = counterMod.getCounter(svg, { dataset: { allegiance: 'davion', number: '1' }});
|
||||
counterMod.place(svg, c, getCell(17, 25));
|
||||
select(c);
|
||||
}
|
||||
|
||||
export function select(selected) {
|
||||
const counter = counterMod.getCounter(selected);
|
||||
const counter = counterMod.getCounter(svg, selected);
|
||||
|
||||
if (counter) {
|
||||
unSelect();
|
||||
placing.push(counter);
|
||||
counter.classList.add(counterMod.selectedClass);
|
||||
counter.classList.add(counterMod.getSelectedClass());
|
||||
firingArc.get(svg, counter).forEach(el => el.removeAttribute('clip-path'));
|
||||
selectCallback && selectCallback({ prone: counterMod.hasProne(counter), ...counter.dataset });
|
||||
}
|
||||
@ -305,7 +304,7 @@ export function unSelect() {
|
||||
|
||||
if (selected) {
|
||||
placing = [];
|
||||
getSelected().classList.remove(counterMod.selectedClass);
|
||||
getSelected().classList.remove(counterMod.getSelectedClass());
|
||||
clearSightLine();
|
||||
firingArc.clipAll(svg);
|
||||
}
|
||||
@ -315,7 +314,7 @@ export function endMove() {
|
||||
const selected = getSelected();
|
||||
|
||||
if (selected) {
|
||||
counterMod.endMove(selected);
|
||||
counterMod.endMove(svg, selected);
|
||||
unSelect();
|
||||
}
|
||||
}
|
||||
|
@ -30,16 +30,15 @@ function getCounterAndClones(svg, counter) {
|
||||
return svg.querySelectorAll(`.counter${dataSelector(counter)}`);
|
||||
}
|
||||
|
||||
export default function (svg, board) {
|
||||
function getCounter(selected) {
|
||||
export function getCounter(svg, selected) {
|
||||
return svg.querySelector(`.counter${dataSelector(selected)}:not(.clone)`);
|
||||
}
|
||||
}
|
||||
|
||||
function getTrace(counter) {
|
||||
export function getTrace(svg, counter) {
|
||||
return svg.querySelector(traceSelector(counter));
|
||||
}
|
||||
}
|
||||
|
||||
function place(selected, cell) {
|
||||
export function place(svg, selected, cell) {
|
||||
let points,
|
||||
counterNodeList = getCounterAndClones(svg, selected);
|
||||
|
||||
@ -79,7 +78,7 @@ export default function (svg, board) {
|
||||
trace.dataset.allegiance = selected.dataset.allegiance;
|
||||
trace.classList.add('move-trace');
|
||||
|
||||
board.prepend(trace);
|
||||
svg.querySelector('.board').prepend(trace);
|
||||
} else {
|
||||
points = `${trace.getAttribute('points')} ${current.x},${current.y}`;
|
||||
}
|
||||
@ -89,13 +88,13 @@ export default function (svg, board) {
|
||||
selected.removeAttribute('data-x');
|
||||
cell.appendChild(selected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function removeClones(counter) {
|
||||
export function removeClones(svg, counter) {
|
||||
getClones(svg, counter).forEach(c => c.remove());
|
||||
}
|
||||
}
|
||||
|
||||
function endMove(counter) {
|
||||
export function endMove(svg, counter) {
|
||||
const trace = svg.querySelector(traceSelector(counter)),
|
||||
proneCounter = counter.querySelector('[href="#counter-prone"]');
|
||||
|
||||
@ -110,13 +109,13 @@ export default function (svg, board) {
|
||||
}
|
||||
|
||||
removeClones(counter);
|
||||
}
|
||||
}
|
||||
|
||||
function hasProne(counter) {
|
||||
export function hasProne(counter) {
|
||||
return !!counter.querySelector('[href="#counter-prone"]');
|
||||
}
|
||||
}
|
||||
|
||||
function toggleProne(counter) {
|
||||
export function toggleProne(counter) {
|
||||
let proneCounter = counter.querySelector('[href="#counter-prone"]');
|
||||
|
||||
if (!proneCounter) {
|
||||
@ -128,18 +127,8 @@ export default function (svg, board) {
|
||||
} else {
|
||||
proneCounter.remove();
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
get selectedClass() {
|
||||
return selectedClass;
|
||||
},
|
||||
endMove,
|
||||
getCounter,
|
||||
hasProne,
|
||||
toggleProne,
|
||||
place,
|
||||
getTrace,
|
||||
removeClones
|
||||
};
|
||||
}
|
||||
|
||||
export function getSelectedClass() {
|
||||
return selectedClass;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user