From 3c0e59f68ee061abc98dafa07301bd54005e94dc Mon Sep 17 00:00:00 2001
From: Catalin Mititiuc
Date: Tue, 2 Jul 2024 15:52:38 -0700
Subject: Create counters with assigned weapons
---
src/modules/game/soldier.js | 6 +++++-
src/modules/record_sheet.js | 12 ++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/modules/game/soldier.js b/src/modules/game/soldier.js
index fc3d113..7a3ffaa 100644
--- a/src/modules/game/soldier.js
+++ b/src/modules/game/soldier.js
@@ -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;
diff --git a/src/modules/record_sheet.js b/src/modules/record_sheet.js
index 0f279d5..5f14852 100644
--- a/src/modules/record_sheet.js
+++ b/src/modules/record_sheet.js
@@ -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');
}
--
cgit v1.2.3