Newer
Older
PixelPaintWar / apps / client / src / scenes / game / application / loopSteps / BombStep.ts
/**
 * BombStep
 * ゲームループの爆弾更新段を担う
 * 爆弾エンティティの時間更新と状態遷移を実行する
 */
import { BombManager } from "@client/scenes/game/entities/bomb/BombManager";
import type { LoopFrameContext, LoopFrameEffects, LoopStep } from "./LoopStep";

/** BombStep の初期化入力 */
type BombStepOptions = {
  bombManager: BombManager;
};

/** 爆弾更新処理を担うステップ */
export class BombStep implements LoopStep {
  private bombManager: BombManager;

  constructor({ bombManager }: BombStepOptions) {
    this.bombManager = bombManager;
  }

  /** 爆弾更新を実行する,時間管理は GameTimer 由来の経過時刻を利用する */
  public run(
    _context: Readonly<LoopFrameContext>,
    _effects: LoopFrameEffects,
  ): void {
    this.bombManager.tick();
  }
}