787 lines
34 KiB
JavaScript
787 lines
34 KiB
JavaScript
"use strict";
|
||
cc._RF.push(module, 'c58deN2u1NGZL8nJwvnu1PR', 'Block');
|
||
// Script/Block.ts
|
||
|
||
"use strict";
|
||
// Learn TypeScript:
|
||
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
|
||
// Learn Attribute:
|
||
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
|
||
// Learn life-cycle callbacks:
|
||
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
|
||
var __extends = (this && this.__extends) || (function () {
|
||
var extendStatics = function (d, b) {
|
||
extendStatics = Object.setPrototypeOf ||
|
||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||
return extendStatics(d, b);
|
||
};
|
||
return function (d, b) {
|
||
extendStatics(d, b);
|
||
function __() { this.constructor = d; }
|
||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||
};
|
||
})();
|
||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||
};
|
||
Object.defineProperty(exports, "__esModule", { value: true });
|
||
exports.PathType = exports.BlockType = void 0;
|
||
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
||
var BlockType;
|
||
(function (BlockType) {
|
||
/*普通地块 */
|
||
BlockType[BlockType["Nomal"] = 0] = "Nomal";
|
||
/*起点地块 */
|
||
BlockType[BlockType["Start"] = 1] = "Start";
|
||
/*湿地 */
|
||
BlockType[BlockType["Nunja"] = 2] = "Nunja";
|
||
/*山峰 */
|
||
BlockType[BlockType["Peak"] = 3] = "Peak";
|
||
/*终点地块 */
|
||
BlockType[BlockType["End"] = 4] = "End";
|
||
/*息壤 */
|
||
BlockType[BlockType["Xi_Soil"] = 5] = "Xi_Soil";
|
||
/*加固 */
|
||
BlockType[BlockType["Reinforce"] = 6] = "Reinforce";
|
||
})(BlockType = exports.BlockType || (exports.BlockType = {}));
|
||
var PathType;
|
||
(function (PathType) {
|
||
PathType["err"] = "err";
|
||
PathType["up"] = "up";
|
||
PathType["down"] = "down";
|
||
PathType["left"] = "left";
|
||
PathType["right"] = "right";
|
||
PathType["up_left"] = "up_left";
|
||
PathType["up_right"] = "up_right";
|
||
PathType["down_left"] = "down_left";
|
||
PathType["down_right"] = "down_right";
|
||
PathType["left_up"] = "left_up";
|
||
PathType["left_down"] = "left_down";
|
||
PathType["right_up"] = "right_up";
|
||
PathType["right_down"] = "right_down";
|
||
})(PathType = exports.PathType || (exports.PathType = {}));
|
||
var NewClass = /** @class */ (function (_super) {
|
||
__extends(NewClass, _super);
|
||
function NewClass() {
|
||
var _this = _super !== null && _super.apply(this, arguments) || this;
|
||
// LIFE-CYCLE CALLBACKS:
|
||
_this.UI = null;
|
||
return _this;
|
||
// update (dt) {}
|
||
}
|
||
NewClass.prototype.onLoad = function () {
|
||
this.finishi = false;
|
||
this.pos_Shifting = 0;
|
||
this.pos = cc.v2(0, 0);
|
||
};
|
||
NewClass.prototype.start = function () {
|
||
};
|
||
/**
|
||
* 息壤过后改变修筑路径
|
||
* @param order 建筑地图数组里的执行的序列号
|
||
* @param number 息壤执行长度,改变息壤用后其他路径的X或Y值
|
||
* @param direction 只为两个方向,横向false,纵向true
|
||
* @param road 建筑地图数组或者洪峰路径数组,可理解为路径数组,path_Array water_Array
|
||
*/
|
||
//初始化地图块数据
|
||
NewClass.prototype.initData = function (type, pos, max) {
|
||
this.block_Type = type;
|
||
this.pos = cc.v2(pos.x, pos.y);
|
||
// if(this.pos.y%2 == 0) this.node.getChildByName("tip").active = true;
|
||
if (type == cc.Enum(BlockType).Start) {
|
||
var bg = this.node.getChildByName("sp");
|
||
// this.node.getComponent(cc.Sprite).spriteFrame = null;
|
||
// bg.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["start"];
|
||
if (cc.fx.GameConfig.GM_INFO.level > 3) {
|
||
// bg.getChildByName("start").y = 20;
|
||
bg.getChildByName("end").y = 20;
|
||
}
|
||
this.rotateTarget(bg, "start", pos, max);
|
||
}
|
||
else if (type == cc.Enum(BlockType).End) {
|
||
var bg = this.node.getChildByName("sp");
|
||
// this.node.getComponent(cc.Sprite).spriteFrame = null;
|
||
bg.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["end"];
|
||
if (cc.fx.GameConfig.GM_INFO.level > 3) {
|
||
// bg.getChildByName("start").y = 20;
|
||
bg.getChildByName("end").y = 20;
|
||
}
|
||
this.rotateTarget(bg, "end", pos, max);
|
||
}
|
||
else if (type == cc.Enum(BlockType).Nunja) {
|
||
var random = Math.floor(Math.random() * 4);
|
||
var rotationArr = [0, 90, 180, 270];
|
||
var rotation = rotationArr[random];
|
||
this.node.getChildByName("bg").getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["e5"];
|
||
this.node.getChildByName("bg").angle = -rotation;
|
||
this.node.getComponent(cc.Sprite).spriteFrame = null;
|
||
}
|
||
else if (type == cc.Enum(BlockType).Peak) {
|
||
var random = Math.floor(Math.random() * 4 + 1);
|
||
var name = "shan" + random;
|
||
this.node.getChildByName("bg").getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
this.node.getComponent(cc.Sprite).spriteFrame = null;
|
||
}
|
||
if (cc.fx.GameConfig.GM_INFO.level == 1) {
|
||
this.node.getChildByName("tipWin").opacity = 220;
|
||
this.node.getChildByName("tipLose").opacity = 220;
|
||
}
|
||
else if (cc.fx.GameConfig.GM_INFO.level == 2) {
|
||
this.node.getChildByName("tipWin").opacity = 100;
|
||
this.node.getChildByName("tipLose").opacity = 100;
|
||
}
|
||
else if (cc.fx.GameConfig.GM_INFO.level == 3) {
|
||
this.node.getChildByName("tipWin").opacity = 50;
|
||
this.node.getChildByName("tipLose").opacity = 50;
|
||
}
|
||
else if (cc.fx.GameConfig.GM_INFO.level > 3) {
|
||
this.node.getChildByName("tipWin").opacity = 0;
|
||
this.node.getChildByName("tipLose").opacity = 0;
|
||
}
|
||
};
|
||
//旋转入海口和出海口的 图片以及文字角度
|
||
NewClass.prototype.rotateTarget = function (bg, name, pos, max) {
|
||
var target = bg.getChildByName(name);
|
||
if (pos.y == max.y - 1) {
|
||
bg.angle = 0;
|
||
if (name == "end")
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["end_x"];
|
||
target.active = true;
|
||
target.angle = 0;
|
||
return;
|
||
}
|
||
else if (pos.y == 0) {
|
||
bg.angle = -180;
|
||
if (name == "end")
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["end_x"];
|
||
target.active = true;
|
||
target.angle = -180;
|
||
return;
|
||
}
|
||
else if (pos.x == max.x - 1) {
|
||
bg.angle = 90;
|
||
if (name == "start")
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["start_y"];
|
||
else
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["end_y"];
|
||
target.active = true;
|
||
target.angle = -90;
|
||
}
|
||
else if (pos.x == 0) {
|
||
bg.angle = -90;
|
||
if (name == "start")
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["start_y"];
|
||
else
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["end_y"];
|
||
target.active = true;
|
||
target.angle = 90;
|
||
}
|
||
};
|
||
NewClass.prototype.setPath = function (type) {
|
||
this.path_Type = type;
|
||
};
|
||
//设置息壤在起点
|
||
NewClass.prototype.set_Xi_Soil = function (direction, type) {
|
||
var sp = this.node.getChildByName("sp");
|
||
var turn = this.node.getChildByName("turnStart");
|
||
var water = this.node.getChildByName("waterStart");
|
||
if (direction == "left" || direction == "right") {
|
||
if (sp.angle == 0) {
|
||
turn.active = true;
|
||
water.active = true;
|
||
water.opacity = 0;
|
||
if (type) {
|
||
turn.angle = direction == "left" ? 90 : 0;
|
||
water.angle = direction == "left" ? 90 : 0;
|
||
}
|
||
else {
|
||
turn.angle = direction == "left" ? 0 : 90;
|
||
water.angle = direction == "left" ? 0 : 90;
|
||
}
|
||
}
|
||
else if (sp.angle == -180) {
|
||
turn.active = true;
|
||
water.active = true;
|
||
water.opacity = 0;
|
||
if (type) {
|
||
turn.angle = direction == "left" ? -180 : -90;
|
||
water.angle = direction == "left" ? -180 : -90;
|
||
}
|
||
else {
|
||
turn.angle = direction == "left" ? 270 : -180;
|
||
water.angle = direction == "left" ? 270 : -180;
|
||
}
|
||
}
|
||
else if (sp.angle == -90) {
|
||
turn.active = true;
|
||
turn.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["a1"];
|
||
turn.angle = 90;
|
||
if (type) {
|
||
water.active = true;
|
||
water.angle = 90;
|
||
water.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["block1"];
|
||
water.opacity = 0;
|
||
}
|
||
}
|
||
else if (sp.angle == 90) {
|
||
turn.active = true;
|
||
turn.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["a1"];
|
||
turn.angle = 90;
|
||
if (type) {
|
||
water.active = true;
|
||
water.angle = 90;
|
||
water.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["block1"];
|
||
water.opacity = 0;
|
||
}
|
||
}
|
||
}
|
||
else if (direction == "up" || direction == "down") {
|
||
var sp_1 = this.node.getChildByName("sp");
|
||
if (sp_1.angle == -90) {
|
||
turn.active = true;
|
||
water.active = true;
|
||
water.opacity = 0;
|
||
if (type) {
|
||
turn.angle = direction == "up" ? 0 : -90;
|
||
water.angle = direction == "up" ? 0 : -90;
|
||
}
|
||
else {
|
||
turn.angle = direction == "up" ? -90 : 0;
|
||
water.angle = direction == "up" ? -90 : 0;
|
||
}
|
||
}
|
||
else if (sp_1.angle == 90) {
|
||
turn.active = true;
|
||
water.active = true;
|
||
water.opacity = 0;
|
||
if (type) {
|
||
turn.angle = direction == "up" ? 90 : 180;
|
||
water.angle = direction == "up" ? 90 : 180;
|
||
}
|
||
else {
|
||
turn.angle = direction == "up" ? 180 : 90;
|
||
water.angle = direction == "up" ? 180 : 90;
|
||
}
|
||
}
|
||
else if (sp_1.angle == 0) {
|
||
turn.active = true;
|
||
turn.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["a1"];
|
||
turn.angle = 0;
|
||
if (type) {
|
||
water.active = true;
|
||
water.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["block1"];
|
||
water.opacity = 0;
|
||
}
|
||
}
|
||
else if (sp_1.angle == -180) {
|
||
turn.active = true;
|
||
turn.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["a1"];
|
||
turn.angle = 0;
|
||
if (type) {
|
||
water.active = true;
|
||
water.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["block1"];
|
||
water.opacity = 0;
|
||
}
|
||
}
|
||
}
|
||
};
|
||
//息壤具体执行方法 外部可调用
|
||
NewClass.prototype.set_Xi_SoilType = function (direction, end, name) {
|
||
var _this = this;
|
||
// console.log("息壤",direction,name,end);
|
||
var jg = this.repeatRoad(true, direction);
|
||
console.log("息壤重复判断结果", jg);
|
||
if (jg == true) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
return;
|
||
}
|
||
if (this.block_Type == cc.Enum(BlockType).Start) {
|
||
this.set_Xi_Soil(direction, false);
|
||
return;
|
||
}
|
||
if (this.block_Type == cc.Enum(BlockType).Nunja) {
|
||
this.block_Type = cc.Enum(BlockType).Nomal;
|
||
this.node.getChildByName("bg").getComponent(cc.Sprite).spriteFrame = null;
|
||
this.node.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["block_Bg"];
|
||
}
|
||
if (end != null) {
|
||
if (this.block_Type == cc.Enum(BlockType).End) {
|
||
this.finishi = true;
|
||
setTimeout(function () {
|
||
_this.set_Xi_Soil(direction, true);
|
||
}, 500);
|
||
}
|
||
setTimeout(function () {
|
||
if (name == "water")
|
||
cc.fx.Notifications.emit(cc.fx.Message.nextWater, (end + 1));
|
||
else
|
||
cc.fx.Notifications.emit(cc.fx.Message.next, (end + 1));
|
||
}, 400);
|
||
}
|
||
if (this.block_Type != cc.Enum(BlockType).End && this.block_Type != cc.Enum(BlockType).Start) {
|
||
this.block_Type = cc.Enum(BlockType).Xi_Soil;
|
||
}
|
||
else {
|
||
}
|
||
var target = this.node.getChildByName("Xi_Soil");
|
||
this.path_Type = direction;
|
||
target.active = true;
|
||
target.opacity = 0;
|
||
cc.tween(target)
|
||
.to(0.1, { opacity: 255 })
|
||
.to(0.1, { opacity: 0 })
|
||
.call(function () {
|
||
if (direction != null && end == null) {
|
||
var data = {
|
||
order: 0,
|
||
time: cc.fx.GameConfig.TIME_INFO.waterSpeed[0],
|
||
type: 0,
|
||
circulate: false
|
||
};
|
||
if (name == "water") {
|
||
_this.runWater(data);
|
||
}
|
||
else
|
||
_this.runRoad(data);
|
||
}
|
||
})
|
||
.start();
|
||
};
|
||
//判断重复路径
|
||
NewClass.prototype.repeatRoad = function (type, direction) {
|
||
//如果双向都占用了还进来就算死了-
|
||
var jg = false;
|
||
if (this.node.getChildByName("vertical2").active == true && this.node.getChildByName("horizontal2").active == true) {
|
||
// alert("治水失败");
|
||
jg = true;
|
||
if (type) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
}
|
||
}
|
||
else if (this.node.getChildByName("turn2").active == true && this.block_Type != cc.Enum(BlockType).Xi_Soil) {
|
||
// alert("治水失败");
|
||
jg = true;
|
||
if (type) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
}
|
||
}
|
||
if (direction) {
|
||
if (this.node.getChildByName("vertical2").active == true && this.block_Type == cc.Enum(BlockType).Xi_Soil && (direction == "up" || direction == "down")) {
|
||
// alert("治水失败");
|
||
if (this.node.getChildByName("vertical2").angle == 0 || this.node.getChildByName("vertical2").angle == 180) {
|
||
jg = true;
|
||
if (type) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
}
|
||
}
|
||
}
|
||
else if (this.node.getChildByName("vertical2").active == true && this.block_Type == cc.Enum(BlockType).Xi_Soil && (direction == "right" || direction == "left")) {
|
||
// alert("治水失败");
|
||
if (this.node.getChildByName("vertical2").angle == 90 || this.node.getChildByName("vertical2").angle == 270) {
|
||
jg = true;
|
||
if (type) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return jg;
|
||
};
|
||
//修筑路线执行
|
||
NewClass.prototype.runRoad = function (data) {
|
||
if (this.path_Type == "err") {
|
||
setTimeout(function () {
|
||
if (data.circulate)
|
||
cc.fx.Notifications.emit(cc.fx.Message.next, order);
|
||
}, data.time);
|
||
return;
|
||
}
|
||
var jg = this.repeatRoad(true, null);
|
||
if (jg == true)
|
||
return;
|
||
var target = null;
|
||
var progress = 1;
|
||
var time = data.time;
|
||
var order = data.order + 1;
|
||
var random = Math.floor(Math.random() * 4 + 1);
|
||
target = this.node.getChildByName("vertical2");
|
||
if (target.name == "vertical") {
|
||
var water1_1 = target.getChildByName("wave").getChildByName("water1");
|
||
var water2_1 = target.getChildByName("wave").getChildByName("water2");
|
||
var water3_1 = target.getChildByName("wave").getChildByName("water3");
|
||
var timeDelay = 0.15;
|
||
water1_1.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water1_1.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water1_1.y = -120;
|
||
})).repeatForever());
|
||
water2_1.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water2_1.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water2_1.y = -120;
|
||
})).repeatForever());
|
||
water3_1.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water3_1.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water3_1.y = -120;
|
||
})).repeatForever());
|
||
}
|
||
var name = "a" + random;
|
||
if (this.block_Type != cc.Enum(BlockType).Reinforce)
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
if (target.active == true) {
|
||
target = this.node.getChildByName("horizontal2");
|
||
name = "b" + random;
|
||
if (this.block_Type != cc.Enum(BlockType).Reinforce)
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
}
|
||
// console.log(this.path_Type,data.order);
|
||
if (this.path_Type == cc.Enum(PathType).up) {
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).down) {
|
||
target.angle = 180;
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).left) {
|
||
target.angle = 90;
|
||
name = "b" + random;
|
||
if (this.block_Type != cc.Enum(BlockType).Reinforce)
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).right) {
|
||
target.angle = 270;
|
||
name = "b" + random;
|
||
if (this.block_Type != cc.Enum(BlockType).Reinforce)
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
}
|
||
else {
|
||
target = this.node.getChildByName("turn2");
|
||
if (target.name == "turn") {
|
||
var water_1 = target.getChildByName("wave").getChildByName("water");
|
||
water_1.opacity = 0;
|
||
water_1.runAction(cc.sequence(cc.rotateTo(7.2, -1080), cc.delayTime(0)).repeatForever());
|
||
setTimeout(function () {
|
||
water_1.opacity = 255;
|
||
}, 200);
|
||
}
|
||
name = "c" + random;
|
||
if (this.block_Type != cc.Enum(BlockType).Reinforce)
|
||
target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
progress = 0.25;
|
||
if (this.path_Type == cc.Enum(PathType).up_left) {
|
||
target.setPosition(-this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).up_right) {
|
||
target.scaleX = -1;
|
||
target.setPosition(this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).down_left) {
|
||
target.angle = 180;
|
||
target.scaleX = -1;
|
||
target.setPosition(-this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).down_right) {
|
||
target.angle = 180;
|
||
target.setPosition(this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).left_up) {
|
||
target.angle = -90;
|
||
target.scaleY = -1;
|
||
target.setPosition(this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).left_down) {
|
||
target.angle = 90;
|
||
target.setPosition(-this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).right_up) {
|
||
target.angle = -90;
|
||
target.setPosition(-this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).right_down) {
|
||
target.angle = -90;
|
||
target.scaleX = -1;
|
||
target.setPosition(-this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
}
|
||
if (this.path_Type == "Reinforce") {
|
||
target = this.node.getChildByName("Reinforce");
|
||
if (this.block_Type == cc.Enum(BlockType).Peak) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
return;
|
||
}
|
||
if (this.block_Type != cc.Enum(BlockType).End)
|
||
this.block_Type = cc.Enum(BlockType).Reinforce;
|
||
this.node.getChildByName("vertical2").getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["e1"];
|
||
this.node.getChildByName("turn2").getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["e3"];
|
||
this.node.getChildByName("horizontal2").getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"]["e2"];
|
||
target.active = true;
|
||
target.opacity = 0;
|
||
progress = 1;
|
||
cc.tween(target)
|
||
.to(cc.fx.GameConfig.TIME_INFO.ReinforceSpeed, { opacity: 255 })
|
||
.call(function () {
|
||
if (data.circulate)
|
||
cc.fx.Notifications.emit(cc.fx.Message.changeMap, order);
|
||
cc.fx.Notifications.emit(cc.fx.Message.next, order);
|
||
})
|
||
.start();
|
||
}
|
||
else if (this.path_Type == "Xi_Soil") {
|
||
target.active = false;
|
||
if (this.block_Type != cc.Enum(BlockType).End && this.block_Type != cc.Enum(BlockType).Start)
|
||
this.block_Type = cc.Enum(BlockType).Xi_Soil;
|
||
target = this.node.getChildByName("Xi_Soil");
|
||
target.active = true;
|
||
target.opacity = 0;
|
||
cc.tween(target)
|
||
.to(0.01, { opacity: 1 })
|
||
.to(0.01, { opacity: 0 })
|
||
.call(function () {
|
||
if (data.circulate) {
|
||
cc.fx.Notifications.emit(cc.fx.Message.next, order);
|
||
}
|
||
})
|
||
.start();
|
||
}
|
||
else if (this.path_Type == "End") {
|
||
target.active = false;
|
||
if (this.block_Type != cc.Enum(BlockType).End && this.block_Type != cc.Enum(BlockType).Start)
|
||
this.block_Type = cc.Enum(BlockType).Xi_Soil;
|
||
var posTemp = data.last;
|
||
var direction = "up";
|
||
if (this.pos.x - posTemp.x >= 1) {
|
||
direction = "right";
|
||
}
|
||
else if (this.pos.x - posTemp.x <= -1) {
|
||
direction = "left";
|
||
}
|
||
else if (this.pos.y - posTemp.y >= 1) {
|
||
direction = "down";
|
||
}
|
||
// console.log("结束方向:",direction);
|
||
if (!this.finishi) {
|
||
this.finishi = true;
|
||
this.set_Xi_Soil(direction, true);
|
||
}
|
||
}
|
||
else {
|
||
target.active = true;
|
||
if (this.block_Type != cc.Enum(BlockType).Xi_Soil) {
|
||
target.getComponent(cc.Sprite).fillRange = 0;
|
||
cc.tween(target.getComponent(cc.Sprite))
|
||
.to(time, { fillRange: progress })
|
||
.call(function () {
|
||
if (data.circulate)
|
||
cc.fx.Notifications.emit(cc.fx.Message.next, order);
|
||
})
|
||
.start();
|
||
}
|
||
else {
|
||
target.opacity = 0;
|
||
target.getComponent(cc.Sprite).fillRange = 1;
|
||
cc.tween(target)
|
||
.to(time, { opacity: 255 })
|
||
.call(function () {
|
||
if (data.circulate)
|
||
cc.fx.Notifications.emit(cc.fx.Message.next, order);
|
||
})
|
||
.start();
|
||
}
|
||
}
|
||
};
|
||
//洪峰执行
|
||
NewClass.prototype.runWater = function (data) {
|
||
if (this.node.getChildByName("waterStart").active == true && this.block_Type == cc.Enum(BlockType).Start) {
|
||
// sp.getChildByName("waterStart").opacity = 255;
|
||
cc.tween(this.node.getChildByName("waterStart"))
|
||
.to(0.2, { opacity: 255 })
|
||
.start();
|
||
}
|
||
if (this.path_Type == "err") {
|
||
setTimeout(function () {
|
||
if (data.circulate)
|
||
cc.fx.Notifications.emit(cc.fx.Message.nextWater, order);
|
||
}, data.time);
|
||
return;
|
||
}
|
||
//如果双向都占用了还进来就算死了-
|
||
if (this.node.getChildByName("vertical").active == true && this.node.getChildByName("horizontal").active == true) {
|
||
// alert("治水失败");
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
// cc.director.loadScene("GameScene");
|
||
return;
|
||
}
|
||
else if (this.node.getChildByName("turn").active == true && this.block_Type != cc.Enum(BlockType).Xi_Soil) {
|
||
// alert("治水失败");
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
// cc.director.loadScene("GameScene");
|
||
return;
|
||
}
|
||
var target = null;
|
||
var progress = 1;
|
||
var time = data.time;
|
||
var order = data.order + 1;
|
||
var random = Math.floor(Math.random() * 4 + 1);
|
||
target = this.node.getChildByName("vertical");
|
||
if (target.name == "vertical") {
|
||
var water1_2 = target.getChildByName("wave").getChildByName("water1");
|
||
var water2_2 = target.getChildByName("wave").getChildByName("water2");
|
||
var water3_2 = target.getChildByName("wave").getChildByName("water3");
|
||
var timeDelay = 0.15;
|
||
water1_2.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water1_2.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water1_2.y = -120;
|
||
})).repeatForever());
|
||
water2_2.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water2_2.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water2_2.y = -120;
|
||
})).repeatForever());
|
||
water3_2.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water3_2.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water3_2.y = -120;
|
||
})).repeatForever());
|
||
}
|
||
var name = "a" + random;
|
||
// if(this.block_Type != cc.Enum(BlockType).Reinforce)target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
if (target.active == true) {
|
||
target = this.node.getChildByName("horizontal");
|
||
var water1_3 = target.getChildByName("wave").getChildByName("water1");
|
||
var water2_3 = target.getChildByName("wave").getChildByName("water2");
|
||
var water3_3 = target.getChildByName("wave").getChildByName("water3");
|
||
var timeDelay = 0.15;
|
||
water1_3.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water1_3.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water1_3.y = -120;
|
||
})).repeatForever());
|
||
water2_3.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water2_3.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water2_3.y = -120;
|
||
})).repeatForever());
|
||
water3_3.runAction(cc.sequence(cc.moveTo(0.6, cc.v2(water3_3.x, 120)), cc.delayTime(timeDelay), cc.callFunc(function () {
|
||
water3_3.y = -120;
|
||
})).repeatForever());
|
||
name = "b" + random;
|
||
//if(this.block_Type != cc.Enum(BlockType).Reinforce) target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
}
|
||
// console.log(this.path_Type,data.order);
|
||
if (this.path_Type == cc.Enum(PathType).up) {
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).down) {
|
||
target.angle = 180;
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).left) {
|
||
target.angle = 90;
|
||
name = "b" + random;
|
||
//if(this.block_Type != cc.Enum(BlockType).Reinforce) target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).right) {
|
||
target.angle = 270;
|
||
name = "b" + random;
|
||
//if(this.block_Type != cc.Enum(BlockType).Reinforce) target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
}
|
||
else {
|
||
target = this.node.getChildByName("turn");
|
||
if (target.name == "turn") {
|
||
var water_2 = target.getChildByName("wave").getChildByName("water");
|
||
water_2.opacity = 0;
|
||
water_2.runAction(cc.sequence(cc.rotateTo(7.2, -1080), cc.delayTime(0)).repeatForever());
|
||
setTimeout(function () {
|
||
water_2.opacity = 255;
|
||
}, 200);
|
||
}
|
||
name = "c" + random;
|
||
//if(this.block_Type != cc.Enum(BlockType).Reinforce)target.getComponent(cc.Sprite).spriteFrame = this.UI["_spriteFrames"][name];
|
||
progress = 0.25;
|
||
if (this.path_Type == cc.Enum(PathType).up_left) {
|
||
target.setPosition(-this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).up_right) {
|
||
target.scaleX = -1;
|
||
target.setPosition(this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).down_left) {
|
||
target.angle = 180;
|
||
target.scaleX = -1;
|
||
target.setPosition(-this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).down_right) {
|
||
target.angle = 180;
|
||
target.setPosition(this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).left_up) {
|
||
target.angle = -90;
|
||
target.scaleY = -1;
|
||
target.setPosition(this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).left_down) {
|
||
target.angle = 90;
|
||
target.setPosition(-this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).right_up) {
|
||
target.angle = -90;
|
||
target.setPosition(-this.pos_Shifting, this.pos_Shifting);
|
||
}
|
||
else if (this.path_Type == cc.Enum(PathType).right_down) {
|
||
target.angle = -90;
|
||
target.scaleX = -1;
|
||
target.setPosition(-this.pos_Shifting, -this.pos_Shifting);
|
||
}
|
||
}
|
||
if (this.path_Type == "End") {
|
||
target.active = false;
|
||
if (this.block_Type == cc.Enum(BlockType).End) {
|
||
if (this.node.getChildByName("waterStart").active == true && this.block_Type == cc.Enum(BlockType).End) {
|
||
cc.tween(this.node.getChildByName("waterStart"))
|
||
.to(0.2, { opacity: 255 })
|
||
.call(function () {
|
||
// alert("治水成功");
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "win");
|
||
if (cc.fx.GameConfig.GM_INFO.level < 7) {
|
||
cc.fx.GameConfig.GM_INFO.level += 1;
|
||
}
|
||
setTimeout(function () {
|
||
// cc.director.loadScene("GameScene");
|
||
}, 500);
|
||
})
|
||
.start();
|
||
}
|
||
}
|
||
else {
|
||
target = this.node.getChildByName("End");
|
||
target.active = true;
|
||
target.opacity = 0;
|
||
var posTemp = data.last;
|
||
if (this.pos.x - posTemp.x >= 1) {
|
||
target.angle = -90;
|
||
}
|
||
else if (this.pos.x - posTemp.x <= -1) {
|
||
target.angle = 90;
|
||
}
|
||
else if (this.pos.y - posTemp.y >= 1) {
|
||
target.angle = 180;
|
||
}
|
||
cc.tween(target)
|
||
.to(0.5, { opacity: 255 })
|
||
.call(function () {
|
||
// alert("治水失败")
|
||
cc.fx.Notifications.emit(cc.fx.Message.showResult, "lose");
|
||
// cc.director.loadScene("GameScene");
|
||
})
|
||
.start();
|
||
}
|
||
}
|
||
else {
|
||
target.active = true;
|
||
target.getComponent(cc.Sprite).fillRange = 0;
|
||
cc.tween(target.getComponent(cc.Sprite))
|
||
.to(time, { fillRange: progress })
|
||
.call(function () {
|
||
if (data.circulate)
|
||
cc.fx.Notifications.emit(cc.fx.Message.nextWater, order);
|
||
})
|
||
.start();
|
||
}
|
||
};
|
||
__decorate([
|
||
property(cc.SpriteAtlas)
|
||
], NewClass.prototype, "UI", void 0);
|
||
NewClass = __decorate([
|
||
ccclass
|
||
], NewClass);
|
||
return NewClass;
|
||
}(cc.Component));
|
||
exports.default = NewClass;
|
||
|
||
cc._RF.pop(); |