private void SelectCharacter(Character c) { if (selectedCharacter != null) { selectedCharacter.ResetColorEffect(); } selectedCharacter = c; statsUI.ChangeCharacter(selectedCharacter); selectedCharacter.ColorEffect = SelectedColor; dragHoldTimer = 0; startDragGridPosition = Grid.ToGridLocation(selectedCharacter.position.ToPoint(), gridLocation, Globals.TileDimensions); }
public void SelectUnit(GameTime gameTime) { for (int i = 0; i < Armies.army.Count; i++) { if (Armies.army[i].Hitbox.Contains(Globals.mouseState.Position) && (canMove[i] || canAttack[i]) && Armies.army[i].waypoints.Count == 0 && !Armies.army[i].IsDead) { bool valid = true; if (canAttackThis != null && selected >= 0 && Armies.army[selected].special == Character.Special.Healer) { for (int j = 0; j < canAttackThis.Count; j++) { if (i == canAttackThis[j]) { valid = false; } } } if (valid && StateManager.GetState(1) is GameState) { selected = i; statsUI.ChangeCharacter(((GameState)StateManager.GetState(1)).GetArmy()[i]); } } } if (selected != -1) { if (canMove[selected]) { GetWalkable(gameTime); } if (canAttack[selected]) { GetAttackable(gameTime); } } }