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);
        }
Esempio n. 2
0
        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);
                }
            }
        }