예제 #1
0
 private void ResetDirectionTroop(Troop troop)
 {
     if (this != troop)
     {
         int num3;
         int num4;
         int num = troop.Position.X - this.Position.X;
         int num2 = troop.Position.Y - this.Position.Y;
         if (Math.Abs(num) == Math.Abs(num2))
         {
             if (num == 0)
             {
                 num3 = 0;
                 num4 = 0;
             }
             else
             {
                 num3 = (num > 0) ? 1 : -1;
                 num4 = (num2 > 0) ? 1 : -1;
             }
         }
         else if (Math.Abs(num) > Math.Abs(num2))
         {
             if (num2 == 0)
             {
                 num3 = (num > 0) ? 1 : -1;
                 num4 = 0;
             }
             else if ((Math.Abs(num) / Math.Abs(num2)) < 2)
             {
                 num3 = (num > 0) ? 1 : -1;
                 num4 = (num2 > 0) ? 1 : -1;
             }
             else
             {
                 num3 = (num > 0) ? 1 : -1;
                 num4 = 0;
             }
         }
         else if (num == 0)
         {
             num3 = 0;
             num4 = (num2 > 0) ? 1 : -1;
         }
         else if ((Math.Abs(num2) / Math.Abs(num)) < 2)
         {
             num3 = (num > 0) ? 1 : -1;
             num4 = (num2 > 0) ? 1 : -1;
         }
         else
         {
             num3 = 0;
             num4 = (num2 > 0) ? 1 : -1;
         }
         this.SetDirection(num3, num4);
         troop.SetDirection(-num3, -num4);
     }
 }