123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- const Api = require('../net/Api');
- cc.Class({
- extends: cc.Component,
- properties: {
- questNode: cc.Node,
- questFrames: [cc.SpriteFrame],
- questBtns: [cc.Node],
- starNode: {
- tooltip: '星星节点',
- default: [],
- type: [cc.Node]
- },
- giftFrames: {
- tooltip: '奖励图片素材',
- default: [],
- type: [cc.SpriteFrame]
- },
- starFrames: {
- tooltip: '星星图片素材',
- default: [],
- type: [cc.SpriteFrame]
- },
- progressLabel: {
- tooltip: '奖励数量',
- default: null,
- type: cc.Label
- },
- progressBar: cc.ProgressBar,
- questTitle: {
- tooltip: '任务标题',
- default: null,
- type: cc.Label
- },
- },
- onLoad () {
- this.giftMap = ['diamond', 'coin', 'ticket']
- },
- start () {
- },
- init (tasks, sn) {
- this.tasks = tasks
- this.sn = parseInt(sn)
- let task = this.task = tasks[sn]
- let nameLevelMap = ['I', 'II', 'III', 'IV', 'V']
- let giftType
- let giftCount
-
- this.giftMap.forEach(n => {
- if(task[n] > 0) {
- giftType = n
- giftCount = task[n]
- }
- })
-
- // 设置当前任务标题
- this.questTitle.string = `${task.name}(${nameLevelMap[sn]}) ${task.msg + task.totalAimValue}`
- // 设置当前任务星级
- this._setStarLevel(sn)
- // 设置任务阶段进度条
- this._setProgress(task.aimValue, task.totalAimValue)
- // 设置任务领取按钮
- this._setGiftBtn(task.status, giftType, giftCount)
- },
- /**
- * 领取按钮点击
- */
- handleGiftBtn () {
- Api.httpPost({
- url: "/task/gain.do",
- data: {
- taskId: this.task.taskId,
- sn: this.task.sn
- },
- success: (res) => {
- // 领取成功
- this.sn += 1
- // this.init(this.tasks, this.sn)
- },
- fail: () => {
- // 领取失败
- }
- })
- },
- /**
- * 设置任务领取状态按钮
- * @param {number} status 任务状态[0 : 未完成, 1 : 完成可领取, 2 : 完成已领取]
- * @param {string} giftType 奖励类型[ticket: 艺人券, diamond: 钻石, coin: 金币]
- * @param {number} giftCount 奖励数量
- */
- _setGiftBtn (status, giftType, giftCount) {
- let btn
- if(status == 1) {
- btn = this.questBtns[0]
- } else {
- btn = this.questBtns[1]
- }
- btn.active = true
- let countNode = cc.find('/count_label', btn)
- let spriteNode = cc.find('/sprite', btn)
- let giftSprite
- this.giftMap.forEach((value, index) => {
- if(value == giftType) {
- giftSprite = this.giftFrames[index]
- }
- })
-
- countNode.getComponent('cc.Label').string = `x ${giftCount}`
- spriteNode.getComponent('cc.Sprite').spriteFrame = giftSprite
- },
- /**
- * 设置任务阶段进度条
- * @param {number} current 当前值
- * @param {number} total 阶段总值
- */
- _setProgress (current, total) {
- let _progress = (current / total).toFixed(1)
- console.log(_progress);
- this.progressBar.progress = _progress
- this.progressLabel.string = `${current} / ${total}`
- },
- /**
- * 设置当前任务星级
- * @param {number} level 星级
- */
- _setStarLevel (level) {
- this.starNode.forEach((node, index) => {
- if(index < level) {
- node.getComponent('cc.Sprite').spriteFrame = this.starFrames[1]
- } else {
- node.getComponent('cc.Sprite').spriteFrame = this.starFrames[0]
- }
- })
- }
- });
|