예제 #1
0
    public static FacilityM[] CheckFilter(FacilityM[] facilities)
    {
        if (facilities == null)
        {
            return(null);
        }
        DateTime         now  = ServerDateTime.Now;
        List <FacilityM> list = new List <FacilityM>();

        for (int i = 0; i < facilities.Length; i++)
        {
            DateTime value  = DateTime.Parse(facilities[i].openTime);
            DateTime value2 = DateTime.Parse(facilities[i].closeTime);
            if (now.CompareTo(value) >= 0 && now.CompareTo(value2) <= 0)
            {
                bool flag;
                if ("0" != facilities[i].releaseId)
                {
                    FacilityConditionM[] facilityCondition = FarmDataManager.GetFacilityCondition(facilities[i].releaseId);
                    flag = FacilityShopFilter.CheckDisplayCondition(facilityCondition);
                }
                else
                {
                    flag = true;
                }
                if (flag)
                {
                    list.Add(facilities[i]);
                }
            }
        }
        return(list.ToArray());
    }
예제 #2
0
    private static bool CheckFacilityConditionFacilityNum(string facilityId, string num, string operatorType)
    {
        List <UserFacility> userFacilityList = Singleton <UserDataMng> .Instance.GetUserFacilityList();

        if (userFacilityList != null)
        {
            int id  = int.Parse(facilityId);
            int arg = userFacilityList.Count((UserFacility x) => x.facilityId == id && x.level != 0);
            return(FacilityShopFilter.CheckFacilityConditionOperatorType(int.Parse(num), operatorType, arg));
        }
        return(false);
    }
예제 #3
0
 private static bool CheckDisplayCondition(FacilityConditionM[] facilityConditions)
 {
     for (int i = 0; i < facilityConditions.Length; i++)
     {
         if (!("0" == facilityConditions[i].viewFlg))
         {
             return(true);
         }
         if (FacilityShopFilter.CheckFacilityCondition(facilityConditions[i]))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #4
0
 private void InitFacilityShop(Action <int> closeEvent, float sizeX, float sizeY, float showTime)
 {
     base.PartsTitle.SetTitle(StringMaster.GetString("FacilityShopTitle"));
     base.MultiTab.InitMultiTab(new List <Action <int> >
     {
         new Action <int>(this.OnTouchedTabFacility),
         new Action <int>(this.OnTouchedTabDecoration)
     }, new List <string>
     {
         StringMaster.GetString("FacilityShopTitle"),
         StringMaster.GetString("FacilityShopDecoration")
     });
     base.MultiTab.SetOnOffColor(new Color(0.980392158f, 0.945098042f, 0f, 1f), new Color(1f, 1f, 1f, 1f));
     base.MultiTab.SetFocus((int)CMD_FacilityShop.lastFocusTab);
     base.MultiTab.SetActiveAlertIcon(new bool[]
     {
         this.ExistNewFacility(),
         this.ExistNewDecoration()
     });
     FacilityM[] array  = FarmDataManager.GetFacilityShopGoods(FacilityType.FACILITY);
     FacilityM[] array2 = FarmDataManager.GetFacilityShopGoods(FacilityType.DECORATION);
     array  = FacilityShopFilter.CheckFilter(array);
     array2 = FacilityShopFilter.CheckFilter(array2);
     array  = this.SortFacilityShopItemData(this.newFacilityItemList, array);
     array2 = this.SortFacilityShopItemData(this.newFacilityItemList, array2);
     this.CreateFacilityList(this.facilityList, array.Length);
     this.SetFacilityDetail(this.facilityList, array);
     this.CreateFacilityList(this.decorationList, array2.Length);
     this.SetFacilityDetail(this.decorationList, array2);
     this.facilityListOriginalItem.SetActive(false);
     if (CMD_FacilityShop.lastFocusTab == CMD_FacilityShop.FacilityShopTab.FACILITY)
     {
         this.viewedList.facility = true;
         this.decorationList.gameObject.SetActive(false);
     }
     else
     {
         this.viewedList.decoration = true;
         this.facilityList.gameObject.SetActive(false);
     }
     base.Show(closeEvent, sizeX, sizeY, showTime);
     GUIFace.instance.HideGUI();
     GUIFaceIndicator.instance.HideLocator(true);
     this.playerInfo.SetPlayerInfo();
 }
예제 #5
0
    public static bool CheckFacilityCondition(FacilityConditionM condition)
    {
        switch (int.Parse(condition.conditionType))
        {
        case 1:
            return(FacilityShopFilter.CheckFacilityConditionKey(condition.facilityConditionId));

        case 2:
            return(FacilityShopFilter.CheckFacilityConditionWorldArea(condition.conditionParam));

        case 3:
            return(FacilityShopFilter.CheckFacilityConditionFacilityNum(condition.conditionParam, condition.conditionValue, condition.operatorType));

        case 4:
            return(FacilityShopFilter.CheckFacilityConditionFacilityLevel(condition.conditionParam, condition.conditionValue, condition.operatorType));

        case 5:
            return(FacilityShopFilter.CheckFacilityConditionKey(condition.facilityConditionId));

        default:
            return(false);
        }
    }
예제 #6
0
    private static bool CheckFacilityConditionFacilityLevel(string facilityId, string level, string operatorType)
    {
        List <UserFacility> userFacilityList = Singleton <UserDataMng> .Instance.GetUserFacilityList();

        if (userFacilityList != null)
        {
            int id = int.Parse(facilityId);
            int lv = int.Parse(level);
            return(userFacilityList.Where((UserFacility x) => x.facilityId == id).Any((UserFacility x) => FacilityShopFilter.CheckFacilityConditionOperatorType(lv, operatorType, x.level)));
        }
        return(false);
    }