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.
209 lines
6.3 KiB
209 lines
6.3 KiB
|
|
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<ITableStoryComic>(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<ITableStoryComic>(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<ITableNewFun>(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
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|