예제 #1
0
    private void ClickRequirementUnitContainer(RequirementUnitContainer _container)
    {
        if (selectedUnitList.Count == _container.requirement.dishArr.Length)
        {
            List <int> list = new List <int>();

            for (int i = 0; i < selectedUnitList.Count; i++)
            {
                ControlUnit controlUnit = selectedUnitList[i];

                if (controlUnit is DishResultContainer)
                {
                    DishResultContainer container = controlUnit as DishResultContainer;

                    list.Add(container.index);
                }
                else
                {
                    DishResultBt bt = controlUnit as DishResultBt;

                    list.Add(-bt.dish.index - 1);
                }
            }

            if (client.CheckCanCompleteRequirement(list, _container.requirement))
            {
                //send command
                client.CompleteRequirement(list, _container.requirement.uid);
            }
        }

        ClearSelectedUnitList();
    }
예제 #2
0
    private void Refresh()
    {
        for (int i = 0; i < dataList.Count; i++)
        {
            DishRequirement requirement = dataList[i];

            bool getContainer = false;

            for (int m = 0; m < containerList.Count; m++)
            {
                if (containerList[m].requirement == requirement)
                {
                    getContainer = true;

                    break;
                }
            }

            if (!getContainer)
            {
                GameObject go = GameObjectFactory.Instance.GetGameObject("Assets/Resource/prefab/requirement.prefab", null);

                go.transform.SetParent(container, false);

                RequirementUnitContainer unit = go.GetComponent <RequirementUnitContainer>();

                unit.Init(core, requirement);

                containerList.Add(unit);

                int bornTick = core.tick - requirement.time;

                float x = moveDisPerTick * bornTick + max_length * 0.5f;

                (unit.transform as RectTransform).anchoredPosition = new Vector2(x, 0);
            }
        }

        for (int i = containerList.Count - 1; i > -1; i--)
        {
            RequirementUnitContainer unit = containerList[i];

            if (!dataList.Contains(unit.requirement))
            {
                containerList.RemoveAt(i);

                Disappear(unit);
            }
        }
    }
예제 #3
0
    private void GetCommandCompleteRequirement(CommandCompleteRequirement _command)
    {
        PlayerDataUnit unit = _command.isMine == client.clientIsMine ? mPlayerData : oPlayerData;

        unit.CompleteRequirement(_command);

        for (int i = requirementContainer.containerList.Count - 1; i > -1; i--)
        {
            RequirementUnitContainer container = requirementContainer.containerList[i];

            if (container.requirement.uid == _command.requirementUid)
            {
                requirementContainer.containerList.RemoveAt(i);

                Destroy(container.gameObject);

                break;
            }
        }
    }
예제 #4
0
 private void Disappear(RequirementUnitContainer _unit)
 {
     Destroy(_unit.gameObject);
 }