IEnumerator DoActionDealGlobalCard(List <sbyte> _valueCards)
    {
        List <ICardInfo> _tmpListCardInfo             = new List <ICardInfo>();
        ICardInfo        _cardInfo                    = null;
        List <PanelCardDetailController> _tmpListCard = new List <PanelCardDetailController>();
        PanelCardDetailController        _card        = null;

        for (int i = 0; i < _valueCards.Count; i++)
        {
            _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(_valueCards[i]);
            if (_cardInfo == null)
            {
                                #if TEST
                Debug.LogError("_cardInfo is NULL : " + _valueCards[i]);
                                #endif
                continue;
            }
            _tmpListCardInfo.Add(_cardInfo);

            _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
            _card.transform.position = placeHolder_SpawnCard_Catched.position;
            _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
            _tmpListCard.Add(_card);
        }
        yield return(Yielders.Get(0.1f));

        for (int i = 0; i < _tmpListCard.Count; i++)
        {
            CoroutineChain.Start
            .Sequential(_tmpListCard[i].Move(placeHolder_GlobalCards_Catched[globalCardsPoolManager.listObjects.Count].position, 0.1f, LeanTweenType.easeOutSine, Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx() ? Poker_GamePlay_Manager.instance.myAudioInfo.sfx_DealCard : null)
                        , _tmpListCard[i].Show(_tmpListCardInfo[i]));
            globalCardsPoolManager.AddObject((MySimplePoolObjectController)_tmpListCard[i]);
            yield return(Yielders.Get(0.1f));
        }
    }
 public void Free(AudioSource audioSource, float delay = 0f)
 {
     if (audioSource != null)
     {
         LeanPool.Despawn(audioSource.gameObject, delay);
     }
 }
 public void AutoSpawnAndDespawn(GameObject prefab, Vector3 position, float timeDestroy, Transform parent = null)
 {
     if (parent != null)
     {
         ParticleSystem fx = LeanPool.Spawn(prefab, position, Quaternion.identity, parent).GetComponent <ParticleSystem>();
         //GameObject fx = LeanPool.Spawn(prefab, position, Quaternion.identity, parent);
         //if (fx.GetComponent<ParticleSystem>() != null) {
         //	fx.GetComponent<ParticleSystem>().Play();
         //}
         if (fx != null)
         {
             fx.Play();
         }
         StartCoroutine(DelayDespawn(fx.gameObject, timeDestroy));
     }
     else
     {
         ParticleSystem fx = LeanPool.Spawn(prefab, position, Quaternion.identity).GetComponent <ParticleSystem>();
         //GameObject fx = LeanPool.Spawn(prefab, position, Quaternion.identity);
         //if (fx.GetComponent<ParticleSystem>() != null) {
         //	fx.GetComponent<ParticleSystem>().Play();
         //}
         if (fx != null)
         {
             fx.Play();
         }
         StartCoroutine(DelayDespawn(fx.gameObject, timeDestroy));
     }
 }
    private void myAddTiles()
    {
        foreach (GameObject o in _tiles)
        {
            LeanPool.Despawn(o);
        }
        _tiles.Clear();
        LeanPool.Despawn(_tileContainer);
        _tileContainer = LeanPool.Spawn(TileContainerPrefab);

        Vector2 camPos = new Vector2(Camera.main.transform.position.x, Camera.main.transform.position.y);
        float   height = 2f * Camera.main.orthographicSize;
        float   width  = height * Camera.main.aspect;

        for (int y = 0; y < MapSize.y; y++)
        {
            for (int x = 0; x < MapSize.x; x++)
            {
                var yActual = y - (MapSize.y / 2) + 1;
                var xActual = x - (MapSize.x / 2) + 1;
//                print("x, y : " + xActual + ", " + yActual);

                var t = LeanPool.Spawn(TilePrefab);
                t.transform.position = new Vector3(xActual, yActual, 0);
                t.transform.SetParent(_tileContainer.transform);
                var rend = t.GetComponent <SpriteRenderer>();
                rend.sprite = _map[(int)x, (int)y].TileImage;
                _tiles.Add(t);
            }
        }
    }
 void spawnPowerUps()
 {
     if (GameManager.Instance.getGameState().Equals(GameState.States.GamePlay))
     {
         LeanPool.Spawn(Health_Powerup, powerupSpawnPositions[Random.Range(0, powerupSpawnPositions.Length)].position, Quaternion.identity);
     }
 }
Beispiel #6
0
        private TrackSection AddSection(Transform endpoint)
        {
            var position   = new Vector3(0, 0, endpoint.position.z + sectionBuilder.laneLength / 2f);
            var newSection = LeanPool.Spawn(trackSection, position, Quaternion.identity, transform);

            return(newSection);
        }
Beispiel #7
0
    private void ChanceSpawnAsteroids(AsteroidSpawnerChance asteroidList)
    {
        float chance    = Random.Range(0.0f, asteroidList.totalChance);
        float chanceAcc = 0.0f;

        var spawnList = asteroidList.asteroids;

        // switch (_tier)
        // {
        //     case 1: spawnList = asteroidTier2;
        //         break;
        // }

        foreach (var asteroid in spawnList)
        {
            if (chance < asteroid.spawnChance + chanceAcc)
            {
                var asteroidObject = LeanPool.Spawn(asteroid.asteroidPrefab,
                                                    new Vector3(Random.Range(minBounds.x, maxBounds.x), Random.Range(minBounds.y, maxBounds.y), Random.Range(minBounds.z, maxBounds.z)),
                                                    Quaternion.identity);
                asteroidObject.AddForce(Vector3.down * asteroid.asteroidFallVelocity, ForceMode.Impulse);
                // LeanPool.Despawn(asteroidObject.gameObject, asteroid.asteroidLifeDuration);
                return;
            }

            chanceAcc += asteroid.spawnChance;
        }
    }
Beispiel #8
0
    public void ShowFinish()
    {
        Debugs.LogBlue(" finish game");
        for (int i = 0; i < 3; i++)
        {
            currentPiece.transform.GetChild(i).GetComponent <SpriteRenderer>().sprite = null;
        }
        StopMoveVertical();

        countNextPiece = 0;
        countPiece     = 0;
        for (int i = 0; i < 12; i++)
        {
            for (int j = 0; j < 8; j++)
            {
                matrix[i, j]          = 0;
                listObjectBreak[i, j] = null;
                LeanPool.Despawn(matrixGameOject[i, j]);
                matrixGameOject[i, j] = null;
            }
        }
        BOL_Battle_Screen.instance.SelfDestruction();
        BOL_MainControl_Offline.instance.Back2LastScene();
        //StartCoroutine(CountDownStart());
    }
 public override void Attack_Q()
 {
     base.Attack_Q();
     animatorHero.SetTrigger(Constant.attackQ);
     vectorBow = bowObject.transform.position;
     Delay(0.7f, () =>
     {
         GameObject fxskill = LeanPool.Spawn(ListFXSkill[1].gameObject, vectorBow, Quaternion.identity);
         if (vector_competitor.x < 0 && fxskill.transform.localScale.x > 0)
         {
             fxskill.transform.localScale = new Vector3(fxskill.transform.localScale.x * -1, fxskill.transform.localScale.y);
         }
         else if (vector_competitor.x > 0 && fxskill.transform.localScale.x < 0)
         {
             fxskill.transform.localScale = new Vector3(fxskill.transform.localScale.x * -1, fxskill.transform.localScale.y);
         }
         Delay(2, () =>
         {
             LeanPool.Despawn(fxskill);
         });
         //Auto_SelfDestruction_Object_Pool(ListFXSkill[1].gameObject, vectorBow, 2);
     });
     AsheHeroQ(18, 0.7f, 0.5f, new Vector3(0, vectorBow.y, 0));
     AsheHeroQ(10, 0.7f, 0.5f, new Vector3(0, vectorBow.y + 0.5f, 0));
     AsheHeroQ(0, 0.7f, 0.5f, new Vector3(0, vectorBow.y + 1f, 0));
     AsheHeroQ(-10, 0.7f, 0.5f, new Vector3(0, vectorBow.y - 0.5f, 0));
     AsheHeroQ(-18, 0.7f, 0.5f, new Vector3(0, vectorBow.y - 1f, 0));
     Delay(1.5f, ResetData);
 }
Beispiel #10
0
 private void OnTriggerExit2D(Collider2D collision)
 {
     if (collision.tag == "Bound")
     {
         LeanPool.Despawn(this.gameObject);
     }
 }
    private void StopAndAnimateAsteroidDestruction(bool wasHit = true)
    {
        _audioSource.Play();
        if (particleSystem != null)
        {
            var particles = LeanPool.Spawn(particleSystem, transform.position, Quaternion.identity);
            LeanPool.Despawn(particles, 0.5f);
        }

        if (wasHit)
        {
            _rigidbody.velocity = Vector3.zero;
        }
        else
        {
            _rigidbody.velocity = _rigidbody.velocity * 0.1f;
        }

        DOTween.To(() => _material.GetFloat(uniformName),
                   value => _material.SetFloat(uniformName, value),
                   _lightIntensity * lightEffectPower, lightEffectTimer).OnComplete(
            () =>
        {
            DOTween.To(() => _material.GetFloat(transparencyName),
                       value => _material.SetFloat(transparencyName, value),
                       0.0f, despawnTimer * 0.9f);
            LeanPool.Despawn(gameObject, despawnTimer);
        });
    }
Beispiel #12
0
    // Use this for initialization
    void Start()
    {
        KInt timestep = 0.25f;

        Simulator.Instance.setTimeStep(timestep);
        Simulator.Instance.SetSingleTonMode(true);
        Simulator.Instance.setAgentDefaults(15, 10, 5, 5, 2, 2, KInt2.zero);

        for (int i = 0; i < agentCount; i++)
        {
            float angle = ((float)i / agentCount) * (float)System.Math.PI * 2;

            Vector3 pos       = new Vector3((float)System.Math.Cos(angle), 0, (float)System.Math.Sin(angle)) * ringSize;
            Vector3 antipodal = -pos + goalOffset;

            int sid = Simulator.Instance.addAgent((KInt2)pos, neighborDist, maxNeighbors, timeHorizon, timeHorizonObst, radius, maxSpeed, velocity);

            if (sid >= 0)
            {
                GameObject go = LeanPool.Spawn(agentPrefab, new Vector3(pos.x, 0, pos.y), Quaternion.Euler(0, angle + 180, 0));
                go.transform.parent   = transform;
                go.transform.position = pos;
                GameAgent ga = go.GetComponent <GameAgent>();
                Assert.IsNotNull(ga);
                ga.sid = sid;
                m_agentMap.Add(sid, ga);
            }
        }

        Simulator.Instance.SetNumWorkers(0);
    }
    void RefreshGlobalCardUINow()
    {
        if (pokerGamePlayData.globalCards.Count == 0)
        {
            return;
        }
        ICardInfo _cardInfo             = null;
        PanelCardDetailController _card = null;
        Vector3 _pos = Vector3.zero;

        for (int i = 0; i < pokerGamePlayData.globalCards.Count; i++)
        {
            _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(pokerGamePlayData.globalCards[i]);
            if (_cardInfo == null)
            {
                                #if TEST
                Debug.LogError("_cardInfo is NULL : " + pokerGamePlayData.globalCards[i]);
                                #endif
                continue;
            }

            _pos = placeHolder_GlobalCards_Catched[globalCardsPoolManager.listObjects.Count].position;

            _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
            _card.transform.position = _pos;
            _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
            _card.ShowNow(_cardInfo);
            globalCardsPoolManager.AddObject(_card);
        }
    }
    IEnumerator DoActionDealPlayerCard(Poker_PlayerGroup _playerGroup)
    {
        List <PanelCardDetailController> _tmpListCard = new List <PanelCardDetailController>();
        PanelCardDetailController        _card        = null;

        for (int i = 0; i < 2; i++)
        {
            _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
            _card.transform.position = placeHolder_SpawnCard_Catched.position;
            _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
            _tmpListCard.Add(_card);
        }

        yield return(Yielders.Get(0.1f));

        for (int i = 0; i < _tmpListCard.Count; i++)
        {
            if (!_playerGroup.isMe)
            {
                if (Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx())
                {
                    MyAudioManager.instance.PlaySfx(Poker_GamePlay_Manager.instance.myAudioInfo.sfx_DealCard);
                }
                CoroutineChain.Start
                .Parallel(_tmpListCard[i].Move(_playerGroup.cardCoverHoldersCatched[i].position, 0.1f, LeanTweenType.easeOutSine)
                          , _tmpListCard[i].Rotate(_playerGroup.cardCoverHoldersCatched[i].rotation.eulerAngles, 0.1f)
                          , _tmpListCard[i].ScaleTo(_playerGroup.cardCoverHoldersCatched[i].localScale, 0.1f, LeanTweenType.notUsed));
            }
            else
            {
                ICardInfo _cardInfo = null;

                for (int j = 0; j < pokerGamePlayData.listPlayerPlayingData.Count; j++)
                {
                    if (pokerGamePlayData.listPlayerPlayingData[j].isMe &&
                        pokerGamePlayData.listPlayerPlayingData[j].userData.IsEqual(_playerGroup.userData))
                    {
                        _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(pokerGamePlayData.listPlayerPlayingData[j].ownCards[i]);
                        if (_cardInfo == null)
                        {
                                                        #if TEST
                            Debug.LogError("_cardInfo is NULL : " + pokerGamePlayData.listPlayerPlayingData[j].ownCards[i]);
                                                        #endif
                            continue;
                        }
                        break;
                    }
                }

                CoroutineChain.Start
                .Parallel(_tmpListCard[i].Move(_playerGroup.ownCardHoldersCatched[i].position, 0.1f, LeanTweenType.easeOutSine
                                               , Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx() ? Poker_GamePlay_Manager.instance.myAudioInfo.sfx_DealCard : null)
                          , _tmpListCard[i].Rotate(_playerGroup.ownCardHoldersCatched[i].rotation.eulerAngles, 0.1f)
                          , _tmpListCard[i].ScaleTo(_playerGroup.ownCardHoldersCatched[i].localScale, 0.1f, LeanTweenType.notUsed))
                .Sequential(_tmpListCard[i].Show(_cardInfo));
            }
            _playerGroup.ownCardPoolManager.AddObject(_tmpListCard[i]);
            yield return(Yielders.Get(0.1f));
        }
    }
    public void CreateToast(string _textInfo, Vector3 _pos, Color _colorText, float _maxSizeW)
    {
        if (myCanvas.worldCamera == null && CoreGameManager.instance.currentSceneManager != null)
        {
            myCanvas.worldCamera = CoreGameManager.instance.currentSceneManager.cameraForConsumableScreen.mainCamera;
        }
        else
        {
            myCanvas.worldCamera = Camera.main;
        }
        //gpRaycaster.enabled = true;
        ToastController _tmpPopup = LeanPool.Spawn(toastPrefab, Vector3.zero, Quaternion.identity, pool.transform).GetComponent <ToastController>();

        _tmpPopup.transform.position = _pos;
        _tmpPopup.Init(_textInfo, _colorText, _maxSizeW, () => {
            if (toasts != null && toasts.Count > 0)
            {
                toasts.Remove(_tmpPopup);
            }
            RemovePopupActive(_tmpPopup);
        });
        MyAudioManager.instance.PlaySfx(PopupManager.Instance.myInfoAudio.sfx_Popup);
        if (toasts == null)
        {
            toasts = new List <ToastController>();
        }
        for (int i = 0; i < toasts.Count; i++)
        {
            toasts[i].SetSpeedUp();
        }
        toasts.Add(_tmpPopup);
        AddPopupActive(_tmpPopup);
    }
Beispiel #16
0
 private void DespawnAllWorldObjects()
 {
     for (int i = World_T.childCount - 1; i >= 0; i--)
     {
         LeanPool.Despawn(World_T.GetChild(i));
     }
 }
Beispiel #17
0
    private IEnumerator Spawn(int obstacleAmount, Transform parent, float delay = 1f)
    {
        yield return(null);// new WaitForSeconds(delay);

        for (int i = 0; i < obstacleAmount; i++)
        {
            Vector3 pos = transform.position + center + new Vector3(Random.Range(-size.x / 2, size.x / 2), Random.Range(-size.y / 2, size.y / 2), Random.Range(-size.z / 2, size.z / 2));

            //Vector3 groundHitPos = new Vector3();

            Ray ray = new Ray(pos, Vector3.down * 5f);

            if (Physics.Raycast(ray, out RaycastHit hitInfo, 5f))
            {
                pos = hitInfo.point;
            }

            pos = new Vector3(pos.x, pos.y + spawnHeight, pos.z);

            int choice = Random.Range(0, obstacles.Count);

            GameObject newObstacle = LeanPool.Spawn(obstacles[choice], pos, Quaternion.identity);

            currentObstacles++;

            newObstacle.transform.parent = parent;

            Debug.Log("Spawn Object");
        }
    }
Beispiel #18
0
 private void OnTriggerEnter(Collider other)
 {
     if (!other.CompareTag("Player"))
     {
         LeanPool.Despawn(gameObject);
     }
 }
Beispiel #19
0
 private void Update()
 {
     if (transform.position.x - _car.transform.position.x < DestroyThreshold)
     {
         LeanPool.Despawn(gameObject);
     }
 }
Beispiel #20
0
        ANode SpawnNode(int x, int y, NodeType type)
        {
            var node = LeanPool.Spawn(nodePrefabs[(int)type], boardParent).GetComponent <ANode>();

            ActiveNodes[x, y] = node;
            var point = new Vector2Int(x, y);

            node.name = point.ToString();
            switch (type)
            {
            case NodeType.ATTACK:
                (node as AttackNode).Init(attr.Atk, point, (NodeType)type, this);
                break;

            case NodeType.MANA:
                (node as ManaNode).Init(attr.Mana, point, (NodeType)type, this);
                break;

            case NodeType.ENERGY:
                (node as EnergyNode).Init(attr.Energy, point, (NodeType)type, this);
                break;

            case NodeType.DEFENSE:
                (node as DefenseNode).Init(attr.Def, point, (NodeType)type, this);
                break;

            case NodeType.CHEST:
                //var chestType = Random.Range(0, System.Enum.GetNames(typeof(ChestType)).Length);
                var chestType = ChestType.HP_RECOVER;
                (node as ChestNode).Init(attr.ChestNodeAttr, (ChestType)chestType, point, (NodeType)type, this);
                break;
            }
            return(node);
        }
        async void HandlePlayerVFXPlay(OnPlayerVFXPlay e)
        {
            switch (e.Type)
            {
            case NodeType.ATTACK:
                await LeanPool.Spawn(starPrefab, gamePanel).GetComponent <PlayerVFX>().Attack(e.StartPos, damageRectTF.position, starColors[(int)e.Type], fireballVel);

                break;

            case NodeType.MANA:
                await LeanPool.Spawn(starPrefab, gamePanel).GetComponent <PlayerVFX>().Attack(e.StartPos, damageRectTF.position, starColors[(int)e.Type], fireballVel);

                break;

            case NodeType.DEFENSE:
                await LeanPool.Spawn(starPrefab, gamePanel).GetComponent <PlayerVFX>().Attack(e.StartPos, defRectTF.position, starColors[(int)e.Type], fireballVel);

                break;

            case NodeType.ENERGY:
                await LeanPool.Spawn(starPrefab, gamePanel).GetComponent <PlayerVFX>().Attack(e.StartPos, energyRectTF.position, starColors[(int)e.Type], fireballVel);

                break;
            }
        }
 void SpawnNextBlock()
 {
     //_blocksQueue.Enqueue(Instantiate(_levelBlock, CountBlockSpawnPos(), Quaternion.identity));
     _blocksQueue.Enqueue(LeanPool.Spawn(_levelBlock, CountBlockSpawnPos(), Quaternion.identity));
     _blocksSpawned++;
     _levelLength = _blocksSpawned * _blockLength;
 }
 private void ResolveCollision(GameObject other)
 {
     if (other.CompareTag("BorderCollider"))
     {
         LeanPool.Despawn(this);
     }
 }
    /// <summary>
    /// 生成手牌
    /// </summary>
    /// <param name="card"></param>
    /// <param name="index"></param>
    /// <param name="isSelected"></param>
    /// <param name="type"></param>
    public void CreateCardUI(Card card, int index, bool isSelected, ShowPoint type)
    {
        //
        GameObject temp = LeanPool.Spawn(m_Prefab);

        temp.transform.localScale = new Vector3(1, 1, 1);

        CardUI cardUI = temp.GetComponent <CardUI>();

        cardUI.Card       = card;
        cardUI.IsSelected = isSelected;

        if (type == ShowPoint.Player)
        {
            cardUI.SetCardPosition(PlayPoint, index);
        }
        else if (type == ShowPoint.ComputerRight)
        {
            cardUI.SetCardPosition(ComputerRightPoint, index);
        }
        else if (type == ShowPoint.ComputerLeft)
        {
            cardUI.SetCardPosition(ComputerLeftPoint, index);
        }
        else if (type == ShowPoint.Desk)
        {
            cardUI.SetCardPosition(CreatePoint, index);
        }
    }
 public void DespawnAll()
 {
     foreach (Transform trans in rootCanvas.transform)
     {
         LeanPool.Despawn(trans.gameObject);
     }
 }
Beispiel #26
0
        override protected async void HandleShootPerformed(InputAction.CallbackContext c)
        {
            var buttonControll = c.control as ButtonControl;

            if (buttonControll.wasPressedThisFrame)
            {
                // if player can shoot face to Crosshair first and spawn trajectory and bullet
                if (Timer.IsFinished && !bShootPerformed)
                {
                    Parent.ChangeState(EHumanoidState.SHOOT_START);
                    await Parent.LookAtCrosshairAsync();

                    hs = LeanPool.Spawn(BulletPrefab).GetComponent <Hitscan>();
                    RayAttr passAttr = new RayAttr(ShootPoint.position,
                                                   (Crosshair.position - ShootPoint.position).normalized, attr.Dis);
                    hs.UpdateTrajectory(passAttr, this);
                    bShootPerformed = true;
                }
            }
            if (buttonControll.wasReleasedThisFrame)
            {
                // if player released shoot button and have shot bullet before update the bullet
                if (bShootPerformed && Timer.IsFinished)
                {
                    bShootPerformed = false;
                    Timer.Reset();
                    Parent.LookAtCrosshair();
                    RayAttr passAttr = new RayAttr(ShootPoint.position,
                                                   (Crosshair.position - ShootPoint.position).normalized, attr.Dis);
                    hs.Fire <RayAttr>(passAttr, this);
                    Parent.ChangeState(EHumanoidState.SHOOT_END);
                    hs = null;
                }
            }
        }
Beispiel #27
0
    public IEnumerator InitAllSubchapterNode()
    {
        //StartCoroutine(CheckChapterChildCount());

        DespawnAllSubchapterNode();

        if (GameManager.Instance.allSubchapterData.Count > 0)
        {
            Sequence       sequence = DOTween.Sequence();
            SubchapterNode subchapterNode;
            for (int i = 0; i < GameManager.Instance.allSubchapterData.Count; i++)
            {
                string currentSubchapterKey = GameManager.Instance.allSubchapterData.Keys.ElementAt(i);
                string chapterKey           = currentSubchapterKey.Substring(0, currentSubchapterKey.IndexOf("|"));
                Debug.Log(currentSubchapterKey);
                Debug.Log(chapterKey);
                if (chapterKey == DataManager.Instance.currentChapterName)
                {
                    SubchapterSO subchapterSO = GameManager.Instance.allSubchapterData[currentSubchapterKey];
                    subchapterNode = LeanPool.Spawn(subchapterNodePrefab, subchapterNodeParent).GetComponent <SubchapterNode>();
                    subchapterNode.InitSubchapter(subchapterSO);

                    sequence.Join(subchapterNode.transform.DOPunchScale(Vector3.one * 0.2f, 0.2f, 3, 1));
                    yield return(new WaitForSeconds(0.1f));
                }
            }
        }
    }
Beispiel #28
0
    private void CannonShoot()
    {
        var tipPosition = turretAimTip.transform.position;
        var vector      = tipPosition - turretAimBase.transform.position;

        vector.Normalize();

        void GenerateBullet(Vector3 vector3)
        {
            var bullet = LeanPool.Spawn(bulletGameObject, vector3, Quaternion.identity);

            bullet.transform.localScale = projectileScaling;
            bullet.AddForce(vector * ProjectileForce, ForceMode.Impulse);
            Destroy(bullet.gameObject, ProjectileLife);
        }

        GenerateBullet(tipPosition);

        if (_unlockedTripleCannon)
        {
            GenerateBullet(turretExtraLeft.transform.position);
            GenerateBullet(turretExtraRight.transform.position);
        }

        _canShoot = false;
        cannonAudioSource.Play();
        cooldownImage.fillAmount = 0.0f;
        cooldownImage.DOFillAmount(1.0f, CannonCoolDownTimer).OnComplete(CanShootAgain);
    }
    public void ShowHPMNSH(int valueShow, Vector3 posShow, Color colorShow)
    {
        GameObject objectShow = LeanPool.Spawn(txtShowHPMNSH, new Vector3(posShow.x, posShow.y + 1), Quaternion.identity);

        if (valueShow != 0)
        {
            objectShow.transform.GetComponent <TextMeshPro>().text = valueShow.ToString();
        }
        else
        {
            objectShow.transform.GetComponent <TextMeshPro>().text = string.Empty;
        }

        objectShow.transform.GetComponent <TextMeshPro>().color = colorShow;
        LeanTween.alpha(objectShow, 0, 0.01f).setOnComplete(() =>
        {
            LeanTween.moveLocalY(objectShow, objectShow.transform.localPosition.y + 0.5f, 0.5f).setEase(LeanTweenType.easeInBack);
            LeanTween.scale(objectShow, new Vector3(2, 2), 0.5f).setOnComplete(() =>
            {
                LeanTween.scale(objectShow, new Vector3(0.2f, 0.2f), 0.5f);
            });
            LeanTween.alpha(objectShow, 1, 0.5f).setOnComplete(() =>
            {
                LeanTween.alpha(objectShow, 0, 0.5f).setOnComplete(() =>
                {
                    LeanPool.Despawn(objectShow);
                });
            });
        });
    }
    IEnumerator DoActionDealCards(float _timeDelay)
    {
        System.TimeSpan _tmpDeltaTime = dragonTigerCasinoData.nextTimeToShowResult - System.DateTime.Now;
        if (_tmpDeltaTime.TotalSeconds <= 5)
        {
            cardDragon = LeanPool.Spawn(cardPrefab, cardDragonDealPlaceHolder.position, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardDragon.transform.position = cardDragonDealPlaceHolder.position;
            cardDragon.ResizeAgain(100, 150f);
            cardTiger = LeanPool.Spawn(cardPrefab, cardTigerDealPlaceHolder.position, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardTiger.transform.position = cardTigerDealPlaceHolder.position;
            cardTiger.ResizeAgain(100, 150f);
        }
        else
        {
            cardDragon = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardDragon.transform.position = posistionSpawnCard;
            cardDragon.ResizeAgain(100, 150f);
            cardTiger = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardTiger.transform.position = posistionSpawnCard;
            cardTiger.ResizeAgain(100, 150f);
            yield return(Yielders.Get(_timeDelay));

            yield return(CoroutineChain.Start
                         .Sequential(
                             cardDragon.Move(cardDragonDealPlaceHolder.position, 0.3f, LeanTweenType.easeOutSine, myAudioInfo.sfx_DealCard),
                             cardTiger.Move(cardTigerDealPlaceHolder.position, 0.3f, LeanTweenType.easeOutSine, myAudioInfo.sfx_DealCard)));
        }
    }