/// <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); } } } } }
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); }
/// <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(); }
public SlotItemLVItem(string name, MemberData.Ship.Info.SlotItemInfo slotItem, ImageList imgSlotItem) { Text = name; SubItems.Add(new SlotItemNameLVSubItem(slotItem, imgSlotItem)); }