33ed0c78-fc44-4d1a-9394-d76772b8c58f.js.map 17.6 KB
{"version":3,"sources":["assets/script/game/model/UnlockSpecialPlotModelManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { ConfigManager } from \"simba-config-manager\";\nimport { TimeManager } from \"simba-sdk\";\nimport { DeepReadonlyObject } from \"simba-utils\";\nimport { GameRecord, PlotManager } from \"../../avg/AVG\";\nimport { IStoryTbl, storyTbl } from \"../../config/StoryTbl\";\nimport { UnlockItemModelManager } from \"./UnlockItemModelManager\";\n\nclass UnlockSpecialPlotModelManager1 {\n    /**存档Key */\n    private UnlockedSpecialPlots = 'UnlockedSpecialPlots_';\n    /**存档Key */\n    private ClickedSpecialPlotsByItem = 'ClickedSpecialPlots_';\n    /**存档Key */\n    private FirstDayTime = \"FirstDayTime\"\n    /**配置解锁番外剧情的剧情id和番外剧情id的映射表 */\n    private _unlockPlotIds: Array<{ specialPlotId: number, plotId: number, itemId: number }> = [];\n\n    /**\n     * 检查一个番外剧情是否解锁\n     * @param specialPlotId 番外剧情Id\n     * @returns \n     */\n    public checkSpecialPlotIdIsUnlocked(specialPlotId: number): boolean {\n        let unlockedAllSpecialPlotId = this.unlockedAllSpecialPlotId();\n        for (let i = 0; i < unlockedAllSpecialPlotId.length; i++) {\n            if (specialPlotId == unlockedAllSpecialPlotId[i]) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * 根据ItemId获取该Id解锁了的番外Id\n     * @param itemId \n     * @returns \n     */\n    public unlockedSpecialPlotIdByItemId(itemId: number): Array<number> {\n        let unlockedSpecialPlots: Array<number> = [];\n        let unlockedSpecialPlotsStrs = GameRecord.globalVariables[this.UnlockedSpecialPlots + itemId];\n        if (unlockedSpecialPlotsStrs) {\n            let itemsIdStr: Array<string> = unlockedSpecialPlotsStrs.split(',');\n            itemsIdStr.forEach(id => {\n                try {\n                    unlockedSpecialPlots.push(Number(id));\n                } catch (error) {\n                    console.error(error);\n                }\n            });\n        }\n        unlockedSpecialPlots.sort((a, b) => {\n            if (a < b) {\n                return -1;\n            } else if (a > b) {\n                return 1;\n            }\n            return 0;\n        });\n        return unlockedSpecialPlots;\n    }\n\n    /**\n     * 根据ItemId保存解锁了的番外Id到存档\n     * @param specialPlotId 番外Id\n     */\n    saveUnlockedSpecialPlotIdByItemIdToGameRecord(specialPlotId: number): boolean {\n        let cfg: DeepReadonlyObject<IStoryTbl> | undefined = undefined;\n        cfg = ConfigManager.getConfig(storyTbl, specialPlotId);\n        let itemId: number = -1;\n        if (cfg) {\n            itemId = cfg.itemId;\n        }\n        let unlockedSpecialPlotsStrs = GameRecord.globalVariables[this.UnlockedSpecialPlots + itemId];\n        let plots: Array<number> = [];\n        if (unlockedSpecialPlotsStrs) {\n            let unlockedSpecialPlotsStr: Array<string> = unlockedSpecialPlotsStrs.split(',');\n            unlockedSpecialPlotsStr.forEach(id => {\n                try {\n                    plots.push(Number(id));\n                    plots.sort((a, b) => {\n                        if (a < b) {\n                            return -1;\n                        } else if (a > b) {\n                            return 1;\n                        }\n                        return 0;\n                    });\n                } catch (error) {\n                    console.error(error);\n                }\n            });\n        }\n        if (plots.indexOf(specialPlotId) == -1) {\n            plots.push(specialPlotId);\n            plots.sort((a, b) => {\n                if (a < b) {\n                    return -1;\n                } else if (a > b) {\n                    return 1;\n                }\n                return 0;\n            });\n            GameRecord.globalVariables[this.UnlockedSpecialPlots + itemId] = plots.toString();\n            GameRecord.saveRecord();\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * 根据ItemId获取该Id观看了的番外Id\n     * @param itemId \n     * @returns \n     */\n    public clickedSpecialPlotIdByItemId(itemId: number): Array<number> {\n        let clickedSpecialPlots: Array<number> = [];\n        let clickedSpecialPlotsStrs = GameRecord.globalVariables[this.ClickedSpecialPlotsByItem + itemId];\n        if (clickedSpecialPlotsStrs) {\n            let itemsIdStr: Array<string> = clickedSpecialPlotsStrs.split(',');\n            itemsIdStr.forEach(id => {\n                try {\n                    clickedSpecialPlots.push(Number(id));\n                } catch (error) {\n                    console.error(error);\n                }\n            });\n        }\n        return clickedSpecialPlots;\n    }\n\n    /**\n     * 根据ItemId保存观看了的番外Id到存档\n     * @param specialPlotId 番外Id\n     */\n    saveClickedSpecialPlotIdByItemIdToGameRecord(specialPlotId: number): boolean {\n        let cfg: DeepReadonlyObject<IStoryTbl> | undefined = undefined;\n        cfg = ConfigManager.getConfig(storyTbl, specialPlotId);\n        let itemId: number = -1;\n        if (cfg) {\n            itemId = cfg.itemId;\n        }\n        let clickedSpecialPlotsStrs = GameRecord.globalVariables[this.ClickedSpecialPlotsByItem + itemId];\n        let plots: Array<number> = [];\n        if (clickedSpecialPlotsStrs) {\n            let unlockedSpecialPlotsStr: Array<string> = clickedSpecialPlotsStrs.split(',');\n            unlockedSpecialPlotsStr.forEach(id => {\n                try {\n                    plots.push(Number(id));\n                } catch (error) {\n                    console.error(error);\n                }\n            });\n        }\n        if (plots.indexOf(specialPlotId) == -1) {\n            plots.push(specialPlotId);\n            GameRecord.globalVariables[this.ClickedSpecialPlotsByItem + itemId] = plots.toString();\n            GameRecord.saveRecord();\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * 根据ItemId获取该Id的所有番外Id(不论是否解锁)\n     * @param itemId \n     * @returns \n     */\n    public allSpecialPlotIdByItemId(itemId: number): Array<number> {\n        let allSpecialPlots: Array<number> = [];\n        let cfg = ConfigManager.getAllConfig(storyTbl);\n        if (cfg) {\n            let ret: { specialPlotId: number, itemId: number }[] = [];\n            for (let id in cfg) {\n                ret.push({ specialPlotId: Number(id), itemId: cfg[id].itemId });\n            }\n            for (let i = 0; i < ret.length; i++) {\n                if (itemId == ret[i].itemId) {\n                    allSpecialPlots.push(ret[i].specialPlotId);\n                }\n            }\n        }\n        return allSpecialPlots;\n    }\n\n    /**\n    * 获取所有解锁了的番外Id\n    * @returns \n    */\n    public unlockedAllSpecialPlotId(): Array<number> {\n        let unlockedAllSpecialPlotId: Array<number> = [];\n        let unlockedItemId: Array<number> = UnlockItemModelManager.unlockItems;\n        for (let i = 0; i < unlockedItemId.length; i++) {\n            let unlockedSpecialPlotId = GameRecord.globalVariables[this.UnlockedSpecialPlots + unlockedItemId[i]];\n            if (unlockedSpecialPlotId) {\n                let clickedSpecialPlotIdStr: Array<string> = unlockedSpecialPlotId.split(',');\n                clickedSpecialPlotIdStr.forEach(id => {\n                    try {\n                        unlockedAllSpecialPlotId.push(Number(id));\n                    } catch (error) {\n                        console.error(error);\n                    }\n                });\n            }\n        }\n        return unlockedAllSpecialPlotId;\n    }\n\n    getFirstDayTime(): number {\n        let firstDayTime = GameRecord.globalVariables[this.FirstDayTime];\n        return firstDayTime;\n    }\n\n    saveFirstDayTime(): boolean {\n        let firstDayTime = GameRecord.globalVariables[this.FirstDayTime];\n        if (firstDayTime) {\n            return false;\n        } else {\n            GameRecord.globalVariables[this.FirstDayTime] = TimeManager.getTime();\n            GameRecord.saveRecord();\n            return true;\n        }\n    }\n\n    /**\n     * 登录初始化已经解锁的番外\n     */\n    loginInitUnlockSpecialPlots() {\n        //当前剧情应该解锁的所有物品\n        let specialPlotcfg: { specialPlotId: number, plotId: number, itemId: number }[] = this.unlockPlotIds;\n        //获取当前的剧情id\n        let record = GameRecord.getPlotsInfo();\n        for (let i = 0; i < specialPlotcfg.length; i++) {\n            let ele = specialPlotcfg[i];\n            if (ele) {\n                if (record[`${ele.plotId}`] && record[`${ele.plotId}`].cnt >= 1) {\n                    let unlockedSpecialPlotsStrs = GameRecord.globalVariables[this.UnlockedSpecialPlots + ele.itemId];\n                    let plots: Array<number> = [];\n                    if (unlockedSpecialPlotsStrs) {\n                        let unlockedSpecialPlotsStr: Array<string> = unlockedSpecialPlotsStrs.split(',');\n                        unlockedSpecialPlotsStr.forEach(id => {\n                            try {\n                                plots.push(Number(id));\n                            } catch (error) {\n                                console.error(error);\n                            }\n                        });\n                    }\n                    if (plots.indexOf(ele.specialPlotId) == -1) {\n                        plots.push(ele.specialPlotId);\n                    }\n                    GameRecord.globalVariables[this.UnlockedSpecialPlots + ele.itemId] = plots.toString();\n                    // GameRecord.autoSave();\n                }\n            }\n        }\n    }\n\n    public get unlockPlotIds(): Array<{ specialPlotId: number, plotId: number, itemId: number }> {\n        if (this._unlockPlotIds.length == 0) this.analysisSpecialPlotCfg();\n        return this._unlockPlotIds\n    }\n\n    /**\n     * 解析story表结果\n     */\n    analysisSpecialPlotCfg() {\n        let ret: { specialPlotId: number, plotId: number, itemId: number }[] = [];\n        let cfg = ConfigManager.getAllConfig(storyTbl);\n        for (let id in cfg) {\n            ret.push({ specialPlotId: Number(id), plotId: cfg[id].plotId, itemId: cfg[id].itemId });\n        }\n        this._unlockPlotIds = ret;\n    }\n}\n\nexport let UnlockSpecialPlotModelManager = new UnlockSpecialPlotModelManager1();"]}