import { Singleton } from "../../mx/tools/Singleton"; import { UIID } from "../game/ConfigRes"; import { TableNames } from "../game/ConfigTableData"; import { OtherDataType } from "../game/GameData"; import { NewFunType } from "../newFun/NewFun"; export enum StoryTypeGroup { chushiComic = 1, d1End = 2, d2End = 3, d3EndComic = 4, d4End = 5, d5End = 6, d5EndComic = 7, d6End = 8, d9End = 9, d10End = 10, d12End = 11, d14End = 12, d18End = 13, d19End = 14, d20End = 15, } export enum GuideType { /**开始引导*/ guide1 = 1, /**武器引导*/ guide2 = 2, /**角色引导*/ guide3 = 3, /**强引导点击进入丧尸农场*/ guide4 = 4, /**引导解锁困难模式*/ guide5 = 5, /**引导抽宠物*/ guide6 = 6, } export class storyManager extends Singleton { //开启剧情 isCanOpen(storyId) { let chapter = gg.data.doc.chapter; let bijiaoChapter = 0; if (storyId == StoryTypeGroup.chushiComic) { //初始剧情 if (gg.data.IsFirstLogin) { return true } else { return false } } else if (storyId == StoryTypeGroup.d1End) { bijiaoChapter = 2; } else if (storyId == StoryTypeGroup.d2End) { bijiaoChapter = 3; } else if (storyId == StoryTypeGroup.d3EndComic) { bijiaoChapter = 4; } else if (storyId == StoryTypeGroup.d4End) { bijiaoChapter = 5; } else if (storyId == StoryTypeGroup.d5End) { bijiaoChapter = 6; } else if (storyId == StoryTypeGroup.d5EndComic) { bijiaoChapter = 6; } else if (storyId == StoryTypeGroup.d6End) { bijiaoChapter = 7; } else if (storyId == StoryTypeGroup.d9End) { bijiaoChapter = 10; } else if (storyId == StoryTypeGroup.d10End) { bijiaoChapter = 11; } else if (storyId == StoryTypeGroup.d12End) { bijiaoChapter = 13 } else if (storyId == StoryTypeGroup.d14End) { bijiaoChapter = 15; } else if (storyId == StoryTypeGroup.d18End) { bijiaoChapter = 19 } else if (storyId == StoryTypeGroup.d19End) { bijiaoChapter = 20 } else if (storyId == StoryTypeGroup.d20End) { bijiaoChapter = 21 } if (chapter == bijiaoChapter) { return true } else { return false } } //storyGuide storyGuide(storyId) { //打开剧情 gg.game.guideStoryId = storyId let list = gg.storyManager.getStoryComicData(storyId); let isCanOpen = gg.storyManager.isCanOpen(storyId); console.log("storyGuide == storyId == ", storyId); console.log("storyGuide == isCanOpen == ", isCanOpen); console.log("storyGuide == list == ", list); if (list && isCanOpen) { let isComic = gg.storyManager.isComic(storyId); if (isComic) { gg.ui.popPanel(UIID.storyComic); } else { gg.ui.popPanel(UIID.storyDialog); } } } //强制引导 storyForceGuide(storyId) { // gg.game.guideStoryId = storyId // let storyComicDataList = gg.data.table.getTableList(TableNames.StoryComic).filter(x => x.type == storyId); // if(storyComicDataList && storyComicDataList.length > 0){ // let prefab = storyComicDataList[0].prefab; // if(prefab){ // gg.ui.popPanel(UIID.storyComic); // }else{ // gg.ui.popPanel(UIID.storyDialog); // } // } } //是漫画还是对话 isComic(storyId: number) { let storyComicDataList = this.getStoryComicData(storyId); if (storyComicDataList && storyComicDataList.length > 0) { let prefab = storyComicDataList[0].prefab; if (prefab) { console.log("isComic == 是漫画"); return true } } console.log("isComic == 不是漫画"); return false; } //获取当前剧情配置 getStoryComicData(storyId: number) { let isFirst = this.isFirstStory(storyId) console.log("isFirstStory == storyId == ", storyId); return null // if (isFirst) { // //获取所有x.id == storyId的配置 // let storyComicDataList = gg.data.table.getTableList(TableNames.StoryComic).filter(x => x.type == storyId); // console.log("isFirstStory == 第一次", storyComicDataList); // return storyComicDataList; // } else { // return null; // } } /*判断这个剧情是不是第一次*/ isFirstStory(storyId: number) { let isFirst = gg.data.getkeyKeyValue(OtherDataType.CompletedStory, storyId); console.log("isFirstStory == 空字符串", storyId, isFirst == ''); if (!isFirst) { return true } else { return false } } //本地保存剧情是否播放过 saveStoryPlayed(storyId: number) { //setkeyKeyValue gg.data.setkeyKeyValue(OtherDataType.CompletedStory, storyId, 1); } /**是否有剧情解锁 */ isUnLockMode() { //找到type为story的配置 let arrs = gg.data.table.getTableList(TableNames.NewFun).filter(x => x.type == NewFunType.Story); //找到chapter小于等于当前章节的配置 let findFunId = -1 for (let i = 0; i < arrs.length; i++) { let newFunData = arrs[i]; let funID = newFunData.funId; if (newFunData.chapter == gg.data.doc.chapter) { console.log("isUnLockMode == chapter == ", funID); let list = gg.storyManager.getStoryComicData(funID); let isCanOpen = gg.storyManager.isCanOpen(funID); console.log("isUnLockMode == isCanOpen == ", isCanOpen); console.log("isUnLockMode == list == ", list); if (isCanOpen && list) { findFunId = funID return findFunId } } } return findFunId } }