guoqing.zhu 8eb3192c7f update
2022-05-31 17:35:28 +08:00

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);
},
});