Example #1
0
    private GameObject SpawnChain(SpawnItemType spawnItemType, List <GameObject> spawnPositions = null)
    {
        _spawnChainId++;
        if (_spawnChainId >= 20)
        {
            _spawnChainId = 0;
        }

        int spawnChainAmount = Random.Range(5, 12);

        _spawnChainAmount[_spawnChainId] = spawnChainAmount;
        _spawnChainCount[_spawnChainId]  = 0;

        CurrentSpawnChain _currentSpawnChain = new CurrentSpawnChain();

        _currentSpawnChain.amountLeft              = spawnChainAmount;
        _currentSpawnChain.spawnItemType           = spawnItemType;
        _currentSpawnChain.spawnItemGameObject     = GetRandomSpawnPositionGameObject(spawnPositions);
        _currentSpawnChain.spawnItemUpGameObject   = GetSpawnPositionUpGameObject(_currentSpawnChain.spawnItemGameObject);
        _currentSpawnChain.spawnItemDownGameObject = GetSpawnPositionDownGameObject(_currentSpawnChain.spawnItemGameObject);

        //_currentSpawnChain.spawnOrder = CreateRandomSpawnOrderForChain(spawnChainAmount);

        _currentSpawnChain.amountTotal = spawnChainAmount;
        SequenceSpawnChain(_currentSpawnChain);
        return(_currentSpawnChain.spawnItemGameObject);
    }
Example #2
0
    private void SpawnGlobalBlock()
    {
        SpawnItemType     spawnItemType       = GetNextSpawnItemType("global_block");
        List <GameObject> _tempSpawnPositions = spawnPositionGameObjects.ToList()
                                                .Except(_previousSpawnPositionGameObjects).ToList();

        _previousSpawnPositionGameObjects.Clear();
        SpawnNormal(spawnItemType, _tempSpawnPositions);
    }
Example #3
0
    private GameObject SpawnNormal(SpawnItemType spawnItemType, List <GameObject> spawnPositions = null)
    {
        GameObject spawnPositionGameObject = GetRandomSpawnPositionGameObject(spawnPositions);
        GameObject spawnItemGameObject     = GetSpawnItemGameObject(spawnItemType.name);

        HellSpawn.SpawnMovingParameters spawnMovingParameters = new HellSpawn.SpawnMovingParameters();
        spawnMovingParameters.flyTime        = GetFlyTime(spawnPositionGameObject);
        spawnMovingParameters.hellSpawnSpeed = GetHellSpawnTimeScale();

        SpawnObjectAndStartMoving(spawnItemGameObject, spawnPositionGameObject, spawnMovingParameters);
        return(spawnPositionGameObject);
    }
Example #4
0
    private List <GameObject> SpawnItemFromGroup(Dictionary <string, int> spawnItemGroupWeights,
                                                 ref List <GameObject> _tempSpawnPositions,
                                                 ref List <bool> _tempSpawnPositionIndexes)
    {
        GameObject spawnPosition;
        string     _spawnItemGroupName = RollRandomItemGroupName(spawnItemGroupWeights);

        spawnItemGroupWeights.Remove(_spawnItemGroupName);
        SpawnItemType spawnItemType = GetNextSpawnItemType(_spawnItemGroupName);

        if (spawnItemType.isChain)
        {
            spawnPosition = SpawnChain(spawnItemType, _tempSpawnPositions);
        }
        else
        {
            spawnPosition = SpawnNormal(spawnItemType, _tempSpawnPositions);
        }
        _previousSpawnPositionGameObjects.Add(spawnPosition);
        _tempSpawnPositions = RemoveUnwantedSpawnPositions(spawnPosition,
                                                           spawnPositionGameObjects.ToList(),
                                                           ref _tempSpawnPositionIndexes);
        return(_tempSpawnPositions);
    }