Exemplo n.º 1
0
    /// <summary>
    /// Carga un nivel, instanciando un memento del mismo
    /// </summary>
    /// <param name="gridMemento"></param>
    public void Load(GridMemento gridMemento)
    {
        Debug.Log("Cargando memento del nivel \"" + _currentLevelInfo.LevelName + "\"");

        // Instancia las clases de memento si no estaban instanciadas
        if (_gridOriginator == null)
        {
            _gridOriginator = new GridOriginator(_currentLevelInfo.Size);
        }
        if (_gridCaretaker == null)
        {
            _gridCaretaker = new GridCaretaker(10);
        }

        // Spawnea los bloques
        foreach (var blockState in gridMemento.BlocksState)
        {
            Level.Instance.SpawnBlock(blockState);
        }

        // Spawnea los characters
        foreach (var charState in gridMemento.CharactersState)
        {
            Level.Instance.SpawnCharacter(charState, true);
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// Establece un nuevo estado a la grilla
    /// </summary>
    /// <param name="memento">Estado deseado</param>
    public void SetMemento(GridMemento memento)
    {
        // Destruye todos los objetos
        Level.Instance.Clear();

        // Carga el memento
        Level.Instance.Load(memento);
    }
Exemplo n.º 3
0
 /// <summary>
 /// Agrega un nuevo memento
 /// </summary>
 /// <param name="gridMemento">Memento a agregar</param>
 public void Push(GridMemento gridMemento)
 {
     _stack.Push(gridMemento);
 }