Exemple #1
0
                /// <summary>
                /// 対象イメージに装備一覧画像を書き込む
                /// </summary>
                /// <param name="slotItems">装備情報</param>
                /// <param name="iconImageList">装備アイコンのイメージリスト</param>
                /// <param name="canvas">対象イメージ</param>
                /// <param name="backBrush">背景色</param>
                void DrawSlotItemsImage(List <MemberData.Ship.Info.SlotItemInfo> slotItems,
                                        ImageList iconImageList, Image canvas, Brush backBrush)
                {
                    using (Graphics g = Graphics.FromImage(canvas))
                    {
                        g.FillRectangle(backBrush,
                                        new Rectangle(new Point(0, 0), canvas.Size));

                        for (int n = 0; n < 4; n++)
                        {
                            //解放済みスロットについてのみ描画
                            if (n < slotItems.Count)
                            {
                                MemberData.Ship.Info.SlotItemInfo slotItem = slotItems[n];
                                int itemType = slotItem.TypeNum;
                                //装着されてるスロット かつ 装備情報読み込み済み
                                if (slotItem != null && itemType > 0 && itemType < iconImageList.Images.Count)
                                {
                                    iconImageList.Draw(g, new Point(15 * n + 1, 0), itemType);
                                }
                                else
                                {
                                    iconImageList.Draw(g, new Point(15 * n + 1, 0), 0);
                                }
                            }
                        }
                    }
                }
Exemple #2
0
                    public SlotItemNameLVSubItem(MemberData.Ship.Info.SlotItemInfo slotItem, ImageList imgSlotItem)
                    {
//                        this.imgSlotItem = imgSlotItem;

                        imageNormal   = new Bitmap(16, 16);
                        imageSelected = new Bitmap(16, 16);

                        if (slotItem == null)
                        {
                            Text          = "(未装備)";
                            slotItemIndex = 0;
                        }
                        else
                        {
                            if (slotItem.Level > 0)
                            {
                                Text = string.Format("[{1}]{0}", slotItem.Name, slotItem.Level);
                            }
                            else
                            {
                                Text = slotItem.Name;
                            }

                            slotItemIndex = slotItem.TypeNum;
                            if (slotItemIndex < 0)
                            {
                                slotItemIndex = 0;
                            }
                        }

                        DrawSlotItemImage(imgSlotItem, imageNormal, SystemBrushes.Window, slotItemIndex);
                        DrawSlotItemImage(imgSlotItem, imageSelected, SystemBrushes.Highlight, slotItemIndex);
                    }
Exemple #3
0
            /// <summary>
            /// 装備スロットにアイテムを設定する
            /// </summary>
            /// <param name="slotItem">装備アイテム一覧</param>
            public void SetSlotItem(List <MemberData.Ship.Info.SlotItemInfo> slotItems)
            {
                StringBuilder sb = new StringBuilder();

                using (Graphics g = Graphics.FromImage(Image))
                {
                    ///全消去
                    g.FillRectangle(SystemBrushes.Control, new Rectangle(new Point(0, 0), Image.Size));

                    int AirSuperiorityAbility = 0;

                    for (int n = 0; n < _slotNum; n++)
                    {
                        string name  = string.Format("装備{0}", n + 1);
                        string value = "(装備不可)";

                        //解放済みスロットについてのみ描画
                        if (n < slotItems.Count)
                        {
                            MemberData.Ship.Info.SlotItemInfo slotItem = slotItems[n];
                            int itemType = slotItem.TypeNum;
                            //装着されてるスロット かつ 装備情報読み込み済み
                            if (slotItem != null && itemType > 0 && itemType < IconImageList.Images.Count)
                            {
                                IconImageList.Draw(g, new Point(15 * n, 0), itemType);
                            }
                            else
                            {
                                IconImageList.Draw(g, new Point(15 * n, 0), 0);
                            }

                            //艦載機の場合
                            if (slotItem.Count > 0)
                            {
                                name = string.Format("装備{0} x{1}", n + 1, slotItem.Count);
                                AirSuperiorityAbility += slotItem.AirSuperiorityAbility;
                            }

                            if (slotItem.Info == null)
                            {
                                if (slotItem.ID == -1)
                                {
                                    value = "(未装備)";
                                }
                                else
                                {
                                    value = string.Format("装備ID:{0}", slotItem.ID);
                                }
                            }
                            else
                            {
                                if (slotItem.Level > 0)
                                {
                                    value = string.Format("({0})[{1}]{2}", slotItem.TypeName, slotItem.Level, slotItem.Name);
                                }
                                else
                                {
                                    value = string.Format("({0}){1}", slotItem.TypeName, slotItem.Name);
                                }
                            }

                            sb.AppendFormat("{0}: {1}\n", name, value);
                        }
                    }

                    if (AirSuperiorityAbility > 0)
                    {
                        sb.AppendFormat("\n制空値:{0}", AirSuperiorityAbility);
                    }
                }
                Size = new Size(16 * slotItems.Count, 16);

                //再描画
                Invalidate();

                ToolTipText = sb.ToString();
            }
Exemple #4
0
 public SlotItemLVItem(string name, MemberData.Ship.Info.SlotItemInfo slotItem, ImageList imgSlotItem)
 {
     Text = name;
     SubItems.Add(new SlotItemNameLVSubItem(slotItem, imgSlotItem));
 }