Пример #1
0
        private void characterList_DrawItem(ObjectListControl sender, DrawItemEventArgs e)
        {
            Character thisCharacter = (Character)characterList.Items[e.Index];

            Rectangle characterFrame;

            if (characterList.Selected[e.Index])
            {
                sender.DrawLineItemHighlight(Color.AliceBlue, e.Bounds);

                characterFrame = thisCharacter.GetAnimatedSpriteFrame(SpriteDirection.Front);
            }
            else
            {
                characterFrame = thisCharacter.GetSpriteFrame(SpriteDirection.Front);
            }

            e.SpriteBatch.Draw(screenHandler.CharacterSpriteTexture,
                               new Rectangle(e.Bounds.Left + 4, e.Bounds.Top + e.Bounds.Height / 2 - characterFrame.Height / 2, characterFrame.Width, characterFrame.Height),
                               characterFrame, Color.White);


            e.SpriteBatch.DrawString(characterList.Font, thisCharacter.Name, new Vector2(e.Bounds.Left + 40, e.Bounds.Top + 4), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
        }
Пример #2
0
        private void partList_ItemSelected(ObjectListControl sender, ItemSelctedEventArgs e)
        {
            Console.WriteLine("Selected " + e.Index);

            BodyPart thisPart = (BodyPart)partList.SelectedItem;

            if (thisPart.canHold)
            {
                holdingList.Clear();
                if (thisPart.Holding != null)
                {
                    holdingList.AddItem(thisPart.Holding, true);
                }
                foreach (var itemPair in Party.Items.Where(x => x.Value > 0 && x.Key is Equipment && ((Equipment)x.Key).HeldBy == thisPart.Type && ((Equipment)x.Key) != thisPart.Holding))
                {
                    Equipment equipment = (Equipment)itemPair.Key;
                    holdingList.AddItem(equipment, false);
                }
            }
            if (thisPart.canWear)
            {
                wearingList.Clear();
                if (thisPart.Wearing != null)
                {
                    wearingList.AddItem(thisPart.Wearing, true);
                }
                foreach (var itemPair in Party.Items.Where(x => x.Value > 0 && x.Key is Equipment && ((Equipment)x.Key).WornOn == thisPart.Type && ((Equipment)x.Key) != thisPart.Wearing))
                {
                    Equipment equipment = (Equipment)itemPair.Key;
                    wearingList.AddItem(equipment, false);
                }
            }
        }
Пример #3
0
        private void itemList_DrawItem(ObjectListControl sender, DrawItemEventArgs e)
        {
            Item thisItem = (Item)itemList.Items[e.Index];

            //Rectangle characterFrame;
            if (itemList.Selected[e.Index])
            {
                sender.DrawLineItemHighlight(Color.AliceBlue, e.Bounds);

                //characterFrame = thisCharacter.GetAnimatedSpriteFrame(SpriteDirection.Front);
            }
            else
            {
                //characterFrame = thisCharacter.GetSpriteFrame(SpriteDirection.Front);
            }

            //e.SpriteBatch.Draw(Game.World.CharacterSpriteTexture,
            //    new Rectangle(e.Bounds.Left + 4, e.Bounds.Top + e.Bounds.Height / 2 - characterFrame.Height / 2, characterFrame.Width, characterFrame.Height),
            //    characterFrame, Color.White);


            e.SpriteBatch.DrawString(itemList.Font, thisItem.Name, new Vector2(e.Bounds.Left + 40, e.Bounds.Top + 4), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);

            e.SpriteBatch.DrawString(itemList.Font, Game.World.Player.Items[thisItem].ToString().PadLeft(3), new Vector2(e.Bounds.Right - 50, e.Bounds.Top + 4), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
        }
Пример #4
0
        public override void MouseMoved(float x, float y)
        {
            base.MouseMoved(x, y);

            foreach (var component in Components)
            {
                if (component is ObjectListControl)
                {
                    ObjectListControl list = ((ObjectListControl)component);
                    if (list.Bounds.Contains(new Point((int)MouseLoc.X, (int)MouseLoc.Y)))
                    {
                        //If just entered the list
                        if (!list.Bounds.Contains(new Point((int)OldMouseLoc.X, (int)OldMouseLoc.Y)))
                        {
                            list.MouseEntered(MouseLoc);
                        }

                        list.MouseMoved(MouseLoc);
                    }
                    else if (list.Bounds.Contains(new Point((int)OldMouseLoc.X, (int)OldMouseLoc.Y)))
                    {
                        list.MouseLeft(MouseLoc);
                    }
                }
            }
        }
Пример #5
0
        private void itemList_ItemSelected(ObjectListControl sender, ItemSelctedEventArgs e)
        {
            Console.WriteLine("Selected " + e.Index);
            Item thisItem = (Item)itemList.Items[e.Index];

            switch (thisItem.Usage)
            {
            case ItemUse.Wearable:
                //DrawEquipableItem(SpriteBatch, gameTime, thisItem);
                break;

            case ItemUse.Usable:
                if (characterList != null)
                {
                    characterList.Select(0);
                }
                break;

            case ItemUse.BattleUsable:
                break;

            default:
                break;
            }
        }
Пример #6
0
        private void wearingList_ItemSelected(ObjectListControl sender, ItemSelctedEventArgs e)
        {
            Equipment thisEquipment = (Equipment)wearingList.SelectedItem;
            BodyPart  thisPart      = (BodyPart)partList.SelectedItem;
            Character thisCharacter = (Character)characterList.SelectedItem;

            if (!Party.ChangeEquipmentWorn(thisCharacter, thisPart, thisEquipment))
            {
                wearingList.Selected[e.Index] = false;
            }
        }
Пример #7
0
        private void createControls()
        {
            // Character List
            characterList            = new ObjectListControl(Game, this);
            characterList.ItemHeight = 40;
            characterList.Bounds     = new Rectangle(50, 100, 400, 750);

            foreach (Character character in Party.Characters)
            {
                characterList.AddItem(character, false);
            }

            this.Components.Add(characterList);

            characterList.DrawItem     += new DrawItemEventHandler(characterList_DrawItem);
            characterList.ItemSelected += new ItemSelectedEventHandler(characterList_ItemSelected);

            // BodyPart List
            partList        = new ObjectListControl(Game, this);
            partList.Bounds = new Rectangle(910, 140, 200, 300);
            partList.Font   = screenHandler.Fonts["myFontSmaller"];

            this.Components.Add(partList);

            partList.DrawItem     += new DrawItemEventHandler(partList_DrawItem);
            partList.ItemSelected += new ItemSelectedEventHandler(partList_ItemSelected);

            // Wearing Equipment List
            wearingList             = new ObjectListControl(Game, this);
            wearingList.Bounds      = new Rectangle(1120, 140, 200, 300);
            wearingList.Font        = screenHandler.Fonts["myFontSmaller"];
            wearingList.canUnselect = true;

            this.Components.Add(wearingList);

            wearingList.DrawItem     += new DrawItemEventHandler(wearingList_DrawItem);
            wearingList.ItemSelected += new ItemSelectedEventHandler(wearingList_ItemSelected);

            // Holding Equipment List
            holdingList             = new ObjectListControl(Game, this);
            holdingList.Bounds      = new Rectangle(1330, 140, 200, 300);
            holdingList.Font        = screenHandler.Fonts["myFontSmaller"];
            holdingList.canUnselect = true;

            this.Components.Add(holdingList);

            holdingList.DrawItem     += new DrawItemEventHandler(holdingList_DrawItem);
            holdingList.ItemSelected += new ItemSelectedEventHandler(holdingList_ItemSelected);



            characterList.Select(0);
        }
Пример #8
0
        private void partList_DrawItem(ObjectListControl sender, DrawItemEventArgs e)
        {
            BodyPart thisPart = (BodyPart)partList.Items[e.Index];


            if (partList.Selected[e.Index])
            {
                sender.DrawLineItemHighlight(Color.AliceBlue, e.Bounds);
            }

            e.SpriteBatch.DrawString(partList.Font, thisPart.Name, new Vector2(e.Bounds.Left + 20, e.Bounds.Top + (e.Bounds.Height - partList.Font.MeasureString(thisPart.Name).Y) / 2), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
        }
Пример #9
0
        private void createControls()
        {
            useButton        = new ButtonControl();
            useButton.Text   = "Use";
            useButton.Bounds = new UniRectangle(
                new UniScalar(0.0f, 1470.0f), new UniScalar(0.0f, 770.0f), 80, 80
                );
            useButton.Pressed += delegate(object sender, EventArgs arguments)
            {
                useButtonClicked();
            };
            useButton.Enabled = false;
            this.Desktop.Children.Add(useButton);


            // Item List
            itemList            = new ObjectListControl(Game, this);
            itemList.ItemHeight = 40;
            itemList.Bounds     = new Rectangle(50, 100, 400, 650);

            PopulateItems();

            this.Components.Add(itemList);

            itemList.DrawItem     += new DrawItemEventHandler(itemList_DrawItem);
            itemList.ItemSelected += new ItemSelectedEventHandler(itemList_ItemSelected);

            itemList.Select(0);

            // Character List
            characterList            = new ObjectListControl(Game, this);
            characterList.ItemHeight = 40;
            characterList.Bounds     = new Rectangle(470, 100, 1080, 650);


            foreach (Character character in Party.Characters)
            {
                characterList.AddItem(character, false);
            }
            characterList.Visible = false;

            this.Components.Add(characterList);

            characterList.DrawItem     += new DrawItemEventHandler(characterList_DrawItem);
            characterList.ItemSelected += new ItemSelectedEventHandler(characterList_ItemSelected);
        }
Пример #10
0
        private void createControls()
        {
            // Character List
            characterList            = new ObjectListControl(Game, this);
            characterList.ItemHeight = 40;
            characterList.Bounds     = new Rectangle(50, 100, 400, 750);

            foreach (Character character in Party.Characters)
            {
                characterList.AddItem(character, false);
            }

            this.Components.Add(characterList);

            characterList.DrawItem     += new DrawItemEventHandler(characterList_DrawItem);
            characterList.ItemSelected += new ItemSelectedEventHandler(characterList_ItemSelected);

            characterList.Select(0);
        }
Пример #11
0
        private void characterList_DrawItem(ObjectListControl sender, DrawItemEventArgs e)
        {
            Character thisCharacter = (Character)characterList.Items[e.Index];

            Rectangle characterFrame;

            if (characterList.Selected[e.Index])
            {
                sender.DrawLineItemHighlight(Color.AliceBlue, e.Bounds);

                characterFrame = thisCharacter.GetAnimatedSpriteFrame(SpriteDirection.Front);
            }
            else
            {
                characterFrame = thisCharacter.GetSpriteFrame(SpriteDirection.Front);
            }

            e.SpriteBatch.Draw(screenHandler.CharacterSpriteTexture,
                               new Rectangle(e.Bounds.Left + 4, e.Bounds.Top + e.Bounds.Height / 2 - characterFrame.Height / 2, characterFrame.Width, characterFrame.Height),
                               characterFrame, Color.White);


            e.SpriteBatch.DrawString(characterList.Font, thisCharacter.Name, new Vector2(e.Bounds.Left + 40, e.Bounds.Top + e.Bounds.Height / 2 - 16), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);

            e.SpriteBatch.DrawString(characterList.Font, "HP:" + thisCharacter.HP + " / " + thisCharacter.MaxHP, new Vector2(e.Bounds.Left + 200, e.Bounds.Top + 4), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);

            thisCharacter.HP = thisCharacter.MaxHP / 2;

            sender.DrawRect(Color.DarkRed, new Rectangle(e.Bounds.Left + 200, e.Bounds.Top + 4 + 30, 200, 20), Color.Black);
            sender.DrawRect(Color.Red, new Rectangle(e.Bounds.Left + 201, e.Bounds.Top + 4 + 30 + 1, (int)(198.0f * ((float)thisCharacter.HP / thisCharacter.MaxHP)), 19));

            e.SpriteBatch.DrawString(characterList.Font, "Level:" + thisCharacter.Level, new Vector2(e.Bounds.Left + 200, e.Bounds.Top + 4 + 50), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);

            thisCharacter.Experience = thisCharacter.ExpToNextLevel / 3;

            sender.DrawRect(Color.DarkGreen, new Rectangle(e.Bounds.Left + 200, e.Bounds.Top + 4 + 80, 200, 20), Color.Black);
            sender.DrawRect(Color.Green, new Rectangle(e.Bounds.Left + 201, e.Bounds.Top + 4 + 80 + 1, (int)(198.0f * ((float)thisCharacter.Experience / thisCharacter.ExpToNextLevel)), 19));
        }
Пример #12
0
        public override void MouseButtonReleased(Nuclex.Input.MouseButtons buttons)
        {
            base.MouseButtonReleased(buttons);

            if (buttons == Nuclex.Input.MouseButtons.Left)
            {
                foreach (var component in Components)
                {
                    if (component is ObjectListControl)
                    {
                        ObjectListControl list = ((ObjectListControl)component);
                        if (list.Bounds.Contains(new Point((int)MouseLoc.X, (int)MouseLoc.Y)))
                        {
                            list.MouseClicked(MouseLoc);
                            break;
                        }
                    }
                }

                buttons = 0;
            }
        }
Пример #13
0
 private void characterList_ItemSelected(ObjectListControl sender, ItemSelctedEventArgs e)
 {
     Console.WriteLine("Selected " + e.Index);
     if (partList != null)
     {
         partList.Clear();
         foreach (BodyPart part in ((Character)characterList.SelectedItem).BodyParts)
         {
             if (part.canHold || part.canWear)
             {
                 partList.AddItem(part, false);
             }
             if (part.BodyParts == null)
             {
                 continue;
             }
             foreach (BodyPart innerpart in part.BodyParts)
             {
                 if (innerpart.canHold || innerpart.canWear)
                 {
                     partList.AddItem(innerpart, false);
                 }
                 if (innerpart.BodyParts == null)
                 {
                     continue;
                 }
                 foreach (BodyPart inmostpart in innerpart.BodyParts)
                 {
                     if (inmostpart.canHold || inmostpart.canWear)
                     {
                         partList.AddItem(inmostpart, false);
                     }
                 }
             }
         }
     }
     partList.Select(0);
 }
Пример #14
0
        private void wearingList_DrawItem(ObjectListControl sender, DrawItemEventArgs e)
        {
            Equipment thisEquipment = (Equipment)wearingList.Items[e.Index];

            if (wearingList.Selected[e.Index])
            {
                if (wearingList.HoverIndex == e.Index && wearingList.MouseInside)
                {
                    sender.DrawLineItemHighlight(Color.AliceBlue, e.Bounds, Color.Red);
                }
                else
                {
                    sender.DrawLineItemHighlight(Color.AliceBlue, e.Bounds);
                }
            }
            else if (wearingList.HoverIndex == e.Index && wearingList.MouseInside)
            {
                sender.DrawLineItemHighlight(Color.Transparent, e.Bounds, Color.Red);
            }

            e.SpriteBatch.DrawString(partList.Font, thisEquipment.Name, new Vector2(e.Bounds.Left + 20, e.Bounds.Top + (e.Bounds.Height - partList.Font.MeasureString(thisEquipment.Name).Y) / 2), Color.Black,
                                     0, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
        }
Пример #15
0
        private void ShowEntityTab(Entity entity)
        {
            if (!Objectbase.IsNullOrEmpty(entity))
            {
                Type listType = Type.GetType(entity.ListTypeName, false);
                if (listType != null && listType.IsSubclassOf(typeof(ObjectListControl)))
                {
                    string        entityKey  = entity.ObjectGuid.ToString();
                    EntityTabPage entityPage = null;
                    if (this.tabMain.TabPages.ContainsKey(entityKey))
                    {
                        entityPage = this.tabMain.TabPages[entityKey] as EntityTabPage;
                    }
                    else
                    {
                        try
                        {
                            ObjectListControl listControl = Activator.CreateInstance(listType) as ObjectListControl;
                            if (listControl != null)
                            {
                                entityPage      = new EntityTabPage(listControl, entity.ListCaption);
                                entityPage.Name = entityKey;
                                this.tabMain.TabPages.Add(entityPage);
                                entityPage.Text = entity.ListCaption;
                            }
                        }
                        catch (Exception) { }
                    }

                    if (null != entityPage)
                    {
                        this.tabMain.SelectedTab = entityPage;
                    }
                }
            }
        }
Пример #16
0
        private void UpdateOverrides()
        {
            if (_ruleOverrideTile.OverrideTile)
            {
                if (_ruleOverrideTile.OverrideTile.Rules.Count > _ruleOverrideTile.Rules.Count)
                {
                    _ruleOverrideTile.Rules.AddRange(Enumerable.Repeat(new RuleOverrideTile.Rule(), _ruleOverrideTile.OverrideTile.Rules.Count - _ruleOverrideTile.Rules.Count));
                }
                else
                {
                    _ruleOverrideTile.Rules.RemoveRange(_ruleOverrideTile.OverrideTile.Rules.Count, _ruleOverrideTile.Rules.Count - _ruleOverrideTile.OverrideTile.Rules.Count);
                }
            }
            else
            {
                _ruleOverrideTile.Rules.Clear();
            }

            _rulesControl = new ObjectListControl();
            _rulesControl.Setup(_ruleOverrideTile.Rules)
            .MakeDrawable(DrawRule)
            .MakeCustomHeight(GetElementHeight)
            .MakeHeaderButton(_createRulesIcon, CreateRules, Color.white);
        }
Пример #17
0
 private void characterList_ItemSelected(ObjectListControl sender, ItemSelctedEventArgs e)
 {
     Console.WriteLine("Selected " + e.Index);
 }