public void Remove()
    {
        int targetIndex = FtueManager.instance.modificationStepTarget - 1;

        FtueComponent[] newSteps = new FtueComponent[FtueManager.instance.steps.Count - 1];
        int             index    = 0;
        bool            removed  = false;

        for (int i = 0; i < FtueManager.instance.steps.Count; i++)
        {
            if (i != targetIndex)
            {
                newSteps[index] = FtueManager.instance.steps[i];
                index++;
            }
            else
            {
                removed = true;
            }
        }

        if (removed)
        {
            List <FtueComponent> newList = new List <FtueComponent>();
            for (int i = 0; i < newSteps.Length; i++)
            {
                newList.Add(newSteps[i]);
            }
            FtueManager.instance.steps = newList;
        }
    }
Ejemplo n.º 2
0
    public void CustomUpdate()
    {
        if (_player == null)
        {
            InitPlayer();
        }
        else
        {
            SetDistancePivot();
            SetVecUp();

            if (CheckDistancePivot())
            {
                if (!popJumping && canPopItem && !poping && transform.parent.gameObject.activeSelf)
                {
                    if (FtueManager.instance.active)
                    {
                        FtueComponent step = FtueManager.instance.currentStep;
                        if (step.popTarget == popItem.itemType && step.CanPop())
                        {
                            StartCoroutine(PopCoroutine(100f));
                        }
                        else
                        {
                            StartCoroutine(PopCoroutine(-1));
                        }
                    }
                    else
                    {
                        StartCoroutine(PopCoroutine(popPct));
                    }
                }

                SetAngle();
                SetAxis();

                SetNewPosition();

                _startTimeLerp = Time.time;
            }
            else
            {
                LerpToOriginPosition();
            }
        }
    }
    public void Add()
    {
        int targetIndex = FtueManager.instance.modificationStepTarget;

        FtueComponent[] newSteps = new FtueComponent[FtueManager.instance.steps.Count + 1];
        bool            added    = false;

        for (int i = 0; i <= FtueManager.instance.steps.Count; i++)
        {
            if (added && i >= FtueManager.instance.steps.Count)
            {
                break;
            }
            if (i == targetIndex)
            {
                added       = true;
                newSteps[i] = FtueManager.instance.stepToAdd.Copy();
            }
            else
            {
                if (added)
                {
                    newSteps[i] = FtueManager.instance.steps[i - 1];
                }
                else
                {
                    newSteps[i] = FtueManager.instance.steps[i];
                }
            }
        }

        if (added)
        {
            List <FtueComponent> newList = new List <FtueComponent>();
            for (int i = 0; i < newSteps.Length; i++)
            {
                newList.Add(newSteps[i]);
            }
            FtueManager.instance.steps = newList;
        }
    }