Exemple #1
0
 /// <summary>
 /// デバッグ用に適当な画像を描く
 /// </summary>
 /// <param name="slotNum"></param>
 public void DrawDebugImage(int slotNum)
 {
     Size = new Size(16 * slotNum, 16);
     using (Graphics g = Graphics.FromImage(Image))
     {
         ///全消去
         g.FillRectangle(SystemBrushes.Control, new Rectangle(new Point(0, 0), Image.Size));
         for (int n = 0; n < _slotNum; n++)
         {
             if (n < slotNum && IconImageList != null)
             {
                 IconImageList.Draw(g, new Point(15 * n, 0), n + 2);
             }
         }
     }
     Invalidate();
 }
Exemple #2
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();
            }