You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
533 lines
18 KiB
533 lines
18 KiB
// 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 { ryw_Event } from "../../FrameWork/Event/EventEnum";
|
|
import EventMgr from "../../FrameWork/Event/EventMgr";
|
|
import User from "../../FrameWork/User/User";
|
|
import Common5 from "../../Platform/th/Common5";
|
|
import List from "../../Platform/th/List";
|
|
import UiBase from "../GameBase/UiBase";
|
|
import TaskManager, { MainTaskIdEnum } from "../JuQingChat/TaskManager";
|
|
import LevelUpManager from "../Manager/LevelUpManager";
|
|
import MiShuManager from "../Manager/MiShuManager";
|
|
import ShipuManager from "../Manager/ShipuManager";
|
|
import ZiChanManager from "../Manager/ZiChanManager";
|
|
import NewGuideScript from "../NewGuide/NewGuideScript";
|
|
import PrefabManage, { GameType } from "../PrefabManager/PrefabManage";
|
|
import MishuItem from "./MishuItem";
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class MishuGame extends UiBase {
|
|
|
|
@property(cc.Label)
|
|
label: cc.Label = null;
|
|
|
|
@property(List)
|
|
listM: List = null; //秘书
|
|
|
|
@property(List)
|
|
listD: List = null; //队友
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
@property(cc.Label)
|
|
allShouyiMS: cc.Label = null;
|
|
@property(cc.Label)
|
|
allShouyiDY: cc.Label = null;
|
|
|
|
// onLoad () {}
|
|
dataListD = []
|
|
dataListM = []
|
|
|
|
dialogIndex: number = 0;
|
|
duihuakuang1: cc.Node;
|
|
duihuakuang2: cc.Node;
|
|
selectIndex: number = 0;
|
|
chatConfig = [
|
|
{ effectUrl: 'DH/MainHall/sound/招募助理可以增加秒赚收益哦', delayTime: 2.35, str: '招募助理可以增加秒赚收益哦', posi: 'qipao2' },
|
|
{ effectUrl: 'DH/MainHall/sound/等级越高秒赚收益越高,升级助理到10级可以招募下一个助理哦', delayTime: 5.3, str: '等级越高秒赚收益越高,升级助理到10级可以招募下一个助理哦', posi: 'qipao2' },
|
|
{ effectUrl: 'DH/MainHall/sound/等级越高,增加的秒赚收益越多哦!', delayTime: 3, str: '等级越高,增加的秒赚收益越多哦!', posi: 'qipao2' },
|
|
{ effectUrl: 'DH/MainHall/sound/哥哥,将助理升级到20级后可以获得点击收益加成哦!', delayTime: 3, str: '哥哥,将助理升级到20级后可以获得点击收益加成哦!', posi: 'qipao2' },
|
|
]
|
|
|
|
start() {
|
|
EventMgr.onEvent_custom(ryw_Event.changeScene, () => {
|
|
console.log('changeScene++=MishuGame')
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
}, this)
|
|
|
|
MiShuManager.initManager()
|
|
this.scheduleOnce(() => {
|
|
this.setListM()
|
|
}, 0.1)
|
|
|
|
this.refreshShouyi()
|
|
EventMgr.onEvent_custom(ryw_Event.mishuLevelUp, () => {
|
|
this.refreshShouyi()
|
|
this.checkDuiyouPoint()
|
|
|
|
let index = User.getFirstStepIndex()
|
|
if (index == 11) {
|
|
// this.showQiPao(this.chatConfig[2])
|
|
User.setFirstStepIndex(12)
|
|
}
|
|
this.refreshUpNum()
|
|
}, this)
|
|
|
|
|
|
EventMgr.onEvent_custom(ryw_Event.mishuLock, () => {
|
|
this.refreshShouyi()
|
|
this.checkDuiyouPoint()
|
|
|
|
|
|
this.refreshUpNum()
|
|
}, this)
|
|
|
|
this.scheduleOnce(() => {
|
|
PrefabManage.preloadPrefabByType(GameType.MishuReward)
|
|
}, 1.0)
|
|
|
|
this.checkFinishTask()
|
|
EventMgr.onEvent_custom(ryw_Event.exitMishuReward, () => {
|
|
this.checkFinishTask()
|
|
// let index = User.getFirstStepIndex()
|
|
// if (index == 10) {
|
|
// User.setFirstStepIndex(11)
|
|
// let nodeArray = [this.node.getChildByName('guideBtn')]
|
|
// this.guideView(nodeArray, false, 0)
|
|
// this.showQiPao(this.chatConfig[1])
|
|
// Common5.ReportDY("inLevel", "任务" + TaskManager.getCurUnLockMainTaskId() + '-引导升级秘书');
|
|
// }
|
|
}, this)
|
|
|
|
// let index = User.getFirstStepIndex()
|
|
// let isNeedGuide = cc.sys.localStorage.getItem("首次非引导主动进秘书界面") ?? 0
|
|
// if (index == 10) {
|
|
// Common5.ReportDY("inLevel", "任务" + TaskManager.getCurUnLockMainTaskId() + '-引导招募秘书');
|
|
// let nodeArray = [this.node.getChildByName('guideBtn')]
|
|
// this.guideView(nodeArray, false, 0)
|
|
// this.showQiPao(this.chatConfig[0])
|
|
// } else if (!isNeedGuide) {
|
|
// cc.sys.localStorage.setItem("首次非引导主动进秘书界面", '1')
|
|
// let nodeArray = [this.node.getChildByName('guideBtn')]
|
|
// this.guideView(nodeArray, false, 0)
|
|
// this.showQiPao(this.chatConfig[3])
|
|
// }
|
|
|
|
// let nodeArray = [this.node.getChildByName('guideBtn')]
|
|
// this.guideView(nodeArray, false, 150)
|
|
// this.showQiPao(this.chatConfig[1])
|
|
|
|
Common5.loadRemoteAudioEffect('sound/diandiandian/20级音效')
|
|
|
|
this.checkDuiyouPoint()
|
|
this.guideTask()
|
|
this.refreshUpNum()
|
|
|
|
}
|
|
|
|
closeUiView(): void {
|
|
// let zhuanpan = User.getZhuanPanFree()
|
|
// if (zhuanpan) {
|
|
// PrefabManage.loadPrefabByType(GameType.MultipleIncome)
|
|
// }
|
|
User.setFirstStepIndex(1000)
|
|
EventMgr.emitEvent_custom(ryw_Event.My_Guide)
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
|
|
}
|
|
|
|
guideTask() {
|
|
// let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo()
|
|
// let mainId = mainTaskInfo.Id
|
|
// if (mainId == MainTaskIdEnum.MainTask_514 && User.getFirstStepIndex() == 7) {
|
|
// User.setFirstStepIndex(8)
|
|
// let node = this.node.getChildByName('guideBtn2')
|
|
// this.guideView([node], true, 100)
|
|
// }
|
|
}
|
|
|
|
checkDuiyouPoint() {
|
|
// let point = this.node.getChildByName('队友红点')
|
|
// let haveRed = MiShuManager.getDuiyouRedPoint()
|
|
// point.active = haveRed
|
|
|
|
}
|
|
|
|
guideView(nodeArray, isPlayAnim = true, opacity = -1) {
|
|
PrefabManage.loadPrefabByType(GameType.GuideMskNode, this.node.getChildByName("蒙版父节点"), (prefab) => {
|
|
//prefab.zIndex = 199
|
|
if (!isPlayAnim) {
|
|
prefab.getComponent(NewGuideScript).setCanPlayAnim(isPlayAnim)
|
|
}
|
|
if (opacity != -1) {
|
|
prefab.getComponent(NewGuideScript).setOpacityMaskNode(opacity)
|
|
|
|
}
|
|
let guideNodeArray = nodeArray
|
|
let firstNode = guideNodeArray.shift()
|
|
prefab.getComponent(NewGuideScript).setBindNode(firstNode, guideNodeArray)
|
|
|
|
|
|
})
|
|
}
|
|
|
|
|
|
checkFinishTask() {
|
|
let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo()
|
|
let mainId = mainTaskInfo.Id
|
|
// if (mainId == MainTaskIdEnum.MainTask_514) {
|
|
// let isLock = MiShuManager.getIsLock(18) //班的多
|
|
// if (isLock == false) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_514)
|
|
// TaskManager.setCurTask(MainTaskIdEnum.MainTask_515)
|
|
// PrefabManage.loadPrefabByType(GameType.BoxTipNode, null, (prefab) => {
|
|
// prefab.getComponent('BoxTipScript').setViewData(1, `回家接收巡夜人小队制式装备`, () => {
|
|
// PrefabManage.loadPrefabByType(GameType.MyRoom)
|
|
// })
|
|
// prefab.getComponent('BoxTipScript').setBtnStr('回家接收')
|
|
// prefab.getComponent('BoxTipScript').setCloseBtnView(false)
|
|
// })
|
|
// }
|
|
|
|
// } else if (mainId == MainTaskIdEnum.MainTask_525) {
|
|
// let isLock = MiShuManager.getIsLock(20) //送得快
|
|
// if (isLock == false) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_525)
|
|
// TaskManager.setCurTask(MainTaskIdEnum.MainTask_526)
|
|
// this.node.removeFromParent()
|
|
// this.node.destroy()
|
|
// }
|
|
|
|
// } else if (mainId == MainTaskIdEnum.MainTask_532) {
|
|
// let isLock = MiShuManager.getIsLock(24) //钱多发
|
|
// if (isLock == false) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_532)
|
|
// this.node.removeFromParent()
|
|
// this.node.destroy()
|
|
// }
|
|
|
|
// }
|
|
}
|
|
|
|
onListMGridRender(item: cc.Node, idx: number) {
|
|
//item.getComponent(ListItem).title.getComponent(cc.Label).string = this.data[idx] + '';
|
|
|
|
let config = this.dataListM[idx]
|
|
// console.log(config)
|
|
let danItem: MishuItem = item.getComponent('MishuItem')
|
|
danItem.setViewDate(config, true)
|
|
}
|
|
|
|
|
|
onListDGridRender(item: cc.Node, idx: number) {
|
|
|
|
let config = this.dataListD[idx]
|
|
let danItem: MishuItem = item.getComponent('MishuItem')
|
|
danItem.setViewDate(config, false)
|
|
|
|
}
|
|
|
|
|
|
|
|
pxmsBtnClick() {
|
|
//Common5.playEffect("sound/按键点击")
|
|
//fix me
|
|
let num = MiShuManager.getUnLockMishuNum()
|
|
if (num >= 10) {
|
|
PrefabManage.loadPrefabByType(GameType.MishuPeixun, null, (prefab) => {
|
|
prefab.getComponent('MishuPeiXun').setViewDate('Mishu')
|
|
})
|
|
} else {
|
|
PrefabManage.showTextTips('拥有10个助理后可解锁')
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
pxduiyouBtnClick() {
|
|
//Common5.playEffect("sound/按键点击")
|
|
//fix me
|
|
let num = MiShuManager.getUnLockDuiyouNum()
|
|
|
|
if (num >= 6) {
|
|
PrefabManage.loadPrefabByType(GameType.MishuPeixun, null, (prefab) => {
|
|
prefab.getComponent('MishuPeiXun').setViewDate('Duiyou')
|
|
})
|
|
} else {
|
|
PrefabManage.showTextTips('拥有6个队友后可解锁')
|
|
}
|
|
|
|
}
|
|
|
|
chooseClickEvent(event, data) {
|
|
//Common5.playEffect("sound/按键点击")
|
|
if (data == 'listM') {
|
|
|
|
|
|
this.listM.node.active = true
|
|
|
|
this.listD.node.active = false
|
|
this.label.string = '助理升级到20级可获得点击加成'
|
|
this.node.getChildByName('mishuPeixunNode').active = true
|
|
|
|
this.node.getChildByName('duiyouPeixunNode').active = false
|
|
|
|
this.setListM()
|
|
} else if (data == 'listD') {
|
|
|
|
|
|
this.listM.node.active = false
|
|
|
|
this.listD.node.active = true
|
|
this.label.string = '队友升级到20级可获得点击加成'
|
|
|
|
this.node.getChildByName('mishuPeixunNode').active = false
|
|
|
|
this.node.getChildByName('duiyouPeixunNode').active = true
|
|
|
|
|
|
this.setListD()
|
|
}
|
|
|
|
this.refreshShouyi()
|
|
}
|
|
|
|
refreshShouyi() {
|
|
let allshouyi1 = MiShuManager.getAllIncomeMishu()
|
|
this.allShouyiMS.string = Common5.getNumberChangeHanzi(allshouyi1) + ''
|
|
|
|
let allshouyi2 = MiShuManager.getAllIncomeDuiyou()
|
|
this.allShouyiDY.string = Common5.getNumberChangeHanzi(allshouyi2) + ''
|
|
|
|
}
|
|
|
|
refreshUpNum() {
|
|
let mishuList = User.getMishuList()
|
|
// let mishuNum = 0
|
|
// for (let i = 0; i < mishuList.length; i++) {
|
|
// if (!mishuList[i].isLock) {
|
|
// mishuNum++
|
|
// }
|
|
// }
|
|
// this.node.getChildByName("秘书数量").getComponent(cc.Label).string = `${MiShuManager.getAllMishuNum()}`
|
|
// this.node.getChildByName("秒赚收益").getComponent(cc.Label).string = `${MiShuManager.getAllIncomeMishuMiaoZhuan()}`
|
|
|
|
// let beishuSP = ShipuManager.getAllShipuInCome()
|
|
// let zichan = ZiChanManager.getZiChanBeiShu()
|
|
// let fanbei = User.getShouyiFanbeiNum()
|
|
// let chenghaoInCome = LevelUpManager.getAllChengHaoinCome() //称号倍数
|
|
// this.node.getChildByName("秒赚收益总加成").getComponent(cc.Label).string = `${Math.floor((beishuSP * zichan * fanbei * chenghaoInCome)) * 100}%`
|
|
|
|
// let allNum = MiShuManager.getAllIncomeMishu()
|
|
// let mzNum = Math.floor(allNum * beishuSP * chenghaoInCome * zichan) //秒赚收益
|
|
// this.node.getChildByName("秒赚总收益").getComponent(cc.Label).string = `${Common5.getNumberChangeHanzi(mzNum)}/秒`
|
|
}
|
|
setListM() {
|
|
let content = this.listM.node.getChildByName('mask').getChildByName('content')
|
|
content.removeAllChildren()
|
|
content.destroyAllChildren()
|
|
let content2 = this.listD.node.getChildByName('mask').getChildByName('content')
|
|
content2.removeAllChildren()
|
|
content2.destroyAllChildren()
|
|
|
|
let mishuList = User.getMishuList()
|
|
this.dataListM = []
|
|
for (let n = 0; n < mishuList.length; n++) {
|
|
|
|
this.dataListM.push(mishuList[n]);
|
|
|
|
|
|
}
|
|
this.listM.numItems = this.dataListM.length;
|
|
|
|
|
|
let index = MiShuManager.getMishuLockIndex()
|
|
this.listM.scrollTo(index)
|
|
|
|
}
|
|
|
|
setListD() {
|
|
let content = this.listM.node.getChildByName('mask').getChildByName('content')
|
|
content.removeAllChildren()
|
|
content.destroyAllChildren()
|
|
let content2 = this.listD.node.getChildByName('mask').getChildByName('content')
|
|
content2.removeAllChildren()
|
|
content2.destroyAllChildren()
|
|
let duiyouList = User.getDuiyouList()
|
|
|
|
let taskDate = User.getCurTaskId()
|
|
if (taskDate[0] >= MainTaskIdEnum.MainTask_532) {
|
|
this.dataListD = []
|
|
for (let n = 0; n < duiyouList.length; n++) {
|
|
this.dataListD.push(duiyouList[n]);
|
|
}
|
|
this.listD.numItems = this.dataListD.length;
|
|
//修改把钱多发移到前面
|
|
|
|
} else {
|
|
this.dataListD = []
|
|
for (let n = 0; n < duiyouList.length - 1; n++) {
|
|
this.dataListD.push(duiyouList[n]);
|
|
}
|
|
this.listD.numItems = this.dataListD.length;
|
|
}
|
|
|
|
let index = MiShuManager.getDuiyouLockIndex()
|
|
if (index >= 18) {
|
|
index = index - 18
|
|
}
|
|
this.listD.scrollTo(index)
|
|
|
|
//MainTask_532
|
|
|
|
}
|
|
// update (dt) {}
|
|
|
|
// 展示气泡
|
|
showQiPao(curLog, func?, aniFunc?) {
|
|
//cc.audioEngine.stopAllEffects();
|
|
if (curLog != null && curLog != undefined && typeof (curLog) == "number") {
|
|
curLog = this.chatConfig[curLog]
|
|
}
|
|
// if (!curLog) {
|
|
// return
|
|
// }
|
|
|
|
if (curLog.effectUrl && curLog.effectUrl.length > 0) {
|
|
Common5.playRemoteAudioEffect(curLog.effectUrl);
|
|
// Common5.playEffectCustom("GameRes", curLog.effectUrl);
|
|
}
|
|
|
|
let string_ = curLog.str
|
|
let qiPaoPos_ = curLog.posi ?? curLog.qiPaoPos
|
|
let delayTime_ = curLog.delayTime ?? curLog.delay
|
|
|
|
if (aniFunc) {
|
|
aniFunc()
|
|
}
|
|
|
|
if (qiPaoPos_ != '-1') {
|
|
let node = this.node.getChildByName('qipao');
|
|
let qiPao = node.getChildByName(qiPaoPos_);
|
|
qiPao.stopAllActions()
|
|
this.showDialogStr(string_, qiPao.getChildByName("str"))
|
|
// qiPao.getChildByName("str").getComponent(cc.Label).string = string_
|
|
qiPao.active = true
|
|
// let scale = qiPao.scale
|
|
qiPao.scale = 0
|
|
cc.tween(qiPao)
|
|
.to(0.2, { scale: 1 / this.node.scale })
|
|
.delay(delayTime_)
|
|
.call(() => {
|
|
qiPao.active = false;
|
|
})
|
|
.start();
|
|
} else {
|
|
let chatLog = this.node.getChildByName('chatLog')
|
|
chatLog.active = true
|
|
if (curLog.endStr) {
|
|
chatLog.getChildByName("str").getComponent(cc.Label).string = curLog.endStr
|
|
} else {
|
|
if (this.selectIndex == 1) {
|
|
chatLog.getChildByName("str").getComponent(cc.Label).string = curLog.str1
|
|
} else {
|
|
chatLog.getChildByName("str").getComponent(cc.Label).string = string_
|
|
}
|
|
}
|
|
//this.showDialogStr(string_, chatLog.getChildByName("str"))
|
|
chatLog.stopAllActions()
|
|
cc.tween(chatLog)
|
|
.delay(delayTime_)
|
|
.call(() => {
|
|
chatLog.active = false;
|
|
})
|
|
.start();
|
|
}
|
|
|
|
this.scheduleOnce(() => {
|
|
func && func();
|
|
}, delayTime_ + 0.2);
|
|
}
|
|
|
|
// 逐字显示
|
|
showDialogStr(str, dialogStr, finishFunc?) {
|
|
let curStr = ""
|
|
let curIndex = 0
|
|
let callFunc = () => {
|
|
curStr += str[curIndex++]
|
|
dialogStr.getComponent(cc.Label).string = curStr
|
|
if (curIndex >= str.length) {
|
|
finishFunc && finishFunc()
|
|
}
|
|
}
|
|
this.schedule(callFunc, 0.05, str.length - 1);
|
|
}
|
|
|
|
// 展示点击说话
|
|
showClickDialog(curLog, func?, aniFunc?) {
|
|
let text = curLog.str;
|
|
if (text.length > 7) {
|
|
text = curLog.str.slice(0, 6) + '...';
|
|
}
|
|
let dialog = this.node.getChildByName('对话框');
|
|
dialog.getChildByName('lab').getComponent(cc.Label).string = text;
|
|
dialog.active = true;
|
|
this["_clickDialog"] = curLog;
|
|
this["_clickDialogCallback"] = func;
|
|
this["_clickDialogAniCallback"] = aniFunc;
|
|
|
|
this.duihuakuang1 = dialog
|
|
|
|
if (curLog.str1) {
|
|
let text = curLog.str1;
|
|
if (text.length > 7) {
|
|
text = curLog.str1.slice(0, 6) + '...';
|
|
}
|
|
let node = cc.instantiate(dialog)
|
|
node.name = "第二个选择"
|
|
this.node.addChild(node)
|
|
let position = dialog.position.clone()
|
|
position.y += dialog.getContentSize().height
|
|
node.setPosition(position)
|
|
node.getChildByName('lab').getComponent(cc.Label).string = text;
|
|
|
|
this.duihuakuang2 = node
|
|
}
|
|
}
|
|
|
|
// 点击展示对话
|
|
onClickShowDialog(event) {
|
|
let target = event.target;
|
|
target.active = false;
|
|
if (this.duihuakuang1) {
|
|
this.duihuakuang1.active = false
|
|
}
|
|
if (this.duihuakuang2) {
|
|
this.duihuakuang2.active = false
|
|
}
|
|
|
|
if (target.name == "第二个选择") {
|
|
this.selectIndex = 1
|
|
} else {
|
|
this.selectIndex = 0
|
|
}
|
|
|
|
let clickDialog = this["_clickDialog"];
|
|
let clickDialogCallback = this["_clickDialogCallback"];
|
|
let clickDialogAniCallback = this["_clickDialogAniCallback"];
|
|
if (clickDialog) {
|
|
this.showQiPao(clickDialog, () => {
|
|
clickDialogCallback && clickDialogCallback();
|
|
}, clickDialogAniCallback);
|
|
}
|
|
}
|
|
}
|
|
|