示例#1
0
    public void MoveAlong(List <Hex> path, int maxSteps = int.MaxValue,
                          Action callback = null, string stepSound = "MechStep")
    {
        int step = 0;

        maxSteps = Math.Min(maxSteps, path.Count);
        LTSeq stepSequence = LeanTween.sequence();
        Hex   pos          = Position;

        while (step < maxSteps)
        {
            pos = path[step];
            if (stepSound != "")
            {
                stepSequence.append(() => { FXHelper.PlaySound(stepSound); });
            }
            stepSequence.append(LeanTween.moveLocal(gameObject, Grid.GetWorldPosition(pos), 0.25f).setEaseInOutQuart());
            step++;
        }
        Position = pos;

        if (callback != null)
        {
            stepSequence.append(callback);
        }
    }
示例#2
0
    public void OnNextPage()
    {
        ++_pageIndex;
        if (_pageIndex >= _pages.Length)
        {
            StateManager.instance.OpenState(GameConstants.STATENAME_LOBBY);

            return;
        }

        LTSeq sequence = LeanTween.sequence();

        CanvasGroup prevPage = _page;

        if (prevPage != null)
        {
            prevPage.LeanCancel();

            sequence.append(prevPage.LeanAlpha(0.0f, _pageOpenTime * 0.5f));
            sequence.append(() => _page.gameObject.SetActive(false));
        }

        _page       = _pages[_pageIndex];
        _page.alpha = 0.0f;

        sequence.append(() => _page.gameObject.SetActive(true));
        sequence.append(_page.LeanAlpha(1.0f, _pageOpenTime * 0.5f));
        sequence.append(() => {
            Animator animator = _page.GetComponent <Animator>();
            if (animator != null)
            {
                animator.SetTrigger("Play");
            }
        });
    }
示例#3
0
    public void Emphasize()
    {
        float halfTime = _missionTextScalingTime * 0.5f;

        _missionText.LeanCancel();

        LTSeq sequence = LeanTween.sequence();

        sequence.append(_missionText.LeanScale(_missionTextScale, halfTime).setEaseOutBack());
        sequence.append(_missionText.LeanScale(Vector3.one, halfTime).setEaseInBack());
    }
示例#4
0
    private void Shake(UnityAction callBack = null)
    {
        Vector3 pos      = _myTF.position;
        Vector3 shakePos = new Vector3(0.1f, 0, 0);
        LTSeq   tweenSeq = LeanTween.sequence();

        tweenSeq.append(LeanTween.move(myGO, pos + shakePos, 0.1f).setEase(LeanTweenType.easeShake));
        tweenSeq.append(LeanTween.move(myGO, pos, 0.1f).setEase(LeanTweenType.easeShake));
        tweenSeq.append(() =>
        {
            callBack?.Invoke();
        });
    }
示例#5
0
    public LTDescr LoadScene(string sceneName)
    {
        LTSeq seq = LeanTween.sequence();

        if (string.IsNullOrEmpty(loadedScene) == false && loadedScene != "App")
        {
            seq.append(canvasFader.FadeIn());
            seq.append(() => StartCoroutine(UnloadAsync()));
        }

        seq.append(() => StartCoroutine(LoadAsync(sceneName)));
        seq.append(canvasFader.FadeOut());

        return(seq.tween);
    }
示例#6
0
    private void SpawnSequence(Vector3 spawnPosition)
    {
        LTSeq alphaSeq = LeanTween.sequence();

        alphaSeq.append(LeanTween.alpha(myGO, 0, 0));
        alphaSeq.append(() =>
        {
            _myTF.position = spawnPosition;
        });
        alphaSeq.append(LeanTween.alpha(myGO, 1, 0.4f));
        alphaSeq.append(() =>
        {
            ToggleCollider(true);
            Online(false);
        });
    }
示例#7
0
    public void Show()
    {
        LeanTween.alphaCanvas(canvasGroup, 0, 0);
        LeanTween.size(rt, startSize, 0);
        LeanTween.scale(rt, startScale, 0);
        LeanTween.alphaCanvas(placeholder, 0, 0);
        LeanTween.alphaCanvas(info, 0, 0);

        LTSeq sequence = LeanTween.sequence();

        sequence
        .append(() =>
        {
            LeanTween.scale(rt, Vector3.one, duration).setEase(easeIn);
            LeanTween.alphaCanvas(canvasGroup, 1, duration).setEase(easeIn);
        })
        .append(1f)
        .append(() => LeanTween.size(rt, targetSize, duration).setEase(easeIn))
        .append(duration / 2)
        .append(() => LeanTween.alphaCanvas(placeholder, 1, duration).setEase(easeIn))
        .append(1f)
        .append(() => LeanTween.alphaCanvas(placeholder, 0, duration).setEase(easeIn))
        .append(duration)
        .append(() => LeanTween.alphaCanvas(info, 1, duration).setEase(easeIn));
    }
示例#8
0
    private void DeathSequence()
    {
        float scaleTime = 0.1f;

        LeanTween.alpha(myGO, 0, 0.4f);
        LTSeq tweenSeq = LeanTween.sequence();

        tweenSeq.append(LeanTween.scale(myGO, Vector3.one, scaleTime));
        tweenSeq.append(LeanTween.scale(myGO, Vector3.one * 0.8f, scaleTime));
        tweenSeq.append(LeanTween.scale(myGO, Vector3.one, scaleTime));
        tweenSeq.append(LeanTween.scale(myGO, Vector3.one * 0.8f, scaleTime));
        tweenSeq.append(() =>
        {
            Destroy(myGO);
        });
    }
示例#9
0
    private void OnPressed(int index, Content content)
    {
        for (int i = 0; i < m_Pairs.Count; i++)
        {
            Content value = m_Pairs [i];
            LTSeq   seq   = LeanTween.sequence();
            seq.append(value.transform.LeanMove(value.defaultPosition, m_Duration));

            if (i <= index)
            {
                seq.append(value.transform.LeanMove(value.defaultPosition + new Vector3(-m_ShiftInPixel, 0.0f, 0.0f), m_Duration));
            }
        }

        m_SelectedIndex = index;

        //int direction = 0;
        //int newSelectedIndex = 0;

        //for ( int i = 0; i < m_RectTransforms.Length; i++ )
        //{
        //    RectTransform rect = m_RectTransforms [ i ];

        //    if ( rect == selectedRect )
        //    {
        //        direction = ( int ) Mathf.Sign( m_SelectedIndex - i );
        //        newSelectedIndex = i;
        //        break;
        //    }
        //}

        //if ( direction == 0 )
        //{
        //    Debug.Log( "We cant choose a color twice!" );
        //    return;
        //}

        //for ( int i = m_SelectedIndex; i != newSelectedIndex; i++ )
        //{
        //    if ( i == 0 || i == m_RectTransforms.Length - 1 )
        //        continue;

        //    RectTransform rect = m_RectTransforms [ i ];
        //    LeanTween.moveX( rect.gameObject , rect.transform.position.x + m_ShiftInPixel * direction , m_Duration );
        //}
    }
示例#10
0
    public void ShowAndHide(Action callback = null)
    {
        LTSeq sequence = LeanTween.sequence();

        sequence
        .append(() => Show())
        .append(delayBeforeHide)
        .append(() => Hide(callback));
    }
示例#11
0
    public virtual void DoDamage(LTSeq seq, Vector2 targetPos, UnitScript currentTarget, bool retaliate = false)
    {
        float targetXOffset = currentTarget.Sprite.bounds.extents.x * (!_playerScript.IsMe ? 1 : -1);

        if (retaliate)
        {
            targetXOffset = (currentTarget.Sprite.bounds.extents.x / 4) * (!_playerScript.IsMe ? -1 : 1);
        }
        seq.append(LeanTween.moveX(gameObject, targetPos.x - targetXOffset, 0.15f)
                   .setLoopPingPong(1)
                   .setEaseInQuint());
        seq.append(() =>
                   Instantiate(_impactEffectPrefab, currentTarget.Sprite.transform));
        seq.append(() =>
        {
            _unit.Attack(currentTarget.Unit, retaliate);
        });
        seq.append(0.5f);
    }
示例#12
0
    public virtual void Show(params object[] args)
    {
        gameObject.SetActive(true);

        transform.localScale = BEGIN_SCALE;

        SoundManager.Instance.PlayUISoundInstance(_soundKey);

        gameObject.LeanCancel();

        float scaleTime = _time * 0.3f;

        LTSeq sequence = LeanTween.sequence();

        sequence.append(gameObject.LeanScale(Vector3.one, scaleTime).setEaseOutBack());
        sequence.append(_time * 0.1f);
        sequence.append(gameObject.LeanScale(BEGIN_SCALE, scaleTime).setEaseInOutBack());
        sequence.append(() => gameObject.SetActive(false));
    }
示例#13
0
    public CommandLeanTween(LTDescr leanTween)
    {
        m_LeanTween = leanTween;
        m_LeanTween.pause();

        m_Seq = LeanTween.sequence();
        m_Seq
        .append(m_LeanTween)
        .append(() => m_CommandValidator.iSucceeded(this));
    }
示例#14
0
    private void AnimateAndUseCard(Card card)
    {
        GameObject toRemove = null;

        foreach (GameObject cardObject in _cardsOnHand)
        {
            CardScript cardScript = cardObject.GetComponent <CardScript>();
            if (cardScript.Card == card)
            {
                toRemove = cardObject;
                LeanTween.cancel(cardObject);

                cardScript.SetFaceForward();
                cardScript.UndoDissolve();

                cardObject.transform.position    = new Vector2(Screen.width / 2, Screen.height / 2);
                cardObject.transform.eulerAngles = Vector3.zero;
                cardObject.transform.localScale  = new Vector3(0.95f, 0.95f, 0.95f);

                GameScript.AnimationState = GameScript.GameAnimationState.Animating;
                LTSeq seq = LeanTween.sequence();
                seq.append(LeanTween
                           .scale(cardObject, new Vector3(0.55f, 0.55f, 0.55f), 0.3f)
                           .setEaseInCirc());
                seq.append(0.8f);
                seq.append(() => cardScript.Dissolve(() =>
                {
                    _player.UseCard(card);
                    GameScript.AnimationState = GameScript.GameAnimationState.Idle;
                    Destroy(cardObject);
                }, 0.3f));
                break;
            }
        }

        if (toRemove != null)
        {
            _cardsOnHand.Remove(toRemove);
        }

        ReArrangeCardsOnHand(0.5f);
    }
示例#15
0
    void ShowHUD(Vector3 position, string message, Action onComplete = null)
    {
        position = _cachedMainCamera.WorldToScreenPoint(position);

        Vector3 begin = position + _addedScoreBeginOffset;
        Vector3 end   = position + _addedScoreEndOffset;

        _addedScoreText.text = message;

        float appearTime    = _addedScoreAppearTime * HUD_APPEAR_RATIO;
        float disappearTime = _addedScoreAppearTime * (1.0f - HUD_APPEAR_RATIO);

        _addedScoreText.LeanCancel();

        LTSeq sequence = LeanTween.sequence();

        sequence.append(() => _addedScoreText.LeanAlpha(0.0f, 1.0f, appearTime));
        sequence.append(_addedScoreText.LeanScale(Vector3.zero, Vector3.one, appearTime).setEaseOutBack());
        sequence.append(HUD_DISAPPEAR_DELAY);
        sequence.append(() => _addedScoreText.LeanAlpha(0.0f, disappearTime));
        sequence.append(_addedScoreText.LeanMove(begin, end, disappearTime));

        sequence.append(() => {
            if (onComplete != null)
            {
                onComplete();
            }
        });
    }
示例#16
0
        void Start()
        {
            RectTransform albumTransform = albumIcon.GetComponent <RectTransform>();
            Vector2       startSize      = albumTransform.sizeDelta;
            Vector2       targetSize     = startSize + new Vector2(5, 5);

            LTSeq seq = LeanTween.sequence();

            seq
            .append(LeanTween.size(albumTransform, targetSize, 2))
            .append(LeanTween.size(albumTransform, startSize, 2))
            .append(LeanTween.size(albumTransform, targetSize, 2))
            .append(LeanTween.size(albumTransform, startSize, 2));
        }
示例#17
0
    private void animateButton(float duration)
    {
        float shortTween = TweenDuration * .5f;
        float longTween  = TweenDuration * 2f;
        float delay      = screenIndex == 1 ? Mathf.Max(duration - longTween, 0) : 0;

        if (screenIndex > 1)
        {
            RectTransform oldBtnRect = MenuButtons[screenIndex - 2].GetComponent <RectTransform>();
            LeanTween.scale(oldBtnRect, new Vector3(1f, 1f, 1f), longTween)
            .setEaseInOutQuad();
        }
        ;

        RectTransform newBtnRect = MenuButtons[screenIndex - 1].GetComponent <RectTransform>();

        LTSeq seq = LeanTween.sequence();

        seq.append(delay);
        seq.append(
            LeanTween.scale(newBtnRect, new Vector3(1.4f, 1.4f, 1f), longTween)
            .setEaseInOutQuad()
            .setDelay(delay)
            );
        seq.append(0.75f);
        seq.append(
            LeanTween.scale(newBtnRect, new Vector3(1.3f, 1.3f, 1f), shortTween)
            .setEaseInOutQuad()
            .setLoopPingPong(1)
            .setOnComplete(() => {
            //Invoke("playVideo",0.25f);
            //coroutine = StartCoroutine(initVideo());
            Invoke("screenOpen", 0.5f);
        })
            );
    }
示例#18
0
    void CheckBoard()
    {
        if (_hoveredTiles.Count == _cells.Count)
        {
            if (onPlaced != null)
            {
                onPlaced();
            }

            for (int i = 0, max = _hoveredTiles.Count; i < max; ++i)
            {
                NumberedHexaCell cell = _cells[i];

                _hoveredTiles[i].SetCell(cell);

                LTSeq sequence = LeanTween.sequence();
                sequence.append(cell.LeanScale(CELL_PLACED_SCALE, CELL_PLACED_TIME));
                sequence.append(CELL_PLACED_DELAY);
                sequence.append(cell.LeanScale(Vector3.one, CELL_PLACED_TIME));
            }

            _cells.Clear();

            SoundManager.Instance.PlayUISoundInstance(GameConstants.FX_BLOCK_DROP);

            _cellRoot.position = _originPosition;

            GameManager.instance.CombineCells(_hoveredTiles.ToArray(), 0.25f);

            ResetHoveredTiles();
        }
        else
        {
            ReplaceToPlace();
        }
    }
示例#19
0
    IEnumerator PlayCutscene()
    {
        //Entry sequence
        shakeEffect = true;
        entryPS.Play();
        mainSrc.PlayOneShot(wooshingWindSound);
        ambientSrc.Play();
        cameraManager.Set(entryCam);
        yield return(new WaitForSeconds(entrySequenceTime));

        mainSrc.Stop();
        mainSrc.PlayOneShot(godSound);
        cameraManager.Set(godCam);
        shakeEffect = false;
        entryPS.Stop();

        //God sequence
        fakePlayer.transform.position = godStartingPos.position;
        LeanTween.moveLocalZ(cloudParent.gameObject, 223f, 3f);
        LTSeq sequence = LeanTween.sequence();

        sequence.append(LeanTween.move(fakePlayer, godFinalPos, 1.5f).setEase(LeanTweenType.easeOutCirc));
        sequence.append(LeanTween.move(fakePlayer, godStartingPos, 1.5f).setEase(LeanTweenType.easeInCirc).setOnComplete(EndSequence));
    }
示例#20
0
    public void Launch()
    {
        if (sequence != null)
        {
            return;
        }

        sequence = LeanTween.sequence();
        sequence
        .append(() => audioSource.Play())
        .append(FadeOut(0f))
        .append(FadeIn(3f))
        .append(() => background.enabled = false)
        .append(LeanTween.size(logo, new Vector2(270, 270), 5f))
        .append(FadeOut(0.5f))
        .append(() => LeanTween.dispatchEvent((int)FulementVidEventType.onFinish))
        .append(() => sequence = null);
    }
示例#21
0
    public void Hide(Action callback = null)
    {
        LTSeq sequence = LeanTween.sequence();

        sequence
        .append(() => LeanTween.alphaCanvas(info, 0, duration).setEase(easeIn))
        .append(1f)
        .append(() => LeanTween.size(rt, startSize, duration).setEase(easeIn))
        .append(1f)
        .append(() =>
        {
            LeanTween.scale(rt, startScale, duration).setEase(easeIn);
            LTDescr descr = LeanTween.alphaCanvas(canvasGroup, 0, duration).setEase(easeIn);
            if (callback != null)
            {
                descr.setOnComplete(callback);
            }
        });
    }
示例#22
0
    public virtual void AnimateAttack()
    {
        Vector3 targetPos = _currentTarget.transform.position;

        targetPos.x += (_currentTarget.Sprite.bounds.size.x) * (!_playerScript.IsMe ? 1 : -1);
        LTSeq seq = LeanTween.sequence();

        seq.append(LeanTween.move(gameObject, targetPos, 0.5f));
        seq.append(0.2f);

        DoDamage(seq, targetPos, _currentTarget);
        _currentTarget.DoDamage(seq, targetPos, this, true);

        seq.append(() => _unitSprite.flipX = !_unitSprite.flipX);
        seq.append(LeanTween.moveLocal(gameObject, Vector3.zero, 0.5f));
        seq.append(() => _unitSprite.flipX = !_unitSprite.flipX);
        seq.append(() => _unit.SetGettingReady());
        seq.append(() => _unitAction = UnitAction.Idle);
    }
示例#23
0
    private void OnMoveQueueReady(Queue <string> commands)
    {
        TaskScheduler.Instance.Queue(() =>
        {
            LTSeq sequence = LeanTween.sequence();
            while (commands.Any() && _player.Game.GameState == GameState.InProgress && _player.IsMyTurn)
            {
                string unparsedCommand = commands.Dequeue();
                string[] tokens        = unparsedCommand.Split(':');
                switch (tokens[0])
                {
                case "attack":
                    Player opponent = _player.Opponent;
                    Unit target     = opponent;
                    Unit dealer     = _player.UnitsOnField[tokens[1]];
                    if (!tokens[2].Equals("opponent"))
                    {
                        target = opponent.UnitsOnField[tokens[2]];
                    }
                    sequence.append(() => _player.RequestCommandAttack(_player.UnitsOnField[tokens[1]], target));
                    sequence.append(2f);
                    break;

                case "use_card":
                    sequence.append(() => _player.RequestUseCard(_player.CardsOnHand[int.Parse(tokens[1])]));
                    sequence.append(2f);
                    break;
                }
                sequence.append(0.5f);
            }

            if (_player.Game.GameState == GameState.InProgress)
            {
                sequence.append(() => _player.EndTurn());
            }
        });
    }
示例#24
0
 public void AddToSequence(LTSeq sequence)
 {
     sequence.append(Descriptor);
 }
示例#25
0
    //The animation for the knife stabbing. It is split into 3 parts: rising up a little, striking down, then rising back up again.
    public void StabDown()
    {
        //The lean tween sequence of animations for the knife.
        LTSeq seq = LeanTween.sequence();

        //The current lean tween animation being created and added to the sequence.
        LTDescr curLeanTweenAnim;

        //First, make the knife rise a little bit upwards to prepare to strike.
        curLeanTweenAnim = LeanTween.moveLocalY(gameObject, kh.startStabPosY + 1, 0.25f);
        curLeanTweenAnim.setEase(LeanTweenType.easeOutCubic);
        curLeanTweenAnim.setOnComplete(() =>
        {
            curEnabledAnimInSequence = 1;

            LeanTween.pause(id1);
            LeanTween.pause(id3);

            LeanTween.resume(id2);
        });
        id1 = curLeanTweenAnim.id;
        seq.append(curLeanTweenAnim);

        //Then fly downwards and hit the ground, spawning debris.
        curLeanTweenAnim = LeanTween.moveLocalY(gameObject, kh.endStabPosY, 0.25f);
        curLeanTweenAnim.setEase(LeanTweenType.easeInCubic);
        curLeanTweenAnim.setOnComplete(() =>
        {
            //Spawn 5 debris objects once the knife has hit the ground.
            for (int i = 0; i < 5; i++)
            {
                Instantiate(tileDebris, new Vector2(transform.position.x, 0), Quaternion.identity);
            }

            LeanTween.pause(id1);
            LeanTween.pause(id2);

            LeanTween.resume(id3);

            curEnabledAnimInSequence = 2;
            //Instantiate(tileDebris, new Vector2(transform.position.x, transform.position.y - (GetComponent<SpriteRenderer>().sprite.bounds.size.y / 2)), Quaternion.identity);
        });
        id2 = curLeanTweenAnim.id;
        seq.append(curLeanTweenAnim);

        //Then fly back upwards back to the starting position.
        curLeanTweenAnim = LeanTween.moveLocalY(gameObject, kh.startStabPosY, 0.5f);
        curLeanTweenAnim.setEase(LeanTweenType.easeOutCubic);
        curLeanTweenAnim.setOnComplete(() =>
        {
            curEnabledAnimInSequence = -1;
            if (!kh.finishedPanning)
            {
                StabDown();
            }
        });
        id3 = curLeanTweenAnim.id;
        seq.append(curLeanTweenAnim);

        curEnabledAnimInSequence = 0;

        LeanTween.pause(id2);
        LeanTween.pause(id3);
    }