Create counters with assigned weapons

This commit is contained in:
Catalin Constantin Mititiuc 2025-06-16 22:41:32 -07:00
parent a17ff4c696
commit 7e5557bd32
2 changed files with 17 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import counters from './assets/images/counters.svg';
import { extractWeaponFromRecord, isRecord } from '../record_sheet.js';
const selectedClass = 'selected';
@ -58,8 +59,11 @@ function createTrace(previous, current, selected) {
export function createCounter(selected, weapon = 'rifle') {
const use = document.createElementNS(svgns, 'use');
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');
g.classList.add('counter');
g.dataset.allegiance = selected.dataset.allegiance;
g.dataset.number = selected.dataset.number;

View File

@ -152,6 +152,18 @@ function endMove() {
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() {
return document.querySelector('.soldier-record.selected');
}