/// <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(); }
/// <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(); }