Example #1
0
    private void Start()
    {
        if (m_MapScriptable != null)
        {
            m_TotalSpawnWave = m_MapScriptable.Maps.SpawnWaves.Count();
        }

        if (m_GameDataListener != null)
        {
            m_GameDataListener.PlaceTotalWaveText(m_TotalSpawnWave);
            m_GameDataListener.UpdateCurrentWave(m_SpawnWaveCounter);
        }

        if (m_GameManager == null)
        {
            m_GameManager = FindObjectOfType <GameManager>();
        }

        if (m_GameDataListener == null)
        {
            m_GameDataListener = FindObjectOfType <GameDataListener>();
        }

        StartCoroutine(Spawn
                           (m_MapScriptable.Maps.SpawnWaves.First(w => w.SpawnWaveIndex == m_SpawnWaveCounter).StandardEnemyAmout,
                           m_MapScriptable.Maps.SpawnWaves.First(w => w.SpawnWaveIndex == m_SpawnWaveCounter).BigEnemeyAmout));
    }
Example #2
0
    private void Setup()
    {
        IsDead = false;

        if (m_HealthObserverable != null)
        {
            m_HealthObserverable.Health.Subscribe(HealthChange).AddTo(m_Disposables);
            m_HealthObserverable.Health.Where(playerHealth => playerHealth <= 0).Subscribe(Die).AddTo(m_Disposables);
        }

        if (m_GameDataListener == null)
        {
            m_GameDataListener = FindObjectOfType <GameDataListener>();
        }

        if (m_GameDataListener != null)
        {
            m_GameDataListener.UpdatePlayerHealth(m_HealthObserverable.Health.Value);
        }

        if (m_GameManager == null)
        {
            m_GameManager = FindObjectOfType <GameManager>();
        }
    }
Example #3
0
    private void OnEnable()
    {
        m_isDead = false;
        if (m_HealthObserverable != null)
        {
            m_HealthObserverable.Health.Subscribe(Damage).AddTo(m_Disposables);
            m_HealthObserverable.Health.Where(health => health <= 0).Subscribe(Die).AddTo(m_Disposables);
        }

        if (m_GameDataListener == null)
        {
            m_GameDataListener = FindObjectOfType <GameDataListener>();
        }

        if (m_MapScriptable != null)
        {
            m_StartPoint = m_MapScriptable.StartPoint;
            m_EndPoint   = m_MapScriptable.EndPoint;
        }

        m_StartPoint += new Vector3(0, m_Pivot, 0);
        m_EndPoint   += new Vector3(0, m_Pivot, 0);

        List <Vector2Int> accesibles = m_MapScriptable.Maps.GridCells.
                                       Where(m => m_MapScriptable.m_MapWalkableDictionary[m.ObjectType]).
                                       Select(m => new Vector2Int(m.XPos2D, m.YPos2D)).ToList();

        m_Dijkstra = new Dijkstra(accesibles);

        m_Path = m_Dijkstra.FindPath(m_StartPoint.ToVector2Int(m_MapScriptable.CellSize),
                                     m_EndPoint.ToVector2Int(m_MapScriptable.CellSize)).ToList();

        transform.position = m_StartPoint;

        m_Speed = m_EnemyTypes.Speed;
    }
Example #4
0
 private void Start()
 {
     m_PlayerTower      = FindObjectOfType <PlayerTower>();
     m_GameDataListener = FindObjectOfType <GameDataListener>();
 }