Example #1
0
        /// <summary>
        /// Check if the selected unit has changed
        /// </summary>
        private void CheckIfUnitChanged()
        {
            if (_previousUnit == _currentUnit)
            {
                return;
            }

            SelectedAbilityIndex = -1;
            SelectedTargetIndex  = -1;

            _targets = new List <UnitModel>();

            AbilitiesGroup.SetButtons(GetAbilityButtons);
            TargetsGroup.SetButtons(GetTargetButtons);
        }
Example #2
0
        public void Update(GameTime gameTime, List <UnitModel> targets)
        {
            _previousTargets = _targets;
            _targets         = targets;

            _previousUnit = _currentUnit;
            _currentUnit  = _units[UnitsGroup.CurrentIndex];

            _previousAbility = _currentAbility;
            _currentAbility  = _currentUnit.Abilities.Get(AbilitiesGroup.CurrentIndex);

            CheckIfUnitChanged();

            CheckIfTargetChanged();

            //CheckIfAbilityChanged();

            _endTurnButton.Update(gameTime);

            if (_endTurnButton.Clicked)
            {
                NextState = BattleStates.EnemyTurn;
            }

            for (int i = 0; i < UnitsGroup.Buttons.Count; i++)
            {
                UnitsGroup.Buttons[i].IsEnabled = true;

                if (_units[i].Stamina <= 0)
                {
                    UnitsGroup.Buttons[i].IsEnabled = false;
                }
            }

            for (int i = 0; i < AbilitiesGroup.Buttons.Count; i++)
            {
                AbilitiesGroup.Buttons[i].IsEnabled = _units[UnitsGroup.CurrentIndex].Abilities.Get(i).IsEnabled;
            }

            UnitsGroup.Update(gameTime);

            AbilitiesGroup.Update(gameTime);

            TargetsGroup.Update(gameTime);
        }
Example #3
0
        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            spriteBatch.Begin();

            _controlPanel.Draw(gameTime, spriteBatch);
            _endTurnButton.Draw(gameTime, spriteBatch);

            UnitsGroup.Draw(gameTime, spriteBatch);

            AbilitiesGroup.Draw(gameTime, spriteBatch);

            TargetsGroup.Draw(gameTime, spriteBatch);

            spriteBatch.DrawString(_font, UnitName, new Vector2(_controlPanel.Position.X + 4, _controlPanel.Position.Y + 4), Color.White);
            spriteBatch.DrawString(_font, AbilityName, new Vector2(AbilitiesGroup.Rectangle.X + 4, AbilitiesGroup.Rectangle.Y - 15), Color.White);

            spriteBatch.End();
        }