UserSkillShuriken.ts
1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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();
}
}