Select soldier by clicking on their counter; allow locking on another counter vs the hex
This commit is contained in:
parent
83ba223e01
commit
e8f0dde6da
56
index.js
56
index.js
@ -459,15 +459,11 @@ const Counter = new function() {
|
|||||||
this.select = function({ dataset: { troopNumber, troopAllegiance }}) {
|
this.select = function({ dataset: { troopNumber, troopAllegiance }}) {
|
||||||
this.unSelect();
|
this.unSelect();
|
||||||
|
|
||||||
let counterAndClones = container.querySelectorAll(selector(troopNumber, troopAllegiance));
|
let counter = container.querySelector(`${selector(troopNumber, troopAllegiance)}:not(.clone)`);
|
||||||
|
|
||||||
counterAndClones.forEach(el => {
|
if (counter) {
|
||||||
el.style.pointerEvents = 'auto';
|
counter.classList.add(selectedClass);
|
||||||
|
}
|
||||||
if (!el.classList.contains('clone')) {
|
|
||||||
el.classList.add(selectedClass);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.unSelect = function() {
|
this.unSelect = function() {
|
||||||
@ -633,9 +629,8 @@ const RecordSheet = new function() {
|
|||||||
let { troopNumber, troopAllegiance } = el.dataset,
|
let { troopNumber, troopAllegiance } = el.dataset,
|
||||||
proneStatus = Counter.hasProne(troopNumber, troopAllegiance);
|
proneStatus = Counter.hasProne(troopNumber, troopAllegiance);
|
||||||
|
|
||||||
this.unSelect();
|
RecordSheet.unSelect();
|
||||||
|
document.querySelector(`#record-sheet .soldier-record[data-troop-number="${troopNumber}"][data-troop-allegiance="${troopAllegiance}"]`).classList.add('selected');
|
||||||
el.classList.add('selected');
|
|
||||||
document.getElementById('toggle-prone-counter').checked = proneStatus;
|
document.getElementById('toggle-prone-counter').checked = proneStatus;
|
||||||
existingArcs = document.querySelectorAll(`#firing-arcs polygon[data-troop-number="${troopNumber}"][data-troop-allegiance="${troopAllegiance}"]`);
|
existingArcs = document.querySelectorAll(`#firing-arcs polygon[data-troop-number="${troopNumber}"][data-troop-allegiance="${troopAllegiance}"]`);
|
||||||
existingArcs.forEach(el => el.removeAttribute('clip-path'));
|
existingArcs.forEach(el => el.removeAttribute('clip-path'));
|
||||||
@ -667,15 +662,19 @@ POINTS.forEach((row, index) => row.forEach(([x, y]) => {
|
|||||||
|
|
||||||
group.appendChild(point);
|
group.appendChild(point);
|
||||||
|
|
||||||
group.addEventListener('pointerover', e => {
|
|
||||||
// console.log('group pointer over')
|
|
||||||
group.classList.add('hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
group.addEventListener('pointerout', e => {
|
group.addEventListener('pointerout', e => {
|
||||||
group.classList.remove('hover');
|
group.classList.remove('hover');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
group.addEventListener('click', e => {
|
||||||
|
let cl = e.target.classList;
|
||||||
|
|
||||||
|
if (cl.contains('counter') && !cl.contains('clone')) {
|
||||||
|
RecordSheet.select(e.target);
|
||||||
|
Counter.select(e.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
point.addEventListener('click', e => {
|
point.addEventListener('click', e => {
|
||||||
let selectedSoldier = document.querySelector('.soldier-record.selected');
|
let selectedSoldier = document.querySelector('.soldier-record.selected');
|
||||||
let existingOccupant =
|
let existingOccupant =
|
||||||
@ -694,7 +693,7 @@ POINTS.forEach((row, index) => row.forEach(([x, y]) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
point.addEventListener('contextmenu', e => {
|
group.addEventListener('contextmenu', e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let sl = svg.querySelector('.sight-line');
|
let sl = svg.querySelector('.sight-line');
|
||||||
|
|
||||||
@ -708,8 +707,9 @@ POINTS.forEach((row, index) => row.forEach(([x, y]) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
point.addEventListener('pointerover', e => {
|
group.addEventListener('pointerover', e => {
|
||||||
// console.log('pointerover', this);
|
group.classList.add('hover');
|
||||||
|
|
||||||
let selected = RecordSheet.getSelected();
|
let selected = RecordSheet.getSelected();
|
||||||
|
|
||||||
if (selected) {
|
if (selected) {
|
||||||
@ -796,16 +796,16 @@ document.querySelectorAll('.soldier-record').forEach(el =>
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
document.querySelector('#grid').addEventListener('click', e => {
|
// document.querySelector('#grid').addEventListener('click', e => {
|
||||||
let point = ptGrp.querySelector(`[data-x="${e.target.dataset.x}"][data-y="${e.target.dataset.y}"]`),
|
// let point = ptGrp.querySelector(`[data-x="${e.target.dataset.x}"][data-y="${e.target.dataset.y}"]`),
|
||||||
sl = svg.querySelector('.sight-line');
|
// sl = svg.querySelector('.sight-line');
|
||||||
|
|
||||||
if (sl) {
|
// if (sl) {
|
||||||
sl.classList.add('active');
|
// sl.classList.add('active');
|
||||||
point.dispatchEvent(new MouseEvent('mouseout'));
|
// point.dispatchEvent(new MouseEvent('mouseout'));
|
||||||
point.dispatchEvent(new MouseEvent('pointerover'));
|
// point.dispatchEvent(new MouseEvent('pointerover'));
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
document.querySelectorAll('.end-move').forEach(el => el.addEventListener('click', e => {
|
document.querySelectorAll('.end-move').forEach(el => el.addEventListener('click', e => {
|
||||||
let selected = RecordSheet.getSelected();
|
let selected = RecordSheet.getSelected();
|
||||||
|
@ -238,12 +238,12 @@ g#points g.hover use[href="#point"] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
g#points g.hover use.counter {
|
g#points g.hover use.counter {
|
||||||
stroke-width: 2px;
|
|
||||||
r: 7px;
|
r: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
g#points g.hover use.counter:not(.clone) {
|
g#points g.hover use.counter:not(.clone) {
|
||||||
stroke: orange;
|
stroke: orange;
|
||||||
|
stroke-width: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
g#points use.counter[data-troop-allegiance="davion"] {
|
g#points use.counter[data-troop-allegiance="davion"] {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user