refactor(03-15): order replay class internals consistently

- Keep private command actions before their execute callers per project conventions
This commit is contained in:
unanmed 2026-09-11 14:32:20 +08:00
parent f5c6b06c59
commit 4e318e6ce1

View File

@ -54,11 +54,6 @@ class ReplayUpCommand implements IReplayCommand {
);
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
private moveHero(): boolean {
const mover = this.state.hero.location.mover;
if (mover.moving) return false;
@ -67,6 +62,11 @@ class ReplayUpCommand implements IReplayCommand {
if (!controller) return false;
return true;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
}
class ReplayRightCommand implements IReplayCommand {
@ -82,11 +82,6 @@ class ReplayRightCommand implements IReplayCommand {
);
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
private moveHero(): boolean {
const mover = this.state.hero.location.mover;
if (mover.moving) return false;
@ -95,6 +90,11 @@ class ReplayRightCommand implements IReplayCommand {
if (!controller) return false;
return true;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
}
class ReplayDownCommand implements IReplayCommand {
@ -110,11 +110,6 @@ class ReplayDownCommand implements IReplayCommand {
);
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
private moveHero(): boolean {
const mover = this.state.hero.location.mover;
if (mover.moving) return false;
@ -123,6 +118,11 @@ class ReplayDownCommand implements IReplayCommand {
if (!controller) return false;
return true;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
}
class ReplayLeftCommand implements IReplayCommand {
@ -138,11 +138,6 @@ class ReplayLeftCommand implements IReplayCommand {
);
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
private moveHero(): boolean {
const mover = this.state.hero.location.mover;
if (mover.moving) return false;
@ -151,6 +146,11 @@ class ReplayLeftCommand implements IReplayCommand {
if (!controller) return false;
return true;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 0) return Promise.resolve(false);
return Promise.resolve(this.moveHero());
}
}
class ReplayAutoPathfindCommand implements IReplayCommand {
@ -170,6 +170,12 @@ class ReplayAutoPathfindCommand implements IReplayCommand {
);
}
private moveToPoint(x: number, y: number): boolean {
const result = this.state.pathfinding.moveTo({ x, y });
if (!result) return false;
return true;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 2) return Promise.resolve(false);
const x = step.params[0];
@ -177,12 +183,6 @@ class ReplayAutoPathfindCommand implements IReplayCommand {
if (!isNumber(x) || !isNumber(y)) return Promise.resolve(false);
return Promise.resolve(this.moveToPoint(x, y));
}
private moveToPoint(x: number, y: number): boolean {
const result = this.state.pathfinding.moveTo({ x, y });
if (!result) return false;
return true;
}
}
class ReplayUseItemCommand implements IReplayCommand {
@ -195,16 +195,16 @@ class ReplayUseItemCommand implements IReplayCommand {
>);
}
private useItem(item: number | string): boolean {
return this.state.hero.items.useItem(item);
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 1) return Promise.resolve(false);
const item = step.params[0];
if (!isItem(item)) return Promise.resolve(false);
return Promise.resolve(this.useItem(item));
}
private useItem(item: number | string): boolean {
return this.state.hero.items.useItem(item);
}
}
class ReplayEquipCommand implements IReplayCommand {
@ -222,6 +222,22 @@ class ReplayEquipCommand implements IReplayCommand {
>);
}
private equip(
uid: number,
slot: number | string,
autoUnload: boolean | undefined
): boolean {
const equipment = this.state.hero.equip;
const slotIndex = resolveSlot(this.state, slot);
if (slotIndex === null) return false;
if (equipment.getEquipped(slotIndex) === uid) return true;
if (equipment.canEquipTo(uid, slot) === EquipStatus.CannotEquip) {
return false;
}
equipment.equip(uid, slot, autoUnload);
return equipment.getEquipped(slotIndex) === uid;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length < 2 || step.params.length > 3) {
return Promise.resolve(false);
@ -239,22 +255,6 @@ class ReplayEquipCommand implements IReplayCommand {
if (slotIndex === null) return Promise.resolve(false);
return Promise.resolve(this.equip(uid, slot, autoUnload));
}
private equip(
uid: number,
slot: number | string,
autoUnload: boolean | undefined
): boolean {
const equipment = this.state.hero.equip;
const slotIndex = resolveSlot(this.state, slot);
if (slotIndex === null) return false;
if (equipment.getEquipped(slotIndex) === uid) return true;
if (equipment.canEquipTo(uid, slot) === EquipStatus.CannotEquip) {
return false;
}
equipment.equip(uid, slot, autoUnload);
return equipment.getEquipped(slotIndex) === uid;
}
}
class ReplayUnequipCommand implements IReplayCommand {
@ -270,6 +270,13 @@ class ReplayUnequipCommand implements IReplayCommand {
);
}
private unequip(slot: number): boolean {
const equipment = this.state.hero.equip;
if (equipment.getEquipped(slot) === undefined) return false;
equipment.unequip(slot);
return equipment.getEquipped(slot) === undefined;
}
execute(step: IReplayStepHandler): Promise<boolean> {
if (step.params.length !== 1) return Promise.resolve(false);
const slot = step.params[0];
@ -278,13 +285,6 @@ class ReplayUnequipCommand implements IReplayCommand {
}
return Promise.resolve(this.unequip(slot));
}
private unequip(slot: number): boolean {
const equipment = this.state.hero.equip;
if (equipment.getEquipped(slot) === undefined) return false;
equipment.unequip(slot);
return equipment.getEquipped(slot) === undefined;
}
}
/** 创建按稳定 enum 顺序排列的默认 replay command items */