Beispiel #1
0
 protected List <NpcAIMiniGameCombatCpt> GetSelectTargetByNumber(int number, List <NpcAIMiniGameCombatCpt> listNpc)
 {
     if (number == 0)
     {
         return(listNpc);
     }
     else
     {
         return(RandomUtil.GetRandomDataByListForNumberNR(listNpc, number));
     }
 }
Beispiel #2
0
 /// <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;
 }
Beispiel #3
0
    /// <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();
    }
Beispiel #4
0
    /// <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);
    }