pubgv3/assets/scripts/UI/task/mission_choose.js
zhuguoqing ff550d5d6a init
2022-05-22 10:32:02 +08:00

214 lines
5.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const {
playerConfig,
itemConfig,
dropItemConfig,
} = require('../../game/gameConfig');
const NetManage = require('../../manages/NetManage');
cc.Class({
extends: cc.Component,
properties: {
mission_detail: {
default: null,
type: cc.Node,
},
allAddNode: {
default: null,
type: cc.Node,
},
needNode: {
default: null,
type: cc.Node,
},
},
initData(data) {
this.currentBtn = 0;
this.allChoose = new Array();
this.allChoose.length = 5;
this.allShowNode = new Array(); // 所有现实的节点 下方的5个
this.missionData = data;
this.allNeed = new Array();
if (data.param1) {
this.initNeedIcon(data.param1, 0);
this.allNeed.push(data.param1.toString());
}
if (data.param2) {
this.initNeedIcon(data.param2, 1);
this.allNeed.push(data.param2.toString());
}
if (data.param3) {
this.initNeedIcon(data.param3, 2);
this.allNeed.push(data.param3.toString());
}
if (data.param4) {
this.initNeedIcon(data.param4, 3);
this.allNeed.push(data.param4.toString());
}
if (data.param5) {
this.initNeedIcon(data.param5, 4);
this.allNeed.push(data.param5.toString());
}
},
// 根据条件显示icon
initNeedIcon(param, index) {
var count = param.toString().length;
var url = '';
if (count == 1) {
url = `textures/wanted/ocupation_${param}`;
} else {
if (param.toString()[0] == '3') {
url = `textures/wanted/role_${param}`;
} else if (param.toString()[0] == '7') {
url = `textures/wanted/weapon_${param}`;
} else if (param.toString()[0] == '2') {
var pp = dropItemConfig[param.toString()].link_sort;
url = `textures/wanted/weapon_${pp}`;
this.allNeed.push(pp.toString());
}
}
if (url != '') {
cc.loader.loadRes(url, cc.SpriteFrame, (err, res) => {
if (err) {
return false;
}
var paramp = param;
if (param.toString()[0] == '2') {
paramp =
dropItemConfig[param.toString()].link_sort.toString();
}
this.needNode.children[index].name = `${paramp}`;
this.needNode.children[index].getComponent(
cc.Sprite
).spriteFrame = res;
this.needNode.children[index].active = true;
this.allShowNode.push(this.needNode.children[index]);
});
}
},
onLoad() {
cc.Notifier.on('hasChoose', this, (data) => {
this.allAddNode.children[this.currentBtn]
.getComponent('mission_oneBox')
.init(data);
this.allChoose[this.currentBtn] = data;
this.setIcon();
});
cc.Notifier.on('ClearOneBox', this, (data) => {
this.allChoose[data] = null;
this.setIcon();
});
},
setIcon() {
this.needNode.children.forEach((element) => {
element.children[0].active = false;
});
this.allChoose.forEach((data) => {
if (data) {
if (data.hero_id) {
var type = playerConfig[data.hero_id].herotype;
this.needNode.children.forEach((nd) => {
if (
nd.name == `${data.hero_id}` ||
nd.name == type.toString()
) {
nd.children[0].active = true;
}
});
}
if (data.gun_id) {
this.needNode.children.forEach((nd) => {
if (nd.name == `${data.gun_id}`) {
nd.children[0].active = true;
}
});
}
}
});
},
close() {
this.node.destroy();
},
onClickAdd(event, param) {
this.currentBtn = param;
this.mission_detail.active = true;
this.mission_detail
.getComponent('mission_chooseDetail')
.init(this.missionData);
},
check() {
let toReturn = true;
this.allShowNode.forEach((element) => {
if (element.children[0].active == false) {
toReturn = false;
}
});
return toReturn;
// this.hasChooseParam = new Array();
// this.allChoose.forEach((element) => {
// if (element) {
// if (element.gun_id) {
// this.hasChooseParam.push(element.gun_id);
// }
// if (element.hero_id) {
// var type = playerConfig[element.hero_id].herotype;
// this.hasChooseParam.push(element.hero_id);
// this.hasChooseParam.push(type.toString());
// }
// }
// });
// function includes(arr1, arr2) {
// console.log(arr1);
// console.log(arr2);
// return arr2.every((val) => arr1.includes(val));
// }
// return includes(this.hasChooseParam, this.allNeed);
},
// 0:1234|1:1234
onClickSend() {
if (this.check()) {
this.sendData = '';
this.allChoose.forEach((element) => {
if (element) {
if (element.hero_id) {
this.sendData += `${1}:${element.hero_uniid}|`;
}
if (element.gun_id) {
this.sendData += `${0}:${element.gun_uniid}|`;
}
}
});
NetManage.sendWantedMission(
this.missionData.id,
this.sendData,
(res) => {
if (res.errcode == 0) {
this.node.destroy();
cc.Notifier.emit('ReFreshMission');
} else {
cc.uiHelper.showTips('Failed');
}
}
);
} else {
cc.uiHelper.showTips('Not meeting the requirements');
}
},
});