Beispiel #1
0
    // Fonction qui essaie d'exécuter la commande à partir de la syntaxe fournie.
    // Si la syntaxe est invalide, la commande ne s'exécute pas, et renvoie un message d'erreur au CommandManager.
    public override bool TryExecution(string shipName, string coordinatesText, string productCode, out string errorMessage)
    {
        // Variables locales temporaires
        bool    success             = false;
        bool    validShip           = false;
        Ship    targetShip          = null;
        bool    coordsInDeployPoint = false;
        Vector2 shipGridCoords      = Vector2.zero;

        errorMessage = "";

        //Validation 1 : -Vérifier avec le ShipManager si le vaisseau entré est trouvable.
        if (ShipManager.instance != null)
        {
            validShip = ShipManager.instance.FindShipByCallsign(shipName, out targetShip);
        }


        // Validation 2 : Vérifier avec deploymanager si les coordonnées du vaisseaux sont dans un point de déploiement.
        if (targetShip != null)
        {
            shipGridCoords = GridCoords.FromWorldToGrid(targetShip.transform.position);

            if (DeployManager.instance != null)
            {
                coordsInDeployPoint = DeployManager.instance.IsInDeployPoint(shipGridCoords);
            }
            else
            {
                coordsInDeployPoint = false;
            }
        }

        //Confirmation finale 1 : Le vaisseau est valide?
        if (!validShip)
        {
            success      = false;
            errorMessage = "Invalid ship name : " + shipName;
        }

        // Confirmation finale 2 : Les coordonnées sont dans un point de déploiement?
        else if (!coordsInDeployPoint)
        {
            success      = false;
            errorMessage = "Coordinates are outisde of Deploy Point : " + coordinatesText;
        }

        // Si tout est valide, exécution de la commande et envoie du bool succès au CommandManager
        else
        {
            success = true;
            ExecuteCommand(targetShip);
        }

        return(success);
    }
Beispiel #2
0
    // Vérifier si la souris se trouve sur la grille
    private bool MouseIsOverGrid(out Vector3 mousePos)
    {
        // Convertir position de souris en pixels en une position en WORLD COORDS
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        mousePosition.z = 0f;
        mousePos        = mousePosition;

        // Assigner le texte
        _coordsText = GridCoords.FromWorldToGrid(mousePos).ToString();

        // Vérifier si la position se trouve dans les bounds de la grille.
        if (_currentGridInfo.gameGridWorldBounds.Contains(mousePosition))
        {
            return(true);
        }
        return(false);
    }