| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533 |
- // Learn TypeScript:
- // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
- // Learn Attribute:
- // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
- // Learn life-cycle callbacks:
- // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
- import GameM, { AUDIO_TYPE } from "../manager/GameM";
- import TaskItem from "../prefabs/TaskItem";
- import UiM, { PANEL_NAME } from "../manager/UiM";
- import Main from "../Main";
- import AdM from "../manager/AdM";
- import EffectNode from "./EffectNode";
- import { MONEY_TYPE } from "../datas/CommonData";
- import Gift from "./Gift";
- import PoolMgr, { NODEPOOLPREFABTYPE } from "../manager/PoolMgr";
- import DailyCashProAdd from "../prefabs/DailyCashProAdd";
- import { STORAGE_KEY } from "../datas/GlobalStorage";
- import Guide from "./Guide";
- import GuideMng from "../manager/GuideMng";
- import UIMng, { PanelType } from "../uiFrames/UIMng";
- import { RichData } from "../datas/RichData";
- import { GameController } from "../manager/GameController";
- import MyExtends from "../tools/MyExtends";
- import { Utils } from "../utils/Utils";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class Task extends cc.Component {
- @property(cc.Node)
- dailySel: cc.Node = null;
- @property(cc.Node)
- achieveSel: cc.Node = null;
- @property(cc.Node)
- contentDaily: cc.Node = null;
- @property(cc.Node)
- contentAchieve: cc.Node = null;
- @property(cc.Node)
- scDaily: cc.Node = null;
- @property(cc.Node)
- scAchieve: cc.Node = null;
- @property(cc.Node)
- dailyRed: cc.Node = null;
- @property(cc.Node)
- achieveRed: cc.Node = null;
- @property(cc.Node)
- dailyAward: cc.Node = null;
- @property(cc.Sprite)
- proActive: cc.Sprite = null;
- @property(cc.Label)
- labActiveNum: cc.Label = null;
- @property(cc.Node)
- box: cc.Node = null;
- @property(cc.Label)
- labDice: cc.Label = null;
- @property(cc.Node)
- richBtn: cc.Node = null;
- // LIFE-CYCLE CALLBACKS:
- // onLoad () {}
- index = 0
- curActive = 0
- /** 活跃奖励配置 */
- awardCfg = null
- /** tween数组 */
- tweenArr = []
- /** 本次增加活跃值 */
- addPoint = 0
- private hasInit = false
- onLoad() {
- this.richBtn.active = RichData.Ins.richCfg.richmanopen == 1;
- }
- onEnable() {
- this.index = 0
- this.dailySel.active = true
- this.achieveSel.active = false
- this.scDaily.active = true
- this.scAchieve.active = false
- this.dailyAward.active = false
- this.freshState()
- if (GameM.commonData.taskGuide == 0) {
- GameM.commonData.taskGuide = 1
- GameM.globalStorage.setStorage(STORAGE_KEY.taskGuide, GameM.commonData.taskGuide)
- // UiM.Instance.guideNode.getComponent(Guide).showTask2()
- }
- //日常任务引导
- this.scheduleOnce(() => {
- GuideMng.Ins.CheckTaskGuide8()
- }, 0.6)
- this.freshDice()
- }
- onDisable() {
- AdM.createInter(8);
- this.unschedule(this.onProAdd)
- }
- freshState() {
- GameM.commonData.taskRedNum = 0
- GameM.commonData.dailyTaskRedNum = 0
- GameM.commonData.achieveTaskRedNum = 0
- if (this.hasInit) {
- let cfg = GameM.commonData.achieveCft
- let item
- let s
- let keys = Object.keys(GameM.commonData.achieveCft)
- for (var i = 0; i < keys.length; i++) {
- let finish = GameM.commonData.getAchieveGetData(Number(keys[i]))
- if (finish < cfg[keys[i]].length) {
- item = this.contentAchieve.getChildByName(keys[i])
- s = item.getComponent(TaskItem)
- s.init(1, Number(keys[i]), cfg[keys[i]][finish])
- s.updateSibling()
- }
- }
- cfg = GameM.commonData.taskCft
- keys = Object.keys(GameM.commonData.taskCft)
- for (var i = 0; i < keys.length; i++) {
- let finish = GameM.commonData.getDailyGetData(Number(keys[i]))
- if (finish < cfg[keys[i]].length) {
- item = this.contentDaily.getChildByName(keys[i])
- s = item.getComponent(TaskItem)
- s.init(0, Number(keys[i]), cfg[keys[i]][finish])
- s.updateSibling()
- }
- }
- this.freshActive()
- UiM.Instance.hallNode.getComponent(Main).checkTaskRed()
- }
- }
- async init() {
- //成就
- let keys = Object.keys(GameM.commonData.achieveCft)
- let cfg = GameM.commonData.achieveCft
- let pre = await Utils.loadResPromise('prefabs/TaskItem')
- let item
- let s
- for (var i = 0; i < keys.length; i++) {
- item = cc.instantiate(pre)
- item.name = keys[i]
- s = item.getComponent(TaskItem)
- let finish = GameM.commonData.getAchieveGetData(Number(keys[i]))
- if (finish < cfg[keys[i]].length) {
- s.init(1, Number(keys[i]), cfg[keys[i]][finish])
- this.contentAchieve.addChild(item)
- }
- }
- //每日任务
- cfg = GameM.commonData.taskCft
- keys = Object.keys(GameM.commonData.taskCft)
- //console.log("cfg:",cfg)
- //console.log("cfgkeys:",keys)
- for (var i = 0; i < keys.length; i++) {
- item = cc.instantiate(pre)
- item.name = keys[i]
- s = item.getComponent(TaskItem)
- let finish = GameM.commonData.getDailyGetData(Number(keys[i]))
- if (finish < cfg[keys[i]].length) {
- s.init(0, Number(keys[i]), cfg[keys[i]][finish])
- this.contentDaily.addChild(item)
- }
- else {
- s.init(0, Number(keys[i]), cfg[keys[i]][cfg[keys[i]].length - 1])
- this.contentDaily.addChild(item)
- }
- }
- this.freshActive()
- UiM.Instance.hallNode.getComponent(Main).checkTaskRed()
- this.hasInit = true
- }
- freshRed() {
- if (GameM.commonData.dailyTaskRedNum > 0) {
- this.dailyRed.active = true
- }
- else {
- this.dailyRed.active = false
- }
- if (GameM.commonData.achieveTaskRedNum > 0) {
- this.achieveRed.active = true
- }
- else {
- this.achieveRed.active = false
- }
- }
- start() {
- }
- async freshActive() {
- this.awardCfg = GameM.commonData.taskAwardCft
- this.labActiveNum.string = GameM.commonData.roleData.activeNum.toString()
- this.curActive = GameM.commonData.roleData.activeNum
- this.proActive.fillRange = GameM.commonData.roleData.activeNum / this.awardCfg[this.awardCfg.length - 1].point
- for (var i = 0; i < this.box.childrenCount; i++) {
- let b = this.box.getChildByName(`box${i + 1}`)
- b.getComponentInChildren(cc.Label).string = this.awardCfg[i].point.toString()
- // b.x = this.proActive.totalLength * this.awardCfg[i].point / this.awardCfg[this.awardCfg.length - 1].point
- let sp = b.getChildByName('iconCan').getComponent(cc.Sprite)
- let lab = b.getChildByName('labNum')
- let str = ''
- let qipao = b.getChildByName('qipao')
- let tip = qipao.getChildByName('labTip').getComponent(cc.Label)
- tip.string = this.awardCfg[i].tip
- if (this.awardCfg[i].type instanceof Array) {
- let curLevelCfg = null
- for (var j = 0; j < this.awardCfg[i].type.length; j++) {
- if (GameM.commonData.maxCarLevel <= this.awardCfg[i].type[j].level) {
- curLevelCfg = this.awardCfg[i].type[j]
- break
- }
- }
- //已领取汽车奖励不会再变
- if (GameM.commonData.roleData.activeGet[i] != 0) {
- str = 'carPic/side/side_' + GameM.commonData.roleData.activeGet[i]
- }
- else {
- str = 'carPic/side/side_' + curLevelCfg.min
- }
- sp.spriteFrame = null
- cc.loader.loadRes(str, cc.SpriteFrame, (err, assets) => {
- if (err) {
- cc.error(err);
- return;
- }
- sp.spriteFrame = assets;
- // sp.node.scale = 0.4
- })
- if (curLevelCfg.light == 1) {
- sp.node.color = cc.Color.WHITE
- }
- else {
- sp.node.color = cc.color(45, 45, 45, 255)
- }
- lab.getComponent(cc.Label).string = curLevelCfg.show
- }
- else {
- sp.node.scale = 1
- sp.node.color = cc.Color.WHITE
- let awardName = ''
- switch (this.awardCfg[i].type) {
- case MONEY_TYPE.speedCard:
- str = 'gift/iconJiasuka'
- awardName = '加速券'
- //sp.node.scale = 0.65
- sp.node.scale = 0.9
- break
- case MONEY_TYPE.turnTableCard:
- str = 'gift/iconZhuanpanka'
- sp.node.scale = 0.9
- awardName = '转盘卡'
- break
- case MONEY_TYPE.treasureCard:
- str = 'gift/iconDuobaoquan'
- awardName = '夺宝券'
- sp.node.scale = 0.9
- break
- case MONEY_TYPE.redMoney:
- str = 'gift/redMoney'
- awardName = '红包币'
- sp.node.scale = 0.9
- break
- }
- sp.spriteFrame = await Utils.loadResPromise(str, cc.SpriteFrame)
- lab.getComponent(cc.Label).string = `${awardName} * ${this.awardCfg[i].num}`
- }
- if (GameM.commonData.roleData.activeNum >= this.awardCfg[i].point) {
- if (GameM.commonData.roleData.activeGet[i] != 0) {
- b.getChildByName('iconGet').active = true
- lab.active = false
- if (this.tweenArr[i]) {
- this.tweenArr[i].stop()
- }
- sp.node.angle = 0
- }
- else {
- b.getChildByName('iconGet').active = false
- lab.active = true
- if (!this.tweenArr[i]) {
- let curScale = sp.node.scale
- let tween = cc.tween(sp.node)
- .to(0.2, { angle: 15, scale: curScale * 1.2 })
- .to(0.4, { angle: -15, scale: curScale * 1 })
- .to(0.4, { angle: 15, scale: curScale * 1.2 })
- .to(0.2, { angle: 0, scale: curScale * 1 })
- .delay(2)
- .union()
- .repeatForever()
- .start()
- this.tweenArr[i] = tween
- }
- GameM.commonData.taskRedNum++
- }
- }
- else {
- b.getChildByName('iconGet').active = false
- lab.active = true
- if (this.tweenArr[i]) {
- this.tweenArr[i].stop()
- }
- sp.node.angle = 0
- }
- }
- }
- clickGetBox(evt) {
- GameM.audioM.playEffect(AUDIO_TYPE.button)
- let qipao = evt.target.getChildByName('qipao')
- qipao.active = true
- this.scheduleOnce(() => {
- qipao.active = false
- }, 2)
- switch (evt.target.name) {
- case 'box1':
- this.getAwardByType(0, evt.target)
- break
- case 'box2':
- this.getAwardByType(1, evt.target)
- break
- case 'box3':
- this.getAwardByType(2, evt.target)
- break
- }
- }
- getAwardByType(index, target) {
- let curCfg = this.awardCfg[index]
- if (GameM.commonData.roleData.activeNum >= curCfg.point) {
- if (GameM.commonData.roleData.activeGet[index] == 0) {
- if (curCfg.type instanceof Array) {
- if (UiM.Instance.hallNode.getComponent(Main).getEmptySpace() == '') {
- EffectNode.instance.PlayTip("位置已满,请空出位置再领");
- return
- }
- let carlevel = 0
- let curLevelCfg = null
- for (var j = 0; j < curCfg.type.length; j++) {
- if (GameM.commonData.maxCarLevel <= curCfg.type[j].level) {
- curLevelCfg = curCfg.type[j]
- break
- }
- }
- if (curLevelCfg.light == 1) {
- carlevel = curLevelCfg.min
- }
- else {
- carlevel = Math.max(curLevelCfg.min, GameM.commonData.maxCarLevel - curLevelCfg.fix)
- }
- GameM.commonData.roleData.activeGet[index] = carlevel
- UiM.Instance.hallNode.getComponent(Main).getTaskAwardCar(carlevel)
- }
- else {
- GameM.commonData.roleData.activeGet[index] = 1
- UiM.Instance.giftNode.active = true
- UiM.Instance.giftNode.x = 0
- let gift = UiM.Instance.giftNode.getComponent(Gift)
- gift.init(curCfg.type, String(curCfg.num), null, false, 0)
- }
- AdM.onSendEvent(`TaskAward${index + 1}`, `活跃第${index + 1}档奖励领取`, 'TaskAward')
- target.getChildByName('iconGet').active = true
- target.getChildByName('labNum').active = false
- GameM.commonData.taskRedNum--
- if (this.tweenArr[index]) {
- this.tweenArr[index].stop()
- }
- GameM.commonData.updateRoleData()
- }
- else {
- EffectNode.instance.PlayTip('奖励已领取')
- }
- } else {
- EffectNode.instance.PlayTip('活力值不足')
- }
- }
- /** 增加活跃动画 */
- addActiveNum(num) {
- this.addPoint = num
- let addGold = PoolMgr.Inst.getPoolPrefab(NODEPOOLPREFABTYPE.DailyCashProAdd);
- addGold.getComponent(DailyCashProAdd).init(`+${this.addPoint}`);
- this.labActiveNum.node.addChild(addGold);
- if (this.curActive < GameM.commonData.roleData.activeNum) {
- this.schedule(this.onProAdd, 0.03)
- }
- }
- onProAdd() {
- if (this.curActive < GameM.commonData.roleData.activeNum) {
- this.curActive++
- this.labActiveNum.string = this.curActive.toString()
- this.proActive.fillRange = this.curActive / this.awardCfg[this.awardCfg.length - 1].point
- }
- else {
- this.unschedule(this.onProAdd)
- this.freshState()
- }
- }
- /** 刷新骰子个数 */
- freshDice() {
- this.labDice.string = RichData.Ins.diceTotalNum.toString()
- }
- /** 前去取经 */
- clickRichMan() {
- GameM.audioM.playEffect(AUDIO_TYPE.button)
- AdM.onSendEvent(`gotoRichMan`, `前往取经`, 'task')
- UIMng.Ins.AsyncGetPanel(PanelType.RichPanel, (panel) => {
- panel.OnEnter();
- });
- //UIMng.Ins.GetPanel(PanelType.RichPanel).OnEnter();
- this.node.active = false
- }
- clickDaily() {
- GameM.audioM.playEffect(AUDIO_TYPE.button)
- this.dailySel.active = true
- this.achieveSel.active = false
- this.scDaily.active = true
- this.dailyAward.active = true
- this.scAchieve.active = false
- this.index = 0
- }
- clickAchieve() {
- GameM.audioM.playEffect(AUDIO_TYPE.button)
- this.dailySel.active = false
- this.achieveSel.active = true
- this.scDaily.active = false
- this.dailyAward.active = false
- this.scAchieve.active = true
- this.index = 1
- }
- clickClose() {
- GameM.audioM.playEffect(AUDIO_TYPE.button)
- this.node.active = false
- }
- // update (dt) {}
- /**播放获取骰子动画*/
- PlayDiceEft() {
- //let eft = new cc.Node("eft");
- //let eftimg = eft.addComponent(cc.Sprite);
- //cc.loader.loadRes("xiyou/icon/reward30001" , cc.SpriteFrame, (error, assets) => {
- // if (error != null) {
- // return;
- // }
- // eftimg.spriteFrame = assets;
- //});
- //eft.parent = GameController.Ins.Canvas;
- let endPos = MyExtends.convetOtherNodeSpaceAR(this.labDice.node, GameController.Ins.Canvas);
- //eft.setPosition(startpos);
- //cc.tween(eft)
- // .to(0.5, { position: endPos })
- // .delay(0.3)
- // .call(() => {
- // eft.destroy();
- //
- // this.freshDice();
- // })
- // .start();
- EffectNode.instance.PlayCoinAnim(6, 6, cc.v2(0, -300), true, endPos);
- setTimeout(() => {
- this.labDice.node.runAction(cc.sequence(cc.scaleTo(0.15, 1.1), cc.scaleTo(0.15, 1)));
- this.freshDice();
- }, 1000);
- console.log("------------------PlayDiceEft");
- GameM.audioM.playEffect(AUDIO_TYPE.sutraitemfly);
- }
- }
|