import { Battle } from "../Battle"; import { UserSkill } from "../BattleConst"; import { UserSkillBase } from "./UserSkillBase"; import { UserSkillShurikenData } from "./UserSkillShurikenData"; export class UserSkillShuriken extends UserSkillBase { private static _isLock: boolean = false; private _tweenObj: object = {}; constructor(battle: Battle) { super(battle, UserSkill.SHURIKEN); } start(free: boolean = false): boolean { let maxY: number = 0; this._battle.mapData.blockData.forEach((value, key, map) => { if (value.contentY > maxY) { maxY = value.contentY; } }, this); UserSkillShurikenData.maxY = maxY; //先计算坐标,以便通知显示层时有可用数据 if (!UserSkillShuriken._isLock && super.start(free)) { UserSkillShuriken._isLock = true; cc.tween(this._tweenObj).delay(1.7).call(this.doSkill.bind(this)).start(); // this.doSkill(); return true; } return false; } /**跳过检测,直接使用技能 */ doSkill() { UserSkillShuriken._isLock = false; for (let x = 0; x < this._battle.mapData.mapGridSize.x; ++x) { let block = this._battle.mapData.getBlockByGridPos(x, UserSkillShurikenData.maxY); block && block.dead(); } } /**复活时调用的接口 */ doSkillRevive() { let maxY: number = 0; this._battle.mapData.blockData.forEach((value, key, map) => { if (value.contentY > maxY) { maxY = value.contentY; } }, this); UserSkillShurikenData.maxY = maxY; //先计算坐标,以便通知显示层时有可用数据 this.doSkill(); } }