pubgv3/assets/scripts/UI/task/singleWanted.js
guoqing.zhu 717eedcdbb update
2022-06-09 05:45:35 +08:00

213 lines
4.9 KiB
JavaScript

const { dropConfig, all_ItemConfig } = require('../../game/gameConfig');
const NetManage = require('../../manages/NetManage');
var Utils = require('Utils');
const { uimanger } = require('../UIManger');
const { CancelBoost } = require('../../tips/CancelBoost');
const { BoostTips } = require('../../tips/BoostTips');
cc.Class({
extends: cc.Component,
properties: {
title: {
default: null,
type: cc.Label,
},
allRewardNode: {
default: null,
type: cc.Node,
},
missionPrefab: {
default: null,
type: cc.Prefab,
},
lb_time: {
default: null,
type: cc.Label,
},
getNode: {
default: null,
type: cc.Node,
},
receiveNode: {
default: null,
type: cc.Node,
},
boostNode: {
default: null,
type: cc.Node,
},
stars: {
default: null,
type: cc.Node,
},
fullStarSpriteframe: {
default: null,
type: cc.SpriteFrame,
},
ceg_num: {
default: null,
type: cc.Label,
},
},
onLoad() {
cc.Notifier.on('boostcancel', this, this.hasCancelBoost.bind(this));
cc.Notifier.on('boostsuccess', this, this.boostsuccess.bind(this));
},
onDestroy() {
cc.Notifier.off('boostcancel', this, this.hasCancelBoost.bind(this));
cc.Notifier.off('boostsuccess', this, this.boostsuccess.bind(this));
},
onClickBtn() {
if (this.missionState == 0) {
NetManage.commitMission(this.missionId, () => {
cc.uiHelper.showTips('Get Reward Success!');
cc.Notifier.emit('ReFreshMission');
});
}
if (this.missionState == 1) {
const node = cc.instantiate(this.missionPrefab);
node.getComponent('mission_choose').initData(
this.wantedData,
this.ceg
);
cc.find('Canvas').addChild(node);
}
if (this.missionState == 2) {
var data = {
cegNum: this.boostCost,
mid: this.missionId,
};
uimanger.showUI(BoostTips.prefabPath, data);
}
},
onCancelBtn() {
var data = {
mid: this.missionId,
};
uimanger.showUI(CancelBoost.prefabPath, data);
},
hasCancelBoost(missionID) {
if (this.missionId == missionID) {
NetManage.cancelOfferRewardMission(missionID, () => {
this.boostNode.active = false;
this.receiveNode.active = false;
this.getNode.active = true;
this.lb_time.node.parent.active = false;
cc.uiHelper.showTips('Boost cancel!');
cc.Notifier.emit('ReFreshMission');
});
}
},
boostsuccess(missionID) {
if (this.missionId == missionID) {
NetManage.boostOfferRewardMission(missionID, () => {
cc.uiHelper.showTips('Boost Success!');
cc.Notifier.emit('ReFreshMission');
});
}
},
formatSeconds(value) {
let result = parseInt(value);
let h =
Math.floor(result / 3600) < 10
? '0' + Math.floor(result / 3600)
: Math.floor(result / 3600);
let m =
Math.floor((result / 60) % 60) < 10
? '0' + Math.floor((result / 60) % 60)
: Math.floor((result / 60) % 60);
let s =
Math.floor(result % 60) < 10
? '0' + Math.floor(result % 60)
: Math.floor(result % 60);
let res = '';
res += `${h}:`;
res += `${m}:`;
res += `${s}`;
return res;
},
init(data, originData) {
// console.log('dddd' + JSON.stringify(data));
// console.log('0000' + JSON.stringify(originData));
if (data.param2) {
for (let i = 0; i < data.param2; i += 1) {
this.stars.children[i].getComponent(cc.Sprite).spriteFrame =
this.fullStarSpriteframe;
}
}
this.boostCost = data.boost;
console.log(JSON.stringify(originData));
this.wantedData = data;
this.missionId = originData.mission_id;
this.missionState = originData.state;
if (originData.state == 0) {
//can revice
this.receiveNode.active = true;
}
if (originData.state == 1) {
// has get
this.getNode.active = true;
}
if (originData.state == 2) {
// doing
if (originData.objects.length == 0) {
this.getNode.active = true;
this.missionState = 1;
} else {
var leftTime = originData.lefttime;
this.lb_time.node.parent.active = true;
this.boostNode.active = true;
this.missionState = 2;
this.lb_time.string = this.formatSeconds(leftTime);
this.schedule(function () {
this.lb_time.string = this.formatSeconds((leftTime -= 1));
if (leftTime <= 0) {
cc.Notifier.emit('FinishOne');
}
}, 1);
}
}
this.ceg = originData.ceg_num;
this.ceg_num.string = `x${originData.ceg_num}`;
},
start() {
this.setRewards(this.wantedData.reward);
},
setRewards(string) {
var config = dropConfig[string];
var rewards = config.itemdata;
for (let i = 0; i < rewards.length; i += 1) {
let id = rewards[i].id;
let num = rewards[i].num;
var tmp = this.allRewardNode.children[i];
tmp.active = true;
tmp.children[0].getComponent(cc.Label).string = `x${1}`;
// Utils.setitem(this, id, tmp.children[1]);
}
},
});