/// <summary>
        /// 通过[ID]二分快速查表
        /// </summary>
        /// <param name="dwID">ID</param>
        /// <returns></returns>
        public static IEnumerable <LandAndFarmDataBase> Query(this List <LandAndFarmDataBase> sorted, uint dwID)
        {
            var key = new LandAndFarmDataBase()
            {
                dwID = dwID
            };
            var comparer = new Comparer1();
            var from     = sorted.BinarySearch(key, comparer);

            if (from < 0)
            {
                yield break;
            }
            var to = from + 1;

            while (from > 0 && comparer.Compare(key, sorted[from - 1]) == 0)
            {
                from--;
            }
            while (to < sorted.Count && comparer.Compare(key, sorted[to]) == 0)
            {
                to++;
            }
            for (var i = from; i < to; i++)
            {
                yield return(sorted[i]);
            }
        }
        /// <summary>
        /// 通过[ID + 索引]二分快速查表
        /// </summary>
        /// <param name="dwID">ID</param>
        /// <param name="indexID">索引</param>
        /// <returns></returns>
        public static LandAndFarmDataBase Query(this List <LandAndFarmDataBase> sorted, uint dwID, uint indexID)
        {
            var key = new LandAndFarmDataBase()
            {
                dwID = dwID, indexID = indexID
            };
            var comparer = new Comparer2();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(LandAndFarmDataBase));
        }
Beispiel #3
0
    /// <summary>
    /// 设置可扩展条件
    /// </summary>
    void SetExtensionLbl()
    {
        IPlayer player = ClientGlobal.Instance().MainPlayer;
        int     vip    = player.GetProp((int)PlayerProp.Vip);

        List <LandAndFarmDataBase> landList = GameTableManager.Instance.GetTableList <LandAndFarmDataBase>();
        uint animalID = DataManager.Manager <HomeDataManager>().animalID;

        landList = landList.FindAll((LandAndFarmDataBase ld) => { return(ld.dwID == animalID); });

        LandAndFarmDataBase data = landList.Find((LandAndFarmDataBase ld) => { return(ld.indexID == this.m_farmId); });

        if (data.vipLimitLevel > 0)
        {
            m_lblExtension.text = "需达到VIP" + data.vipLimitLevel;
        }
        else
        {
            m_lblExtension.text = "";
        }
    }
Beispiel #4
0
    void OnClickLand(HomeEntityInfo info)
    {
        if (info.state == (int)LandState.Idle)
        {
            object data = EntityType.EntityType_Plant;
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.PlantingPanel, data: data);
        }
        else if (info.state == (int)LandState.LockCanBuy)
        {
            if (info.index == LandUnlockNum + 1)
            {
                LandAndFarmDataBase db = GameTableManager.Instance.GetTableItem <LandAndFarmDataBase>(landID, info.index);
                if (db != null)
                {
                    uint   money = db.needMoneyNum;
                    string str   = MainPlayerHelper.GetMoneyNameByType(db.costType);
                    if (!MainPlayerHelper.IsHasEnoughMoney(db.costType, money))
                    {
                        return;
                    }
                    if (!MainPlayerHelper.HasEnoughVipLevel(db.vipLimitLevel))
                    {
                        TipsManager.Instance.ShowTipsById(114503, db.vipLimitLevel);
                        return;
                    }

                    string tips = DataManager.Manager <TextManager>().GetLocalFormatText(114532, str, money);
                    TipsManager.Instance.ShowTipWindow(TipWindowType.CancelOk, tips, () =>
                    {
                        stUnlockFarmHomeUserCmd_CS cmd = new stUnlockFarmHomeUserCmd_CS();
                        cmd.unlock_index = info.index;
                        NetService.Instance.Send(cmd);
                    });
                }
            }
        }
    }