381 lines
10 KiB
JavaScript
381 lines
10 KiB
JavaScript
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);
|
|
},
|
|
});
|