// Learn TypeScript: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html import EventName, { PopName } from "./EventName/EventName"; import { ButtonLock } from "./GameLogic/Sofa"; import AudioManager from "./GameUI/AudioManager"; import CollectManger from "./GameUI/CollectManger"; import EmployeeReferral from "./GameUI/EmployeeReferral"; import HonorManger from "./GameUI/HonorManger"; import { IDcardType } from "./GameUI/IDcard"; import NoticeManger from "./GameUI/NoticeManger"; import PopManger from "./GameUI/PopManger"; import Rank from "./GameUI/Rank"; import HTTPS, { NetGet, NetPost } from "./Template/HTTPS"; import LocalData, { WorkState } from "./Template/LocalData"; import MyComponent from "./Template/MyComponent"; import PopComponet from "./Template/PopComponet"; const { ccclass, property } = cc._decorator; @ccclass export default class Start extends MyComponent { //人物预制体 @property(cc.Label) FreeCount: cc.Label = null @property(cc.Label) WorkCount: cc.Label = null @property(cc.Sprite) StartSprite: cc.Sprite = null @property(cc.SpriteFrame) Norm: cc.SpriteFrame = null @property(cc.SpriteFrame) Work: cc.SpriteFrame = null @property(cc.Node) RedNode: cc.Node = null start() { // this.rectAvatar.getMaterial(0).setProperty('wh_ratio', 0.5); AudioManager.instance.playHallBg() //率先检测今天是不是新的一天 // 1 改变左下角的debug标签颜色 this.SetDebugColor() } SetDebugColor() { cc.director.getScene().children.forEach(e => { console.log(e.name); }) let left = cc.director.getScene()?.getChildByName('PROFILER-NODE')?.getChildByName('LEFT-PANEL') let right = cc.director.getScene()?.getChildByName('PROFILER-NODE')?.getChildByName('RIGHT-PANEL') //@ts-ignore left?.color = cc.Color.RED //@ts-ignore right?.color = cc.Color.RED } @ButtonLock(0.5, null) ClickStartBtn() { switch (LocalData.getInstance().getWorkState()) { case WorkState.引导: //引导关卡不扣今日次数 PopManger.getInstance().Pop(PopName.StartAnim, { animation: false }) break; case WorkState.上班: case WorkState.加班: //非引导关卡 扣今日次数 if (LocalData.getInstance().getFreeGameCount() <= 0) { PopManger.getInstance().Pop(PopName.JustAgain) } else { LocalData.getInstance().setFreeGameCount(LocalData.getInstance().getFreeGameCount() - 1) //来个动画 执行预加载场景 PopManger.getInstance().Pop(PopName.StartAnim, { animation: false }) } break; default: cc.error('未知状态'); break; } } onDisable(): void { this.unscheduleAllCallbacks() } onEnable(): void { //现在免费的次数 let NowCout = LocalData.getInstance().getFreeGameCount() //今天免费的次数 let TotalCout = LocalData.getInstance().FreePlayCount if (NowCout > 0) { this.FreeCount.string = `今日免费 ${NowCout} / ${TotalCout}` this.FreeCount.enabled = true } else { this.FreeCount.enabled = true } if (LocalData.getInstance().getWorkState() === WorkState.加班) { this.StartSprite.spriteFrame = this.Work } else { this.StartSprite.spriteFrame = this.Norm } this.schedule(this.CheckNotice, 30, cc.macro.REPEAT_FOREVER, 1) this.regEvent(EventName.UpdateOnce, this.CheckNotice, this) HTTPS.Instance.get(NetGet.DailyRecord).then((resp) => { this.WorkCount.string = resp.Data.Total }) } CheckNotice() { console.error('执行了一次检测通知'); HTTPS.Instance.post(NetPost.GetToBenotifiedList, {}).then((resp) => { NoticeManger.getInstance().NoticeList = resp.Data NoticeManger.getInstance().Pop() }) HTTPS.Instance.post(NetPost.InvitationRecord, {}).then((resp) => { if (resp.Code == 200) { EmployeeReferral.RedPoint = resp.Data.Num if (EmployeeReferral.RedPoint >= 3) { this.RedNode.active = true } else { this.RedNode.active = false } } }) } @ButtonLock(0.5, null) seting() { PopManger.getInstance().Pop(PopName.Seting) } @ButtonLock(2, null) ClickHonorBtn() { HTTPS.Instance.post(NetPost.GetUserHonorList, {}).then((resp) => { HonorManger.getInstance().init(resp) PopManger.getInstance().Pop(PopName.HonorWall) }) } @ButtonLock(2, null)//收藏 ClickCollectBtn() { HTTPS.Instance.post(NetPost.GetUserCollectList, {}).then((resp) => { CollectManger.getInstance().init(resp) PopManger.getInstance().Pop(PopName.Collect) }) } @ButtonLock(0.5, null) ClickEmployeeReferralBtn() { HTTPS.Instance.post(NetPost.InvitationRecord, {}).then((resp) => { PopManger.getInstance().Pop(PopName.EmployeeReferral, { animation: true, Data: { resp: resp.Data } }) }) } @ButtonLock(0.5, null) ClickWhereMyBtn() { cc.systemEvent.emit(EventName.WhereMy) } @ButtonLock(0.5, null) ClickIDcard() { HTTPS.Instance.post(NetPost.GetUserInfo, {}).then((resp) => { PopManger.getInstance().Pop(PopName.IDcard, { animation: true, Data: { IDcardType: IDcardType.My, resp: resp.Data } }) }) } RankBronTime = 0 @ButtonLock(0.5, null) ClickRank() { HTTPS.Instance.post(NetPost.GetProvinceRanking, {}).then((resp) => { PopManger.getInstance().Pop(PopName.Rank, { animation: true, Data: { resp: resp.Data } }).then((e: Rank) => { let RankNode = e.node let PopMangerNode = cc.Canvas.instance.node.getChildByName('PopManger') let RankMaskNode = PopMangerNode.getChildByName('RankMask') RankMaskNode.active = true this.RankBronTime = cc.sys.now() RankMaskNode.on(cc.Node.EventType.TOUCH_START, (event: cc.Event.EventTouch) => { event.stopPropagation() if (cc.sys.now() - this.RankBronTime > 500) { RankMaskNode.active = false RankNode.destroy() } }) }) }) } }