Example #1
0
    public void Init()
    {
        AudioManager.instance.GateClose();

        _myCollider.enabled = false;

        if (_doors.Count > 0 && _roomMechanic != Mechanic.CHASE)
        {
            for (int i = 0; i < _doors.Count; i++)
            {
                _doors[i].Init();
            }
        }

        if (_trapsInRoom.Count > 0)
        {
            for (int i = 0; i < _trapsInRoom.Count; i++)
            {
                _trapsInRoom[i].Init();
            }
        }

        switch (_roomMechanic)
        {
        case Mechanic.NONE:
            break;

        case Mechanic.SWARM:
            //Debug.Log("spawningStarted");
            _XMin = (transform.position.x - (transform.localScale.x * 5f));
            _ZMin = (transform.position.z - (transform.localScale.z * 5f));
            _XMax = (transform.position.x + (transform.localScale.x * 5f));
            _ZMax = (transform.position.z + (transform.localScale.z * 5f));

            //Debug.Log("" + _XMax + ", " + _XMin + ", " + _ZMax + ", " + _ZMin + ", ");
            _glhostsSpawned = 0;
            _roomStarted    = true;
            break;

        case Mechanic.CHASE:
            for (int i = 0; i < _howManyGlhostsToSpawn; i++)
            {
                SpawnEnemy(0);
            }
            break;

        case Mechanic.COLOR:
            for (int i = 0; i < _coloredBlocks.Count; i++)
            {
                _coloredBlocks[i].SetSpawner = this;
                SpawnEnemy(i);
            }
            break;

        case Mechanic.TRAP:
            for (int i = 0; i < _LeversToEndRoom.Count; i++)
            {
                _LeversToEndRoom[i].Init(this);
            }
            break;

        case Mechanic.BOSS:
            _BigBad           = _enemyPreFab.GetComponent <BossEnemy>();
            _BigBad.SetMyRoom = this;
            _managerRef.GetPlayer.GoingToIntroCutscene(_BigBad);
            break;

        case Mechanic.HEAL:
            break;

        default:
            break;
        }

        if (_secondaryMechanic != null)
        {
            if (_secondaryMechanic.GetMechanic != Mechanic.CHASE)
            {
                _secondaryMechanic.Init();
            }
            else
            {
                for (int i = 0; i < _secondaryMechanic.GetDoors.Count; i++)
                {
                    _secondaryMechanic.GetDoors[i].Init();
                }
            }
        }
    }