Files
CINC/systems/CommandSystem.js
T

31 lines
825 B
JavaScript

// systems/CommandSystem.js
import { activeUnit, selectedUnits } from './ControlMode.js';
export class CommandSystem {
constructor(scene) {
this.scene = scene;
scene.events.on('move-relative', this.onMoveRelative, this);
scene.events.on('move-to-point', this.onMoveToPoint, this);
scene.events.on('select-unit', this.onSelectUnit, this);
}
onMoveRelative(dir) {
if (activeUnit) {
activeUnit.moveRelative(dir.x, dir.y);
}
}
onMoveToPoint(x, y) {
const targets = selectedUnits.length > 0 ? selectedUnits : (activeUnit ? [activeUnit] : []);
targets.forEach(unit => unit.moveTo(x, y));
}
onSelectUnit(unit) {
// 切换单位
import('./ControlMode.js').then(mod => {
mod.setActiveUnit(unit);
this.scene.events.emit('unit-activated', unit);
});
}
}