import User from "../../FrameWork/User/User";
import Common5 from "../../Platform/th/Common5";
import GameReport from "../../FrameWork/Report/ZyZyReport";
import { DateUtils } from "../../FrameWork/Util/DateUtils";
import CommonTextTips from "../SCommon/CommonTextTips";
import GameBase from "../SCommon/GameBase";
import MoneyFlyEffect from "../SCommon/MoneyFlyEffect";

export enum parentNodeType {
    baseLayer,
    prefabLayer,
    popLayer,
}
export enum GameType {
    GM,
    GetAward,
    CommonTextTips,//通用提示文字
    ShouLieChang,//狩猎场
    TaoFen,
    FanLaji,
    HJHA,//钓鱼
    JuQingDialog,//剧情对话
    JuQingDialog2,
    ChatList,//微信聊天列表
    ChatDialog,//微信聊天对话
    CeBianLan,
    Setting,
    BeiBao,
    TuFaShiJian,
    TaskInfoNode,
    GameGuide,
    GuideMskNode,
    CheckLayer,
    JiShiBen,
    GuPiao,
    HuXinGongYuan,//湖心公园
    HuXinGouMai,//湖心公园
    HuXinJianDing,//湖心公园
    JuQingTipView,
    KaiKuangMainView,//矿山
    KaiKuangFirstView,//矿山
    DingYue,
    BoxTanChuang,
    QinWangLing,//秦王陵
    HuangJinYuFu,//黄金渔夫
    BlackTransition,
    AddDesk,
    //新增
    MainHall,
    ChaoFanWang,
    ShiShenCiFu,
    OnLineGame,
    MultipleIncome,
    FangChanGame,
    SignDay,
    ChallengeChoose,
    ChallengeFail,
    ChallengeSuccess,
    ChallengeGame,
    MishuGame,
    MishuPeixun,
    ChaoFanDesk,
    ShiShenSC,
    PeopleLevelUp,
    Shipu,
    TanWei,
    MishuReward,
    lixianReward,
    PaiHangBang,
    BoxTipNode,
    CityPrefab,
    JuQingStart,
    JuQingRoom2,
    JuQingRoom3,
    JiuZhuLuoxiyan,
    XieZhuShouYeren,
    HuanZhuangBei,
    FeiQiJiDi1,
    FeiQiJiDi2,
    GaiZhaoRen,
    YanJiuSuo,
    WuXingYuanShi,
    MyRoom,
    ShenHunShouSun,
    HuiJiaChaKan,
    GuideMskNode2,
    JieSuoPro,
    AutoLevelUpTips,
    JuQingStart2,
    chatLongGe,


    //移过来的玩法
    ChaChang,//茶场
    ChaChangZhaoMu,//茶场招募
    ShiCaiHuiShou,//食材回收
    Paimaihang,//拍卖行
    XiuXianNongZhuang,
    BaiCaoJi,
    BaiCaoJiShuoMing,
    MeiNvZhaoMu,
    YiMaJiang,
    YiMaJiangXuanGuan,
    YiMaJiangResult,
    ChaoCai,
    ChaoCaiResult,
    TouZiXieYiShu,

    WZ_GameMain,
    WZ_ExitTip,

    WZ_firstLevelSelectView,
    WZ_GameFailTimeOutView,
    WZ_GameFailView,
    WZ_GameSuccessView,
    WZ_LevelUnlock,
    WZ_pageNew,
    WZ_TerrTip,
    WZ_tipPrefab,

    ChengJiu,
    ZiChan,
    ChuShiXieHui,

    FirstSelectScene_LeftBtnUI, //初始选择场景左按钮菜单
    FirstSelectScene_LevelView, //初始选择场景关卡界面
    FirstSelectScene_CloudAnimation,    //初始选择场景云动画
    FirstSelectScene_StartAnimation,    //初始选择场景开始动画

    GetDiaoLuo,//掉落获取
    ZhaoHuanTai,//召唤台
    blackGuoDu,

    DH_1,
    DH_2,
    DH_3,
    DH_4,
    DH_5,
    DH_6,
    DH_7,
    selectButton,
    selectButtons,
    DH_8,
    DH_9,
    DH_10,
    DH_11,
    DH_12,
    DH_13,
    DH_14,
    DH_15,
    DH_16,
    DH_17,
    DH_18,
    DH_19,
    DH_20,
    DH_21,
    DH_22,
    DH_23,
    DH_24,
    DH_25,
    DH_26,
    DH_27,
    DH_28,
    DH_29,
    DH_30,
    DH_31,
    DH_32,
    DH_33,
    DH_34,
    DH_35,
    DH_36,
    DH_37,
    DH_38,
    DH_39,
    DH_40,
    DH_41,
    DH_42,
    DH_43,
    DH_44,
    DH_45,
    DH_46,
    ZouCeHua,
    JiuZhuMeiNv,
    commonTips,
    taskState,
    renZheng,
    ShouGouHeTong,
    Feedback,
    SuccessGetMoney,
    SuccessGetMoney_customMoney,
    qipao,
    SaiChe,
    HaoYunBaoPeng,
    WcPage,
    JieSuoNewColor_xmj,
    Game_xmj,
    FinishCurGuanQia,
    PinTuEnter,
    PinTuFinish,
    shanDongShaoBing,
    tianJinGuanTangBao,
    guiLinMiFen,
    dongporou,
    jiuzhuandachang,
    fotiaoqiang,
    duojiaoyutou,
    jiaohuaji,
    yangzhouchaofan,
    xinjiangshaokao,
    hainanqingbuliang,
    baiqieji,
    chouguiyu,
    chongqingxiaomian,
    changshanaicha,
    mapodoufu,
    FoShanDianHan,
    smallgame,

    ShouHuoji,
    TaskResult,

    JieDao,
}

// 子游戏命名
// 侦探社 刮刮乐 垃圾站 八星级酒店 冰雪世界 恋家房产
// 富豪会所 私募基金 摩托配件 湖心公园 电玩城 痛风快递 网红基地 游艇会 高尔夫球场
/**
 * *********只能往后面增加prefab*********
 */
let AllPrefabConfig = [
    { desc: "GM", gameType: GameType.GM, bundleName: "GM", prefabUrl: "prefab/GM" },
    { desc: "Check", gameType: GameType.CheckLayer, bundleName: "CheckLayer", prefabUrl: "prefab/checkLayer" },
    { desc: "GuideMskNode", gameType: GameType.GuideMskNode, bundleName: "CommonRes", prefabUrl: "prefab/GuideMskNode" },
    { desc: "GuideMskNode2", gameType: GameType.GuideMskNode2, bundleName: "CommonRes", prefabUrl: "prefab/GuideMskNode2" },

    { desc: "通用提示文字", dadianTag: '', wanJiaDaDianTag: "", gameType: GameType.CommonTextTips, bundleName: "CommonRes", prefabUrl: "prefab/commonTextTips", isNeedLoading: false },
    { desc: "奖励窗", dadianTag: '', wanJiaDaDianTag: "", gameType: GameType.GetAward, bundleName: "GameRes", prefabUrl: "getAward/getAward", isNeedLoading: false },
    { desc: "狩猎场", gameType: GameType.ShouLieChang, cityNodeName: 'shoulie', bundleName: "GameRes", prefabUrl: "ShouLieChang/prefab/shouLieChang", dadianTag: '长白山-进入', wanJiaDaDianTag: "长白山-玩家", isNeedLoading: true },
    { desc: "掏下水道", gameType: GameType.TaoFen, cityNodeName: 'taofen', bundleName: "GameRes", prefabUrl: "TaoFen/prefab/taofen/TaoFen", dadianTag: '管道疏通-进入', wanJiaDaDianTag: "管道疏通-玩家", isNeedLoading: true },
    { desc: "翻垃圾", gameType: GameType.FanLaji, cityNodeName: 'lajitong', bundleName: "GameRes", prefabUrl: "lajizhan/prefab/lajizhan", dadianTag: '垃圾桶-进入', wanJiaDaDianTag: "垃圾桶-玩家", isNeedLoading: true },
    { desc: "钓鱼", gameType: GameType.HJHA, cityNodeName: 'diaoyu', bundleName: "GameRes", prefabUrl: "diaoyu/prefab/diaoyu", dadianTag: '松花江-进入', wanJiaDaDianTag: "松花江-玩家", isNeedLoading: true },
    { desc: "任务信息", gameType: GameType.TaskInfoNode, bundleName: "GameRes", prefabUrl: "JuQingChat/prefab/taskInfoNode" },
    { desc: "剧情对话", gameType: GameType.JuQingDialog, bundleName: "GameRes", prefabUrl: "JuQingChat/prefab/juQingDialog" },
    { desc: "剧情对话2", gameType: GameType.JuQingDialog2, bundleName: "GameRes", prefabUrl: "JuQingChat/prefab/juQingDialog2" },

    { desc: "微信聊天列表", gameType: GameType.ChatList, bundleName: "GameRes", prefabUrl: "JuQingChat/prefab/chatList", dadianTag: '聊天列表-进入', wanJiaDaDianTag: "微信聊天列表-玩家", isNeedLoading: true },
    { desc: "微信聊天对话", gameType: GameType.ChatDialog, bundleName: "GameRes", prefabUrl: "JuQingChat/prefab/chatDialog", dadianTag: '聊天对话-进入', wanJiaDaDianTag: "微信聊天对话-玩家", isNeedLoading: true },
    { desc: "侧边栏福利", gameType: GameType.CeBianLan, bundleName: "GameRes", prefabUrl: "侧边栏/prefab/Cebianlan", isNeedLoading: true },
    { desc: "设置", gameType: GameType.Setting, bundleName: "Setting", prefabUrl: "prefab/setting", isNeedLoading: true },
    { desc: "背包", gameType: GameType.BeiBao, bundleName: "GameRes", prefabUrl: "背包/prefab/beibaoPrefab", dadianTag: '背包-进入', wanJiaDaDianTag: "背包-玩家", isNeedLoading: true },
    { desc: "突发事件", gameType: GameType.TuFaShiJian, bundleName: "GameRes", prefabUrl: "TuFaShiJian/prefab/tuFaShiJian", dadianTag: '突发事件-进入', wanJiaDaDianTag: "突发事件-玩家" },
    { desc: "记事本", gameType: GameType.JiShiBen, bundleName: "BiJiBen", prefabUrl: "prefab/JiShiBen", isNeedLoading: true },
    { desc: "股票", cityNodeName: 'rk_zhengQuanZhongXin', gameType: GameType.GuPiao, bundleName: "zhengquanzhongxin", prefabUrl: "prefab/stockMarketLayer", dadianTag: '证券中心-进入', wanJiaDaDianTag: "证券中心-玩家", isNeedLoading: true },
    { desc: "湖心公园", cityNodeName: 'rk_guWanShiChang', gameType: GameType.HuXinGongYuan, bundleName: "GameRes", prefabUrl: "huxingongyuan/prefab/huxingongyuanLayer", dadianTag: '古玩市场-进入', wanJiaDaDianTag: "古玩市场-玩家", isNeedLoading: true },
    { desc: "古董购买", gameType: GameType.HuXinGouMai, bundleName: "GameRes", prefabUrl: "huxingongyuan/prefab/fangruBeibao", dadianTag: '古董购买-进入', wanJiaDaDianTag: "古董购买-玩家", isNeedLoading: false },
    { desc: "古董鉴定", gameType: GameType.HuXinJianDing, bundleName: "GameRes", prefabUrl: "huxingongyuan/prefab/jiandingLayer", dadianTag: '古董鉴定-进入', wanJiaDaDianTag: "古董鉴定-玩家", isNeedLoading: false },
    { desc: "剧情提示", gameType: GameType.JuQingTipView, bundleName: "GameRes", prefabUrl: "JuQingTips/prefab/JuQingTipView", dadianTag: '剧情提示-进入', wanJiaDaDianTag: "剧情提示-玩家", isNeedLoading: false },
    { desc: "选择矿山", cityNodeName: 'rk_kuangshan', gameType: GameType.KaiKuangFirstView, bundleName: "GameRes", prefabUrl: "kaiKuang/prefab/kaiKuangFirstView", dadianTag: '选择矿山-进入', wanJiaDaDianTag: "选择矿山-玩家", isNeedLoading: true },
    { desc: "开矿", gameType: GameType.KaiKuangMainView, bundleName: "GameRes", prefabUrl: "kaiKuang/prefab/kaiKuangMainView", dadianTag: '开矿-进入', wanJiaDaDianTag: "开矿-玩家", isNeedLoading: true },
    { desc: "订阅", gameType: GameType.DingYue, bundleName: "GameRes", prefabUrl: "dingyue/dingYueBox" },
    { desc: "事件弹窗", gameType: GameType.BoxTanChuang, bundleName: "GameRes", prefabUrl: "TuFaShiJian/prefab/BoxTanChuang", dadianTag: '事件弹窗-进入', wanJiaDaDianTag: "事件弹窗-玩家", isNeedLoading: true },
    { desc: "超凡陵", cityNodeName: 'click_chaofan', gameType: GameType.QinWangLing, bundleName: "GameRes", prefabUrl: "QinWangLing/prefab/QinWangLing", dadianTag: '超凡陵-进入', wanJiaDaDianTag: "超凡陵-玩家", isNeedLoading: true },

    { desc: "黄金渔夫", cityNodeName: 'yuchuan', gameType: GameType.HuangJinYuFu, bundleName: "GameRes", prefabUrl: "huangjinyufu/prefab/HuangJinYuFu", dadianTag: '黄金渔夫-进入', wanJiaDaDianTag: "黄金渔夫-玩家", isNeedLoading: true },
    { desc: "黑屏转场", gameType: GameType.BlackTransition, bundleName: "GameRes", prefabUrl: "MainPrefab/MyRoom/prefab/BlackTransition", isNeedLoading: true },

    { desc: "添加桌面", gameType: GameType.AddDesk, bundleName: "addDesk", prefabUrl: "prefab/addDesk", dadianTag: '添加桌面-进入', wanJiaDaDianTag: "添加桌面-玩家", isNeedLoading: true },

    { desc: "点点点主界面", cityNodeName: '点点点主界面', gameType: GameType.MainHall, bundleName: "MainHall", prefabUrl: "prefab/MainHall", dadianTag: '点点点主界面-进入', wanJiaDaDianTag: "点点点主界面-玩家", isNeedLoading: true },
    { desc: "炒饭王", cityNodeName: '炒饭王', gameType: GameType.ChaoFanWang, bundleName: "ChaoFanWang", prefabUrl: "prefab/ChaoFanWang", dadianTag: '炒饭王-进入', wanJiaDaDianTag: "炒饭王-玩家", isNeedLoading: true },
    { desc: "食神赐福", cityNodeName: '食神赐福', gameType: GameType.ShiShenCiFu, bundleName: "MainHall", prefabUrl: "prefab/ShiShenCiFu", dadianTag: '食神赐福-进入', wanJiaDaDianTag: "食神赐福-玩家", isNeedLoading: true },
    { desc: "在线奖励", cityNodeName: '在线奖励', gameType: GameType.OnLineGame, bundleName: "OnLineGame", prefabUrl: "prefab/OnLineGame", dadianTag: '在线奖励-进入', wanJiaDaDianTag: "在线奖励-玩家", isNeedLoading: true },

    { desc: "收益翻倍", cityNodeName: '收益翻倍', gameType: GameType.MultipleIncome, bundleName: "MultipleIncome", prefabUrl: "prefab/MultipleIncome", dadianTag: '收益翻倍-进入', wanJiaDaDianTag: "收益翻倍-玩家", isNeedLoading: true },

    { desc: "房产", cityNodeName: '房产', gameType: GameType.FangChanGame, bundleName: "FangChan", prefabUrl: "prefab/FangChanGame", dadianTag: '房产-进入', wanJiaDaDianTag: "房产-玩家", isNeedLoading: true },
    { desc: "签到", cityNodeName: '签到', gameType: GameType.SignDay, bundleName: "SignDay", prefabUrl: "prefab/SignDay", dadianTag: '签到-进入', wanJiaDaDianTag: "签到-玩家", isNeedLoading: true },

    { desc: "挑战选择", cityNodeName: '挑战选择', gameType: GameType.ChallengeChoose, bundleName: "ChallengeChoose", prefabUrl: "prefab/ChallengeChoose", dadianTag: '挑战选择-进入', wanJiaDaDianTag: "挑战选择-玩家", isNeedLoading: true },
    { desc: "挑战失败", cityNodeName: '挑战失败', gameType: GameType.ChallengeFail, bundleName: "ChallengeResult", prefabUrl: "prefab/ChallengeFail", dadianTag: '挑战失败-进入', wanJiaDaDianTag: "挑战失败-玩家", isNeedLoading: true },
    { desc: "挑战成功", cityNodeName: '挑战成功', gameType: GameType.ChallengeSuccess, bundleName: "ChallengeResult", prefabUrl: "prefab/ChallengeSuccess", dadianTag: '挑战成功-进入', wanJiaDaDianTag: "挑战成功-玩家", isNeedLoading: true },
    { desc: "开始挑战", cityNodeName: '开始挑战', gameType: GameType.ChallengeGame, bundleName: "ChallengeGame", prefabUrl: "prefab/ChallengeGame", dadianTag: '开始挑战-进入', wanJiaDaDianTag: "开始挑战-玩家", isNeedLoading: true },

    { desc: "招募", cityNodeName: '招募', gameType: GameType.MishuGame, bundleName: "MishuGame", prefabUrl: "prefab/MishuGame", dadianTag: '招募-进入', wanJiaDaDianTag: "招募-玩家", isNeedLoading: true },
    { desc: "培训", cityNodeName: '培训', gameType: GameType.MishuPeixun, bundleName: "MishuGame", prefabUrl: "prefab/MishuPeiXun", dadianTag: '培训-进入', wanJiaDaDianTag: "培训-玩家", isNeedLoading: true },

    { desc: "炒饭桌子", cityNodeName: '炒饭桌子', gameType: GameType.ChaoFanDesk, bundleName: "ChaoFanWang", prefabUrl: "prefab/zhuoziNode", dadianTag: '炒饭桌子-进入', wanJiaDaDianTag: "炒饭桌子-玩家", isNeedLoading: false },
    { desc: "食神送财", cityNodeName: '食神送财', gameType: GameType.ShiShenSC, bundleName: "MainHall", prefabUrl: "prefab/ShiShenSongCai", dadianTag: '食神送财-进入', wanJiaDaDianTag: "食神送财-玩家", isNeedLoading: true },

    { desc: "升级", cityNodeName: '升级', gameType: GameType.PeopleLevelUp, bundleName: "PeopleLevelUp", prefabUrl: "prefab/PeopleLevelUp", dadianTag: '升级-进入', wanJiaDaDianTag: "升级-玩家", isNeedLoading: true },

    { desc: "食谱", cityNodeName: '食谱', gameType: GameType.Shipu, bundleName: "ShiPu", prefabUrl: "prefab/ShiPu", dadianTag: '食谱-进入', wanJiaDaDianTag: "食谱-玩家", isNeedLoading: true },
    { desc: "摊位", cityNodeName: '摊位', gameType: GameType.TanWei, bundleName: "ShiPu", prefabUrl: "prefab/TanWei", dadianTag: '摊位-进入', wanJiaDaDianTag: "摊位-玩家", isNeedLoading: true },
    { desc: "秘书奖励", cityNodeName: '秘书奖励', gameType: GameType.MishuReward, bundleName: "MishuReward", prefabUrl: "prefab/MishuReward", dadianTag: '秘书奖励-进入', wanJiaDaDianTag: "秘书奖励-玩家", isNeedLoading: true },
    { desc: "离线奖励", cityNodeName: '离线奖励', gameType: GameType.lixianReward, bundleName: "LixianGame", prefabUrl: "prefab/LixianGame", dadianTag: '离线奖励-进入', wanJiaDaDianTag: "离线奖励-玩家", isNeedLoading: true },
    { desc: "排行榜", cityNodeName: '排行榜', gameType: GameType.PaiHangBang, bundleName: "PaiHangBang", prefabUrl: "prefab/PaiHangBang", dadianTag: '排行榜-进入', wanJiaDaDianTag: "排行榜-玩家", isNeedLoading: true },

    { desc: "提示框", cityNodeName: '提示框', gameType: GameType.BoxTipNode, bundleName: "BoxTip", prefabUrl: "prefab/BoxTip", dadianTag: '提示框-进入', wanJiaDaDianTag: "提示框-玩家", isNeedLoading: true },
    { desc: "城市", cityNodeName: '城市', gameType: GameType.CityPrefab, bundleName: "CityPrefab", prefabUrl: "prefab/CityPrefab", dadianTag: '城市-进入', wanJiaDaDianTag: "城市-玩家", isNeedLoading: true },

    { desc: "剧情开始", cityNodeName: '剧情开始', gameType: GameType.JuQingStart, bundleName: "JuQingStart", prefabUrl: "prefab/JuQingStart", dadianTag: '剧情开始-进入', wanJiaDaDianTag: "剧情开始-玩家", isNeedLoading: true },
    { desc: "房间2", cityNodeName: '房间2', gameType: GameType.JuQingRoom2, bundleName: "JuQingRoom2", prefabUrl: "prefab/JuQingRoom2", dadianTag: '房间2-进入', wanJiaDaDianTag: "房间2-玩家", isNeedLoading: true },
    { desc: "房间3", cityNodeName: '房间3', gameType: GameType.JuQingRoom3, bundleName: "JuQingRoom3", prefabUrl: "prefab/JuQingRoom3", dadianTag: '房间3-进入', wanJiaDaDianTag: "房间3-玩家", isNeedLoading: true },

    { desc: "救助洛夕颜", cityNodeName: '救助洛夕颜', gameType: GameType.JiuZhuLuoxiyan, bundleName: "JiuZhuLuoxiyan", prefabUrl: "prefab/JiuZhuLuoxiyan", dadianTag: '救助洛夕颜-进入', wanJiaDaDianTag: "救助洛夕颜-玩家", isNeedLoading: true },

    { desc: "协助巡夜人", cityNodeName: '协助巡夜人', gameType: GameType.XieZhuShouYeren, bundleName: "XieZhuShouYeren", prefabUrl: "prefab/XieZhuShouYeren", dadianTag: '协助巡夜人-进入', wanJiaDaDianTag: "协助巡夜人-玩家", isNeedLoading: true },
    { desc: "换装备", cityNodeName: '换装备', gameType: GameType.HuanZhuangBei, bundleName: "HuanZhuangBei", prefabUrl: "prefab/HuanZhuangBei", dadianTag: '换装备-进入', wanJiaDaDianTag: "换装备-玩家", isNeedLoading: true },

    { desc: "废弃基地1", cityNodeName: '废弃基地1', gameType: GameType.FeiQiJiDi1, bundleName: "FeiQiJiDi", prefabUrl: "prefab/FeiQiJiDi1", dadianTag: '废弃基地1-进入', wanJiaDaDianTag: "废弃基地1-玩家", isNeedLoading: true },
    { desc: "废弃基地2", cityNodeName: '废弃基地2', gameType: GameType.FeiQiJiDi2, bundleName: "FeiQiJiDi", prefabUrl: "prefab/FeiQiJiDi2", dadianTag: '废弃基地2-进入', wanJiaDaDianTag: "废弃基地2-玩家", isNeedLoading: true },
    { desc: "改造人", cityNodeName: '改造人', gameType: GameType.GaiZhaoRen, bundleName: "GaiZhaoRen", prefabUrl: "prefab/GaiZhaoRen", dadianTag: '改造人-进入', wanJiaDaDianTag: "改造人-玩家", isNeedLoading: true },

    { desc: "研究所大战", cityNodeName: '研究所大战', gameType: GameType.YanJiuSuo, bundleName: "YanJiuSuo", prefabUrl: "prefab/YanJiuSuo", dadianTag: '研究所大战-进入', wanJiaDaDianTag: "研究所大战-玩家", isNeedLoading: true },
    { desc: "五行原石", cityNodeName: '五行原石', gameType: GameType.WuXingYuanShi, bundleName: "WuXingYuanShi", prefabUrl: "prefab/WuXingYuanShi", dadianTag: '五行原石-进入', wanJiaDaDianTag: "五行原石-玩家", isNeedLoading: true },
    { desc: "房间", cityNodeName: '房间', gameType: GameType.MyRoom, bundleName: "MyRoom", prefabUrl: "prefab/MyRoom", dadianTag: '房间-进入', wanJiaDaDianTag: "房间-玩家", isNeedLoading: true },
    { desc: "神魂受损", cityNodeName: '神魂受损', gameType: GameType.ShenHunShouSun, bundleName: "ShenHunShouSun", prefabUrl: "prefab/ShenHunShouSun", dadianTag: '神魂受损-进入', wanJiaDaDianTag: "神魂受损-玩家", isNeedLoading: true },
    { desc: "回家查看情况", cityNodeName: '回家查看情况', gameType: GameType.HuiJiaChaKan, bundleName: "HuiJiaChaKan", prefabUrl: "prefab/HuiJiaChaKan", dadianTag: '回家查看情况-进入', wanJiaDaDianTag: "回家查看情况-玩家", isNeedLoading: true },

    { desc: "解锁道具", cityNodeName: '解锁道具', gameType: GameType.JieSuoPro, bundleName: "JieSuoPro", prefabUrl: "prefab/JieSuoPro", dadianTag: '解锁道具-进入', wanJiaDaDianTag: "解锁道具-玩家", isNeedLoading: true },

    { desc: "自动点击功能介绍", cityNodeName: '自动点击功能介绍', gameType: GameType.AutoLevelUpTips, bundleName: "AutoLevelUpTips", prefabUrl: "prefab/AutoLevelUpTips", dadianTag: '自动点击功能介绍-进入', wanJiaDaDianTag: "自动点击功能介绍-玩家", isNeedLoading: true },
    { desc: "剧情开始2", cityNodeName: '剧情开始2', gameType: GameType.JuQingStart2, bundleName: "JuQingStart2", prefabUrl: "prefab/JuQingStart2", dadianTag: '剧情开始2-进入', wanJiaDaDianTag: "剧情开始2-玩家", isNeedLoading: true },
    { desc: "龙哥对话界面", cityNodeName: '龙哥对话界面', gameType: GameType.chatLongGe, bundleName: "ChatLongGe", prefabUrl: "prefab/chatLongGe", dadianTag: '龙哥对话界面-进入', wanJiaDaDianTag: "龙哥对话界面-玩家", isNeedLoading: true },


    //移过来的玩法
    { desc: "茶场", gameType: GameType.ChaChang, bundleName: "GameRes", prefabUrl: "ChaChang/prefab/chaChang", dadianTag: '茶场-进入', wanJiaDaDianTag: "茶场-玩家", isNeedLoading: true },
    { desc: "茶场招募", gameType: GameType.ChaChangZhaoMu, bundleName: "GameRes", prefabUrl: "ChaChang/prefab/chaChangZhaoMu", dadianTag: '茶场招募-进入', wanJiaDaDianTag: "茶场招募-玩家", isNeedLoading: true },

    { desc: "食材回收", gameType: GameType.ShiCaiHuiShou, bundleName: "shicaihuishou", prefabUrl: "prefab/ShiCaiHuiShou", dadianTag: '食材回收-进入', wanJiaDaDianTag: "食材回收-玩家", isNeedLoading: true, isNeedReleaseBundle: false },

    { desc: "拍卖行", gameType: GameType.Paimaihang, bundleName: "Paimaihang", prefabUrl: "prefab/paimaihang", dadianTag: '拍卖行-进入', wanJiaDaDianTag: "拍卖行-玩家", isNeedLoading: true },

    { desc: "休闲农庄", gameType: GameType.XiuXianNongZhuang, bundleName: "XiuXianNongZhuang", prefabUrl: "prefab/xiuXianNongZhuang", dadianTag: '休闲农庄-进入', wanJiaDaDianTag: "休闲农庄-玩家", isNeedLoading: true },

    { desc: "佰草集", cityNodeName: 'click_qiyiyaun', gameType: GameType.BaiCaoJi, bundleName: "GameRes", prefabUrl: "BaiCaoJi/prefab/baiCaoJi", dadianTag: '佰草集-进入', wanJiaDaDianTag: "佰草集-玩家", isNeedLoading: true },
    { desc: "佰草集说明", gameType: GameType.BaiCaoJiShuoMing, bundleName: "GameRes", prefabUrl: "BaiCaoJi/prefab/baiCaoJiShuoMing", dadianTag: '佰草集说明-进入', wanJiaDaDianTag: "佰草集说明-玩家", isNeedLoading: true },
    { desc: "美女招募", gameType: GameType.MeiNvZhaoMu, bundleName: "GameRes", prefabUrl: "meiNvZhaoMu/prefab/meiNvZhaoMu", dadianTag: '美女招募-进入', wanJiaDaDianTag: "美女招募-玩家", isNeedLoading: true },

    { desc: "移麻将", gameType: GameType.YiMaJiang, bundleName: "YiMaJiang", prefabUrl: "prefab/YiMaJiang", dadianTag: '移麻将-进入', wanJiaDaDianTag: "移麻将-玩家", isNeedLoading: true },
    { desc: "移麻将选关", gameType: GameType.YiMaJiangXuanGuan, bundleName: "YiMaJiang", prefabUrl: "prefab/YiMaJiangXuanGuan", dadianTag: '移麻将选关-进入', wanJiaDaDianTag: "移麻将选关-玩家", isNeedLoading: true },
    { desc: "移麻将结果", gameType: GameType.YiMaJiangResult, bundleName: "YiMaJiang", prefabUrl: "prefab/YiMaJiangResult", dadianTag: '移麻将结果-进入', wanJiaDaDianTag: "移麻将结果-玩家", isNeedLoading: true },

    { desc: "炒菜", gameType: GameType.ChaoCai, bundleName: "ChaoCai", prefabUrl: "prefab/ChaoCai", dadianTag: '炒菜-进入', wanJiaDaDianTag: "炒菜-玩家", isNeedLoading: true },
    { desc: "炒菜结果", gameType: GameType.ChaoCaiResult, bundleName: "ChaoCai", prefabUrl: "prefab/ChaoCaiResult", dadianTag: '炒菜结果-进入', wanJiaDaDianTag: "炒菜结果-玩家", isNeedLoading: true },
    { desc: "投资协议书", gameType: GameType.TouZiXieYiShu, bundleName: "TouZiXieYiShu", prefabUrl: "prefab/TouZiXieYiShu", dadianTag: '投资协议书-进入', wanJiaDaDianTag: "投资协议书-玩家", isNeedLoading: true },

    { desc: "文字_prefab", gameType: GameType.WZ_GameMain, bundleName: "ZoomGame", prefabUrl: "prefab/view/GameMain", dadianTag: '文字_prefab-进入', isNeedLoading: true },
    { desc: "文字_prefab", gameType: GameType.WZ_ExitTip, bundleName: "ZoomGame", prefabUrl: "prefab/view/ExitTip", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", cityNodeName: 'rk_zongCaiXunLianYing', gameType: GameType.WZ_firstLevelSelectView, bundleName: "ZoomGame", prefabUrl: "prefab/view/firstLevelSelectView", dadianTag: '文字_prefab-进入', isNeedLoading: true },
    { desc: "文字_prefab", gameType: GameType.WZ_GameFailTimeOutView, bundleName: "ZoomGame", prefabUrl: "prefab/view/GameFailTimeOutView", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", gameType: GameType.WZ_GameFailView, bundleName: "ZoomGame", prefabUrl: "prefab/view/GameFailView", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", gameType: GameType.WZ_GameSuccessView, bundleName: "ZoomGame", prefabUrl: "prefab/view/GameSuccessView", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", gameType: GameType.WZ_LevelUnlock, bundleName: "ZoomGame", prefabUrl: "prefab/view/LevelUnlock", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", gameType: GameType.WZ_pageNew, bundleName: "ZoomGame", prefabUrl: "prefab/view/pageNew", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", gameType: GameType.WZ_TerrTip, bundleName: "ZoomGame", prefabUrl: "prefab/view/TerrTip", dadianTag: '文字_prefab-进入' },
    { desc: "文字_prefab", gameType: GameType.WZ_tipPrefab, bundleName: "ZoomGame", prefabUrl: "prefab/view/tipPrefab", dadianTag: '文字_prefab-进入' },

    { desc: "成就", cityNodeName: '成就', gameType: GameType.ChengJiu, bundleName: "ChengJiu", prefabUrl: "prefab/ChengJiu", dadianTag: '成就-进入', wanJiaDaDianTag: "成就-玩家", isNeedLoading: true },
    { desc: "资产", cityNodeName: '资产', gameType: GameType.ZiChan, bundleName: "ZiChan", prefabUrl: "prefab/ZiChan", dadianTag: '资产-进入', wanJiaDaDianTag: "资产-玩家", isNeedLoading: true },
    { desc: "厨师协会", cityNodeName: '厨师协会', gameType: GameType.ChuShiXieHui, bundleName: "ChuShiXieHui", prefabUrl: "prefab/ChuShiXieHui", dadianTag: '厨师协会-进入', wanJiaDaDianTag: "厨师协会-玩家", isNeedLoading: true },

    { desc: "初始选择场景左按钮菜单", gameType: GameType.FirstSelectScene_LeftBtnUI, bundleName: "FirstSelectScene", prefabUrl: "prefab/LeftBtnUI", isNeedLoading: false },
    { desc: "初始选择场景关卡界面", gameType: GameType.FirstSelectScene_LevelView, bundleName: "FirstSelectScene", prefabUrl: "prefab/LevelView", isNeedLoading: false },
    { desc: "初始选择场景云动画", gameType: GameType.FirstSelectScene_CloudAnimation, bundleName: "FirstSelectScene", prefabUrl: "prefab/CloudAnimation", isNeedLoading: false },
    { desc: "初始选择场景开始动画", gameType: GameType.FirstSelectScene_StartAnimation, bundleName: "FirstSelectScene", prefabUrl: "prefab/StartAnimation", isNeedLoading: false },

    { desc: "掉落窗", dadianTag: '', wanJiaDaDianTag: "", gameType: GameType.GetDiaoLuo, bundleName: "GameRes", prefabUrl: "getDiaoLuo/getDiaoLuo", isNeedLoading: false },
    { desc: "召唤台", dadianTag: '', wanJiaDaDianTag: "", gameType: GameType.ZhaoHuanTai, bundleName: "ZhaoHuanTai", prefabUrl: "prefab/ZhaoHuanTai", isNeedLoading: false },

    { desc: "黑屏过渡", gameType: GameType.blackGuoDu, bundleName: "CommonRes", prefabUrl: "prefab/blackGuoDu" },

    { desc: "DH_1", gameType: GameType.DH_1, bundleName: "DH_1", prefabUrl: "DH_1", dadianTag: "DH_1", wanjiaDaDianTag: "DH_1", isNeedLoading: true },
    { desc: "DH_2", gameType: GameType.DH_2, bundleName: "DH_2", prefabUrl: "DH_2", dadianTag: "DH_2", wanjiaDaDianTag: "DH_2", isNeedLoading: true },
    { desc: "DH_3", gameType: GameType.DH_3, bundleName: "DH_3", prefabUrl: "DH_3", dadianTag: "DH_3", wanjiaDaDianTag: "DH_3", isNeedLoading: true },
    { desc: "DH_4", gameType: GameType.DH_4, bundleName: "DH_4", prefabUrl: "DH_4", dadianTag: "DH_4", wanjiaDaDianTag: "DH_4", isNeedLoading: true },
    { desc: "DH_5", gameType: GameType.DH_5, bundleName: "DH_5", prefabUrl: "DH_5", dadianTag: "DH_5", wanjiaDaDianTag: "DH_5", isNeedLoading: true },
    { desc: "DH_6", gameType: GameType.DH_6, bundleName: "DH_6", prefabUrl: "DH_6", dadianTag: "DH_6", wanjiaDaDianTag: "DH_6", isNeedLoading: true },
    { desc: "DH_7", gameType: GameType.DH_7, bundleName: "DH_7", prefabUrl: "DH_7", dadianTag: "DH_7", wanjiaDaDianTag: "DH_7", isNeedLoading: true },
    { desc: "selectButton", gameType: GameType.selectButton, bundleName: "selectButton", prefabUrl: "selectButton", dadianTag: "selectButton", wanjiaDaDianTag: "selectButton", isNeedLoading: true },
    { desc: "selectButton", gameType: GameType.selectButtons, bundleName: "selectButton", prefabUrl: "selectButtons", dadianTag: "selectButtons", wanjiaDaDianTag: "selectButtons", isNeedLoading: false },
    { desc: "DH_8", gameType: GameType.DH_8, bundleName: "DH_8", prefabUrl: "DH_8", dadianTag: "DH_8", wanjiaDaDianTag: "DH_8", isNeedLoading: true },
    { desc: "DH_9", gameType: GameType.DH_9, bundleName: "DH_9", prefabUrl: "DH_9", dadianTag: "DH_9", wanjiaDaDianTag: "DH_9", isNeedLoading: true },
    { desc: "DH_10", gameType: GameType.DH_10, bundleName: "DH_10", prefabUrl: "DH_10", dadianTag: "DH_10", wanjiaDaDianTag: "DH_10", isNeedLoading: true },
    { desc: "DH_11", gameType: GameType.DH_11, bundleName: "DH_11", prefabUrl: "DH_11", dadianTag: "DH_11", wanjiaDaDianTag: "DH_11", isNeedLoading: true },
    { desc: "DH_12", gameType: GameType.DH_12, bundleName: "DH_12", prefabUrl: "DH_12", dadianTag: "DH_12", wanjiaDaDianTag: "DH_12", isNeedLoading: true },
    { desc: "DH_13", gameType: GameType.DH_13, bundleName: "DH_13", prefabUrl: "DH_13", dadianTag: "DH_13", wanjiaDaDianTag: "DH_13", isNeedLoading: true },
    { desc: "DH_14", gameType: GameType.DH_14, bundleName: "DH_14", prefabUrl: "DH_14", dadianTag: "DH_14", wanjiaDaDianTag: "DH_14", isNeedLoading: true },
    { desc: "DH_15", gameType: GameType.DH_15, bundleName: "DH_15", prefabUrl: "DH_15", dadianTag: "DH_15", wanjiaDaDianTag: "DH_15", isNeedLoading: true },
    { desc: "DH_16", gameType: GameType.DH_16, bundleName: "DH_16", prefabUrl: "DH_16", dadianTag: "DH_16", wanjiaDaDianTag: "DH_16", isNeedLoading: true },
    { desc: "DH_17", gameType: GameType.DH_17, bundleName: "DH_17", prefabUrl: "DH_17", dadianTag: "DH_17", wanjiaDaDianTag: "DH_17", isNeedLoading: true },
    { desc: "DH_18", gameType: GameType.DH_18, bundleName: "DH_18", prefabUrl: "DH_18", dadianTag: "DH_18", wanjiaDaDianTag: "DH_18", isNeedLoading: true },
    { desc: "DH_19", gameType: GameType.DH_19, bundleName: "DH_19", prefabUrl: "DH_19", dadianTag: "DH_19", wanjiaDaDianTag: "DH_19", isNeedLoading: true },
    { desc: "DH_20", gameType: GameType.DH_20, bundleName: "DH_20", prefabUrl: "DH_20", dadianTag: "DH_20", wanjiaDaDianTag: "DH_20", isNeedLoading: true },
    { desc: "DH_21", gameType: GameType.DH_21, bundleName: "DH_21", prefabUrl: "DH_21", dadianTag: "DH_21", wanjiaDaDianTag: "DH_21", isNeedLoading: true },
    { desc: "DH_22", gameType: GameType.DH_22, bundleName: "DH_22", prefabUrl: "DH_22", dadianTag: "DH_22", wanjiaDaDianTag: "DH_22", isNeedLoading: true },
    { desc: "DH_23", gameType: GameType.DH_23, bundleName: "DH_23", prefabUrl: "DH_23", dadianTag: "DH_23", wanjiaDaDianTag: "DH_23", isNeedLoading: true },
    { desc: "DH_24", gameType: GameType.DH_24, bundleName: "DH_24", prefabUrl: "DH_24", dadianTag: "DH_24", wanjiaDaDianTag: "DH_24", isNeedLoading: true },
    { desc: "DH_25", gameType: GameType.DH_25, bundleName: "DH_25", prefabUrl: "DH_25", dadianTag: "DH_25", wanjiaDaDianTag: "DH_25", isNeedLoading: true },
    { desc: "DH_26", gameType: GameType.DH_26, bundleName: "DH_26", prefabUrl: "DH_26", dadianTag: "DH_26", wanjiaDaDianTag: "DH_26", isNeedLoading: true },
    { desc: "DH_27", gameType: GameType.DH_27, bundleName: "DH_27", prefabUrl: "DH_27", dadianTag: "DH_27", wanjiaDaDianTag: "DH_27", isNeedLoading: true },
    { desc: "DH_28", gameType: GameType.DH_28, bundleName: "DH_28", prefabUrl: "DH_28", dadianTag: "DH_28", wanjiaDaDianTag: "DH_28", isNeedLoading: true },
    { desc: "DH_29", gameType: GameType.DH_29, bundleName: "DH_29", prefabUrl: "DH_29", dadianTag: "DH_29", wanjiaDaDianTag: "DH_29", isNeedLoading: true },
    { desc: "DH_30", gameType: GameType.DH_30, bundleName: "DH_30", prefabUrl: "DH_30", dadianTag: "DH_30", wanjiaDaDianTag: "DH_30", isNeedLoading: true },
    { desc: "DH_31", gameType: GameType.DH_31, bundleName: "DH_31", prefabUrl: "DH_31", dadianTag: "DH_31", wanjiaDaDianTag: "DH_31", isNeedLoading: true },
    { desc: "DH_32", gameType: GameType.DH_32, bundleName: "DH_32", prefabUrl: "DH_32", dadianTag: "DH_32", wanjiaDaDianTag: "DH_32", isNeedLoading: true },
    { desc: "DH_33", gameType: GameType.DH_33, bundleName: "DH_33", prefabUrl: "DH_33", dadianTag: "DH_33", wanjiaDaDianTag: "DH_33", isNeedLoading: true },
    { desc: "DH_34", gameType: GameType.DH_34, bundleName: "DH_34", prefabUrl: "DH_34", dadianTag: "DH_34", wanjiaDaDianTag: "DH_34", isNeedLoading: true },
    { desc: "DH_35", gameType: GameType.DH_35, bundleName: "DH_35", prefabUrl: "DH_35", dadianTag: "DH_35", wanjiaDaDianTag: "DH_35", isNeedLoading: true },
    { desc: "DH_36", gameType: GameType.DH_36, bundleName: "DH_36", prefabUrl: "DH_36", dadianTag: "DH_36", wanjiaDaDianTag: "DH_36", isNeedLoading: true },
    { desc: "DH_37", gameType: GameType.DH_37, bundleName: "DH_37", prefabUrl: "DH_37", dadianTag: "DH_37", wanjiaDaDianTag: "DH_37", isNeedLoading: true },
    { desc: "DH_38", gameType: GameType.DH_38, bundleName: "DH_38", prefabUrl: "DH_38", dadianTag: "DH_38", wanjiaDaDianTag: "DH_38", isNeedLoading: true },
    { desc: "DH_39", gameType: GameType.DH_39, bundleName: "DH_39", prefabUrl: "DH_39", dadianTag: "DH_39", wanjiaDaDianTag: "DH_39", isNeedLoading: true },
    { desc: "DH_40", gameType: GameType.DH_40, bundleName: "DH_40", prefabUrl: "DH_40", dadianTag: "DH_40", wanjiaDaDianTag: "DH_40", isNeedLoading: true },
    { desc: "DH_41", gameType: GameType.DH_41, bundleName: "DH_41", prefabUrl: "DH_41", dadianTag: "DH_41", wanjiaDaDianTag: "DH_41", isNeedLoading: true },
    { desc: "DH_42", gameType: GameType.DH_42, bundleName: "DH_42", prefabUrl: "DH_42", dadianTag: "DH_42", wanjiaDaDianTag: "DH_42", isNeedLoading: true },
    { desc: "DH_43", gameType: GameType.DH_43, bundleName: "DH_43", prefabUrl: "DH_43", dadianTag: "DH_43", wanjiaDaDianTag: "DH_43", isNeedLoading: true },
    { desc: "DH_43", gameType: GameType.DH_43, bundleName: "DH_43", prefabUrl: "DH_43", dadianTag: "DH_43", wanjiaDaDianTag: "DH_43", isNeedLoading: true },
    { desc: "DH_44", gameType: GameType.DH_44, bundleName: "DH_44", prefabUrl: "DH_44", dadianTag: "DH_44", wanjiaDaDianTag: "DH_44", isNeedLoading: true },
    { desc: "DH_45", gameType: GameType.DH_45, bundleName: "DH_45", prefabUrl: "DH_45", dadianTag: "DH_45", wanjiaDaDianTag: "DH_45", isNeedLoading: true },
    { desc: "DH_46", gameType: GameType.DH_46, bundleName: "DH_46", prefabUrl: "DH_46", dadianTag: "DH_46", wanjiaDaDianTag: "DH_46", isNeedLoading: true },

    { desc: "揍策划", gameType: GameType.ZouCeHua, bundleName: "DuiCeHua", prefabUrl: "ZouCeHua", isNeedLoading: true },
    { desc: "救助美女", gameType: GameType.JiuZhuMeiNv, bundleName: "jiuzhumeinv", prefabUrl: "prefab/JiuZhuMeiNv", isNeedLoading: true },

    { desc: "提示弹窗", gameType: GameType.commonTips, bundleName: "CommonRes", prefabUrl: "prefab/commonTips" },
    { desc: "任务成功失败弹窗", gameType: GameType.taskState, bundleName: "taskState", prefabUrl: "taskState" },
    { desc: "认证弹窗", gameType: GameType.renZheng, bundleName: "renZheng", prefabUrl: "renZheng" },
    { desc: "ShouGouHeTong", gameType: GameType.ShouGouHeTong, bundleName: "ShouGouHeTong", prefabUrl: "ShouGouHeTong", dadianTag: "ShouGouHeTong", wanjiaDaDianTag: "ShouGouHeTong", isNeedLoading: true },
    { desc: "反馈", gameType: GameType.Feedback, bundleName: "GameRes", prefabUrl: "Feedback/prefab/Feedback", isNeedLoading: true },
    { desc: "成功奖励金钱弹框", gameType: GameType.SuccessGetMoney, bundleName: "CommonRes", prefabUrl: "prefab/SuccessGetMoney" },
    { desc: "成功奖励金钱弹框自定义金钱", gameType: GameType.SuccessGetMoney_customMoney, bundleName: "CommonRes", prefabUrl: "prefab/SuccessGetMoney_customMoney" },
    { desc: "气泡", gameType: GameType.qipao, bundleName: "CommonRes", prefabUrl: "prefab/qipao" },

    { desc: "新年红包", gameType: GameType.SaiChe, cityNodeName: 'xinniankuaile', bundleName: "SaiChe", prefabUrl: "prefab/saiChe", dadianTag: '红包活动-进入', wanJiaDaDianTag: "红包活动-玩家", isNeedLoading: true },
    { desc: "好运爆棚", gameType: GameType.HaoYunBaoPeng, bundleName: "haoyunbaopeng", prefabUrl: "prefab/sanXianGuiDong", dadianTag: '时来运转-进入', wanJiaDaDianTag: "时来运转-玩家", isNeedLoading: true },
    { desc: "找厕所", gameType: GameType.WcPage, bundleName: "wcPage", prefabUrl: "prefab/WcPage", dadianTag: '找厕所-进入', wanJiaDaDianTag: "找厕所-玩家", isNeedLoading: true },
    { desc: "解锁新颜色-洗麻将", gameType: GameType.JieSuoNewColor_xmj, bundleName: "allRes", prefabUrl: "GameRes/prefab/game_xpz/jieSuoNewColor_xmj" },
    { desc: "洗麻将", gameType: GameType.Game_xmj, bundleName: "allRes", prefabUrl: "GameRes/prefab/game_xmj/game_xmj" },
    { desc: "关卡结束", gameType: GameType.FinishCurGuanQia, bundleName: "allRes", prefabUrl: "GameRes/prefab/game_xmj/finishCurGuanQia" },
    { desc: "PinTuEnter", gameType: GameType.PinTuEnter, bundleName: "PinTuGame", prefabUrl: "prefab/PinTuEnter" },
    { desc: "PinTuFinish", gameType: GameType.PinTuFinish, bundleName: "PinTuGame", prefabUrl: "prefab/PinTuFinish" },
    { desc: "shanDongShaoBing", gameType: GameType.shanDongShaoBing, bundleName: "PinTuGame", prefabUrl: "prefab/山东烧饼" },
    { desc: "tianJinGuanTangBao", gameType: GameType.tianJinGuanTangBao, bundleName: "PinTuGame", prefabUrl: "prefab/天津灌汤包" },
    { desc: "guiLinMiFen", gameType: GameType.guiLinMiFen, bundleName: "PinTuGame", prefabUrl: "prefab/桂林米粉" },
    { desc: "dongporou", gameType: GameType.dongporou, bundleName: "PinTuGame", prefabUrl: "prefab/东坡肉" },
    { desc: "jiuzhuandachang", gameType: GameType.jiuzhuandachang, bundleName: "PinTuGame", prefabUrl: "prefab/九转大肠" },
    { desc: "fotiaoqiang", gameType: GameType.fotiaoqiang, bundleName: "PinTuGame", prefabUrl: "prefab/佛跳墙" },
    { desc: "duojiaoyutou", gameType: GameType.duojiaoyutou, bundleName: "PinTuGame", prefabUrl: "prefab/剁椒鱼头" },
    { desc: "jiaohuaji", gameType: GameType.jiaohuaji, bundleName: "PinTuGame", prefabUrl: "prefab/叫花鸡" },
    { desc: "yangzhouchaofan", gameType: GameType.yangzhouchaofan, bundleName: "PinTuGame", prefabUrl: "prefab/扬州炒饭" },
    { desc: "xinjiangshaokao", gameType: GameType.xinjiangshaokao, bundleName: "PinTuGame", prefabUrl: "prefab/新疆烧烤" },
    { desc: "hainanqingbuliang", gameType: GameType.hainanqingbuliang, bundleName: "PinTuGame", prefabUrl: "prefab/海南清补凉" },
    { desc: "baiqieji", gameType: GameType.baiqieji, bundleName: "PinTuGame", prefabUrl: "prefab/白切鸡" },
    { desc: "chouguiyu", gameType: GameType.chouguiyu, bundleName: "PinTuGame", prefabUrl: "prefab/臭鳜鱼" },
    { desc: "chongqingxiaomian", gameType: GameType.chongqingxiaomian, bundleName: "PinTuGame", prefabUrl: "prefab/重庆小面" },
    { desc: "changshanaicha", gameType: GameType.changshanaicha, bundleName: "PinTuGame", prefabUrl: "prefab/长沙奶茶" },
    { desc: "mapodoufu", gameType: GameType.mapodoufu, bundleName: "PinTuGame", prefabUrl: "prefab/麻婆豆腐" },

    { desc: "佛山电翰", gameType: GameType.FoShanDianHan, bundleName: "foShanDianHan", prefabUrl: "FoShanDianHan", dadianTag: '佛山电翰-进入', wanJiaDaDianTag: "佛山电翰-玩家", isNeedLoading: true },
    { desc: "小游戏主页", gameType: GameType.smallgame, bundleName: "smallgame", prefabUrl: "prefab/smallgame", dadianTag: '小游戏主页进入', wanJiaDaDianTag: "小游戏主页玩家", isNeedLoading: true },
    
    { desc: "售货机", gameType: GameType.ShouHuoji, bundleName: "shouhuoji", prefabUrl: "prefab/ShouHuoJiGai", dadianTag: '售货机-进入', wanJiaDaDianTag: "售货机-玩家", isNeedLoading: true },
    { desc: "剧情任务结果", gameType: GameType.TaskResult, bundleName: "MainPrefab", prefabUrl: "prefab/taskResult", dadianTag: '剧情任务结果-进入', wanJiaDaDianTag: "剧情任务结果-玩家", isNeedLoading: false },
    
    { desc: "街道", gameType: GameType.JieDao, bundleName: "JieDao", prefabUrl: "prefab/JieDao", dadianTag: '街道-进入', wanJiaDaDianTag: "街道-玩家", isNeedLoading: true },
]


export default class PrefabManage {
    public static isEntering: boolean = false
    public static curGameId: number = -1
    public static curGameGameType: number = 0
    public static loadingPrefab = null
    public static NodeArray = ['主场景']

    public static DadianListGame = []
    static timeOutHideLoad = null;
    static taskInfoView = null;

    public static reloadPrefab: Map<string, boolean>;
    public static curRelesePrefab: cc.Prefab = null

    /**
     * 加载prefab
     * @param gameType 
     * @param parentNode 
     * @param callFunc 
     * @param bMultiPopPrefab 可以多次同时弹出prefab
     * @returns 
     */


    public static getPrefabUrlByName(prefabName) {
        for (var i = 0; i < AllPrefabConfig.length; i++) {
            if (AllPrefabConfig[i].prefabUrl.includes(prefabName)) {

                return AllPrefabConfig[i].prefabUrl

            }
        }

        return null
    }
    public static loadPrefabByType(gameType, parentNode = null, callFunc = null, bMultiPopPrefab = false) {
        // console.log(gameType, 'loadPrefabByType gameType+++===')
        // if(this.isEntering){
        //     多个预制体同事加载会有问题
        //     console.error(this.isEntering, 'this.isEntering为true出错啦++===')
        //     return
        // }
        //this.isEntering = true
        let loadtime = DateUtils.getNowTime_custom()
        let customCallFunc = (prefabNode) => {
            let loadFinishtime = DateUtils.getNowTime_custom()
            callFunc && callFunc(prefabNode)
            //this.isEntering = false
            let gameName = this.getPrefabInfoByGameType(gameType).desc
            if (prefabNode.getComponent(GameBase)) {
                prefabNode.getComponent(GameBase).setCurGameName(gameName)
            }

            if (gameType == GameType.TaskInfoNode) {
                if (this.taskInfoView && cc.isValid(this.taskInfoView)) {
                    this.taskInfoView.removeFromParent()
                    this.taskInfoView.destroy()
                    this.taskInfoView = null
                }
                this.taskInfoView = prefabNode
            }

            //游戏进入打点
            console.error(gameName, (loadFinishtime - loadtime) / 1000, '游戏进入++=====gameType+++===')
            if ((loadFinishtime - loadtime) / 1000 > 0) {
                //GameReport.LoadTimeReport((loadFinishtime - loadtime) / 1000, gameName)
            }
            Common5.curGameName = gameName
            this.showLoading(false)
        }


        for (var i = 0; i < AllPrefabConfig.length; i++) {
            if (gameType == AllPrefabConfig[i].gameType) {
                //打点

                if (AllPrefabConfig[i].dadianTag && AllPrefabConfig[i].dadianTag != '') {
                    Common5.ReportDY("inLevel", AllPrefabConfig[i].dadianTag);
                }
                let dateDadian = User.getDadianListGame()
                if (AllPrefabConfig[i].wanJiaDaDianTag && AllPrefabConfig[i].wanJiaDaDianTag != '' && !dateDadian[AllPrefabConfig[i].wanJiaDaDianTag]) {
                    //console.log('逆袭剧场++++++++++++++++++====')
                    User.setDadianListGame(AllPrefabConfig[i].wanJiaDaDianTag, true)
                    Common5.ReportDY("inLevel", AllPrefabConfig[i].wanJiaDaDianTag);
                }

                this.curGameGameType = AllPrefabConfig[i].gameType
                this.showLoading(false)
                if (AllPrefabConfig[i].isNeedLoading) {
                    this.showLoading(true)

                }
                let subres = cc.assetManager.getBundle(AllPrefabConfig[i].bundleName);

                // if(gameType != GameType.PoFangZi ){

                // }

                if (subres) {
                    console.log('不加载bundle')
                    Common5.getPrefabFromBundlePrefabLayer(AllPrefabConfig[i].bundleName, AllPrefabConfig[i].prefabUrl, parentNode, customCallFunc)
                } else {
                    cc.assetManager.loadBundle(AllPrefabConfig[i].bundleName, function (err: Error, bundle: cc.AssetManager.Bundle) {
                        console.log(AllPrefabConfig[i].bundleName, 'bundleName++==')
                        if (err) {
                            //this.isEntering = false
                            console.log(err)
                            return
                        }
                        Common5.getPrefabFromBundlePrefabLayer(AllPrefabConfig[i].bundleName, AllPrefabConfig[i].prefabUrl, parentNode, customCallFunc)
                    });
                }

                if (AllPrefabConfig[i].cityNodeName) {
                    User.subUnLockGameNameTab(AllPrefabConfig[i].cityNodeName)
                }

                return
            }
        }
    }




    public static addUnlockGameName(gametype) {
        let config = PrefabManage.getPrefabInfoByGameType(gametype)
        if (config.cityNodeName) {
            User.addUnLockGameNameTab(config.cityNodeName)
        }
    }

    //收购
    public static addUnlockGameNameSG(gametype) {
        let config = PrefabManage.getPrefabInfoByGameType(gametype)
        if (config.cityNodeName) {
            User.addUnLockGameNameSGTab(config.cityNodeName)
        }
    }


    public static setEnter(isenter) {
        this.isEntering = isenter
    }
    //预加载prefab
    public static preloadPrefabByType(gameType) {
        for (var i = 0; i < AllPrefabConfig.length; i++) {
            if (gameType == AllPrefabConfig[i].gameType) {

                if (PrefabManage.reloadPrefab.has(AllPrefabConfig[i].prefabUrl)) {

                } else {
                    let subres = cc.assetManager.getBundle(AllPrefabConfig[i].bundleName);
                    if (subres) {
                        console.log('不加载bundle22')
                        subres.preload(AllPrefabConfig[i].prefabUrl, cc.Prefab, () => {
                            console.log(AllPrefabConfig[i].desc, "预加载完成")
                            PrefabManage.reloadPrefab.set(AllPrefabConfig[i].prefabUrl, true)
                        })
                    } else {
                        console.log('加载bundle22' + AllPrefabConfig[i].bundleName)
                        cc.assetManager.loadBundle(AllPrefabConfig[i].bundleName, function (err: Error, bundle: cc.AssetManager.Bundle) {
                            let bundle1 = cc.assetManager.getBundle(AllPrefabConfig[i].bundleName)
                            bundle1.preload(AllPrefabConfig[i].prefabUrl, cc.Prefab, () => {
                                console.log(AllPrefabConfig[i].desc, "预加载完成")
                                PrefabManage.reloadPrefab.set(AllPrefabConfig[i].prefabUrl, true)
                            })
                        });
                    }
                    break
                }

            }
        }
    }


    public static preloadPrefabArray(PrefabArray) {
        let prefabIndex = 0
        let preloadCallFunc = (index) => {
            if (index >= PrefabArray.length) {
                return
            }
            for (var i = 0; i < AllPrefabConfig.length; i++) {
                if (PrefabArray[index] == AllPrefabConfig[i].gameType) {

                    if (PrefabManage.reloadPrefab.has(AllPrefabConfig[i].prefabUrl)) {
                        preloadCallFunc(++prefabIndex)
                        break
                    } else {
                        let bundle = cc.assetManager.getBundle(AllPrefabConfig[i].bundleName)
                        if (bundle) {
                            bundle.preload(AllPrefabConfig[i].prefabUrl, cc.Prefab, () => {
                                console.log(AllPrefabConfig[i].desc, "预加载完成Array")
                                PrefabManage.reloadPrefab.set(AllPrefabConfig[i].prefabUrl, true)
                                preloadCallFunc(++prefabIndex)

                            })
                        } else {
                            let configDate = AllPrefabConfig[i]
                            let self = this
                            cc.assetManager.loadBundle(configDate.bundleName, function (err: Error, bundle: cc.AssetManager.Bundle) {
                                let bundle1 = cc.assetManager.getBundle(configDate.bundleName)
                                bundle1.preload(configDate.prefabUrl, cc.Prefab, () => {
                                    console.log(configDate.desc, "预加载完成Array")
                                    PrefabManage.reloadPrefab.set(configDate.prefabUrl, true)
                                    preloadCallFunc(++prefabIndex)

                                })
                            });
                        }

                        break
                    }

                }
            }

        }
        preloadCallFunc(prefabIndex)
    }

    //预加载所有prefab
    public static preloadAllPrefab() {
        let prefabIndex = 0
        let preloadCallFunc = (index) => {
            if (index >= AllPrefabConfig.length) {
                return
            }
            let bundle = cc.assetManager.getBundle(AllPrefabConfig[index].bundleName)
            if (bundle) {
                bundle.preload(AllPrefabConfig[index].prefabUrl, cc.Prefab, () => {
                    console.log(AllPrefabConfig[index].prefabUrl)
                    preloadCallFunc(++prefabIndex)
                })
            } else {
                preloadCallFunc(++prefabIndex)
            }

        }
        preloadCallFunc(prefabIndex)
    }

    public static preloadPrefabByGameType(gameTypes) {
        let prefabIndex = 0
        let preloadCallFunc = (index) => {
            if (index >= gameTypes.length) {
                return
            }

            let config = PrefabManage.getPrefabInfoByGameType(gameTypes[index])

            let bundle = cc.assetManager.getBundle(config.bundleName)
            if (bundle) {
                bundle.preload(config.prefabUrl, cc.Prefab, () => {
                    console.log(config.prefabUrl)
                    preloadCallFunc(++prefabIndex)
                })
            } else {
                preloadCallFunc(++prefabIndex)
            }

        }
        preloadCallFunc(prefabIndex)
    }



    //获取prefab信息
    public static getPrefabInfoByGameType(gameType) {
        for (var i = 0; i < AllPrefabConfig.length; i++) {
            if (gameType == AllPrefabConfig[i].gameType) {
                return AllPrefabConfig[i]
            }
        }
    }

    //获取prefab的Name
    public static getPrefabNameByGameType(gameType) {
        for (var i = 0; i < AllPrefabConfig.length; i++) {
            if (gameType == AllPrefabConfig[i].gameType) {
                return AllPrefabConfig[i].desc
            }
        }
    }

    //当前游戏名字
    public static getCurGameNameTypeByType() {
        //this.curGameGameType
        let type_ = PrefabManage.getCurGameGameType()
        let configs = PrefabManage.getPrefabInfoByGameType(type_)
        return configs.desc

    }

    public static getNodeArray() {
        return this.NodeArray
    }

    public static setNodeArray(NodeArray) {
        this.NodeArray = NodeArray
    }
    //当前游戏id
    public static getCurGameGameType() {
        return this.curGameGameType
    }

    //当前游戏id
    public static getCurGameId() {
        return this.curGameId
    }
    //通用提示文字
    public static showTextTips(contentStr, time = 1, isRich = false) {
        let canvas = cc.find('Canvas')
        let TipLayer = canvas.getChildByName("TipLayer")
        if (!TipLayer) {
            return
        }
        TipLayer.zIndex = 9999
        this.loadPrefabByType(GameType.CommonTextTips, TipLayer, (prefabNode) => {
            prefabNode.zIndex = 999
            prefabNode.getComponent(CommonTextTips).initView(contentStr, time, isRich)
        })
    }

    //金币飞动效果
    public static showMoneyFlyEffect(startNode, endNode?) {

        let canvas = cc.find('Canvas')
        let moneyFlyLayer = canvas.getChildByName("moneyFlyLayer")
        if (!moneyFlyLayer) {
            return
        }

        let script_: MoneyFlyEffect = moneyFlyLayer.getComponent('MoneyFlyEffect')
        script_.playAnim(startNode)
    }

    public static showGoldFlyEffect(startNode) {
        // let canvas = cc.find('Canvas')
        // let goldFlyLayer = canvas.getChildByName("goldFlyLayer")
        // if (!goldFlyLayer) {
        //     return
        // }

        // let script_: MoneyFlyEffect = goldFlyLayer.getComponent('MoneyFlyEffect')
        // script_.playAnim(startNode)
    }


    public static getGameTypeByName(name) {
        for (var i = 0; i < AllPrefabConfig.length; i++) {
            if (AllPrefabConfig[i].desc == name) {
                return AllPrefabConfig[i].gameType
            }
        }
        return null
    }
    public static showLoading(isShow) {
        //console.log('showLoading')
        if (cc.isValid(cc.director.getScene())) {
            let Canvas = cc.director.getScene().getChildByName("Canvas")
            if (cc.isValid(Canvas)) {
                let loadLayer = Canvas.getChildByName('loadLayer')
                if (loadLayer) {
                    loadLayer.active = isShow
                    // if(isShow == false){
                    //     if(this.timeOutHideLoad!=null){
                    //         clearTimeout(this.timeOutHideLoad); 
                    //         this.timeOutHideLoad=null
                    //     }

                    // }
                }

            }
        }


    }

    public static showLoading2(isShow) {
        if (cc.isValid(cc.director.getScene())) {
            let Canvas = cc.director.getScene().getChildByName("Canvas")
            if (cc.isValid(Canvas)) {
                let loadLayer = Canvas.getChildByName('loadLayer2')
                loadLayer.zIndex = 9999
                if (loadLayer) {
                    loadLayer.active = isShow
                }
            }
        }
    }

    //花钱效果
    public static spendMoneyEffect(startNode) {
        let canvas = cc.find('Canvas')
        let moneyLayer = canvas.getChildByName("moneyLayer")
        if (!moneyLayer) {
            return
        }
        let chaopiao1 = moneyLayer.getChildByName('chaopiao')
        let chaopiao = cc.instantiate(chaopiao1)
        chaopiao.parent = chaopiao1.parent
        Common5.setNodeToTargetPos(chaopiao, startNode)
        chaopiao.getComponent(sp.Skeleton).setAnimation(0, 'baoqian', false)
        chaopiao.getComponent(sp.Skeleton).setCompleteListener(() => {
            chaopiao.removeFromParent()
            chaopiao.destroy()
        })
    }

    //黑屏过渡效果
    public static showBlackGuoDu(callback?, endCallBack?, str?) {
        let canvas = cc.find('Canvas')
        let TipLayer = canvas.getChildByName("TipLayer")
        if (!TipLayer) {
            return
        }
        TipLayer.zIndex = 9999
        this.loadPrefabByType(GameType.blackGuoDu, TipLayer, (prefabNode) => {
            prefabNode.zIndex = 999
            prefabNode.opacity = 0
            if (str) {
                prefabNode.getChildByName("str").getComponent(cc.Label).string = str
            } else {
                prefabNode.getChildByName("str").getComponent(cc.Label).string = ''
            }
            cc.tween(prefabNode)
                .sequence(
                    cc.tween().to(2, { opacity: 255 }),
                    cc.tween().call(() => {
                        if (callback) {
                            callback()
                        }
                    }),
                    cc.tween().to(2, { opacity: 0 }),
                    cc.tween().call(() => {
                        if (endCallBack) {
                            endCallBack()
                        }
                    }),
                    cc.tween().removeSelf()
                )
                .start()
        })
    }

}