From f4581ae0602b30e906f412994c1a49697b1bf300 Mon Sep 17 00:00:00 2001
From: Thien Trandinh <trandit@mcmaster.ca>
Date: Sun, 30 Oct 2016 21:35:17 -0400
Subject: [PATCH] Added delay between each move, TODO: get sprite to update on
 move

---
 .../Blaze_Brigade.csproj.Debug.cachefile      |  2 +-
 .../Blaze_Brigade/MouseHandler.cs             | 50 ++++++++++++++++++-
 2 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/src/Blaze-Brigade/Blaze_Brigade/Blaze_Brigade.csproj.Debug.cachefile b/src/Blaze-Brigade/Blaze_Brigade/Blaze_Brigade.csproj.Debug.cachefile
index 1a31e6f..a50d900 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/Blaze_Brigade.csproj.Debug.cachefile
+++ b/src/Blaze-Brigade/Blaze_Brigade/Blaze_Brigade.csproj.Debug.cachefile
@@ -1,6 +1,6 @@
 Content\charSprite.xnb
-Content\MenuImage.xnb
 Content\Game_Map.xnb
+Content\MenuImage.xnb
 Content\attackableNode.xnb
 Content\moveableNode.xnb
 Content\attack.xnb
diff --git a/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs b/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs
index 52dc8b4..a2aaf8f 100644
--- a/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs
+++ b/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs
@@ -6,6 +6,8 @@ using Microsoft.Xna.Framework.Input;
 using Microsoft.Xna.Framework;
 
 using Model;
+using System.Threading;
+using System.Diagnostics;
 
 namespace Controller
 {
@@ -96,14 +98,60 @@ namespace Controller
             int positionX = (int)Math.Floor(position.X / 32);
             int positionY = (int)Math.Floor(position.Y / 32);
 
+            int currentX = gameFunction.getSelectedUnit().getPosition().Item1;
+            int currentY = gameFunction.getSelectedUnit().getPosition().Item2;
+
             // if new position is different from old position, set unit to new position
             if (!(gameFunction.getSelectedUnit().getPosition() == new Tuple<int, int>(positionX, positionY)))
             {
-                gameFunction.getSelectedUnit().setPosition(positionX, positionY);
+                
+                if (gameFunction.getSelectedUnit().getPosition().Item1 < positionX) { 
+                for (currentX = gameFunction.getSelectedUnit().getPosition().Item1; currentX <= positionX; currentX++)
+                {
+                    Thread.Sleep(500);
+                    gameFunction.getSelectedUnit().setPosition(currentX, currentY);
+                    Debug.Write("X is: " + currentX);
+                }
+            }else{
+                for (currentX = gameFunction.getSelectedUnit().getPosition().Item1; currentX >= positionX; currentX--)
+                {
+                    Thread.Sleep(500);
+                    gameFunction.getSelectedUnit().setPosition(currentX, currentY);
+                    Debug.Write("X is: " + currentX);
+                }
+            }
+
+
+
+                if (gameFunction.getSelectedUnit().getPosition().Item2 < positionY)
+                {
+                    for (currentY = gameFunction.getSelectedUnit().getPosition().Item2; currentY <= positionY; currentY++)
+                    {
+                        Thread.Sleep(500);
+                        gameFunction.getSelectedUnit().setPosition(currentX, currentY);
+                        Debug.Write("Y is: " + currentY);
+                    }
+                }
+                else
+                {
+                    for (currentY = gameFunction.getSelectedUnit().getPosition().Item2; currentY >= positionY; currentY--)
+                    {
+                        Thread.Sleep(500);
+                        gameFunction.getSelectedUnit().setPosition(currentX, currentY);
+                        Debug.Write("Y is: " + currentY);
+                    }
+                }
+
+
                 gameFunction.getSelectedUnit().setClickedOn(false);
             }
         }
 
+        public void Draw(GameTime gametime)
+        {
+
+        }
+
         public void setAnimating(bool animating)
         {
             isAnimating = animating;
-- 
GitLab