diff --git a/src/Blaze-Brigade/Blaze_Brigade/GameState.cs b/src/Blaze-Brigade/Blaze_Brigade/GameState.cs
index 3e7bbe95a1743f7c1f6e77e3ac95496fcc6c74e2..4347d49ce922d6d20360f847677b670bf89e8811 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/GameState.cs
+++ b/src/Blaze-Brigade/Blaze_Brigade/GameState.cs
@@ -37,6 +37,7 @@ namespace Model
     enum TurnState //what the current turn state is (per unit)
     {
         Wait,
+        AttackMenu,
         Attack,
         Move,
         Items
diff --git a/src/Blaze-Brigade/Blaze_Brigade/MenuButton.cs b/src/Blaze-Brigade/Blaze_Brigade/MenuButton.cs
index aabed921d6091600bd2c5a8dfa9939ded2a68594..7905d3532c9312c12df6a3bbccec00ef97b38326 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/MenuButton.cs
+++ b/src/Blaze-Brigade/Blaze_Brigade/MenuButton.cs
@@ -60,6 +60,7 @@ namespace View
     enum MenuButtonType
     {
         Attack,
+        AttackConfirm,
         Move,
         Items,
         Wait
diff --git a/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs b/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs
index 5426a46f3250b68afc4e858cd9cdcde44f2678db..92549984c902362dde8ed09f8ec42c87063979e4 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs
+++ b/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs
@@ -92,6 +92,8 @@ namespace Controller
                             attackAnimation(graph, 0);
                         
                         //GameState.dropDownMenuOpen = (true);
+
+                        
                     }
                     }
                 }
@@ -169,10 +171,10 @@ namespace Controller
             GameState.isAnimating = true;
             float originalLocationX = unit.PixelCoordinates.X;
             float originalLocationY = unit.PixelCoordinates.Y;
-
-            if (direction == 0)
+            #region Attack Right
+            if (direction == 0) //attack right
             {
-                for(float i = originalLocationX; i <= originalLocationX+8; i++)
+                for (float i = originalLocationX; i <= originalLocationX + 8; i++)
                 {
                     unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X + 1, unit.PixelCoordinates.Y);
                     Game.Instance.Tick();
@@ -186,6 +188,61 @@ namespace Controller
                     Thread.Sleep(10);
                 }
             }
+            #endregion
+            #region Attack Left
+            else if (direction == 1) //attack left
+            {
+                for (float i = originalLocationX; i >= originalLocationX - 8; i--)
+                {
+                    unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X + 1, unit.PixelCoordinates.Y);
+                    Game.Instance.Tick();
+                    Thread.Sleep(10);
+                }
+
+                for (float i = unit.PixelCoordinates.X; i <= originalLocationX; i++)
+                {
+                    unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X - 1, unit.PixelCoordinates.Y);
+                    Game.Instance.Tick();
+                    Thread.Sleep(10);
+                }
+            }
+            #endregion
+            #region Attack Up
+            else if (direction == 2) //attack up
+            {
+                for (float i = originalLocationY; i >= originalLocationY - 8; i--)
+                {
+                    unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X , unit.PixelCoordinates.Y +1);
+                    Game.Instance.Tick();
+                    Thread.Sleep(10);
+                }
+
+                for (float i = unit.PixelCoordinates.X; i <= originalLocationX; i++)
+                {
+                    unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X , unit.PixelCoordinates.Y - 1);
+                    Game.Instance.Tick();
+                    Thread.Sleep(10);
+                }
+            }
+            #endregion
+            #region Attack Down
+            else if (direction == 3) //attack down
+            {
+                for (float i = originalLocationY; i >= originalLocationY - 8; i--)
+                {
+                    unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X, unit.PixelCoordinates.Y + 1);
+                    Game.Instance.Tick();
+                    Thread.Sleep(10);
+                }
+
+                for (float i = unit.PixelCoordinates.X; i <= originalLocationX; i++)
+                {
+                    unit.PixelCoordinates = new Vector2(unit.PixelCoordinates.X, unit.PixelCoordinates.Y - 1);
+                    Game.Instance.Tick();
+                    Thread.Sleep(10);
+                }
+            }
+            #endregion
             GameState.isAnimating = false;
         }
 
@@ -263,11 +320,18 @@ namespace Controller
             // take action corresponding to which button was clicked
             switch (button.getButtonType())
             {
-                case MenuButtonType.Attack:         // if attack clicked
-                    turnState = TurnState.Attack;
+                
+                case MenuButtonType.Attack:         // if attackMenu clicked
+                    turnState = TurnState.AttackMenu;
                     GameState.dropDownMenuOpen = (false);    // close the dropdownmenu when selecting who to attack
                     button.setActive(false);
                     break;
+                case MenuButtonType.AttackConfirm:         // if confirm attack clicked
+                    turnState = TurnState.Attack;
+                    button.setActive(false);
+                    Unit unit = GameState.selectedUnit;
+                    MenuButton moveButtons = unit.getMenuButtonAt(1);
+                    break;
                 case MenuButtonType.Move:           // if moved is clicked
                     turnState = TurnState.Move;
                     GameState.dropDownMenuOpen = (false);   // close the dropdownmenu when selecting where to move
diff --git a/src/Blaze-Brigade/Blaze_Brigade/Unit.cs b/src/Blaze-Brigade/Blaze_Brigade/Unit.cs
index 3ded9a9b7670a552d70e77afc1a136e05feb2013..27262a4442abaa335aaf8faa02f3de073191e20e 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/Unit.cs
+++ b/src/Blaze-Brigade/Blaze_Brigade/Unit.cs
@@ -39,6 +39,7 @@ namespace Model
         Texture2D getCharInfo();                // returns the char info screen texture
         Tuple<int, int> Position { get; set;}   // gets and sets unit's position by tile
         Vector2 PixelCoordinates { get; set; }
+        MenuButton getMenuButtonAt(int i);
 
         MenuButton[] getMenuButtons();          // returns the dropdown menu buttons of the unit
         Rectangle getCurrentFrame();            // returns the current sprite frame in animation sequence
diff --git a/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs b/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs
index abcdc44d4055be066a4793eb521e4433b126cfbd..b2b9b641125d9290ff1ff87cca95d089580c9fe1 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs
+++ b/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs
@@ -183,6 +183,11 @@ namespace Model
         {
             return menuButtons;
         }
+
+        public MenuButton getMenuButtonAt(int i)
+        {
+            return menuButtons[i];
+        }
         
         // updates menu button positions
         public void setMenuButtonCoordinates(Vector2 pixelCoordinates)