예제 #1
0
        private int DistanceCalc(Case_Echiquier target) // Calcule la distance entre la case sur laquelle se trouve le soldat et une case visée (en nombre de cases)
        {
            int distance = Math.Abs(this.position.IndexX - target.IndexX) + Math.Abs(this.position.IndexY - target.IndexY);

            // DEBUG
            Console.WriteLine("Distance = " + distance);
            return(distance);
        }
예제 #2
0
        Random tir          = new Random();                   // Permet de tirer des nombres entre 0 et 100 pour déterminer si un tir touche ou non

        public Soldat(int classe, Case_Echiquier _position)
        {
            this._classe  = classe;
            this.position = _position;

            switch (_classe)
            {
            case 0:     // Fantassin
                this._damage    = 5;
                this._precision = 5;
                this._HP        = 10;
                this._evasion   = 4;
                this._mobility  = 5;
                break;

            case 1:     // Sniper
                this._damage    = 6;
                this._precision = 6;
                this._HP        = 8;
                this._evasion   = 5;
                this._mobility  = 4;
                break;

            case 2:     // Lourd
                this._damage    = 4;
                this._precision = 3;
                this._HP        = 15;
                this._evasion   = 2;
                this._mobility  = 3;
                break;

            case 3:     // Leger
                this._damage    = 4;
                this._precision = 4;
                this._HP        = 5;
                this._evasion   = 8;
                this._mobility  = 8;
                break;

            default:     // Erreur -> Pas de classe assignée
                error = true;
                break;
            }
        }
예제 #3
0
 public int Move(Case_Echiquier targetPos)              // Se déplace vers une case ciblée, renvoie 0 si pas d'erreur, 1 si la case ciblée est trop loin et 2 si la case ciblée est déjà occupée
 {
     if (targetPos.soldier == null)                     // On vérifie que la case sélectionnée est vide
     {
         if (DistanceCalc(targetPos) <= this._mobility) // On vérifie que le soldat a assez de mobilité pour atteindre la case
         {
             this.position.soldier = null;
             this.position         = targetPos;
             targetPos.soldier     = this;
             this.played           = true;
             return(0);
         }
         else
         {
             return(1);
         }
     }
     else
     {
         return(2);
     }
 }