52f06191-b63c-4fbb-9df6-1c1bbda46344.js.map 15.3 KB
{"version":3,"sources":["assets/script/game/ui/presenter/DatingScenePresenter.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { Presenter } from \"../../../common/classbase/PresenterBase\";\nimport { DatingEventSceneModel, DatingEventStatus } from \"../../model/DatingEventSceneModel\";\nimport { DatingSceneView, DatingSceneViewType } from \"../view/type/DatingSceneView\";\nimport { RegPresenter } from \"../PresenterCCViewFactory\";\nimport { DeepReadonly, delay } from \"simba-utils\";\nimport { SentenceType, Plot } from \"../../../avg/model/PlotModel\";\nimport { PlotManager } from \"../../../avg/PlotManager\";\nimport { Action, ActionType } from \"../../../avg/model/ActionModel\";\nimport { getPlot } from \"../../../avg/game-data/PlotsData\";\nimport { PlotSceneType } from \"../../Enums\";\nimport { ActionManager } from \"../../../avg/ActionManager\";\nimport { GameConstData } from \"../../../common/gameplay/gamedata/GameConstData\";\nimport { richNodesToCocosString } from \"../../../avg/utils/RichTextUtils\";\nimport { UIManager } from \"../../../common/gameplay/managers/UIManager\";\nimport SentenceSelectorViewPresenter from \"./SentenceSelectorViewPresenter\";\nimport { SentenceSelectorViewProps } from \"../view/type/SentenceSelectorView\";\nimport { FaceType } from \"../../../avg/EditorEnums\";\nimport { GameModelManager } from \"../../model/GameModelManager\";\nimport { GameRecord } from \"../../../avg/game-data/GameRecord\";\nimport { EditorEvents } from \"../../../avg/EditorEvents\";\nimport { AudioManager } from \"../../../common/gameplay/managers/AudioManager\";\nimport GameRoleDataModel from \"../../model/GameRoleDataModel\";\n\ntype DatingPlot = DeepReadonly<Plot & { face: FaceType, portrait?: number, portraitFace?: FaceType }>\n@RegPresenter(DatingSceneViewType)\nexport class DatingScenePresenter extends Presenter<DatingEventSceneModel, DatingSceneView> {\n    static uuid = \"DatingScenePresenter\";\n    private _currPlot?: DatingPlot;\n    private _executingPlot = false;\n    private _completingPlot = false;\n    private _isReview = false;\n    private _model: DatingEventSceneModel;\n    // private _actionFilter?: (action: DeepReadonly<Action>) => boolean;\n    private _plotBranch = 0;\n    private _currSelect?: number = undefined;\n    private _finished = false;\n\n    onOpen(param: DatingEventSceneModel) {\n        super.onOpen(param);\n        this._finished = false;\n        this.view.completePlotCallback = this.completePlot;\n        this._model = param;\n        delay(0.1).then(async () => {\n            if (param.status === DatingEventStatus.Completed) {\n                this._isReview = true;\n                // this._actionFilter = (action) => {\n                //     return action.type !== ActionType.ModifyVariable;\n                // }\n                this._model.background = \"\";\n                this._currPlot = await getPlot(param.config.start_plot_id)! as DatingPlot;\n\n            } else {\n                let plots = PlotManager.getCurrentPlots();\n                this._plotBranch = plots.findIndex(v => v.plotSceneType === PlotSceneType.DatingEvent && v.plotSceneTypeId === param.id);\n                this._currPlot = plots[this._plotBranch] as DatingPlot;\n                if (this._currPlot.id === this._model.firstPlot.id) {\n                    GameRecord.recordVariables.bgm = \"\"; // 新约会,不继承之前剧情的背景音乐存档\n                    this._model.background = \"\";\n                }\n                this._currSelect = PlotManager.getPlotSelection(this._currPlot.id);\n                if (GameRecord.recordVariables.bgm) {\n                    AudioManager.playMusic(GameRecord.recordVariables.bgm);\n                }\n            }\n            if (this._model.background) {\n                await this.view.setBackground(\"textures/background/dating_event/\" + this._model.background);\n            }\n            this.execPlot();\n        });\n\n        this._disposable.add(EditorEvents.SET_DATING_BG.on((bgPath) => {\n            this._model.background = bgPath;\n            if (bgPath) bgPath = \"textures/background/dating_event/\" + bgPath;\n            return this.view.setBackground(bgPath);\n        }));\n    }\n\n    onClose() {\n        UIManager.popToPresenter(this);\n    }\n\n    async execPlot() {\n        if (this._currPlot) {\n            if (this._currPlot.plotSceneType === PlotSceneType.DatingEvent && this._currPlot.plotSceneTypeId === this._model.id) {\n                this._executingPlot = true;\n                const sentence = this._currPlot.sentences[0];\n                const content = sentence.content;\n                const roleData = GameModelManager.getRoleData(sentence.roleId)!;\n                let otherPortrait: string | undefined = undefined;\n                if (this._currPlot.portrait !== undefined) {\n                    let otherRole = GameModelManager.getRoleData(this._currPlot.portrait);\n                    if (otherRole) {\n                        otherPortrait = otherRole.getPortrait(this._currPlot.portraitFace);\n                    }\n                }\n                if (content) { // TODO 图片设置\n                    if (content.type === SentenceType.TEXT) {\n                        await this.view.setContent(sentence.roleId === GameConstData.GAME_CONST_PLAYER_ROLE_VALUE,\n                            richNodesToCocosString(content.value),\n                            sentence.roleId === 1 ? undefined : roleData.getConfig().name,\n                            sentence.roleId === 1 ? otherPortrait : roleData.getPortrait(this._currPlot.face,),\n                            otherPortrait);\n                    } else if (content.type === SentenceType.SELECT) {\n                        let setSelection = async () => {\n                            let value = content.value[this._currSelect!];\n                            let str = value.summary;\n                            if (value.content && value.content.type === SentenceType.EMPTY) { // 空类型,不做展示\n                                this.completePlot();\n                                return;\n                            } else if (value.content && value.content.type === SentenceType.TEXT) {\n                                str = richNodesToCocosString(value.content.value);\n                            }\n                            await this.view.setContent(true, str, roleData.getConfig().name, roleData.getPortrait(this._currPlot!.face), otherPortrait);\n                        }\n                        if (this._currSelect === undefined) {\n                            let props: SentenceSelectorViewProps =\n                            {\n                                sentence: content,\n                                backgroundpath: \"\",\n                                clickcausehide: false,\n                                optionStyle1: true,\n                                y: -250,\n                                onSelectIndexCallback: (index: number) => { this._currSelect = index; setSelection(); }\n                            };\n                            UIManager.pushPresenter(SentenceSelectorViewPresenter, props);\n                            await this.view.setContent(true, \"\", roleData.getConfig().name, roleData.getPortrait(this._currPlot!.face), otherPortrait);\n                        } else {\n                            await setSelection();\n                        }\n                    } else {\n                        console.error(\"不支持的约会剧情\", content);\n                    }\n                } else { // 没有句子,只设置其立绘、背景等\n                    await this.view.setContent(false, \"\", \"\", roleData.getPortrait(this._currPlot!.face), otherPortrait);\n                }\n                if (this._currPlot.sentences[0].actions.actions.length) {\n                    await ActionManager.executeActions(this._currPlot.sentences[0].actions, undefined, !this._isReview);\n                }\n                this._executingPlot = false;\n            } else {\n                // 本次约会剧情结束\n                this._model.status = DatingEventStatus.Completed;\n                this._finished = true;\n                UIManager.showToast(\"本次剧情结束\");\n                this.view.guideBack();\n            }\n        }\n    }\n\n    completePlot = async () => {\n        if (this._executingPlot || this._completingPlot || !this._currPlot || this._finished) return;\n        let content = this._currPlot.sentences[0].content;\n        if (content && content.type === SentenceType.SELECT && this._currSelect === undefined) return;\n        this._completingPlot = true;\n        if (this._isReview) {\n            let nextPlot = await PlotManager.getNextPlot(this._currPlot, this._currSelect);\n            if (nextPlot) {\n                this._currPlot = nextPlot as DatingPlot;\n            }\n        } else {\n            this._model.status = DatingEventStatus.InProgress;\n            let nextPlots = await PlotManager.completePlot(this._currPlot, this._currSelect);\n            this._currPlot = nextPlots[this._plotBranch] as DatingPlot;\n        }\n        this._currSelect = undefined;\n        this._completingPlot = false;\n        this.execPlot();\n    }\n}"]}