var battlenet = require("battlenetmanage"); var SDKManage = require("SDKManage"); var gameConfig = require("gameConfig"); var Utils = require("Utils"); const NetManage = require("../../manages/NetManage"); const { showLoading } = require("../../gif/Loading"); const { OperationType } = require("../../Operation/Operation"); const jcgamelog = require("../../jcfw/service/jcgamelog"); cc.Class({ extends: cc.Component, properties: { nd_chat: { default: null, type: cc.Node, }, nd_back: { default: null, type: cc.Node, }, lb_time: { default: null, type: cc.Label, }, nd_time5: { default: null, type: cc.Node, }, nd_btns: { default: null, type: cc.Node, }, btn_ready: { default: null, type: cc.Node, }, btn_noready: { default: null, type: cc.Node, }, btn_go: { default: null, type: cc.Node, }, pb_herolihui: { default: null, type: cc.Prefab, }, nd_teamlihui: { default: null, type: cc.Node, }, nd_onehui: { default: null, type: cc.Node, }, tableView_chose: { default: null, type: cc.Node, }, pb_chooseWeapon: { default: null, type: cc.Prefab, }, nd_weaponNode1: { default: null, type: cc.Node, }, nd_weaponNode2: { default: null, type: cc.Node, }, }, // LIFE-CYCLE CALLBACKS: onLoad() { this.weaponStr = "[]"; this.weapon_uniid = new Array(); cc.Notifier.on("battleclickchose", this, this.battleclickchose.bind(this)); cc.Notifier.on( "SMUpdateMatchInfo", this, this.SMUpdateMatchInfo.bind(this) ); cc.Notifier.on("infochangeskin", this, this.infochangeskin.bind(this)); // choose weapon cc.Notifier.on("haschooseWeapon", this, (index, name) => { if (index) { console.log(`index-------${window.currentWeaponName}`); if (index == 0) { cc.loader.loadRes( `icons/${window.currentWeaponName}`, cc.SpriteFrame, (err, res) => { if (this.nd_weaponNode1) this.nd_weaponNode1.getComponent(cc.Sprite).spriteFrame = res; } ); } else if (index == 1) { cc.loader.loadRes( `icons/${window.currentWeaponName}`, cc.SpriteFrame, (err, res) => { if (this.nd_weaponNode2) this.nd_weaponNode2.getComponent(cc.Sprite).spriteFrame = res; } ); } // if (window.firstgun && this.weapon_uniid) { this.weapon_uniid[0] = window.firstgun; } if (window.secondgun && this.weapon_uniid) { this.weapon_uniid[1] = window.secondgun; } this.weaponStr = JSON.stringify(this.weapon_uniid); console.log(this.weaponStr); } }); }, onDestroy() { cc.Notifier.off("battleclickchose", this); cc.Notifier.off("SMUpdateMatchInfo", this); cc.Notifier.off("infochangeskin", this); }, SMUpdateMatchInfo(_data) { var data = _data.info; this.herodatalist = data.members; for (var i = 0; i < data.members.length; i++) { var onedata = data.members[i]; if (onedata.hero_skin > 0) { onedata.hero_id = gameConfig.all_ItemConfig[onedata.hero_skin].playerid; onedata.hero_skin = onedata.hero_skin; } } if (data.countdown <= 5) { this.lb_time.node.active = false; this.nd_btns.active = false; this.nd_time5.active = true; } else { this.lb_time.node.active = true; this.lb_time.string = Utils.second3Time(data.countdown); } this.refresh(); }, battleclickchose(v) { this.tmpv = v; if (this.mystate != 0) { return; } var heroDetail = this.getHeroDetailByID(v.hero_id) var process = (heroDetail.ceg_uplimit - heroDetail.today_get_gold) / heroDetail.ceg_uplimit; this.node.getComponentInChildren("pbbattleui").nd_processbar.progress = process; this.node.getComponentInChildren("pbbattleui").nd_remainceg.string = heroDetail.ceg_uplimit - heroDetail.today_get_gold; for (var i = 0; i < this.herodatalist.length; i++) { if (this.herodatalist[i].account_id == v.account_id) { this.herodatalist[i].hero_id = v.hero_id; this.herodatalist[i].hero_skin = v.hero_skin; this.herodatalist[i].hero_uuid = this.getHeroUUidByid(v.hero_id); if (SDKManage.account_id == v.account_id) { cc.playerData.changeHero(v.hero_id); this.hero_id = v.hero_id; this.hero_uuid = this.getHeroUUidByid(v.hero_id); this.canzb = true; if (this.team_mode) { let data = { hero_id: v.hero_id, weapons: JSON.parse(this.weaponStr), skins: [], baseskin: gameConfig.all_ItemConfig[v.hero_skin].skinid, hero_skin: v.hero_skin, skill_list: cc.playerData.getbattleskilllist(), hero_uniid:this.herodatalist[i].hero_uuid, }; this.matchdata = data; cc.battleIns.sendbattlemsg("CMMatchChoose", data); } } this.refresh(); break; } } }, initdata(opt) { this.lb_time.node.active = false; this.mystate = 0; this.nd_time5.active = false; this.btn_ready.active = false; this.btn_noready.active = false; this.btn_go.active = false; this.nd_back.active = false; this.herodatalist = []; this.herolist = []; cc.playerData.changeHero(30100); var addnode = this.nd_teamlihui; var pcount = 1; if (opt.teamuuid) { this.team_mode = true; pcount = 4; } else { this.btn_go.active = true; this.nd_back.active = true; addnode = this.nd_onehui; this.herodatalist.push({ state: 0, name: cc.playerData.name, hero_id: 0, hero_skin: 0, account_id: SDKManage.account_id, hero_uuid: 0, }); } for (var i = 0; i < pcount; i++) { var nd = cc.instantiate(this.pb_herolihui); addnode.addChild(nd); var scp = nd.getComponent("pbbattleui"); scp.target = this; this.herolist.push(scp); } this.refresh(); this.changelist(0); }, changetype(data1, data2) { this.changelist(Number(data2)); cc.Notifier.emit("btnchose", { k: data2 }); }, changelist(type) { var cherolist = []; var openherolist = cc.playerData.getopenhero(); var herolist = []; this.allHeroUUID = []; this.allHeroID = []; this.heroDetails=[] NetManage.getHeroList((data) => { herolist = data.hero_list; for (var i = 0; i < herolist.length; i++) { var element = herolist[i]; this.allHeroUUID.push(element.hero_uniid); this.heroDetails.push(herolist[i]) } }); for (var i = 0; i < openherolist.length; i++) { var hid = openherolist[i]; var heroType = gameConfig.playerConfig[hid].herotype; if (type == 0 || type == heroType) { if (cc.playerData.checkhasgethero(hid)) { cherolist.push(hid); } } } var newlist = Utils.arrtoarr(cherolist, 2); this.allHeroID = cherolist; this.tableView_chose .getComponent("tableView") .initTableView(newlist.length, { array: newlist, target: this, }); }, getHeroUUidByid(id) { var index = this.allHeroID.indexOf(id); return this.allHeroUUID[index]; }, getHeroDetailByID(id){ var index = this.allHeroID.indexOf(id); return this.heroDetails[index]; }, onclickclose() { window.firstgun = null; window.secondgun = null; this.node.destroy(); }, onclickgo() { //single jcgamelog.addOperation( OperationType.BUTTON, 'startgame', ); if (!this.canzb) { cc.uiHelper.showTips("Please choose a hero first"); return; } // showLoading(); // setTimeout(() => { // this.btn_noready.parent.parent.zindex = 99; // }, 1500); var opt = cc.playerData.getbattleopt(); opt.team_mode = 0; opt.player_count = 1; opt.hero_uniid = this.hero_uuid; if (window.firstgun) { opt.weapon_uniid = new Array(); opt.weapon_uniid.push(window.firstgun); if (window.secondgun) { opt.weapon_uniid.push(window.secondgun); } } battlenet.initengine(opt); }, refresh() { for (var i = 0; i < this.herodatalist.length; i++) { this.herolist[i].initdata(this.herodatalist[i]); } }, onclicktype() {}, onclickcancelready() { cc.battleIns.sendbattlemsg("CMMatchCancelStartGame"); }, onclickready() { jcgamelog.addOperation( OperationType.BUTTON, 'startgame', ); // team if (!this.canzb) { cc.uiHelper.showTips("Please choose a hero first"); return; } // if (this.matchdata) { this.matchdata.weapons = JSON.parse(this.weaponStr); cc.battleIns.sendbattlemsg("CMMatchChoose", this.matchdata); } // cc.battleIns.sendbattlemsg("CMMatchStartGame"); }, doready(state) { if (this.team_mode) { this.mystate = state; this.btn_ready.active = state == 0; this.btn_noready.active = !this.btn_ready.active; } }, infochangeskin(v) { cc.Notifier.emit("battleclickchose", { account_id: SDKManage.account_id, hero_id: this.hero_id, hero_skin: v, }); cc.playerData.changeSkin(v); }, // update (dt) {}, onClickChooseWeapon(event, data) { var node = cc.instantiate(this.pb_chooseWeapon); node.scale = 0.8; this.node.addChild(node); node.getComponent("chooseGun").startFrom(data); }, });