Пример #1
0
    private IEnumerator StartGame()
    {
        //总内容不多的时候尽量PreLoad所有Map到内存
        if (!string.IsNullOrEmpty(DebugMapName))
        {
            yield return(null);

            Destroy(SplashCanvas);
            Call(new Biz.Gaming.EnterCommand());
        }
        else
        {
            yield return(new WaitForSeconds(1.0f));

            GameObject GamingView = Resources.Load <GameObject>("Views/GamingView");
            Splash1.DOFade(0, 1.0f);
            Splash2.DOFade(1, 1.0f).OnComplete(() => {
                StartCoroutine(CoroutineExtension.Wait(new WaitForSeconds(1.0f), () => {
                    Destroy(SplashCanvas);
                    Call(new IndexCommand());
                }));
            });
            //Call(new IndexCommand());
        }
    }
Пример #2
0
 public void LooseLive()
 {
     if (!CoroutineExtension.GroupProcessing("LiveRestoringProcess"))
     {
         LiveRestoringProcess().ParallelCoroutinesGroup(this, "LiveRestoringProcess");
     }
     lives = Mathf.Max(lives - 1, 0);
 }
Пример #3
0
 public virtual void OnStartAttached(Rigidbody2D playerRigidbody)
 {
     StartCoroutine(CoroutineExtension.Wait(new WaitForSeconds(0.25f), () => {
         VirtualPlayer.transform.position = playerRigidbody.position;
         currentVPPos = VirtualPlayer.transform.position;
         planeAnim.Play("fly");
         IsStartFly = true;
     }));
 }
Пример #4
0
 void Start()
 {
     StartCoroutine(CoroutineExtension.Wait(new WaitForSeconds(0.5f), () => {
         float duration = 1.0f;
         //Ease ease = Ease.OutQuart;
         ContentText.DOFade(0, duration);
         ContentText.transform.DOLocalMoveY(15.0f, duration).SetRelative().OnComplete(() => {
             Destroy(this.gameObject);
         });
     }));
 }
Пример #5
0
 internal void ValidateNote()
 {
     // The note is not eligible yet
     if (CurrentRank == ValidationRank.Null)
     {
         return;
     }
     Activated          = false;
     _spriteComp.sprite = _fixedState;
     OnValidate?.Invoke(this);
     _boxCollider.enabled = false;
     StartCoroutine(CoroutineExtension.WaitSecondsAnd(1f, () => ClearNote()));
 }
Пример #6
0
 private void Start()
 {
     Content.alpha = 0;
     Content.DOFade(1, FadeInDuration);
     StartCoroutine(CoroutineExtension.Wait(new WaitForSeconds(FadeInDuration + StayDuration), () => {
         if (this)
         {
             Content.DOFade(0, FadeOutDuration).OnComplete(() => {
                 Destroy(this.gameObject);
             });
         }
     }));
 }
Пример #7
0
    IEnumerator ActionAnimations(Dictionary <int, Square> taken, int destI, int destJ, int[] shifting)
    {
        while (CoroutineExtension.GroupProcessing("actionAnim" + actionAnimId))
        {
            yield return(null);
        }
        actionAnimId++;
        squares[destI, destJ].SetPositionByIJ(destI, destJ);
        Vector3 destroyDest = squares[destI, destJ].transform.position;

        foreach (KeyValuePair <int, Square> keyValue in taken)
        {
            Square s = keyValue.Value;
            s.DestroyAfterMoveTo(destroyDest).ParallelCoroutinesGroup(this, "DestroyAfterMoveTo");
        }
        //while (CoroutineExtension.GroupProcessing("DestroyAfterMoveTo"))
        //    yield return null;
        //Debug.Log("DestroyAfterMoveTo");

        for (int j = 0; j < countX; j++)
        {
            if (shifting[j] != 0)
            {
                for (int i = shifting[j]; i > 0; i--)
                {
                    squares[i - 1, j].SetPositionByIJ(-shifting[j] + i - 1, j);
                }
            }
        }

        for (int i = 0; i < countY; i++)
        {
            for (int j = 0; j < countX; j++)
            {
                if (squares[i, j] != null)
                {
                    Square s = squares[i, j];
                    s.MoveTo(s.GetPositionByIJ()).ParallelCoroutinesGroup(this, "movingToIJ");
                    if (s.currentTransparent < 1f)
                    {
                        s.SmoothShow(0f, 1f).ParallelCoroutinesGroup(this, "movingToIJ");
                    }
                }
            }
        }
        while (CoroutineExtension.GroupProcessing("movingToIJ"))
        {
            yield return(null);
        }
        Debug.Log("movingToIJ");
    }
Пример #8
0
 IEnumerator ShowCreatedSquares()
 {
     for (int i = 0; i < countX; i++)
     {
         for (int j = 0; j < countY; j++)
         {
             squares[j, i].ShowInPlace().ParallelCoroutinesGroup(this, "showInPlace" + i);
         }
         while (CoroutineExtension.GroupProcessing("showInPlace" + i))
         {
             yield return(null);
         }
     }
 }
Пример #9
0
        private IEnumerator LoadTextures(Action onLoaded = null)
        {
            foreach (CardTypeId cardTypeId in Enum.GetValues(typeof(CardTypeId)))
            {
                LoadTexture(cardTypeId)
                .ParallelCoroutinesGroup(TextureLoadingGroupId, _coroutineRunner);
            }

            while (CoroutineExtension.IsGroupProcessing(TextureLoadingGroupId))
            {
                yield return(null);
            }


            onLoaded?.Invoke();
        }
Пример #10
0
    private IEnumerator MoveEntitiesCoroutine(Vector3Int direction)
    {
        canSwipe = false;

        foreach (MovableEntity entity in entities)
        {
            entity.Move(direction).parallel(this, "moving");
        }

        while (CoroutineExtension.inProcess("moving"))
        {
            yield return(null);
        }

        canSwipe = true;
    }
Пример #11
0
 public void OnEnterCommand(EnterCommand cmd)
 {
     StartCoroutine(CoroutineExtension.Wait(null, () => {
         EnterMap(cmd.MapIndex);
     }));
 }