diff --git a/bot_modules/02_state.js b/bot_modules/02_state.js index 264dfe4..78aecc3 100644 --- a/bot_modules/02_state.js +++ b/bot_modules/02_state.js @@ -52,6 +52,12 @@ function gatherState() { if (bo?.models) buildQueue = bo.models.map(m => m.attributes); } catch (e) {} + let unitQueue = []; + try { + const uo = town.getUnitOrdersCollection?.(); + if (uo?.models) unitQueue = uo.models.map(m => m.attributes); + } catch (e) {} + let buildDataMap = {}; try { const buildDataRaw = uw.MM?.getModels?.()?.BuildingBuildData?.[town.id]?.attributes?.building_data || {}; @@ -211,6 +217,7 @@ function gatherState() { buildings, units: unitsObj, buildingOrder: buildQueue, + unitOrder: unitQueue, buildData: buildDataMap, unitData: unitDataMap, researches, diff --git a/routes/dashboard.py b/routes/dashboard.py index c0e92a2..270c4f6 100644 --- a/routes/dashboard.py +++ b/routes/dashboard.py @@ -260,6 +260,7 @@ def get_towns(): 'points': d.get('points', 0), 'god': d.get('god', None), 'build_queue': d.get('buildingOrder', []), + 'unit_queue': d.get('unitOrder', []), 'build_data': d.get('buildData', {}), 'unit_data': d.get('unitData', {}), 'researches': d.get('researches', {}), diff --git a/static/js/api.js b/static/js/api.js index 5e7dfb9..9257eeb 100644 --- a/static/js/api.js +++ b/static/js/api.js @@ -16,6 +16,7 @@ window.fetchTowns = async function() { if (window.selectedTownId) { window.renderBuildQueuePreview(); + window.renderUnitQueuePreview(); window.renderBuildingDropdown(); window.renderUnitDropdown(); window.renderTownDetails(); diff --git a/static/js/components/commandForm.js b/static/js/components/commandForm.js index c3957ea..17fc6a8 100644 --- a/static/js/components/commandForm.js +++ b/static/js/components/commandForm.js @@ -489,3 +489,27 @@ window.renderBuildQueuePreview = function() { }).join(''); el.innerHTML = `