Create counters with assigned weapons

This commit is contained in:
Catalin Constantin Mititiuc 2024-07-02 15:52:38 -07:00
parent 71724cc979
commit 3c0e59f68e
2 changed files with 17 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import counters from './assets/images/counters.svg'; import counters from './assets/images/counters.svg';
import { extractWeaponFromRecord, isRecord } from '../record_sheet.js';
const selectedClass = 'selected'; const selectedClass = 'selected';
@ -58,8 +59,11 @@ function createTrace(previous, current, selected) {
export function createCounter(selected, weapon = 'rifle') { export function createCounter(selected, weapon = 'rifle') {
const use = document.createElementNS(svgns, 'use'); const use = document.createElementNS(svgns, 'use');
const g = document.createElementNS(svgns, 'g'); const g = document.createElementNS(svgns, 'g');
use.setAttributeNS(null, 'href', `../../${counters}#${weapon}`); const assignedWeapon = isRecord(selected) ? extractWeaponFromRecord(selected) : weapon;
use.setAttributeNS(null, 'href', `../../${counters}#${assignedWeapon}`);
use.classList.add('primary-weapon'); use.classList.add('primary-weapon');
g.classList.add('counter'); g.classList.add('counter');
g.dataset.allegiance = selected.dataset.allegiance; g.dataset.allegiance = selected.dataset.allegiance;
g.dataset.number = selected.dataset.number; g.dataset.number = selected.dataset.number;

View File

@ -152,6 +152,18 @@ function endMove() {
deselect(); deselect();
} }
export function extractWeaponFromRecord(recordEl) {
return recordEl
.querySelector('[slot="primary-weapon-type"] use')
.getAttributeNS(null, 'href')
.split('#')
.pop();
}
export function isRecord(el) {
return el.classList && el.classList.contains('soldier-record');
}
export function getSelected() { export function getSelected() {
return document.querySelector('.soldier-record.selected'); return document.querySelector('.soldier-record.selected');
} }