255 lines
9.0 KiB
JavaScript
255 lines
9.0 KiB
JavaScript
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 = ("<color=" + colors[i] + ">") + skillDesc + "</color>";
|
|
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();
|
|
},
|
|
|
|
}) |