cc.Class({
    extends: cc.Component,

    properties: {
        touchFlag: false,
    },

    添加事件() {
        if (this._isEnemy) {

        } else {
            this.node.on(cc.Node.EventType.TOUCH_START, function () {
                if (!this.canClick)
                    return;
                this.爆炸();
            }, this);
            Games.node.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
                if (!this.canClick)
                    return;
                if (Games.checkTouch(this.node, event.getLocation())) {
                    if (this.touchFlag == false) {
                        this.lastPos = event.getLocation();
                        this.touchFlag = true;
                    }
                } else {
                    if (this.touchFlag == true) {
                        this.currentPos = event.getLocation();
                        this.方向判断();
                    }
                }
            }, this);
        }
    },

    init(parents, randomIndex) {
        this.父级 = parents;
        if (this.父级.name == "敌方父级") {
            this._isEnemy = true;
        }
        this.添加事件();
        this.reduceBloodCount = 5;
        this.目标父级 = Games.敌方;
        this.node.position = new cc.Vec2(0, -290);
        this.canClick = true;
        this.伸头();
    },


    爆炸() {
        if (!this.canClick)
            return;
        this.canClick = false;
        ObjectPools.playSimpleAudioEngine(6);
        this.scheduleOnce(function () {
            Games.掉血(this.目标父级, this.reduceBloodCount);
            ObjectPools.炸弹回收(this.node);
            Games.随机生成(this.父级);
        }, 0.2)
    },

    方向判断() {
        var valuex = this.currentPos.x - this.lastPos.x;
        if (Math.abs(valuex) < 5)
            return;
        this.touchFlag = false;
        this.爆炸();
    },

    伸头() {
        var self = this;
        this.伸头动作 = cc.moveBy(0.2, cc.p(0, 160));
        this.node.runAction(this.伸头动作);
        this.scheduleOnce(function () {
            if (this.canClick) {
                this.canClick = false;
                this.unscheduleAllCallbacks();
                var finished = cc.callFunc(function () {
                    self.node.stopAllActions();
                    ObjectPools.炸弹回收(self.node);
                    Games.随机生成(self.父级);
                });
                this.缩头动作 = cc.sequence(cc.moveBy(0.2, cc.p(0, -160)), finished);
                this.node.runAction(this.缩头动作);
            }
        }, 2);
    },
});
