BombBlockData.ts 935 Bytes
import { BlockData } from "./BlockData";

export class BombBlockData extends BlockData {

    //#region life cycle 

    onDead(): void {
        super.onDead();

        let startX = cc.clamp(this.gridPos.x - 1, 0, this.map.mapGridSize.x - 1);
        let endX = cc.clamp(this.gridPos.x + 1, 0, this.map.mapGridSize.x - 1);
        let startY = cc.clamp(this.gridPos.y - 1, 0, this.map.mapGridSize.y - 1);
        let endY = cc.clamp(this.gridPos.y + 1, 0, this.map.mapGridSize.y - 1);

        for (let x = startX; x <= endX; ++x) {
            for (let y = startY; y <= endY; ++y) {
                if (x == this.gridPos.x && y == this.gridPos.y) {
                    continue;
                }

                let block = this.map.getBlockByGridPos(x, y);

                //消除周围的格子

                if (block) {
                    block.dead();
                }
            }
        }
    }

    //#endregion
}