Esempio n. 1
0
    public void Move(PlatformPosition platformPosition, float timeMultiplier = 1f, bool snap = false, bool reset = false)
    {
        CurrentPlatformPosition = platformPosition;

        if (reset)
        {
            for (var i = 0; i < Blocks.Count; i++)
            {
                Blocks[i].position = Vector3.zero;
            }
        }

        for (var i = 0; i < Blocks.Count; i++)
        {
            Vector3 posMultiplier;
            if (platformPosition == PlatformPosition.Up)
            {
                posMultiplier = new Vector3(0, BlocksPos[i], 0);
            }
            else
            {
                posMultiplier = new Vector3(0, -BlocksPos[i], 0);
            }

            var newPos = Blocks[i].position + posMultiplier;
            if (snap)
            {
                Blocks[i].position = newPos;
            }
            else
            {
                LeanTween.move(Blocks[i].gameObject, newPos, BlocksTime[i] * timeMultiplier).setEase((LeanTweenType)BlocksEase[i]);
            }
        }

        GenerateRandomMovement();
    }
Esempio n. 2
0
    public void UpdateState(PlatformPosition update)
    {
        var position  = transform.position;
        var distance  = Vector3.Distance(position, update.Position.center);
        var direction = position.x - update.Position.center.x > 0; //  > 0 - right | < 0 -left

        if (state == State.Rising || state == State.Falling || state == State.IdleUp ||
            state == State.MovingLeft ||
            state == State.MovingRight || movementLocker)
        {
            return;
        }

        var yDiff = Mathf.Abs(transform.position.y - update.Position.center.y);

        if (distance < 3.4f && distance > 2.5f && yDiff < .4f)
        {
            if (BossFightManager.BossSide == BossSide.Right)
            {
                if (direction)
                {
                    movementLocker = true;
                    StartCoroutine(Move(update.Position.center, true));
                }
            }

            if (BossFightManager.BossSide == BossSide.Left)
            {
                if (!direction)
                {
                    movementLocker = true;
                    StartCoroutine(Move(update.Position.center, false));
                }
            }
        }
    }
Esempio n. 3
0
 public void GoToNextPosition()
 {
     this.transform.position = m_nextPosition.transform.position;
     m_nextPosition          = m_nextPosition.GetNextPosition();
 }