/// <summary>Lässt das Spielfeld Spawnen</summary>
    /// <param name="_babySettings">Struct das alle Eigenschaften der Altersgruppe: Baby beinhaltet</param>
    /// <param name="_teenagerSettings">Struct das alle Eigenschaften der Altersgruppe: Jugendlich beinhaltet</param>
    /// <param name="_adultSettings">Struct das alle Eigenschaften der Altersgruppe: Erwachsen beinhaltet</param>
    /// <param name="_grandparents">Struct das alle Eigenschaften der Altersgruppe: Senior beinhaltet</param>
    /// <param name="_deadColor">Farbe die die Zelle haben soll wenn sie gestorben ist</param>
    /// <remarks>Startet das Spawnen des Spielfeldes, die Größe sowie die Position des Spielfeldes werden dabei im Unity Inspector bei dem Script eingestellt</remarks>
    public void CreateField(AgeSettings _babySettings, AgeSettings _teenagerSettings, AgeSettings _adultSettings, AgeSettings _grandpartensSettings, Color _deadColor)
    {
        //Werte für die StartPosition sowie Feldgröße zwischenspeichern
        Vector3 TempSpawnPos = m_StartPos;

        m_Field = new Cell[(int)m_FieldSize.x, (int)m_FieldSize.y];

        //Das Spawnen des Spielfeldes starten angefangen in der linken oberen Ecke
        for (int x = 0; x < m_FieldSize.x; x++)
        {
            //Alle Zellen in Y Richtung Spawnen lassen
            for (int y = 0; y < m_FieldSize.y; y++)
            {
                //Zelle Spawnen lassen
                GameObject TempCell = Instantiate(m_CellPrefab, TempSpawnPos, Quaternion.identity) as GameObject;
                TempCell.name = string.Format("Cell x:{0}, y:{1}", x, y);

                //Sich das Zellen Script von der gespawnten Zelle holen und die Zelle dann gleich Initialisieren und somit Spiel bereit machen
                Cell TempCellScript = TempCell.GetComponent <Cell>();
                if (!TempCellScript)
                {
                    Debug.LogError("Die Zelle mit dem Namen: " + TempCell.name + " hat kein Zellen Script! Das erstellen des Grids wird beendet.");
                    enabled = false;
                }

                TempCellScript.InitCell(this, new Vector2(x, y), _babySettings, _teenagerSettings, _adultSettings, _grandpartensSettings, _deadColor);
                m_Field[x, y] = TempCellScript;                    //Die Zelle dem Spielfeld zuweisen

                TempSpawnPos.y += (m_Field[0, y].CellHeight) * -1; //Die Position der nächsten Zelle in der Reihe zuweisen. Unter der aktuell gespawnten Zelle
            }

            TempSpawnPos.x += (m_Field[x, 0].CellWidth); //Eine Zelle nach rechts rutschen damit dort als nächstes allen Zellen in Y Richtung gespawnt werden
            TempSpawnPos.y  = m_StartPos.y;              //Start Richtung für das Spawnen wieder zurücksetzen damit wieder oben begonnen wird mit dem Spawnen
        }
    }
    /// <summary>Lässt das Spielfeld Spawnen</summary>
    /// <param name="_startPos">Start der Spawnposition. Ausgangspunkt ist die erste Zelle in der oberen linke Reihe</param>
    /// <param name="_cellCount">Die Größe des Spielfeldes. Wie viele Zellen soll das Feld in X und Y Richtung haben</param>
    /// <param name="_babySettings">Struct das alle Eigenschaften der Altersgruppe: Baby beinhaltet</param>
    /// <param name="_teenagerSettings">Struct das alle Eigenschaften der Altersgruppe: Jugendlich beinhaltet</param>
    /// <param name="_adultSettings">Struct das alle Eigenschaften der Altersgruppe: Erwachsen beinhaltet</param>
    /// <param name="_grandparents">Struct das alle Eigenschaften der Altersgruppe: Senior beinhaltet</param>
    /// <param name="_deadColor">Farbe die die Zelle haben soll wenn sie gestorben ist</param>
    /// <remarks>Startet das Spawnen des Spielfeldes, die Größe sowie die Position des Spielfeldes werden dabei per Parameter übergeben</remarks>
    public void CreateField(Vector3 _startPos, Vector2 _cellCount, AgeSettings _babySettings, AgeSettings _teenagerSettings, AgeSettings _adultSettings, AgeSettings _grandpartensSettings, Color _deadColor)
    {
        //Werte für die StartPosition sowie Feldgröße zwischenspeichern
        m_StartPos  = _startPos;
        m_FieldSize = _cellCount;

        //Das Spielfeld Spawnen Starten
        CreateField(_babySettings, _teenagerSettings, _adultSettings, _grandpartensSettings, _deadColor);
    }
Beispiel #3
0
    /// <summary>Initialisiert die Zelle</summary>
    /// <param name="_gridManager">Das GridManager script das die Zelle managt</param>
    /// <param name="_cellPos">Die aktuelle Position(x, y) der Zelle in dem Feld aller Zellen</param>
    /// <param name="_babySettings">Struct das alle Eigenschaften der Altersgruppe: Baby beinhaltet</param>
    /// <param name="_teenagerSettings">Struct das alle Eigenschaften der Altersgruppe: Jugendlich beinhaltet</param>
    /// <param name="_adultSettings">Struct das alle Eigenschaften der Altersgruppe: Erwachsen beinhaltet</param>
    /// <param name="_grandparents">Struct das alle Eigenschaften der Altersgruppe: Senior beinhaltet</param>
    /// <param name="_deadColor">Farbe die die Zelle haben soll wenn sie gestorben ist</param>
    /// <remarks>Gibt der Zelle alle wichtigen Eigenschaften die sie beschreibt und Initialisiert diese dann</remarks>
    public void InitCell(GridManager _gridManager, Vector2 _cellPos, AgeSettings _babySettings, AgeSettings _teenagerSettings, AgeSettings _adultSettings, AgeSettings _grandparents, Color _deadColor)
    {
        //Alle Eigenschaften der Zelle in die Variablen speichern
        m_GridManager = _gridManager;
        m_CellPos     = _cellPos;

        m_Baby         = _babySettings;
        m_Teenager     = _teenagerSettings;
        m_Adult        = _adultSettings;
        m_Grandparents = _grandparents;
        m_DeadColor    = _deadColor;

        //Den Zellen Zustand auf "gestorben" setzen und somit die Zelle als initialisiert kennzeichnen
        SetCellState(STATES.DEAD);
    }