コード例 #1
0
        State OnCheckState()
        {
            passedTime = System.TimeSpan.Zero;
            bool isUnhold;
            var  allDishes = runtimeData.GetList <DBCraftingItem>()
                             .Where(x => x.tableUID == runtimeTable.uid)
                             .OrderBy(x => x.insertedTime)
                             .ToList();

            currentMaking = FIShareCraftFunc.GetCurrentCookingRecipe(
                easy.GlobalInfo.totalCraftedCompleteCnt,
                easy.ServerTime - runtimeTable.recipeStartedTime,
                allDishes,
                out passedTime,
                out isUnhold);
            if (currentMaking == null)
            {
                return(State.Empty);
            }
            if (isUnhold == true)
            {
                return(State.Unhold);
            }
            return(State.Making);
        }
コード例 #2
0
    public static DBCraftingItem GetCurrentCookingRecipe(int completeQueueSize, System.TimeSpan passedTime, List <DBCraftingItem> allDish, out System.TimeSpan currentPassed, out bool isUnhold)
    {
        DBCraftingItem current = null;

        isUnhold      = false;
        currentPassed = System.TimeSpan.Zero;
        int cnt = 0;

        foreach (var item in allDish)
        {
            if (cnt >= completeQueueSize)
            {
                //There is more product.. but its holding right now!
                current  = item;
                isUnhold = true;
                return(current);
            }
            if (item.reqTime < passedTime)
            {
                //This is made.
                passedTime -= item.reqTime;
                cnt++;
                continue;
            }
            //Done..
            current = item;
            break;
        }
        if (current == null)
        {
            return(null);
        }
        currentPassed = passedTime;
        return(current);
    }
コード例 #3
0
        State OnCheckState()
        {
            var upgradeCnt = staticTable.maxSlot - staticTable.minSlot;
            var curSlotCnt = runtimeTable.upgradeLv + staticTable.minSlot - 1;           // -1 is for CurrentMakingArea
            var totalAvailableUpgradeCnt = upgradeCnt - runtimeTable.upgradeLv;

            if (idx == curSlotCnt)
            {
                if (totalAvailableUpgradeCnt > 0)
                {
                    return(State.Expand);
                }
                throw new System.Exception("Cannot Come here!");
            }
            else if (idx > curSlotCnt)
            {
                return(State.CannotExpand);
            }


            var allDishes = runtimeData.GetList <DBCraftingItem>()
                            .Where(x => x.tableUID == runtimeTable.uid)
                            .OrderBy(x => x.insertedTime)
                            .ToList();

            remainingList = FIShareCraftFunc.GetRemainingDishList(
                easy.GlobalInfo.totalCraftedCompleteCnt,
                easy.ServerTime - runtimeTable.recipeStartedTime,
                allDishes
                );
//			Debug.Log("Idx="+idx.ToString()+" Remain="+remainingList.Count);
            if (idx < remainingList.Count)
            {
                //This is making..
                currentItem = remainingList[idx];
                return(State.Waiting);
            }
            currentItem = null;

            return(State.Empty);
        }