mirror of
http://junepve.top:3000/chicrobot/CINC.git
synced 2026-10-30 07:31:29 +08:00
31 lines
825 B
JavaScript
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);
|
|
});
|
|
}
|
|
} |