Exemplo n.º 1
0
 void Awake()
 {
     //  _gameState = GameManager.Instantiate.FindState("GameState") as GameProcess;
     _listFruits           = new List <Collider>();
     _listPositions        = new List <Vector3>();
     DistanaceBetweenFruit = ToolsRandom.GenerateArrayRandom(8, 0.9f, 1.15f);
 }
Exemplo n.º 2
0
 void Awake()
 {
     _dataStick            = GetComponent <DataObject>();
     _listFruits           = new List <Transform>();
     _listPositions        = new List <Vector3>();
     DistanaceBetweenFruit = ToolsRandom.GenerateArrayRandom(4, 1f, 1.2f);
     _isNeedMove           = true;
 }
Exemplo n.º 3
0
    IEnumerator IEnumeratorWaveFruit2(int countFruit)
    {
        Debug.Log("Start wave fruits");
        yield return(new WaitForSeconds(0.8f));

        _listCritFruit.Clear();
        _queueFruits = new Queue <GameObject>();
        _arrayFruit  = new GameObject[countFruit];

        for (int i = 0; i < countFruit; i++)
        {
            var obj = _poolManager.GetObject(PoolType.Fruit);
            _queueFruits.Enqueue(obj);
            _arrayFruit[i] = obj;
            yield return(null);
        }

        if (ToolsRandom.Choice(1f))
        {
            var critFruit = _poolManager.GetObject(PoolType.CritFruit);
            _queueFruits.Enqueue(critFruit);
            _listCritFruit.Add(critFruit);
        }

        yield return(null);

        for (int b = 0; _queueFruits.Count > 0; b = Random.Range(0, 4))
        {
            ManagerSound.Instance.PlayEffect(Track.ShotFruit, Channel.Two);

            var amountFruits = 0;
            if (b == 1 || b == 2 && ToolsRandom.Choice(0.3f))
            {
                amountFruits = Random.Range(3, Manager.Session.MaxExploisen);
            }

            else
            {
                amountFruits = Random.Range(1, Manager.Session.MaxEasy);
            }

            RespaunFruit[b].ShotFruit(_queueFruits, amountFruits, StepAngel, TimeBetweenFruit);

            yield return(new WaitForSeconds(TimeBetweenShot));
        }

        _queueFruits.Clear();

        Debug.Log("Finish wave");
        WaveFruit(countFruit);
    }
Exemplo n.º 4
0
    public void Add(Collider col)
    {
        if (!_listFruits.Contains(col.transform))
        {
            col.GetComponent <Rigidbody>().useGravity = false;
            col.transform.SetParent(transform);
            col.transform.localPosition = new Vector3(col.transform.localPosition.x, col.transform.localPosition.y, 0f);
            _listPositions.Add(StartingPosition.localPosition);
            _listFruits.Add(col.transform);
            _countFruit += 1;

            GameManager.Instance.Session.Score      = 1;
            GameManager.Instance.Session.AmountStck = 1;

            //шанс получить 10 бонусных очков
            if (!_activateEventCriticalUI && ToolsRandom.Choice(0.1f))
            {
                _activateEventCriticalUI           = true;
                GameManager.Instance.Session.Score = 10;
                EventManager.TriggerEvent("ManyFruits", "nice", gameObject);
            }

            if (_listFruits.Count > 1)
            {
                for (int i = 0; i < _listFruits.Count - 1; i++)
                {
                    _listPositions[i] = new Vector2(_listPositions[i].x, _listPositions[i].y - DistanceBetweenFruittt);
                }
            }


            if (_listFruits.Count > 2)
            {
                GameManager.Instance.Session.Score      = 10;
                GameManager.Instance.Session.AmountStck = 2;
                EventManager.TriggerEvent("ManyStick", null, gameObject);
            }

            if (_listFruits.Count > 3)
            {
                GameManager.Instance.Session.Score = 20;
                EventManager.TriggerEvent("ManyFruits", "perfect", gameObject);
            }
        }
    }
Exemplo n.º 5
0
    float RandomQanterionY(float minValue, float MaxValue)
    {
        var quanter = Random.Range(minValue, MaxValue);

        return(quanter * ToolsRandom.RandomSign());
    }