import GameModel from "../ts/core/GameModel"; import ItemUtil from "../ts/core/ItemUtil"; import Report from "../ts/gear_2.3.4/net/Report"; import SKUIUtil from "../ts/gear_2.3.4/util/SKUIUtil"; cc.Class({ extends: cc.Component, properties: { listContent: cc.Node, useEquipNodes: [cc.Node], nextEquipNode: cc.Node, listItem: cc.Node, upgradeNode: cc.Node, tipsNode: cc.Node, }, ctor() { this.issend = false; }, showNextEquipInfo(info) { this.nextEquipNode.getComponent('EquipItem').loadInfo(info); }, loadEquipList() { for (let item of this.useEquipNodes) { item.getComponent('EquipItem').reset(); item.equiptag = 0; } this.nextEquipNode.getComponent('EquipItem').reset(); this.selectedCnt = 0; this.curInfo = null; let hadXianqi = false; let curListY = -40; let curListX = -80; //this.listContent.destroyAllChildren(); this.listContent.removeAllChildren(); this.upgradeNode.active = false; this.tipsNode.active = false; if (!GameModel.equipData || !GameModel.equipData.info) { this.tipsNode.active = true; let tips = this.tipsNode.getChildByName('tips'); if (tips) { let label = tips.getComponent(cc.Label); if (label) { label.string = '你還沒有仙器哦'; } else { cc.warn(`仙器升級面板:tips不是文本!`); } } else { cc.warn(`仙器升級面板:找不到tips!`); } return; } let equipList = {}; for (const equip of GameModel.equipData.list) { if (GameModel.equipData.info[equip]) { equipList[equip] = GameModel.equipData.info[equip]; }; } console.log(equipList) for (const key in equipList) { let itemInfo = equipList[key]; if (itemInfo.EquipType != 3) { continue; } let item = cc.instantiate(this.listItem); if (!SKUIUtil.isValid(item)) { cc.warn(`仙器面板,道具節點無效${this.listItem}!`); continue; } let icon = item.getChildByName("icon"); if (icon) { let sprite = icon.getComponent(cc.Sprite); if (sprite) { sprite.spriteFrame = ItemUtil.getItemIconBy(itemInfo); } else { cc.warn(`仙器面板,道具圖標精靈不存在!`); } } else { cc.warn(`仙器面板,道具圖標節點不存在!`); } let level = item.getChildByName("level"); if (level) { let label = level.getComponent(cc.Label); if (label) { label.string = itemInfo.Grade; } else { cc.warn(`仙器面板,道具等級label不存在!`); } } else { cc.warn(`仙器面板,道具等級節點不存在!`); } item.active = true; item.x = curListX; item.y = curListY; curListX += 80; if (curListX > 80) { curListX = -80; curListY -= 80; } item.parent = this.listContent; item.equiptag = key; hadXianqi = true; } if (curListX > -80) { curListY -= 80; } this.listContent.height = -curListY; if (this.listContent.height < this.listContent.parent.height) { this.listContent.height = this.listContent.parent.height; } if (!hadXianqi) { this.tipsNode.active = true; this.tipsNode.getChildByName('tips').getComponent(cc.Label).string = '你還沒有仙器哦'; return; } this.upgradeNode.active = true; this.issend = false; }, getNextEquipInfo() { if (this.curInfo && this.curInfo.NextType > 0) { let params = { resid: this.curInfo.NextType, type: this.curInfo.EquipType, index: this.curInfo.EIndex, grade: this.curInfo.Grade + 1, roleid: Report.roleId }; GameModel.send('c2s_next_equip', params); } else { return; } }, equipItemClicked(e, d) { if (!e.target.getComponent(cc.Toggle).isChecked) { for (let index = 0; index < this.useEquipNodes.length; index++) { const item = this.useEquipNodes[index]; if (item.equiptag == e.target.equiptag) { if (index == 0) { this.nextEquipNode.getComponent('EquipItem').reset(); } item.getComponent('EquipItem').reset(); item.equiptag = 0; if (this.selectedCnt > 0) { this.selectedCnt--; } if (this.selectedCnt == 0) { this.curInfo = null; } return; } } return; } if (this.selectedCnt >= 3 || (this.curInfo && this.curInfo.Grade > 1 && this.selectedCnt >= 3)) { e.target.getComponent(cc.Toggle).isChecked = false; return; } let selectedInfo = GameModel.equipData.info[e.target.equiptag]; console.log(selectedInfo) //仙器階數是否滿足升級要求 新增五階仙器 if (selectedInfo.Grade >= 5 || (this.curInfo != null && this.curInfo.Grade != selectedInfo.Grade)) { e.target.getComponent(cc.Toggle).isChecked = false; return; } if (this.curInfo != null && this.curInfo.EName != selectedInfo.EName) { e.target.getComponent(cc.Toggle).isChecked = false; return; } let emptyPos = -1; for (let index = 0; index < this.useEquipNodes.length; index++) { const item = this.useEquipNodes[index]; if (item.equiptag == 0) { emptyPos = index; break; } } if (emptyPos >= 0) { this.useEquipNodes[emptyPos].getComponent('EquipItem').loadInfo(selectedInfo); this.useEquipNodes[emptyPos].equiptag = e.target.equiptag; if (emptyPos == 0) { this.curInfo = selectedInfo; this.getNextEquipInfo(); } this.selectedCnt++; } }, upgradeBtnClicked(e, d) { if (!this.curInfo) { return; } if (this.curInfo.Grade == 1 && this.selectedCnt < 3) { return; } // 避免多次點擊 if (this.issend == true) { return; } this.issend = true; // for(let i = 0; i < 10; i++){ GameModel.send('c2s_xianqi_upgrade', { roleid: Report.roleId, equipid: this.curInfo.EquipID, use1: this.useEquipNodes[1].equiptag, use2: this.useEquipNodes[2].equiptag }); // } this.curInfo = null; this.nextEquipInfo = null; }, onCloseBtnClicked(e, d) { this.node.destroy(); } });