/// <summary>
 /// Chequea si la wave tiene enemigos ???????????????????????????????????????????????
 /// </summary>
 /// <param name="node">Nodo a chequear</param>
 /// <returns>Si tiene o no enemigos</returns>
 public bool WaveHaveEnemies(WaveNode node)
 {
     if (node.GetOutputPort("enemies").IsConnected)
     {
         NodePort output = node.GetOutputPort("enemies");
         if (output.GetConnections().Count > 0)
         {
             return(true);
         }
     }
     return(false);
 }
 /// <summary>
 /// Chequea si hay una wave siguiente
 /// </summary>
 /// <param name="node">Nodo a chequear</param>
 /// <returns>Si hay una wave mas</returns>
 public bool NextWaveIsConnected(WaveNode node)
 {
     if (node.GetOutputPort("nextWave").IsConnected)
     {
         NodePort output = node.GetOutputPort("nextWave");
         if (output.GetConnection(0).node.GetOutputPort("nextWave").GetConnections().Count > 0)
         {
             return(true);
         }
     }
     return(false);
 }
예제 #3
0
    public void NextWave()
    {
        //if (currentNode == null) Debug.LogError("EL NODO ACTUAL ES NULO!");
        //if (currentNode.GetOutputPort("nextWave") == null) Debug.LogError("EL OUTPUT ME DA NULO");
        NodePort otherPort = currentNode.GetOutputPort("nextWave").Connection;

        if (currentNode.GetOutputPort("nextWave").Connection == null)
        {
            Debug.LogError("EL OUTPUT ME DA NULO");
        }
        if (otherPort.node != null)
        {
            currentNode = otherPort.node as WaveNode;
        }
    }
 /// <summary>
 /// Accede a la siguiente wave del grafo, si no hay, activa evento de que terminaron
 /// </summary>
 public void NextWave()
 {
     if (currentNode.GetOutputPort("nextWave") == null)
     {
         Debug.LogError("No hay un puerto de salida nextWave", currentNode);
     }
     if (NextWaveIsConnected(currentNode))
     {
         wavesGraph.NextWave();
         currentNode = wavesGraph.currentNode;
         StartWave(currentNode);
     }
     else
     {
         Debug.Log("Ya no hay mas waves!");
         onAllWavesCompleted.Invoke();
     }
 }
    /// <summary>
    /// Nodos de enemigos de la wave
    /// </summary>
    /// <param name="node">Nodo a revisar</param>
    /// <returns>Los nodos de enemigos si hay</returns>
    public List <EnemyNode> GetWaveEnemyNodes(WaveNode node)
    {
        if (!WaveHaveEnemies(node))
        {
            return(null);
        }
        List <NodePort>  connections = node.GetOutputPort("enemies").GetConnections();
        List <EnemyNode> enemies     = new List <EnemyNode>();

        foreach (NodePort port in connections)
        {
            enemies.Add(port.node as EnemyNode);
        }
        return(enemies);
    }