Added hotgroup

This commit is contained in:
PeekabooSteam
2023-09-21 22:54:09 +01:00
parent c3d3de9984
commit 7eb76ff32d
2 changed files with 81 additions and 23 deletions

View File

@@ -71,6 +71,9 @@ class ControlTipsPlugin {
} }
__classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this);
}); });
document.addEventListener("mouseup", (ev) => {
__classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this);
});
__classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this);
__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getMap().addVisibilityOption(SHOW_CONTROL_TIPS, true); __classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getMap().addVisibilityOption(SHOW_CONTROL_TIPS, true);
return true; return true;
@@ -135,21 +138,27 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
"showIfUnitSelected": true, "showIfUnitSelected": true,
"unitsMustBeControlled": true "unitsMustBeControlled": true
}, },
{
"key": "CTRL+Mouse2",
"action": "Add waypoint",
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"unitsMustBeControlled": true
},
{ {
"key": `Mouse2 (hold)`, "key": `Mouse2 (hold)`,
"action": `Point operations`, "action": `Interact (ground)`,
"showIfUnitSelected": true, "showIfUnitSelected": true,
"showIfHoveringOverAirbase": false, "showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false, "showIfHoveringOverUnit": false,
"unitsMustBeControlled": true "unitsMustBeControlled": true
}, },
{
"key": `Shift`,
"action": "<em> in formation...</em>",
"showIfUnitSelected": true,
"minSelectedUnits": 2
},
{
"key": "CTRL",
"action": "<em> ... more</em>",
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"unitsMustBeControlled": true
},
{ {
"key": "CTRL", "key": "CTRL",
"action": " Pin tool", "action": " Pin tool",
@@ -166,18 +175,12 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
"unitsMustBeControlled": true "unitsMustBeControlled": true
}, },
{ {
"key": `Delete`, "key": `Mouse1`,
"action": `Delete unit`,
"showIfHoveringOverAirbase": false,
"showIfUnitSelected": true
},
{
"key": `mouse1`,
"action": "Toggle Blue/Red", "action": "Toggle Blue/Red",
"mouseoverSelector": "#coalition-switch .ol-switch-fill" "mouseoverSelector": "#coalition-switch .ol-switch-fill"
}, },
{ {
"key": `mouse2`, "key": `Mouse2`,
"action": "Set Neutral", "action": "Set Neutral",
"mouseoverSelector": "#coalition-switch .ol-switch-fill" "mouseoverSelector": "#coalition-switch .ol-switch-fill"
} }
@@ -204,15 +207,35 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
"key": `Mouse2`, "key": `Mouse2`,
"action": `Add waypoint`, "action": `Add waypoint`,
"showIfHoveringOverAirbase": false, "showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false,
"showIfUnitSelected": true, "showIfUnitSelected": true,
"unitsMustBeControlled": true "unitsMustBeControlled": true
}, },
{ {
"key": `Mouse2`, "key": `Mouse2`,
"action": `Airbase menu`, "action": `Interact (airbase)`,
"showIfHoveringOverAirbase": true, "showIfHoveringOverAirbase": true,
"showIfUnitSelected": true, "showIfUnitSelected": true,
"unitsMustBeControlled": true "unitsMustBeControlled": true
},
{
"key": `Mouse2`,
"action": `Interact (unit)`,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": true,
"showIfUnitSelected": true,
"unitsMustBeControlled": true
},
{
"key": `Shift`,
"action": "<em> in formation...</em>",
"showIfUnitSelected": true,
"minSelectedUnits": 2
},
{
"key": `[Num 1-9]`,
"action": "Set hotgroup",
"showIfUnitSelected": true
} }
] ]
}, },
@@ -220,8 +243,35 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
"keys": ["ShiftLeft"], "keys": ["ShiftLeft"],
"tips": [ "tips": [
{ {
"key": `mouse1+drag`, "key": `Mouse1+drag`,
"action": "Box select" "action": "Box select",
"showIfUnitSelected": false
},
{
"key": `Mouse2`,
"action": "Set first formation waypoint",
"showIfUnitSelected": true,
"minSelectedUnits": 2
},
{
"key": "CTRL",
"action": "<em> ... more</em>",
"minSelectedUnits": 2,
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"unitsMustBeControlled": true
}
]
},
{
"keys": ["ControlLeft", "ShiftLeft"],
"tips": [
{
"key": `Mouse2`,
"action": "Add formation waypoint",
"showIfUnitSelected": true,
"minSelectedUnits": 2,
"unitsMustBeControlled": true
} }
] ]
} }
@@ -230,11 +280,13 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
const element = this.getElement(); const element = this.getElement();
element.innerHTML = ""; element.innerHTML = "";
let numSelectedUnits = 0; let numSelectedUnits = 0;
let numSelectedControlledUnits = 0;
let unitSelectionContainsControlled = false; let unitSelectionContainsControlled = false;
if (__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager()) { if (__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager()) {
let selectedUnits = Object.values(__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager().getSelectedUnits()); let selectedUnits = Object.values(__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager().getSelectedUnits());
numSelectedUnits = selectedUnits.length; numSelectedUnits = selectedUnits.length;
unitSelectionContainsControlled = selectedUnits.some((unit) => unit.getControlled()); numSelectedControlledUnits = selectedUnits.filter((unit) => unit.getControlled()).length;
unitSelectionContainsControlled = numSelectedControlledUnits > 0;
} }
const tipsIncludesActiveMouseover = (currentCombo.tips.some((tip) => { const tipsIncludesActiveMouseover = (currentCombo.tips.some((tip) => {
if (!tip.mouseoverSelector) { if (!tip.mouseoverSelector) {
@@ -256,6 +308,9 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
if (tip.unitsMustBeControlled === true && unitSelectionContainsControlled === false) { if (tip.unitsMustBeControlled === true && unitSelectionContainsControlled === false) {
return false; return false;
} }
if (typeof tip.minSelectedUnits === "number" && numSelectedControlledUnits < tip.minSelectedUnits) {
return false;
}
} }
if (numSelectedUnits === 0 && tip.showIfUnitSelected === true) { if (numSelectedUnits === 0 && tip.showIfUnitSelected === true) {
return false; return false;
@@ -276,8 +331,6 @@ _ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap
if (!tipsIncludesActiveMouseover && typeof tip.mouseoverSelector === "string") { if (!tipsIncludesActiveMouseover && typeof tip.mouseoverSelector === "string") {
return false; return false;
} }
return true;
}).forEach((tip) => {
element.innerHTML += `<div><span class="key">${tip.key}</span><span class="action">${tip.action}</span></div>`; element.innerHTML += `<div><span class="key">${tip.key}</span><span class="action">${tip.action}</span></div>`;
}); });
}; };

View File

@@ -234,6 +234,11 @@ export class ControlTipsPlugin implements OlympusPlugin {
"action": "<em> in formation...</em>", "action": "<em> in formation...</em>",
"showIfUnitSelected": true, "showIfUnitSelected": true,
"minSelectedUnits": 2 "minSelectedUnits": 2
},
{
"key": `[Num 1-9]`,
"action": "Set hotgroup",
"showIfUnitSelected": true
} }
] ]
}, },
@@ -258,7 +263,7 @@ export class ControlTipsPlugin implements OlympusPlugin {
"showIfUnitSelected": true, "showIfUnitSelected": true,
"showIfHoveringOverAirbase": false, "showIfHoveringOverAirbase": false,
"unitsMustBeControlled": true "unitsMustBeControlled": true
}, }
] ]
}, },
{ {