From fa670efbee061f367de35d9c368e88346eeb3eab Mon Sep 17 00:00:00 2001 From: Susan Yuen <susan_loves_cheese@hotmail.com> Date: Fri, 4 Nov 2016 16:00:15 -0400 Subject: [PATCH] Fixed bug in movement --- .../Blaze_Brigade/GameFunction.cs | 38 ++++++++++++++----- .../Blaze_Brigade/MouseHandler.cs | 1 + src/Blaze-Brigade/Blaze_Brigade/Unit.cs | 1 - src/Blaze-Brigade/Blaze_Brigade/Warrior.cs | 25 ------------ 4 files changed, 29 insertions(+), 36 deletions(-) diff --git a/src/Blaze-Brigade/Blaze_Brigade/GameFunction.cs b/src/Blaze-Brigade/Blaze_Brigade/GameFunction.cs index 7d4b26b..3ce33d4 100644 --- a/src/Blaze-Brigade/Blaze_Brigade/GameFunction.cs +++ b/src/Blaze-Brigade/Blaze_Brigade/GameFunction.cs @@ -11,11 +11,14 @@ namespace Controller // This class holds useable functions in the scope of the entire gameplay static class GameFunction { - // might not need; check if enemyUnitsInRange returns an empty list - public static bool isAnEnemyUnitInRange(Unit unit) + // returns whether an enemy unit is in range of the unit + public static bool isAnEnemyUnitInRange(Graph graph, Unit unit) { - // TODO - return false; + if (enemyUnitsInRange(graph, unit).Count == 0) + { + return false; + } + return true; } // returns whether or not the enemy unit is within attack range of unit @@ -34,7 +37,11 @@ namespace Controller Button[] buttons = unit.getButtons(); for (int i = 0; i < buttons.Count(); i++) { - buttons[i].setActive(true); + if (buttons[i].getButtonType() != ButtonType.Attack + || buttons[i].getButtonType() != ButtonType.AttackConfirm) + { + buttons[i].setActive(true); + } } } @@ -47,12 +54,23 @@ namespace Controller GameState.beforeMove = true; } - // returns all enemy units in range of the specified unit - public static LinkedList<Unit> enemyUnitsInRange(Unit unit) + // returns all enemy units in strict attack range of the specified unit + public static LinkedList<Unit> enemyUnitsInRange(Graph graph, Unit unit) { - // TODO - //int range = unit.getEquippedWeapon().getRange(); // use this to determine all hitable squares - return null; + //TODO: int range = unit.getEquippedWeapon().getRange(); // use this to determine all hitable squares + + LinkedList<Unit> enemyUnitsInRange = new LinkedList<Unit>(); + LinkedList<Unit> allEnemyUnits = GameState.enemyPlayer.getUnits(); + + foreach (Unit enemyUnit in allEnemyUnits) + { + if (isEnemyUnitInRange(graph, unit, enemyUnit)) + { + enemyUnitsInRange.AddLast(enemyUnit); + } + } + + return enemyUnitsInRange; } // checks if specified unit can perform actions diff --git a/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs b/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs index ebe7d76..ec686e9 100644 --- a/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs +++ b/src/Blaze-Brigade/Blaze_Brigade/MouseHandler.cs @@ -83,6 +83,7 @@ namespace Controller GameState.selectedUnit.getButtonOfType(ButtonType.Move).setActive(false); // move button no longer active updateUnitPosition(graph, mouseClickCoordinates, path); GameState.beforeMove = false; + turnState = TurnState.Wait; } else { diff --git a/src/Blaze-Brigade/Blaze_Brigade/Unit.cs b/src/Blaze-Brigade/Blaze_Brigade/Unit.cs index 5a6eaaa..ced93d7 100644 --- a/src/Blaze-Brigade/Blaze_Brigade/Unit.cs +++ b/src/Blaze-Brigade/Blaze_Brigade/Unit.cs @@ -26,7 +26,6 @@ namespace Model void setEquippedWeapon(Weapon w); // sets the unit's currently equipped weapon //void setEquipableWeapons(Weapon add); // need to update the weapon array, put new weapon into it bool isButtonActive(ButtonType buttonType); // indicates whether a button has already been previously selected or not - void setButtonActive(ButtonType buttonType, bool active); void setButtonCoordinates(Vector2 pixelCoordinates); // sets the coordinates of menu buttons void animate(int direction); // animate sprite walking the direction specified void setInitialStats(); // sets initial unit stats upon creation diff --git a/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs b/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs index 3f1265b..819aada 100644 --- a/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs +++ b/src/Blaze-Brigade/Blaze_Brigade/Warrior.cs @@ -146,31 +146,6 @@ namespace Model } } - public void setButtonActive(ButtonType buttonType, bool active) - { - switch (buttonType) - { - case ButtonType.Attack: - buttons[0].setActive(active); - return; - case ButtonType.Move: - buttons[1].setActive(active); - return; - case ButtonType.Items: - buttons[2].setActive(active); - return; - case ButtonType.Wait: - buttons[3].setActive(active); - return; - case ButtonType.AttackConfirm: - buttons[4].setActive(active); - return; - - default: - return; - } - } - public Texture2D getCharInfo() { return charInfo; -- GitLab