我智商爆棚
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

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) {}
}