public void UITextSelectResult(TextInfoBean textData, List <CharacterBean> listPickCharacterData) { if (!CheckUtil.StringIsNull(textData.pre_data_minigame)) { //小游戏初始化 List <PreTypeForMiniGameBean> listPre = PreTypeForMiniGameEnumTools.GetListPreData(textData.pre_data_minigame); List <RewardTypeBean> listReward = RewardTypeEnumTools.GetListRewardData(textData.reward_data); MiniGameBaseBean miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(null, textData.pre_data_minigame, listPickCharacterData); miniGameData.listReward = listReward; switch (miniGameData.gameType) { case MiniGameEnum.Combat: MiniGameHandler.Instance.handlerForCombat.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus); MiniGameHandler.Instance.handlerForCombat.InitGame((MiniGameCombatBean)miniGameData); break; case MiniGameEnum.Debate: MiniGameHandler.Instance.handlerForDebate.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus); MiniGameHandler.Instance.handlerForDebate.InitGame((MiniGameDebateBean)miniGameData); break; } //隐藏重要NPC if (NpcHandler.Instance.buildForImportant) { NpcHandler.Instance.buildForImportant.HideNpc(); } if (NpcHandler.Instance.builderForFamily) { NpcHandler.Instance.builderForFamily.HideNpc(); } } notifyForEvent?.Invoke(NotifyEventTypeEnum.TextSelectResult, new object[] { textData }); }
/// <summary> /// 初始化打手考试 /// </summary> private MiniGameBaseBean InitBeaterGame() { MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Combat); miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, levelData.pre_data_minigame, characterData); return(miniGameData); }
/// <summary> /// 初始化厨师考试 /// </summary> private MiniGameBaseBean InitChefGame() { MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Cooking); miniGameData = PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, levelData.pre_data_minigame); //先清除数据中的指定敌人 miniGameData.listEnemyGameData.Clear(); //随机生成敌人 List <CharacterBean> listEnemyData = new List <CharacterBean>(); CharacterWorkerBaseBean characterWorkerData = characterData.baseInfo.GetWorkerInfoByType(WorkerEnum.Chef); int equipLevel = (characterWorkerData.GetLevel() + 1) / 2; for (int i = 0; i < UnityEngine.Random.Range(1, 16); i++) { CharacterBean randomEnemy = CharacterBean.CreateRandomEnemyData(100, 10, equipLevel); listEnemyData.Add(randomEnemy); } miniGameData.InitData(characterData, listEnemyData); return(miniGameData); }
/// <summary> /// 创建迷你游戏数据 /// </summary> /// <returns></returns> private List<MiniGameBaseBean> CreateMiniGameData(TrophyTypeEnum type) { List<MiniGameBaseBean> listMiniGameData = new List<MiniGameBaseBean>(); int arenaNumber = UnityEngine.Random.Range(5, 15); for (int i = 0; i < arenaNumber; i++) { MiniGameEnum gameType = MiniGameEnumTools.GetRandomMiniGameTypeForArena(); StoreInfoBean storeInfo = null; MiniGameBaseBean miniGameData = MiniGameEnumTools.GetMiniGameData(gameType); miniGameData.gameReason = MiniGameReasonEnum.Fight; switch (gameType) { case MiniGameEnum.Cooking: storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Chef); miniGameData = CreateCookingGameData((MiniGameCookingBean)miniGameData, storeInfo, type); break; case MiniGameEnum.Barrage: storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Waiter); miniGameData = CreateBarrageGameData((MiniGameBarrageBean)miniGameData, storeInfo, type); break; case MiniGameEnum.Account: storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Accountant); miniGameData = CreateAccountGameData((MiniGameAccountBean)miniGameData, storeInfo, type); break; case MiniGameEnum.Debate: storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Accost); miniGameData = CreateDebateGameData((MiniGameDebateBean)miniGameData, storeInfo, type); break; case MiniGameEnum.Combat: storeInfo = GetStoreInfoByTypeAndWorker(type, WorkerEnum.Beater); miniGameData = CreateCombatGameData((MiniGameCombatBean)miniGameData, storeInfo, type); break; } PreTypeForMiniGameEnumTools.GetMiniGameData(miniGameData, storeInfo.pre_data_minigame); //奖励添加 miniGameData.listReward = new List<RewardTypeBean>(); List<RewardTypeBean> listReward = RewardTypeEnumTools.GetListRewardData(storeInfo.reward_data); //固定奖励 List<RewardTypeBean> listFixedReward = new List<RewardTypeBean>(); //随机奖励 List<RewardTypeBean> listRandomReward = new List<RewardTypeBean>(); foreach (RewardTypeBean itemReward in listReward) { switch (itemReward.GetRewardType()) { case RewardTypeEnum.AddMoneyL: case RewardTypeEnum.AddMoneyM: case RewardTypeEnum.AddMoneyS: case RewardTypeEnum.AddArenaTrophyElementary: case RewardTypeEnum.AddArenaTrophyIntermediate: case RewardTypeEnum.AddArenaTrophyAdvanced: case RewardTypeEnum.AddArenaTrophyLegendary: if (miniGameData.winBringDownNumber > 0) { //针对多人战 奖励提升 itemReward.data = long.Parse(itemReward.data) * miniGameData.winBringDownNumber + ""; } listFixedReward.Add(itemReward); break; default: listRandomReward.Add(itemReward); break; } } miniGameData.listReward.AddRange(listFixedReward); if (!CheckUtil.ListIsNull(listRandomReward)) { RewardTypeBean randomReward = RandomUtil.GetRandomDataByList(listRandomReward); miniGameData.listReward.Add(randomReward); } //添加对应的奖杯 switch (type) { case TrophyTypeEnum.Elementary: break; case TrophyTypeEnum.Intermediate: break; case TrophyTypeEnum.Advanced: break; case TrophyTypeEnum.Legendary: break; } //设置游戏时间 if (storeInfo.mark != null) miniGameData.preGameTime = int.Parse(storeInfo.mark); //设置前置金钱 miniGameData.preMoneyL = storeInfo.price_l; miniGameData.preMoneyM = storeInfo.price_m; miniGameData.preMoneyS = storeInfo.price_s; //添加游戏数据 listMiniGameData.Add(miniGameData); } return listMiniGameData; }