Пример #1
0
    override protected void Spawn()
    {
        //50% шанс выпадения огненного шара, при том, что два раза подряд выпасть он не может
        isFireball = Random.value < .5f && !isFireball ? true : false;
        if (isFireball)
        {
            //Рандомно выбирается какой (сверху или снизу)
            switch (Random.Range(0, 2))
            {
            case 0:
                ElementsPool.PickFromPool("WithBottomFireBall", _transform.position, parent: _transform.parent);
                break;

            case 1:
                ElementsPool.PickFromPool("WithTopFireBall", _transform.position, parent: _transform.parent);
                break;
            }
        }
        else
        {
            ElementsPool.PickFromPool("Simple_2", _transform.position, parent: _transform.parent);
        }

        //Двигается спавнер
        currPosition.x          += TILE_LENGTH;
        _transform.localPosition = currPosition;
    }
Пример #2
0
    override protected void Spawn()
    {
        //60% шанс выпадения врага, при том, что два раза подряд выпасть он не может
        isEnemy = Random.value < .6f && !isEnemy ? true : false;
        if (isEnemy)
        {
            //Рандомно выбирается какой (змеи, робот или мина)
            switch (Random.Range(0, 3))
            {
            case 0:
                ElementsPool.PickFromPool("WithSnakes", _transform.position, parent: _transform.parent);
                break;

            case 1:
                ElementsPool.PickFromPool("WithRobot", _transform.position, parent: _transform.parent);
                break;

            case 2:
                ElementsPool.PickFromPool("WithMine", _transform.position, parent: _transform.parent);
                break;
            }
        }
        else
        {
            ElementsPool.PickFromPool("Simple_3", _transform.position, parent: _transform.parent);
        }
        //Двигается спавнер
        currPosition.x          += TILE_LENGTH;
        _transform.localPosition = currPosition;
    }
Пример #3
0
 override protected void SpawnSafe()
 {
     //Спавн обычной платформы из пула
     ElementsPool.PickFromPool("Simple_3", _transform.position, parent: _transform.parent);
     //Двигается спавнер
     currPosition.x          += TILE_LENGTH;
     _transform.localPosition = currPosition;
 }
Пример #4
0
    private void Start()
    {
        data            = DataManager.Instance.GetUserData();
        magnetTimer     = data.Magnet[1];
        doubleCoinTimer = data.DoubleCoin[1];
        shieldTimer     = data.Shield[1];
        fastRunTimer    = data.FastRun[1];

        player       = GameManager.player;
        _PTransform  = player.transform;
        objectPooler = ElementsPool.Instance;
    }
Пример #5
0
 override protected void Spawn()
 {
     //40% шанс выпадения шипа, при том, что два раза подряд выпасть он не может
     isSpike = Random.value < .4f && !isSpike ? true : false;
     if (!isSpike)
     {
         ElementsPool.PickFromPool("Simple_1", _transform.position, parent: _transform.parent);
     }
     else
     {
         ElementsPool.PickFromPool("WithSpike", _transform.position, parent: _transform.parent);
     }
     //Двигается спавнер
     currPosition.x          += TILE_LENGTH;
     _transform.localPosition = currPosition;
 }
Пример #6
0
 void Awake()
 {
     Instance = this;
 }
Пример #7
0
    private void Start()
    {
        data             = DataManager.Instance.GetUserData();
        isDoubleCoin     = false;
        laserAttackAfter = Random.Range(80, 101);
        topCoordY        = 20f;
        spawnIn          = 40f;
        _transform       = transform;
        _localPosition   = _transform.localPosition;

        isCoin        = false;
        isDiamond     = true;
        isLaserAttack = false;
        isSpike       = true;
        objectPooler  = ElementsPool.Instance;
        if (!data.isFirstTime)
        {
            currentWave = new PlatformType[6] {
                PlatformType.Normal,
                PlatformType.Empty,
                PlatformType.Empty,
                PlatformType.Empty,
                PlatformType.Empty,
                PlatformType.Empty
            };
            objectPooler.PickFromPool("Normal", spawnPoints[0].position, spawnPoints[0].rotation, transform.parent);
        }
        else
        {
            GameObject learn = Instantiate(learning, transform.parent);
            foreach (Platform plat in learn.GetComponentsInChildren <Platform>())
            {
                plat.GetComponent <Renderer>().sharedMaterial = SkinManager.platformMat;
            }
            _localPosition.y        -= 1.5f * 49f;
            _transform.localPosition = _localPosition;
            currentWave = new PlatformType[6] {
                PlatformType.Empty,
                PlatformType.Empty,
                PlatformType.Empty,
                PlatformType.Normal,
                PlatformType.Empty,
                PlatformType.Empty
            };
            objectPooler.PickFromPool("Normal", spawnPoints[3].position, spawnPoints[3].rotation, transform.parent);
        }

        _localPosition.y        -= 1.5f;
        _transform.localPosition = _localPosition;
        spawnerDistance          = Mathf.Abs(topCoordY - _localPosition.y);
        while (spawnerDistance <= spawnIn)
        {
            if (isFastRun)
            {
                currentWave = GenerateFastWaveFromPrevious(currentWave);
                SpawnWaveWithoutEnemy(currentWave, isDoubleCoin);
            }
            else
            {
                currentWave = GenerateNormalWaveFromPrevious(currentWave);
                SpawnWave(currentWave, isDoubleCoin);
            }


            //Move to next position
            _transform.localPosition = _localPosition;
            spawnerDistance          = Mathf.Abs(topCoordY - _localPosition.y);
        }
        StartCoroutine("Spawn");
    }