import Bag from "../../ts/bag/Bag"; import GameModel from "../../ts/core/GameModel"; import ItemUtil from "../../ts/core/ItemUtil"; import SkillUtil from "../../ts/game/skill/core/SkillUtil"; import PopupManager from "../../ts/gear_2.3.4/manager/PopupManager"; import SKDataUtil from "../../ts/gear_2.3.4/util/SKDataUtil"; cc.Class({ extends: cc.Component, properties: { leftScrollView: cc.ScrollView, equitScrollView: cc.ScrollView, skillScrollView: cc.ScrollView, leftContent: cc.Node, typeItem: cc.Node, suitItem: cc.Node, equitItem: cc.Node, suitName: cc.Label, skillItem: cc.Node, }, onLoad() { this.mRace = 11; this.mRaceIndex = 0; this.open = false; this.occups = { 1: [], 2: [], 3: [], 4: [], 5: [], 9: [] }; let baldric_suit = SKDataUtil.clone(GameModel.game_conf.baldric_suit); let baldric_suits = Object.values(baldric_suit); // this.baldric_suits = baldric_suits.filter(function(value){ // return value.grade == 1; // }); let baldric = SKDataUtil.clone(GameModel.game_conf.baldric); let item = SKDataUtil.clone(GameModel.game_conf.item); this.baldric = baldric; this.item = item; for (let k in baldric_suits) { let race = baldric_suits[k].race; this.occups[race].push(baldric_suits[k]); } this.RaceTypes = []; for (let k in this.occups) { let data = {}; if (k == 1) { data.name = "男人"; data.race = k + "1"; data.sex = 1; data.value = this.occups[k]; this.RaceTypes.push(data); let cdata = SKDataUtil.clone(data) cdata.name = "女人"; cdata.race = k + "0"; cdata.sex = 2; this.RaceTypes.push(cdata); } else if (k == 2) { data.name = "男仙"; data.race = k + "1"; data.sex = 1; data.value = this.occups[k]; this.RaceTypes.push(data); let cdata = SKDataUtil.clone(data) cdata.name = "女仙"; cdata.race = k + "0"; cdata.sex = 2; this.RaceTypes.push(cdata); } else if (k == 3) { data.name = "男魔"; data.race = k + "1"; data.sex = 1; data.value = this.occups[k]; this.RaceTypes.push(data); let cdata = SKDataUtil.clone(data) cdata.name = "女魔"; cdata.race = k + "0"; cdata.sex = 2; this.RaceTypes.push(cdata); } else if (k == 4) { data.name = "男鬼"; data.race = k + "1"; data.sex = 1; data.value = this.occups[k]; this.RaceTypes.push(data); let cdata = SKDataUtil.clone(data) cdata.name = "女鬼"; cdata.race = k + "0"; cdata.sex = 2; this.RaceTypes.push(cdata); } else if (k == 5) { data.name = "男龍"; data.race = k + "1"; data.sex = 1; data.value = this.occups[k]; this.RaceTypes.push(data); let cdata = SKDataUtil.clone(data) cdata.name = "女龍"; cdata.race = k + "0"; cdata.sex = 2; this.RaceTypes.push(cdata); } else if (k == 9) { data.name = "通用"; data.race = k + "1"; data.sex = 9; data.value = this.occups[k]; this.RaceTypes.push(data); } } // let tempRaceTypes = []; for (let k in this.RaceTypes) { let values = this.RaceTypes[k].value; this.RaceTypes[k].value = []; let group = -1; let name = ""; for (let i = 0; i < values.length; i++) { if (group != values[i].group && name != values[i].name) { if (this.RaceTypes[k].sex == this.baldric[values[i].list[0]].Sex || this.baldric[values[i].list[0]].Sex == 9) this.RaceTypes[k].value.push(values[i]); group = values[i].group; name = values[i].name; } } } this.showLeftList(); this.init(); }, showLeftList() { this.leftContent.removeAllChildren(); for (let k in this.RaceTypes) { let item = cc.instantiate(this.typeItem); item.parent = this.leftContent; let btn = item.getChildByName("temBtn").getComponent(cc.Button); btn.clickEvents[0].customEventData = this.RaceTypes[k].race; item.getChildByName("temBtn").getChildByName("TextName").getComponent(cc.Label).string = this.RaceTypes[k].name; item.name = "Layout_" + this.RaceTypes[k].race; let Content = item.getChildByName("Content"); Content.removeAllChildren(); } }, showTypeList() { let Layout = this.leftScrollView.content.getChildByName("Layout_" + this.mRace); if (Layout) { Layout.getChildByName("temBtn").getChildByName("ImageFold").angle = 180; let Content = Layout.getChildByName("Content"); // let item = Content.getChildByName("BtnSubTemplete"); let raceTypes = this.getSuitByRace(this.mRace); Content.removeAllChildren(); for (let i = 0; i < raceTypes.length; i++) { let ritem = cc.instantiate(this.suitItem); ritem.active = true; let equitData = this.baldric[(raceTypes[i].list[0])]; ritem.getChildByName("ImageIcon").getComponent(cc.Sprite).spriteFrame = ItemUtil.getItemIconBy(equitData); ritem.getChildByName("TextName").getComponent(cc.Label).string = raceTypes[i].name; ritem.parent = Content; let btn = ritem.getComponent(cc.Button); btn.clickEvents[0].customEventData = i; } } }, getSuitByRace(race) { for (let k in this.RaceTypes) { if (this.RaceTypes[k].race == race) { return this.RaceTypes[k].value; } } return null; }, closeLeftList() { for (let k in this.RaceTypes) { let typeItem = this.leftContent.getChildByName("Layout_" + this.RaceTypes[k].race); typeItem.getChildByName("temBtn").getChildByName("ImageFold").angle = 0; let Content = typeItem.getChildByName("Content"); Content.removeAllChildren(); Content.height = 7; } }, onBtnTypeClick(event, customEventData) { this.closeLeftList(); if (this.mRace == customEventData && this.open) { this.open = false; } else { this.mRace = customEventData; this.showTypeList(); this.open = true; } // let suits = this.getSuitByRace(customEventData); }, init() { let suits = this.getSuitByRace(this.mRace); this.suitInfo = suits[0]; this.showRightSuitInfo(); }, onBtnSuitClick(event, customEventData) { let suits = this.getSuitByRace(this.mRace); this.suitInfo = suits[Number(customEventData)]; cc.log(this.suitInfo); this.showRightSuitInfo(); }, showRightSuitInfo() { this.suitName.string = this.suitInfo.name; let skills = ItemUtil.getSuitSkillGroup(this.suitInfo.group); this.skillScrollView.content.removeAllChildren(); let colors = ['#4AD558', '#3347F6', '#F633E3']; for (let i = 0; i < skills.length; i++) { let skill = skills[i]; let item = cc.instantiate(this.skillItem); item.parent = this.skillScrollView.content; let key = skill.icon; let spriteFrame = ItemUtil.getItemIcon(key); if (!spriteFrame) { cc.warn(`$警告:缺少配飾技能圖標:${key}`); } else { item.getChildByName("ImageSkill").getComponent(cc.Sprite).spriteFrame = spriteFrame; } item.getChildByName("TextName").getComponent(cc.Label).string = skill.name; let skillDesc = skill.getSuitDesc(false); skillDesc = ("") + skillDesc + ""; item.getChildByName("TextDesc").getComponent(cc.RichText).string = skillDesc; } this.equitScrollView.content.removeAllChildren(); let list = this.suitInfo.list; for (let i = 0; i < list.length; i++) { let suit = this.item[list[i]]; let item = cc.instantiate(this.equitItem); item.parent = this.equitScrollView.content; item.getChildByName("icon").getComponent(cc.Sprite).spriteFrame = ItemUtil.getItemIcon(suit.icon); } }, onCloseClick() { PopupManager.closeView(this.node.name); Bag.Instance.showBagPanel(); }, })