13297d9a-7696-4c46-96e0-0bbebf0919d2.js.map 26.7 KB
{"version":3,"sources":["assets/script/game/model/GameModelManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { Emitter, CompositeDisposable } from \"simba-eventkit\";\nimport { shallowEqual } from \"simba-utils\";\nimport { GameRecord } from \"../../avg/game-data/GameRecord\";\nimport { Language, ReadonlyPlot, ReadonlyPlots, SentenceType } from \"../../avg/model/PlotModel\";\nimport { PlotManager } from \"../../avg/PlotManager\";\nimport { GameConstData } from \"../../common/gameplay/gamedata/GameConstData\";\nimport { ConfigManager } from \"../../common/gameplay/managers/ConfigManager\";\nimport { ResUtils } from \"../../common/utils/ResUtils\";\nimport { bannerRewardsConfig } from \"../../config/BannerRewardsConfig\";\nimport { constConfig } from \"../../config/ConstConfig\";\nimport { itemConfig } from \"../../config/ItemConfig\";\nimport { IRole, role } from \"../../config/Role\";\nimport { PlotSceneType } from \"../Enums\";\nimport GameRoleDataModel from \"./GameRoleDataModel\";\nimport { MessageSceneModel } from \"./MessageSceneModel\";\nimport { EditorEvents } from \"../../avg/EditorEvents\";\nimport { achievementConfig } from \"../../config/AchievementConfig\";\nimport { dailyQuestConfig } from \"../../config/DailyQuestConfig\";\nimport { DatingEventSceneModel, DatingEventStatus } from \"./DatingEventSceneModel\";\nimport { dateSceneConfig } from \"../../config/DateSceneConfig\";\nimport { DateType } from \"../../avg/EditorEnums\";\nimport { FuncStateEnum, RedPotStateEnum } from \"../../common/gameplay/gamedata/GameEnumData\";\nimport { i18nConfig } from \"../../config/I18nConfig\";\n\nexport namespace GameModelManager {\n    let emitter = new Emitter;\n\n    export const MessageSceneChanged = emitter.createEvent<(scenes: MessageSceneModel[]) => void>();\n    export const RedPotReduction = emitter.createEvent<(key: string) => void>();       //红点还原\n    export const MainDatingEventChanged = emitter.createEvent<(scenes: DatingEventSceneModel[]) => void>();\n    /**报幕数据准备就绪事件 */\n    export const ForceClickDataReady = emitter.createEvent<() => void>();\n\n    let messageScenes: MessageSceneModel[] | undefined;\n    let mainDatingScenes: DatingEventSceneModel[] | undefined;\n    let currPlots: ReadonlyPlot[] | undefined;\n    let phoneCallIndex: number = -1;\n\n    let unlockGift = false;\n\n    export function isGiftUnlock() { return unlockGift; }\n\n    export async function rollbackPhoneCallIfNeeded() {\n        // if (phoneCallIndex < 0) {\n        //     console.error(\"Error: no phone call.\");\n        // }\n        if (phoneCallIndex >= 0 && phoneCallIndex < GameRecord.getCurrentRecordItems().length - 1) {\n            let ret = await PlotManager.rollbackToIndex(phoneCallIndex);\n            savePhoneCall();\n            return ret;\n        } else {\n            return PlotManager.getCurrentPlots();\n        }\n    }\n\n    //#region  //数据模块 \n    let roleDatasMap: Map<number, GameRoleDataModel> = new Map<number, GameRoleDataModel>();\n    let languagesMap: Map<number, string> = new Map<number, string>();       //语言\n    //#endregion\n\n    export function getCurrentChapterId() {\n        return currPlots![0].chapterId;\n    }\n\n    export function getMessageScenesModel() {\n        return messageScenes!;\n    }\n\n    export function getMessageSceneModel(id: number) {\n        return messageScenes!.find(v => v.id === id);\n    }\n    export function getMainDatingEventScenesModel() {\n        return mainDatingScenes!;\n    }\n\n    export function getMainDatingEventSceneModel(id: number) {\n        return mainDatingScenes!.find(v => v.id === id);\n    }\n\n\n    async function initConfigData() {\n        await ConfigManager.initConfigData();\n        initLanguageConfig();\n        initRoleConfig();\n    }\n\n    function initRoleConfig() {\n        let cfg = ConfigManager.getAllConfig(role);\n        for (let id in cfg) {\n            let element = cfg[id] as IRole;\n            if (element) {\n                let data = new GameRoleDataModel();\n                data.setConfig(element);\n                roleDatasMap.set(element.id, data);\n            }\n        }\n    }\n\n    function getLanguagePath() {\n        return \"userdata/language/chinese\"\n    }\n    async function initLanguageConfig() {\n        let cfgFile = await ResUtils.loadRes<any>(getLanguagePath(), cc.JsonAsset);\n        if (cfgFile) {\n            let lans: Language[] = cfgFile as Language[];\n            for (let i = 0; i < lans.length; ++i) {\n                let element = lans[i] as Language;\n                if (element) {\n                    languagesMap.set(element.id, element.value);\n                }\n            }\n        }\n    }\n\n    export function getLanguageTxt(id: number): string {\n        if (languagesMap.has(id)) {\n            return languagesMap.get(id) as string;\n        } else {\n            console.log(\"current language id is miss \" + id);\n            return \"\";\n        }\n    }\n\n    export function getConfigLanguageTxt(id: number): string {\n        return ConfigManager.getConfig(i18nConfig, id).cn;\n    }\n\n    export function getConstConfig(id: number) {\n        return ConfigManager.getConfig(constConfig, id);\n    }\n\n    export function getItemConfig(id: number) {\n        return ConfigManager.getConfig(itemConfig, id);\n    }\n\n    export function getItemConfigs() {\n        return ConfigManager.getAllConfig(itemConfig);\n    }\n\n    export function getBannerRewardsConfigs() {\n        return ConfigManager.getAllConfig(bannerRewardsConfig)\n    }\n\n    export function getBannerRewardsConfig(id: number) {\n        return ConfigManager.getConfig(bannerRewardsConfig, id);\n    }\n\n    export function getDailyQuestConfigs() {\n        return ConfigManager.getAllConfig(dailyQuestConfig)\n    }\n\n    export function getDailyQuestConfig(id: number) {\n        return ConfigManager.getConfig(dailyQuestConfig, id);\n    }\n\n    export function getAchievementConfigs() {\n        return ConfigManager.getAllConfig(achievementConfig)\n    }\n\n    export function getAchievementConfig(id: number) {\n        return ConfigManager.getConfig(achievementConfig, id);\n    }\n\n    export function getRoleData(id: number) {\n        return roleDatasMap.get(id);\n    }\n\n    export function getPlayerData() {\n        return GameModelManager.getRoleData(GameConstData.GAME_CONST_PLAYER_ROLE_VALUE)!;\n    }\n\n    let disposable: CompositeDisposable;\n\n    export async function init() {\n        disposable = new CompositeDisposable;\n        await initConfigData();\n        phoneCallIndex = GameRecord.recordVariables[\"gm.pci\"] as number;\n        unlockGift = !!GameRecord.recordVariables[\"gm.unlockGift\"];\n        if (phoneCallIndex === undefined) phoneCallIndex = -1;\n        let initRet: Promise<any>[] = [];\n        { // init message models\n            let ids = GameRecord.recordVariables[\"gm.ms\"] as any;\n            if (ids !== undefined) {\n                messageScenes = ids.map((id: number) => new MessageSceneModel(id));\n                initRet.push(...messageScenes!.map((s) => s.initFromRecords()));\n            }\n        }\n        { // init main dating models\n            let ids = GameRecord.recordVariables[\"gm.md\"] as any;\n            if (ids !== undefined) {\n                mainDatingScenes = ids.map((id: number) => new DatingEventSceneModel(id));\n                initRet.push(...mainDatingScenes!.map((s) => s.initFromRecords()));\n            }\n        }\n\n        if (initRet.length) {\n            await Promise.all(initRet);\n        }\n\n        disposable.add(PlotManager.PlotWillStart.on(handlePlotWillStart));\n        disposable.add(PlotManager.PlotsRollbackEvent.on(handlePlotsRollback));\n        disposable.add(EditorEvents.UNLOCK_GIFT.on(() => {\n            unlockGift = true;\n            GameRecord.recordVariables[\"gm.unlockGift\"] = 1;\n        }));\n        initPlots();\n\n        for (let scene of mainDatingScenes!) { // 检查主线剧情状态\n            if (currPlots![0].plotSceneType !== PlotSceneType.DatingEvent ||\n                (scene.id !== currPlots![0].plotSceneTypeId && scene.status !== DatingEventStatus.Completed)) {\n                scene.status = DatingEventStatus.Completed;\n            }\n        }\n    }\n\n    function save() {\n        let oldValue = GameRecord.recordVariables[\"gm.ms\"];\n        let newValue = messageScenes!.map(v => v.id) as any;\n        if (!shallowEqual(oldValue, newValue)) {\n            GameRecord.recordVariables[\"gm.ms\"] = newValue;\n        }\n        oldValue = GameRecord.recordVariables[\"gm.md\"];\n        newValue = mainDatingScenes!.map(v => v.id) as any;\n        if (!shallowEqual(oldValue, newValue)) {\n            GameRecord.recordVariables[\"gm.md\"] = newValue;\n        }\n    }\n\n    function savePhoneCall() {\n        GameRecord.recordVariables[\"gm.pci\"] = phoneCallIndex;\n        GameRecord.saveRecord();\n    }\n\n    async function initPlots() {\n        let plots = PlotManager.getCurrentPlots();\n        if (!currPlots) {\n            currPlots = [...plots];\n            if (!messageScenes) { // 第一次进游戏,根据剧情初始化数据\n                messageScenes = [];\n            }\n            if (!mainDatingScenes) {\n                mainDatingScenes = [];\n            }\n            for (let i = 0; i < plots.length; i++) {\n                let plot = plots[i];\n                if (plot.plotSceneType === PlotSceneType.Message) {\n                    let index = messageScenes.findIndex(v => v.id === plot.plotSceneTypeId);\n                    if (index < 0) {\n                        index = 0;\n                        let model = new MessageSceneModel(plot.plotSceneTypeId);\n                        model.firstPlot = plot;\n                        messageScenes.unshift(model);\n                    }\n                    // if (plot.sentences[0].content && plot.sentences[0].content.type !== SentenceType.SELECT) {\n                    // messageScenes[index].lastPlot = plot;\n                    // }\n                }  else if (plot.plotSceneType === PlotSceneType.DatingEvent) {\n                    let cfg = ConfigManager.getConfig(dateSceneConfig, plot.plotSceneTypeId);\n                    if (cfg.DateType === DateType.Date_Normal) { // 主线约会剧情\n                        if (plots[0] !== plot) { console.error(\"主线约会剧情应在主线开启\"); continue; }\n                        if (mainDatingScenes.findIndex(v => v.id === plot.plotSceneTypeId) < 0) {\n                            let model = new DatingEventSceneModel(plot.plotSceneTypeId);\n                            model.firstPlot = plot;\n                            model.status = DatingEventStatus.New;\n                            mainDatingScenes.push(model);\n                        }\n                    }\n                }\n            }\n            save();\n        }\n    }\n\n    async function handlePlotWillStart(plot: ReadonlyPlot, branch: number) {\n        handleNewPlot(currPlots![branch], plot, branch);\n        currPlots![branch] = plot;\n        // for (let i = 0; i < plots.length; i++) {\n        //     if (!currPlots![i] || (currPlots![i].id !== plots[i].id)) {\n        //         handleNewPlot(currPlots![i], plots[i], i);\n        //         currPlots![i] = plots[i];\n        //     }\n        // }\n    }\n\n    async function handlePlotsRollback(plots: ReadonlyPlots) {\n        messageScenes = undefined;\n        currPlots = undefined;\n        disposable.dispose();\n        await init();\n        GameRecord.startTransaction();\n        GameRecord.endTransaction(true);\n    }\n\n    async function handleNewPlot(prevPlot: ReadonlyPlot | undefined, plot: ReadonlyPlot, branch: number) {\n        if (plot.plotSceneType === PlotSceneType.Message) {\n            let idx = messageScenes!.findIndex(v => v.id === plot.plotSceneTypeId);\n            if (idx >= 0) { // 原会话中有新消息\n                let model = messageScenes![idx];\n                if (idx > 0) {\n                    for (let i = idx; i > 0; i--) {\n                        messageScenes![i] = messageScenes![i - 1];\n                    }\n                    messageScenes![0] = model;\n                }\n                if (plot.sentences[0].content && plot.sentences[0].content.type !== SentenceType.SELECT) {\n                    // model.lastPlot = plot;\n                }\n            } else { // 新会话\n                let model = new MessageSceneModel(plot.plotSceneTypeId);\n                model.firstPlot = plot;\n                if (plot.sentences[0].content && plot.sentences[0].content.type !== SentenceType.SELECT) {\n                    // model.lastPlot = plot;\n                }\n                messageScenes!.unshift(model);\n            }\n            MessageSceneChanged.emit(messageScenes!);\n            save();\n        } else if (plot.plotSceneType === PlotSceneType.PhoneCall) {\n            if (!prevPlot || prevPlot.plotSceneType !== PlotSceneType.PhoneCall) {\n                phoneCallIndex = GameRecord.getCurrentRecordItems().length; // 当前存档还没生成,不需要减1\n                savePhoneCall();\n            }\n        } else if (plot.plotSceneType === PlotSceneType.DatingEvent) {\n            let cfg = ConfigManager.getConfig(dateSceneConfig, plot.plotSceneTypeId);\n            if (cfg.DateType === DateType.Date_Normal) { // 主线约会剧情\n                if (branch !== 0) { console.error(\"主线约会剧情应在主线开启\"); return; }\n                let idx = mainDatingScenes!.findIndex(v => v.id === plot.plotSceneTypeId);\n                if (idx < 0) { // 新开启\n                    let model = new DatingEventSceneModel(plot.plotSceneTypeId);\n                    model.firstPlot = plot;\n                    model.status = DatingEventStatus.New;\n                    mainDatingScenes!.push(model);\n                    MainDatingEventChanged.emit(mainDatingScenes!);\n                }\n                save();\n            }\n        }\n\n        if (prevPlot && prevPlot.plotSceneType === PlotSceneType.PhoneCall && plot.plotSceneType !== PlotSceneType.PhoneCall) {\n            phoneCallIndex = -1;\n            savePhoneCall();\n        }\n\n        if (prevPlot && (prevPlot.plotSceneType !== plot.plotSceneType || prevPlot.plotSceneTypeId !== plot.plotSceneTypeId)) { // 切换场景\n            if (prevPlot.plotSceneType === PlotSceneType.Message) { // 最后一个是选项的情况下,此时已做选择,记录最后一条剧情\n                // let model = messageScenes!.find(v => v.id === prevPlot.plotSceneTypeId);\n                // model!.lastPlot = prevPlot;\n            }\n            if (prevPlot.plotSceneType === PlotSceneType.DatingEvent) {\n                let model = mainDatingScenes!.find(v => v.id === prevPlot.plotSceneTypeId);\n                if (model) model.status = DatingEventStatus.Completed;\n            }\n        }\n    }\n\n    export function checkFuncUnloced(key: string) {\n        return GameRecord.recordVariables[key] === FuncStateEnum.locked ? false : true;\n    }\n\n    export function checkRedPot(key: string) {\n        return GameRecord.globalVariables[\"red_pot_\" + key] === RedPotStateEnum.Show;\n    }\n\n    export function setRedPotState(key: string, state: RedPotStateEnum) {\n        GameRecord.globalVariables[\"red_pot_\" + key] = state;\n        GameRecord.autoSave();\n    }\n}"]}