Esempio n. 1
0
    /// <summary>
    /// 修改生命值
    /// </summary>
    /// <param name="life"></param>
    public int AddLife(int life)
    {
        characterLife += life;
        if (characterLife <= 0)
        {
            characterLife = 0;
            SetIntent(RascalIntentEnum.Leave);

            long[] shoutIds = teamData.GetShoutIds();
            TextInfoHandler.Instance.manager.GetTextForTalkByMarkId(shoutIds[1], SetTextInfoData);

            //随机获取一句喊话
            if (!CheckUtil.ListIsNull(listShoutTextInfo))
            {
                TextInfoBean textInfo = RandomUtil.GetRandomDataByList(listShoutTextInfo);
                characterShoutCpt.Shout(textInfo.content);
            }
            //快速离开
            characterMoveCpt.SetMoveSpeed(5);
        }
        else if (characterLife > characterMaxLife)
        {
            characterLife = characterMaxLife;
        }
        characterLifeCpt.SetData(characterLife, characterMaxLife);
        return(characterLife);
    }
Esempio n. 2
0
    protected static RewardTypeBean GetRandomRewardForData(List <CharacterBean> listEnemyData, RewardTypeEnum rewardType, string rewardListStr)
    {
        if (CheckUtil.StringIsNull(rewardListStr))
        {
            return(null);
        }
        List <string> listReward   = StringUtil.SplitBySubstringForListStr(rewardListStr, '|');
        string        randomReward = RandomUtil.GetRandomDataByList(listReward);
        string        rewardDataStr;

        if (randomReward.Equals("Skills"))
        {
            //如果没有传入敌人则不获取技能
            if (CheckUtil.ListIsNull(listEnemyData))
            {
                return(GetRandomRewardForData(listEnemyData, rewardType, rewardListStr));
            }
            List <long> listSkills = new List <long>();
            for (int i = 0; i < listEnemyData.Count; i++)
            {
                CharacterBean characterData = listEnemyData[i];
                listSkills.AddRange(characterData.attributes.listSkills);
            }
            long randomSkill = RandomUtil.GetRandomDataByList(listSkills);
            rewardDataStr = (1400000 + randomSkill) + "";
        }
        else
        {
            rewardDataStr = randomReward;
        }
        RewardTypeBean rewardData = new RewardTypeBean(rewardType, rewardDataStr);

        return(rewardData);
    }
Esempio n. 3
0
    /// <summary>
    /// 创建杂项事件
    /// </summary>
    public void BuildSundry()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listSundry);

        BuildSundry(teamData, npcPosition);
    }
Esempio n. 4
0
    /// <summary>
    /// 开始制造麻烦
    /// </summary>
    /// <returns></returns>
    public IEnumerator CoroutineForStartMakeTrouble()
    {
        while (rascalIntent == RascalIntentEnum.MakeTrouble || rascalIntent == RascalIntentEnum.ContinueMakeTrouble)
        {
            if (isMove)
            {
                movePosition = InnHandler.Instance.GetRandomInnPositon();
                bool canGo = CheckUtil.CheckPath(transform.position, movePosition);
                if (canGo)
                {
                    characterMoveCpt.SetDestination(movePosition);
                }
            }
            //随机获取一句喊话
            //int shoutId = Random.Range(13101, 13106);
            if (!CheckUtil.ListIsNull(listShoutTextInfo))
            {
                TextInfoBean textInfo = RandomUtil.GetRandomDataByList(listShoutTextInfo);
                characterShoutCpt.Shout(textInfo.content);
            }
            yield return(new WaitForSeconds(5));

            //时间到了就离开
            timeMakeTrouble -= 5;
            if (timeMakeTrouble <= 0)
            {
                SetIntent(RascalIntentEnum.Leave);
            }
        }
    }
Esempio n. 5
0
    /// <summary>
    /// 根据运气获取敌人装备
    /// </summary>
    /// <returns></returns>
    public static List <RewardTypeBean> GetRewardEnemyEquipForInfiniteTowers(List <CharacterBean> listEnemyData, int layer, int totalLucky)
    {
        List <RewardTypeBean> listReward = new List <RewardTypeBean>();

        if (layer % 10 == 0)
        {
            float getRate    = 0.2f + 0.001f * totalLucky;
            float randomRate = UnityEngine.Random.Range(0f, 1f);
            if (randomRate <= getRate)
            {
                CharacterBean randomEnemy = RandomUtil.GetRandomDataByList(listEnemyData);
                if (randomEnemy.equips.hatId != 0)
                {
                    listReward.Add(new RewardTypeBean(RewardTypeEnum.AddItems, randomEnemy.equips.hatId + ""));
                }
                if (randomEnemy.equips.clothesId != 0)
                {
                    listReward.Add(new RewardTypeBean(RewardTypeEnum.AddItems, randomEnemy.equips.clothesId + ""));
                }
                if (randomEnemy.equips.shoesId != 0)
                {
                    listReward.Add(new RewardTypeBean(RewardTypeEnum.AddItems, randomEnemy.equips.shoesId + ""));
                }
            }
        }
        return(listReward);
    }
Esempio n. 6
0
    /// <summary>
    /// 创建团队顾客
    /// </summary>
    public void BuildGuestTeam()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listTeamCustomer);

        BuildGuestTeam(teamData, npcPosition);
    }
Esempio n. 7
0
    /// <summary>
    /// 创建转换者事件
    /// </summary>
    public void BuildConvert()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listConvert);

        BuildConvert(teamData, npcPosition);
    }
    /// <summary>
    /// 随机获取区域类型信息
    /// </summary>
    /// <param name="areaType"></param>
    /// <returns></returns>
    public AreaTypeInfoBean GetRandomAreaTypeInfo(AreaTypeEnum areaType)
    {
        List <AreaTypeInfoBean> listData = new List <AreaTypeInfoBean>();

        switch (areaType)
        {
        case AreaTypeEnum.Base:
            listData = listAreaTypeInfoForBase;
            break;

        case AreaTypeEnum.Null:
        case AreaTypeEnum.BaseInit:
            listData = listAreaTypeInfoForNull;
            break;

        case AreaTypeEnum.Building:
            listData = listAreaTypeInfoForBuilding;
            break;

        case AreaTypeEnum.Gold:
            listData = listAreaTypeInfoForGold;
            break;
        }
        return(RandomUtil.GetRandomDataByList(listData));
    }
Esempio n. 9
0
    public void BuildTownFriendsForTeam()
    {
        Vector3     npcPosition = GetRandomStartPosition();
        NpcTeamBean teamData    = RandomUtil.GetRandomDataByList(listFriend);

        BuildTownFriendsForTeam(teamData, npcPosition);
    }
Esempio n. 10
0
    /// <summary>
    /// 随机化一个天气
    /// </summary>
    public WeatherBean RandomWeather()
    {
        WeatherTypeEnum weatherStatusRandom = WeatherTypeEnum.Sunny;

        GameTimeHandler.Instance.GetTime(out int year, out int month, out int day);

        float weatherRate = UnityEngine.Random.Range(0f, 1f);

        if (weatherRate <= 0.5f)
        {
            weatherStatusRandom = WeatherTypeEnum.Sunny;
        }
        else if (weatherRate > 0.5f && weatherRate <= 0.8f)
        {
            weatherStatusRandom = WeatherTypeEnum.Cloudy;
        }
        else
        {
            List <WeatherTypeEnum> listWeather = WeatherTypeEnumTools.GetWeahterListByMonth(month);
            weatherStatusRandom = RandomUtil.GetRandomDataByList(listWeather);
        }
        WeatherBean weatherData = new WeatherBean(weatherStatusRandom);

        SetWeather(weatherData);
        return(weatherData);
    }
Esempio n. 11
0
    /// <summary>
    /// 获取随机空闲的座位
    /// </summary>
    /// <returns></returns>
    public BuildTableCpt GetIdleTable()
    {
        if (listTableCpt == null)
        {
            return(null);
        }
        List <BuildTableCpt> idleTableList = new List <BuildTableCpt>();

        for (int i = 0; i < listTableCpt.Count; i++)
        {
            BuildTableCpt itemTable = listTableCpt[i];
            if (itemTable.tableStatus == BuildTableCpt.TableStatusEnum.Idle)
            {
                idleTableList.Add(itemTable);
            }
        }
        if (idleTableList.Count == 0)
        {
            return(null);
        }
        BuildTableCpt buildTable = RandomUtil.GetRandomDataByList(idleTableList);

        if (buildTable == null)
        {
            return(null);
        }
        buildTable.SetTableStatus(BuildTableCpt.TableStatusEnum.Ready);
        return(buildTable);
    }
Esempio n. 12
0
    /// <summary>
    /// 获取随机空闲的座位
    /// </summary>
    /// <returns></returns>
    public BuildBedCpt GetIdleBed()
    {
        if (listBedCpt == null)
        {
            return(null);
        }
        List <BuildBedCpt> idleBedList = new List <BuildBedCpt>();

        for (int i = 0; i < listBedCpt.Count; i++)
        {
            BuildBedCpt itemBed = listBedCpt[i];
            if (itemBed.GetBedStatus() == BuildBedCpt.BedStatusEnum.Idle)
            {
                idleBedList.Add(itemBed);
            }
        }
        if (idleBedList.Count == 0)
        {
            return(null);
        }
        BuildBedCpt buildBed = RandomUtil.GetRandomDataByList(idleBedList);

        buildBed.SetBedStatus(BuildBedCpt.BedStatusEnum.Ready);
        return(buildBed);
    }
Esempio n. 13
0
    public static MiniGameEnum GetRandomMiniGameTypeForArena()
    {
        List <MiniGameEnum> list = new List <MiniGameEnum>()
        {
            MiniGameEnum.Cooking, MiniGameEnum.Barrage, MiniGameEnum.Account, MiniGameEnum.Debate, MiniGameEnum.Combat
        };

        return(RandomUtil.GetRandomDataByList(list));
    }
Esempio n. 14
0
    /// <summary>
    /// 获取山顶门坐标
    /// </summary>
    /// <returns></returns>
    public Vector3 GetMountainDoorPosition()
    {
        if (CheckUtil.ListIsNull(listTownDoor))
        {
            return(Vector3.zero);
        }
        Transform tfDoor = RandomUtil.GetRandomDataByList(listMountainDoor);

        return(tfDoor.transform.position);
    }
Esempio n. 15
0
    /// <summary>
    /// 获取随机城镇门坐标
    /// </summary>
    /// <returns></returns>
    public Vector3 GetRandomTownDoorPosition()
    {
        if (CheckUtil.ListIsNull(listTownDoor))
        {
            return(Vector3.zero);
        }
        Transform tfTownDoor = RandomUtil.GetRandomDataByList(listTownDoor);

        return(GameUtil.GetTransformInsidePosition2D(tfTownDoor));
    }
Esempio n. 16
0
    /// <summary>
    /// 获取开始的随机地点
    /// </summary>
    /// <returns></returns>
    public Vector3 GetRandomStartPosition()
    {
        if (CheckUtil.ListIsNull(listStartPosition))
        {
            return(Vector3.zero);
        }
        Transform startPosition = RandomUtil.GetRandomDataByList(listStartPosition);

        return(GameUtil.GetTransformInsidePosition2D(startPosition));
    }
Esempio n. 17
0
    /// <summary>
    /// 点餐
    /// </summary>
    public override void HandleForOrderFood()
    {
        if (!characterMoveCpt.IsAutoMoveStop())
        {
            return;
        }
        //首先调整修改朝向
        SetCharacterFace(orderForCustomer.table.GetUserFace());
        //点餐
        //判断是否有团队喜欢的菜
        List <long> loveMenus = new List <long>();

        if (teamData != null)
        {
            loveMenus = teamData.GetLoveMenus();
        }
        //如果没有团队专有喜欢的菜,没有则随机点
        if (loveMenus.Count == 0)
        {
            InnHandler.Instance.OrderForFood(orderForCustomer);
        }
        else
        {
            //检测是否拥有自己喜欢的菜品
            GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
            if (gameData.CheckHasLoveMenus(loveMenus, out List <MenuOwnBean> ownLoveMenus))
            {
                //随机获取一个喜欢的菜
                MenuOwnBean loveMenu = RandomUtil.GetRandomDataByList(ownLoveMenus);
                InnHandler.Instance.OrderForFood(orderForCustomer, loveMenu);
            }
            else
            {
                //如果没有自己喜欢的菜品则点一杯茶
                //InnHandler.Instance.OrderForFood(orderForCustomer, 1);
            }
        }
        //如果有这菜
        if (orderForCustomer.foodData != null)
        {
            //喊出需要的菜品
            characterShoutCpt.Shout(orderForCustomer.foodData.name);
            //设置等待食物
            SetIntent(CustomerIntentEnum.WaitFood);
        }
        //如果没有这菜 甚至连茶都没有
        else
        {
            //如果没有菜品出售 心情直接降为不加好感
            SetMood(30, true);
            EndOrderAndLeave(true);

            characterShoutCpt.Shout(TextHandler.Instance.manager.GetTextById(13002));
        }
    }
Esempio n. 18
0
    public virtual void PlayClip()
    {
        if (clickClip.IsNull())
        {
            return;
        }
        GameConfigBean gameConfig = GameDataHandler.Instance.manager.GetGameConfig();
        AudioClip      audioClip  = RandomUtil.GetRandomDataByList(clickClip);

        AudioSource.PlayClipAtPoint(audioClip, button.transform.position, gameConfig.soundVolume);
    }
Esempio n. 19
0
 public PersonInfoBean GetRandomPersonInfoByNumber(int number)
 {
     if (dicPersonInfo.TryGetValue(number, out List <PersonInfoBean> listPersonInfo))
     {
         return(RandomUtil.GetRandomDataByList(listPersonInfo));
     }
     else
     {
         return(null);
     }
 }
Esempio n. 20
0
    public virtual void PlayClip()
    {
        if (CheckUtil.ListIsNull(clickClip))
        {
            return;
        }
        volume = GameCommonInfo.GameConfig.soundVolume;
        AudioClip audioClip = RandomUtil.GetRandomDataByList(clickClip);

        AudioSource.PlayClipAtPoint(audioClip, button.transform.position, volume);
    }
Esempio n. 21
0
    public void BuildGuestTeam(NpcTeamBean npcTeam, Vector3 npcPosition)
    {
        if (npcTeam == null)
        {
            return;
        }
        //设置小队相关
        string teamCode  = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N);
        Color  teamColor = new Color(UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f));
        //设置是否想吃
        bool isWant = IsWantEat(CustomerTypeEnum.Team);

        //获取小队成员数据
        npcTeam.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers);
        //设置小队人数(团队领袖全生成,小队成员随机生成)
        int npcNumber = UnityEngine.Random.Range(listLeader.Count + 1, listLeader.Count + 1 + npcTeam.team_number);

        for (int i = 0; i < npcNumber; i++)
        {
            CharacterBean characterData = null;
            if (i < listLeader.Count)
            {
                characterData = listLeader[i];
            }
            else
            {
                characterData = RandomUtil.GetRandomDataByList(listMembers);
            }
            //如果发现成员数据为空 默认取领导的
            if (characterData == null)
            {
                characterData = listLeader[0];
            }
            //随机生成身体数据
            characterData.body.CreateRandomEye();


            GameObject npcObj    = BuildNpc(listGuestTeamHide, objGuestTeamModel, characterData, npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f)));
            BaseNpcAI  baseNpcAI = npcObj.GetComponent <BaseNpcAI>();
            baseNpcAI.SetCharacterData(characterData);
            baseNpcAI.AddStatusIconForGuestTeam(teamColor);
            NpcAICustomerForGuestTeamCpt customerAI = baseNpcAI.GetComponent <NpcAICustomerForGuestTeamCpt>();
            customerAI.SetTeamData(teamCode, npcTeam, i, teamColor);
            if (GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.Work && isWant)
            {
                customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Want);
            }
            else
            {
                customerAI.SetIntent(NpcAICustomerCpt.CustomerIntentEnum.Walk);
            }
        }
    }
Esempio n. 22
0
    public void CreateEnemyItem()
    {
        GameObject           objModel = RandomUtil.GetRandomDataByList(listObjEnemyModel);
        GameObject           objEnemy = Instantiate(gameObject, objModel);
        UIMiniGameBirthEnemy enemy    = objEnemy.GetComponent <UIMiniGameBirthEnemy>();

        GetRandomEnemyStartAndEndPosition(out Vector3 startPosition, out Vector3 endPosition);

        //获取敌人速度
        float speedEnemy = MiniGameHandler.Instance.handlerForBirth.miniGameData.enmeySpeed;

        //设置敌人输入
        enemy.SetData(startPosition, endPosition, speedEnemy);
    }
Esempio n. 23
0
    public void HandleForWeather()
    {
        WeatherBase weather = manager.GetWeather();

        weather.weatherData.timeForWeather -= Time.deltaTime;
        if (weather.weatherData.timeForWeather <= 0)
        {
            //根据世界类型获取天气
            List <WeatherTypeEnum> weatherTypes = manager.GetWeatherTypeListByWorldType(WorldTypeEnum.Main);
            ChangeWeather(RandomUtil.GetRandomDataByList(weatherTypes), 2000);
            SystemUtil.GCCollect();
        }
        //天气更新
        weather.Update();
    }
Esempio n. 24
0
    /// <summary>
    /// 开启AI
    /// </summary>
    public void OpenAI()
    {
        //相对友方列表
        List <NpcAIMiniGameCombatCpt> relativeOurList = null;
        //相对敌人列表
        List <NpcAIMiniGameCombatCpt> relativeEnemyList = null;

        //如果是友方AI
        if (characterMiniGameData.characterType == 1)
        {
            relativeOurList   = MiniGameHandler.Instance.handlerForCombat.miniGameBuilder.GetCharacter(1);
            relativeEnemyList = MiniGameHandler.Instance.handlerForCombat.miniGameBuilder.GetCharacter(0);
        }
        //如果是敌方AI
        else if (characterMiniGameData.characterType == 0)
        {
            relativeOurList   = MiniGameHandler.Instance.handlerForCombat.miniGameBuilder.GetCharacter(0);
            relativeEnemyList = MiniGameHandler.Instance.handlerForCombat.miniGameBuilder.GetCharacter(1);
        }
        float intentRate = UnityEngine.Random.Range(0f, 1f);

        if (intentRate <= 0.5f)
        {
            //一定概率攻击
            StartCoroutine(CoroutineForIntentFight(relativeOurList, relativeEnemyList));
        }
        else
        {
            //一定概率使用技能
            List <long> skillIds = characterMiniGameData.characterData.attributes.listSkills;
            //如果没有技能 默认攻击
            if (skillIds == null || skillIds.Count == 0)
            {
                StartCoroutine(CoroutineForIntentFight(relativeOurList, relativeEnemyList));
            }
            else
            {
                Action <List <SkillInfoBean> > callBack = (listData) =>
                {
                    if (!CheckUtil.ListIsNull(listData))
                    {
                        StartCoroutine(CoroutineForIntentSkill(listData[0], relativeOurList, relativeEnemyList));
                    }
                };
                SkillInfoHandler.Instance.manager.GetSkillById(RandomUtil.GetRandomDataByList(skillIds), callBack);
            }
        }
    }
Esempio n. 25
0
 /// <summary>
 /// 获取建筑模型
 /// </summary>
 /// <param name="buildRule"></param>
 /// <returns></returns>
 public GameObject GetBuildBaseModel(List <BuildBase> listAroundBuildBase, BuildBase centerBuildBase, BuildRuleEnum buildRule)
 {
     if (dicBuildRule.TryGetValue(buildRule, out BuildBaseModelBean modelData))
     {
         if (modelData != null)
         {
             if (!CheckUtil.ListIsNull(listAroundBuildBase))
             {
                 //是否有地面方块
                 bool          hasGround       = false;
                 BuildRuleEnum centerBuildRule = centerBuildBase.buildBaseData.GetBuildRule();
                 //检测周围方块
                 for (int i = 0; i < listAroundBuildBase.Count; i++)
                 {
                     BuildBase itemBuildBase = listAroundBuildBase[i];
                     //检测是否下面有砖块,并且砖块为地基
                     if (BuildRuleEnumTool.CheckHasDown(centerBuildRule) &&
                         (itemBuildBase.buildBaseData.GetBuildType() == BuildTypeEnum.Foundation || itemBuildBase.buildBaseData.GetBuildType() == BuildTypeEnum.Ground))
                     {
                         hasGround = true;
                     }
                 }
                 //如果有地面方块,则使用地基层
                 if (hasGround)
                 {
                     if (!CheckUtil.ListIsNull(modelData.listBaseModel))
                     {
                         return(RandomUtil.GetRandomDataByList(modelData.listBaseModel));
                     }
                 }
             }
             if (!CheckUtil.ListIsNull(modelData.listObjModel))
             {
                 return(RandomUtil.GetRandomDataByList(modelData.listObjModel));
             }
         }
     }
     if (dicBuildRule.TryGetValue(BuildRuleEnum.Zero, out BuildBaseModelBean modelDataZero))
     {
         if (!CheckUtil.ListIsNull(modelDataZero.listObjModel))
         {
             return(modelDataZero.listObjModel[0]);
         }
     }
     return(null);
 }
Esempio n. 26
0
    /// <summary>
    /// 获取闲置的金币
    /// </summary>
    /// <returns></returns>
    public GoldCpt GetGoldByStatus(GoldStatusEnum goldStatus)
    {
        if (CheckUtil.ListIsNull(listGold))
        {
            return(null);
        }
        List <GoldCpt> listTemp = new List <GoldCpt>();

        for (int i = 0; i < listGold.Count; i++)
        {
            GoldCpt itemGold = listGold[i];
            if (itemGold.GetGoldStatus() == goldStatus)
            {
                listTemp.Add(itemGold);
            }
        }
        return(RandomUtil.GetRandomDataByList(listTemp));
    }
Esempio n. 27
0
    /// <summary>
    /// 获取随机一个入口附近的坐标
    /// </summary>
    /// <returns></returns>
    public Vector3 GetRandomEntrancePosition()
    {
        BuildDoorCpt buildDoor  = RandomUtil.GetRandomDataByList(GetEntranceList());
        Transform    tfEntrance = null;

        if (buildDoor != null && buildDoor.entranceObj != null)
        {
            tfEntrance = buildDoor.entranceObj.transform;
        }
        if (tfEntrance != null)
        {
            return(GameUtil.GetTransformInsidePosition2D(tfEntrance));
        }
        else
        {
            return(Vector3.zero);
        }
    }
Esempio n. 28
0
    /// <summary>
    /// 初始化基地
    /// </summary>
    /// <param name="enemyIds"></param>
    public void InitAreaTypeForBase(List <string> enemyIds)
    {
        List <GroundHexagons> listData = manager.GetListGroundHexagons();
        //首先修建友方建筑
        GroundHexagons playerBase = RandomUtil.GetRandomDataByList(listData);

        List <GroundHexagons> aroundData = manager.GetGroundHexagonsForAround(playerBase);

        for (int i = 0; i < aroundData.Count; i++)
        {
            GroundHexagons itemGroundHexagons = aroundData[i];
            //基地初始化
            SetAreaTypeForGroundHexagons(AreaTypeEnum.BaseInit, itemGroundHexagons);
            manager.AddInfluence(currentGroundData.GetPlayerBelongId(), itemGroundHexagons);
        }
        //设置区域类型
        SetAreaTypeForGroundHexagons(AreaTypeEnum.Base, playerBase);
        manager.AddInfluence(currentGroundData.GetPlayerBelongId(), playerBase);
    }
Esempio n. 29
0
    /// <summary>
    /// 随机点餐
    /// </summary>
    /// <returns></returns>
    public MenuInfoBean OrderForFood(OrderForCustomer orderForCustomer)
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
        //获取正在出售的菜品
        List <MenuOwnBean> listOwnMenu = gameData.GetMenuListForSell();

        if (listOwnMenu.Count == 0)
        {
            return(null);
        }
        //随机获取一个菜品
        MenuOwnBean menuOwnItem = RandomUtil.GetRandomDataByList(listOwnMenu);

        if (menuOwnItem == null)
        {
            return(null);
        }
        return(OrderForFood(orderForCustomer, menuOwnItem));
    }
Esempio n. 30
0
    /// <summary>
    /// 创建游戏按键
    /// </summary>
    public void CreateRandomCookingButton()
    {
        CptUtil.RemoveChildsByActive(objCookingContainer);
        mListButton.Clear();
        List <ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum> listRandomType = new List <ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum>();

        listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Left);
        listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Right);
        if (gameCookingData.cookButtonNumber > 2)
        {
            if (gameCookingData.cookButtonNumber >= 3)
            {
                listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Up);
            }
            if (gameCookingData.cookButtonNumber >= 4)
            {
                listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Down);
            }
            if (gameCookingData.cookButtonNumber >= 5)
            {
                listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.One);
            }
            if (gameCookingData.cookButtonNumber >= 6)
            {
                listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Two);
            }
            if (gameCookingData.cookButtonNumber >= 7)
            {
                listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Three);
            }
            if (gameCookingData.cookButtonNumber >= 8)
            {
                listRandomType.Add(ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum.Four);
            }
        }
        for (int i = 0; i < buttonNumber; i++)
        {
            ItemMiniGameCookingButtonCpt.MiniGameCookingButtonTypeEnum randomType = RandomUtil.GetRandomDataByList(listRandomType);
            CreateCookingButtonItem(i, randomType);
        }
        //默认第一个选中
        mListButton[0].SetSelectedStatus(true);
    }