You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.9 KiB
126 lines
3.9 KiB
import { ryw_Event } from "../../FrameWork/Event/EventEnum";
|
|
import EventMgr from "../../FrameWork/Event/EventMgr";
|
|
import Common5 from "../../Platform/th/Common5";
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class HeChengNode extends cc.Component {
|
|
|
|
@property(cc.Node)
|
|
boxList: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
checkBox: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
background: cc.Node = null;
|
|
|
|
//当前合成箱内数据列表
|
|
private hechengDataList = [];
|
|
//当前合成箱
|
|
private curBox: cc.Node = null;
|
|
//合成配置
|
|
private heChengConfig = null;
|
|
|
|
start() {
|
|
this.hechengDataList = [];
|
|
this.curBox = this.boxList.children[0];
|
|
this.curBox.active = true;
|
|
|
|
this.checkBox.attr({
|
|
XianSuoBarScr: this
|
|
});
|
|
}
|
|
|
|
setHeChengConfig(heChengConfig) {
|
|
this.heChengConfig = heChengConfig;
|
|
}
|
|
|
|
addNode(data_) {
|
|
Common5.playEffect('放置成功');
|
|
|
|
this.hechengDataList.push(data_);
|
|
if (this.hechengDataList.length >= 3) {
|
|
this.checkBox.active = false;
|
|
}
|
|
|
|
this.curBox.active = false;
|
|
this.curBox = this.boxList.children[this.hechengDataList.length];
|
|
this.curBox.active = true;
|
|
|
|
for (let index = 0; index < this.hechengDataList.length; index++) {
|
|
Common5.getSpriteFrameFromBundle(this.hechengDataList[index].itemInfo.bandleName, this.hechengDataList[index].itemInfo.url2, this.curBox.children[index].getComponent(cc.Sprite));
|
|
this.curBox.children[index].attr(this.hechengDataList[index]);
|
|
}
|
|
}
|
|
|
|
removeNode(target) {
|
|
Common5.playEffect('放置成功');
|
|
|
|
let hechengDatas = this.hechengDataList;
|
|
this.hechengDataList = [];
|
|
for (let index = 0; index < hechengDatas.length; index++) {
|
|
if (hechengDatas[index].xianSuoIndex != target.xianSuoIndex) {
|
|
this.hechengDataList.push(hechengDatas[index]);
|
|
}
|
|
}
|
|
|
|
if (this.hechengDataList.length < 3) {
|
|
this.checkBox.active = true;
|
|
}
|
|
|
|
this.curBox.active = false;
|
|
this.curBox = this.boxList.children[this.hechengDataList.length];
|
|
this.curBox.active = true;
|
|
|
|
for (let index = 0; index < this.hechengDataList.length; index++) {
|
|
Common5.getSpriteFrameFromBundle(this.hechengDataList[index].itemInfo.bandleName, this.hechengDataList[index].itemInfo.url2, this.curBox.children[index].getComponent(cc.Sprite));
|
|
this.curBox.children[index].attr(this.hechengDataList[index]);
|
|
}
|
|
|
|
if (target.XianSuoMoveTouchScr) {
|
|
target.XianSuoMoveTouchScr.showTouchNodeIcon();
|
|
}
|
|
}
|
|
|
|
determine() {
|
|
for (const iterator of this.heChengConfig) {
|
|
let zuhe: number[] = iterator["zuhe"];
|
|
if (zuhe.length == this.hechengDataList.length) {
|
|
let success = true;
|
|
for (const iterator2 of this.hechengDataList) {
|
|
if (zuhe.indexOf(iterator2.itemInfo.id) == -1) {
|
|
success = false;
|
|
break;
|
|
}
|
|
}
|
|
if (success) {
|
|
this.node.active = false;
|
|
Common5.playEffect('放置成功');
|
|
EventMgr.emitEvent_custom(ryw_Event.XianSuoHeChengEvent, { touchIndex: iterator["id"] });
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
Common5.playEffect('放置错误');
|
|
cc.tween(this.background)
|
|
.set({ color: cc.Color.RED })
|
|
.delay(1)
|
|
.set({ color: cc.Color.WHITE })
|
|
.start();
|
|
}
|
|
|
|
onClick(event) {
|
|
let target = event.target;
|
|
|
|
if (target.name == "button") {
|
|
this.determine();
|
|
} else {
|
|
this.removeNode(target);
|
|
}
|
|
}
|
|
|
|
// update (dt) {}
|
|
|
|
}
|
|
|