//Metod för utritning av item information när man har musen över dess position
        internal void DrawItemStats(Model.Item a_item, Vector2 a_itemPosition)
        {
            if (a_item.GetType() == Model.GameModel.QUEST_ITEM)
            {
                m_spriteBatch.Draw(m_textures[ITEM_STATS_BG_SMALL], new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width - 10, a_itemPosition.Y), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Quest Item", new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width, a_itemPosition.Y + 8), Color.White);
            }
            else
            {
                m_spriteBatch.Draw(m_textures[ITEM_STATS_BACKGROUND], new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width - 10, a_itemPosition.Y), Color.White);

                if (a_item.GetType() == Model.GameModel.ARMOR)
                {
                    Model.Armor armor = a_item as Model.Armor;
                    //Kod som visar itemets stats när man håller musen över.
                    if (armor.Type == Model.Armor.HEAD_ARMOR)
                    {
                        m_spriteBatch.DrawString(m_spriteFontSegoe, "Slot: Head", new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width, a_itemPosition.Y + 4), Color.White);
                    }

                    m_spriteBatch.DrawString(m_spriteFontSegoe, "Armor: +" + armor.ArmorValue.ToString(), new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width, a_itemPosition.Y + 19), Color.White);
                    m_spriteBatch.DrawString(m_spriteFontSegoe, "Resist: +" + armor.MagicResistValue.ToString(), new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width, a_itemPosition.Y + 34), Color.White);
                    m_spriteBatch.DrawString(m_spriteFontSegoe, "Health: +" + armor.HealthValue.ToString(), new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width, a_itemPosition.Y + 49), Color.White);
                    m_spriteBatch.DrawString(m_spriteFontSegoe, "Mana: +" + armor.ManaValue.ToString(), new Vector2(a_itemPosition.X + a_item.ThisItem.Bounds.Width, a_itemPosition.Y + 64), Color.White);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Method for rendering item information when hovering over the item
        /// </summary>
        /// <param name="item">The item whos stats will be shown</param>
        /// <param name="itemPosition">The items position</param>
        internal void DrawItemStats(Model.Item item, Vector2 itemPosition)
        {
            if (item.GetType() == Model.GameModel.QUEST_ITEM)
            {
                _spriteBatch.Draw(_textures[Convert.ToInt32(Texture.ITEM_STATS_BG_SMALL)], new Vector2(itemPosition.X + item.ThisItem.Bounds.Width - 10, itemPosition.Y), Color.White);
                _spriteBatch.DrawString(_spriteFontSegoe, "Quest Item", new Vector2(itemPosition.X + item.ThisItem.Bounds.Width, itemPosition.Y + 8), Color.White);
            }
            else
            {
                _spriteBatch.Draw(_textures[Convert.ToInt32(Texture.ITEM_STATS_BACKGROUND)], new Vector2(itemPosition.X + item.ThisItem.Bounds.Width - 10, itemPosition.Y), Color.White);

                if (item.GetType() == Model.GameModel.ARMOR)
                {
                    Model.Armor armor = item as Model.Armor;

                    if (armor.Type == Model.Armor.HEAD_ARMOR)
                    {
                        _spriteBatch.DrawString(_spriteFontSegoe, "Slot: Head", new Vector2(itemPosition.X + item.ThisItem.Bounds.Width, itemPosition.Y + 4), Color.White);
                    }

                    _spriteBatch.DrawString(_spriteFontSegoe, "Armor: +" + armor.ArmorValue.ToString(), new Vector2(itemPosition.X + item.ThisItem.Bounds.Width, itemPosition.Y + 19), Color.White);
                    _spriteBatch.DrawString(_spriteFontSegoe, "Resist: +" + armor.MagicResistValue.ToString(), new Vector2(itemPosition.X + item.ThisItem.Bounds.Width, itemPosition.Y + 34), Color.White);
                    _spriteBatch.DrawString(_spriteFontSegoe, "Health: +" + armor.HealthValue.ToString(), new Vector2(itemPosition.X + item.ThisItem.Bounds.Width, itemPosition.Y + 49), Color.White);
                    _spriteBatch.DrawString(_spriteFontSegoe, "Mana: +" + armor.ManaValue.ToString(), new Vector2(itemPosition.X + item.ThisItem.Bounds.Width, itemPosition.Y + 64), Color.White);
                }
            }
        }
Exemple #3
0
        //Metod för utritning av Items på kartan samt sättande spelarens Itemtarget
        private void DrawItems(float a_elapsedTime)
        {
            List <Model.Item> items = m_gameModel.m_itemSystem.m_items;

            Model.Player player = m_gameModel.m_playerSystem.m_player;

            foreach (Model.Item item in items)
            {
                if (m_inputHandler.MouseIsOver(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    m_inputHandler.MouseIsOverLoot = true;
                }

                //Kontrollerar om spelaren har targetat ett item.
                if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    player.ItemTarget = item;
                }

                if (player.ItemTarget == item)
                {
                    if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)) &&
                        player.ItemTarget.ThisItem.Bounds.Intersects(player.CollisionArea) && !m_lootWatch.IsRunning)
                    {
                        item.WasLooted = true;
                    }
                    else
                    {
                        item.WasLooted = false;
                    }
                }

                if (item.GetType() == Model.GameModel.ARMOR)
                {
                    Model.Armor Armor = item as Model.Armor;

                    if (Armor.Type == Model.Armor.HEAD_ARMOR)
                    {
                        Vector2 position      = m_camera.VisualizeCordinates(Armor.ThisItem.Bounds.Location.X, Armor.ThisItem.Bounds.Location.Y);
                        int     itemAnimation = 0;

                        itemAnimation = AnimationSystem.FACING_CAMERA;

                        m_animationSystem.UpdateAndDraw(a_elapsedTime, Color.White, position, itemAnimation, AnimationSystem.ITEM_PURPLE_CHEST);
                    }
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Method for drawing of map Items as well as setting the players item targets
        /// </summary>
        /// <param name="elapsedTime">Elapsed time in milleseconds</param>
        private void DrawItems(float elapsedTime, Model.Player player)
        {
            List <Model.Item> items = _gameModel.ItemSystem._items;

            foreach (Model.Item item in items)
            {
                if (_inputHandler.MouseIsOver(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    _inputHandler.MouseIsOverLoot = true;
                }

                //Checks if the player targeted an item
                if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    player.ItemTarget = item;
                }

                if (player.ItemTarget == item)
                {
                    if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)) &&
                        player.ItemTarget.ThisItem.Bounds.Intersects(player.CollisionArea) && !_lootWatch.IsRunning)
                    {
                        item.WasLooted = true;
                    }
                    else
                    {
                        item.WasLooted = false;
                    }
                }

                if (item.GetType() == Model.GameModel.ARMOR)
                {
                    Model.Armor Armor = item as Model.Armor;

                    if (Armor.Type == Model.Armor.HEAD_ARMOR)
                    {
                        Vector2     position      = _camera.VisualizeCordinates(Armor.ThisItem.Bounds.Location.X, Armor.ThisItem.Bounds.Location.Y);
                        Model.State itemAnimation = 0;

                        itemAnimation = Model.State.FACING_CAMERA;

                        _animationSystem.UpdateAndDraw(elapsedTime, Color.White, position, itemAnimation, AnimationSystem.Texture.ITEM_PURPLE_CHEST);
                    }
                }
            }
        }
        //Metod för utritning av karaktärspanelen
        private void DrawCharacterPanel()
        {
            Vector2 pos      = new Vector2();
            Vector2 panelPos = new Vector2(m_player.CharPanel.Position.X, m_player.CharPanel.Position.Y);

            Model.Item statsItem = null;

            Rectangle charPanelRect = new Rectangle(0, 0, m_textures[CHAR_PANEL_BG].Width, m_textures[CHAR_PANEL_BG].Height);
            Rectangle closeCross    = GetCloseButton(m_player.CharPanel.Position.X, m_player.CharPanel.Position.Y, CHAR_PANEL_BG);

            if (m_player.CharPanel.IsOpen)
            {
                m_spriteBatch.Draw(m_textures[CHAR_PANEL_BG], panelPos, charPanelRect, Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Health: +" + m_player.TotalHp.ToString(), panelPos + new Vector2(80, 70), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Mana: +" + m_player.TotalMana.ToString(), panelPos + new Vector2(80, 85), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Damage: +10", panelPos + new Vector2(80, 100), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Crit: 10%", panelPos + new Vector2(80, 115), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Armor: +" + m_player.Armor.ToString(), panelPos + new Vector2(80, 130), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Resist: +" + m_player.Resist.ToString(), panelPos + new Vector2(80, 145), Color.White);

                if (m_inputHandler.MouseIsOver(new Rectangle((int)m_player.CharPanel.Position.X, (int)m_player.CharPanel.Position.Y, m_textures[CHAR_PANEL_BG].Bounds.Width, m_textures[CHAR_PANEL_BG].Bounds.Height)))
                {
                    m_inputHandler.MouseIsOverInterface = true;
                }
                if (m_inputHandler.DidGetTargetedByLeftClick(closeCross))
                {
                    m_player.CharPanel.IsOpen = false;
                }
            }

            Vector2   position = new Vector2(m_player.CharPanel.Position.X + 13, m_player.CharPanel.Position.Y + 39);
            Rectangle itemRect = new Rectangle(0, 0, 32, 32);

            #region Ritar Equippade Items
            foreach (Model.Item item in m_player.CharPanel.EquipedItems)
            {
                item.ThisItem.Bounds.X = (int)m_player.CharPanel.Position.X + m_camera.GetScreenRectangle.X + 10;
                item.ThisItem.Bounds.Y = (int)m_player.CharPanel.Position.Y + m_camera.GetScreenRectangle.Y + 25;

                if (m_player.CharPanel.IsOpen)
                {
                    if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                    {
                        m_player.CharPanelTarget = item;
                    }
                    if (item.GetType() == Model.GameModel.ARMOR)
                    {
                        Model.Armor Armor = item as Model.Armor;

                        if (Armor.Type == Model.Armor.HEAD_ARMOR)
                        {
                            m_spriteBatch.Draw(m_textures[HEADARMOR], position, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                }
                //Kollar om spelaren har musen över ett item. isf så ska stats visas.
                if (m_inputHandler.MouseIsOver(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    pos       = position;
                    statsItem = item;
                }
            }
            #endregion

            if (statsItem != null && m_player.CharPanel.IsOpen)
            {
                DrawItemStats(statsItem, pos);
            }
        }
        /// <summary>
        /// Method for drawing of the CharacterPanel
        /// </summary>
        private void DrawCharacterPanel()
        {
            Vector2 pos      = new Vector2();
            Vector2 panelPos = new Vector2(_player.CharPanel.Position.X, _player.CharPanel.Position.Y);

            Model.Item statsItem = null;

            Rectangle charPanelRect = new Rectangle(0, 0, GetTexture(Texture.CHAR_PANEL_BG).Width, GetTexture(Texture.CHAR_PANEL_BG).Height);
            Rectangle closeCross    = GetCloseButton(_player.CharPanel.Position.X, _player.CharPanel.Position.Y, Texture.CHAR_PANEL_BG);

            if (_player.CharPanel.IsOpen)
            {
                _spriteBatch.Draw(GetTexture(Texture.CHAR_PANEL_BG), panelPos, charPanelRect, Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Health: +" + _player.TotalHp.ToString(), panelPos + new Vector2(80, 70), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Mana: +" + _player.TotalMana.ToString(), panelPos + new Vector2(80, 85), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Damage: +10", panelPos + new Vector2(80, 100), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Crit: 10%", panelPos + new Vector2(80, 115), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Armor: +" + _player.Armor.ToString(), panelPos + new Vector2(80, 130), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Resist: +" + _player.Resist.ToString(), panelPos + new Vector2(80, 145), Color.White);

                if (_inputHandler.MouseIsOver(new Rectangle((int)_player.CharPanel.Position.X, (int)_player.CharPanel.Position.Y, GetTexture(Texture.CHAR_PANEL_BG).Bounds.Width, GetTexture(Texture.CHAR_PANEL_BG).Bounds.Height)))
                {
                    _inputHandler.MouseIsOverInterface = true;
                }
                if (_inputHandler.DidGetTargetedByLeftClick(closeCross))
                {
                    _player.CharPanel.IsOpen = false;
                }
            }

            Vector2   position = new Vector2(_player.CharPanel.Position.X + 13, _player.CharPanel.Position.Y + 39);
            Rectangle itemRect = new Rectangle(0, 0, 32, 32);

            #region Ritar Equippade Items
            foreach (Model.Item item in _player.CharPanel.EquipedItems)
            {
                item.ThisItem.Bounds.X = (int)_player.CharPanel.Position.X + _camera.GetScreenRectangle.X + 10;
                item.ThisItem.Bounds.Y = (int)_player.CharPanel.Position.Y + _camera.GetScreenRectangle.Y + 25;

                if (_player.CharPanel.IsOpen)
                {
                    if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                    {
                        _player.CharPanelTarget = item;
                    }

                    if (item.GetType() == Model.GameModel.ARMOR)
                    {
                        Model.Armor Armor = item as Model.Armor;

                        if (Armor.Type == Model.Armor.HEAD_ARMOR)
                        {
                            _spriteBatch.Draw(GetTexture(Texture.HEADARMOR), position, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                }
                //Checks if the ccursor is hovering the item
                if (_inputHandler.MouseIsOver(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    pos       = position;
                    statsItem = item;
                }
            }
            #endregion

            if (statsItem != null && _player.CharPanel.IsOpen)
            {
                _common.DrawItemStats(statsItem, pos);
            }
        }