protected List <NpcAIMiniGameCombatCpt> GetSelectTargetByNumber(int number, List <NpcAIMiniGameCombatCpt> listNpc) { if (number == 0) { return(listNpc); } else { return(RandomUtil.GetRandomDataByListForNumberNR(listNpc, number)); } }
/// <summary> /// 创建烹饪游戏数据 /// </summary> /// <param name="miniGameData"></param> /// <param name="storeInfo"></param> /// <returns></returns> private MiniGameCookingBean CreateCookingGameData(MiniGameCookingBean miniGameData, StoreInfoBean storeInfo, TrophyTypeEnum type) { switch (type) { case TrophyTypeEnum.Elementary: break; case TrophyTypeEnum.Intermediate: break; case TrophyTypeEnum.Advanced: break; case TrophyTypeEnum.Legendary: break; } //随机生成敌人 List<CharacterBean> listEnemyData = new List<CharacterBean>(); for (int i = 0; i < 15; i++) { CharacterBean randomEnemy = CharacterBean.CreateRandomWorkerData(); listEnemyData.Add(randomEnemy); } //评审人员 List<CharacterBean> listTownNpc = NpcInfoHandler.Instance.manager.GetCharacterDataByType(NpcTypeEnum.Town); PreTypeForMiniGameEnumTools.GetAllCharacter(storeInfo.pre_data_minigame, out string allCharacterIds); for (int i = 0; i < listTownNpc.Count; i++) { CharacterBean itemNpc = listTownNpc[i]; if (allCharacterIds.Contains(itemNpc.baseInfo.characterId)) { listTownNpc.Remove(itemNpc); i--; } } List<CharacterBean> listAuditerData = RandomUtil.GetRandomDataByListForNumberNR(listTownNpc, 5); miniGameData.InitData(null, listEnemyData, listAuditerData, null); return miniGameData; }
/// <summary> /// 协程-开始改变杯子 /// </summary> public IEnumerator CoroutineForStartChangeCup() { List <GambleTrickyCupItem> listCup = gambleBuilder.GetAllCup(); foreach (GambleTrickyCupItem itemCup in listCup) { itemCup.SetStatus(GambleTrickyCupItem.CupStatusEnum.Changing); } yield return(new WaitForSeconds(0.6f)); for (int i = 0; i < gambleData.changeNumber; i++) { AudioHandler.Instance.PlaySound(AudioSoundEnum.GetCard); List <GambleTrickyCupItem> listChangeCup = RandomUtil.GetRandomDataByListForNumberNR(listCup, 2); RectTransform trf1 = ((RectTransform)listChangeCup[0].transform); RectTransform trf2 = ((RectTransform)listChangeCup[1].transform); Vector2 position1 = trf1.anchoredPosition; Vector2 position2 = trf2.anchoredPosition; trf1.DOAnchorPos(position2, gambleData.changeIntervalTime); trf2.DOAnchorPos(position1, gambleData.changeIntervalTime); yield return(new WaitForSeconds(gambleData.changeIntervalTime)); } StartGame(); }
/// <summary> /// 获取烹饪游戏数据 /// </summary> /// <param name="itemPreData"></param> /// <param name="miniGameData"></param> private static void GetMiniGameDataForCook(PreTypeForMiniGameBean itemPreData, MiniGameBaseBean miniGameData) { if (miniGameData.gameType != MiniGameEnum.Cooking) { return; } MiniGameCookingBean miniGameCooking = (MiniGameCookingBean)miniGameData; //审核人员 List <CharacterBean> listAuditData = new List <CharacterBean>(); //主持人 List <CharacterBean> listCompereData = new List <CharacterBean>(); switch (itemPreData.dataType) { case PreTypeForMiniGameEnum.CookingForScore: miniGameData.winScore = int.Parse(itemPreData.data); break; case PreTypeForMiniGameEnum.CookingForStoryStartId: miniGameCooking.storyGameStartId = long.Parse(itemPreData.data); break; case PreTypeForMiniGameEnum.CookingForStoryAuditId: miniGameCooking.storyGameAuditId = long.Parse(itemPreData.data); break; case PreTypeForMiniGameEnum.CookingForAuditCharacter: long[] auditIds = StringUtil.SplitBySubstringForArrayLong(itemPreData.data, ','); listAuditData = NpcInfoHandler.Instance.manager.GetCharacterDataByIds(auditIds); //评审人员只有5位 listAuditData = RandomUtil.GetRandomDataByListForNumberNR(listAuditData, 5); //如果评审人员不够 就随机增加小镇人员 if (listAuditData.Count < 5) { int tempNumber = 5 - listAuditData.Count; List <CharacterBean> listTempCharacterData = NpcInfoHandler.Instance.manager.GetCharacterDataByType(NpcTypeEnum.Town); listAuditData.AddRange(RandomUtil.GetRandomDataByListForNumberNR(listTempCharacterData, tempNumber)); } break; case PreTypeForMiniGameEnum.CookingForCompereCharacter: long[] compereIds = StringUtil.SplitBySubstringForArrayLong(itemPreData.data, ','); listCompereData = NpcInfoHandler.Instance.manager.GetCharacterDataByIds(compereIds); break; case PreTypeForMiniGameEnum.CookingForThemeLevel: int[] themeLevels = StringUtil.SplitBySubstringForArrayInt(itemPreData.data, ','); miniGameCooking.cookingThemeLevel = RandomUtil.GetRandomDataByArray(themeLevels); break; case PreTypeForMiniGameEnum.CookingForThemeId: miniGameCooking.cookingThemeId = long.Parse(itemPreData.data); break; case PreTypeForMiniGameEnum.CookingForButtonNumber: miniGameCooking.cookButtonNumber = int.Parse(itemPreData.data); break; case PreTypeForMiniGameEnum.CookingForWinRank: miniGameCooking.winRank = int.Parse(itemPreData.data); break; } miniGameCooking.InitData(null, null, listAuditData, listCompereData); }