/// <summary> /// Seleccionar unidad /// </summary> /// <param name="nodeUnit">Unidad a seleccionar</param> private void UnitSelection(Unit nodeUnit) { _selectedUnit = nodeUnit; List <GridNode> newNodes = PathRequestManager.RequestAvaibleNodes(nodeUnit.currentNode, _selectedUnit.moveDistance, _team); // Lista de nodos vecinos accesibles que se muestran tras la selección // ELEGIR CASILLA ACCESIBLE DE LA LISTA NEWNODES if (newNodes != _selectedNodes) { if (_selectedNodes != null) { foreach (GridNode node in _selectedNodes) { _drawGrid.HideNode(node.gridX, node.gridY); } } foreach (GridNode node in newNodes) { NodeState nodeState = NodeState.Available; if (node.isOccupied != null && node.isOccupied.tag == "Unit") //Nodo ocupat per una unitat { if (_team.IsUnitInTeam((Unit)node.isOccupied)) //Si la unitat forma part del nostre equipo { nodeState = NodeState.FriendlyUnit; } else { nodeState = NodeState.EnemyUnit; } } else if (node.isOccupied != null) //Si esta ocupado y no es una unidad, entonces es una bandera { if (node == _team.flagPosition) { nodeState = NodeState.FriendlyFlag; } else { nodeState = NodeState.EnemyFlag; } } if (type == PlayerType.User) { _drawGrid.DrawNode(node.gridX, node.gridY, nodeState); } } _selectedNodes = newNodes; } }