From 4254a2a68628024abebf689cb2c6e5b5724f9296 Mon Sep 17 00:00:00 2001 From: lasedark Date: Thu, 28 May 2020 23:39:12 +0800 Subject: [PATCH] make full support for function of developing equips including concentrated development --- .../Contents/CreatedSlotItemViewModel.cs | 5 +++-- source/Grabacr07.KanColleWrapper/Itemyard.cs | 9 ++++++--- .../Models/CreatedSlotItem.cs | 15 ++++++++------ .../Models/Raw/kcsapi_createitem.cs | 20 +++++++++++-------- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/source/Grabacr07.KanColleViewer/ViewModels/Contents/CreatedSlotItemViewModel.cs b/source/Grabacr07.KanColleViewer/ViewModels/Contents/CreatedSlotItemViewModel.cs index 8d067ff2f..c16aea90f 100644 --- a/source/Grabacr07.KanColleViewer/ViewModels/Contents/CreatedSlotItemViewModel.cs +++ b/source/Grabacr07.KanColleViewer/ViewModels/Contents/CreatedSlotItemViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -56,7 +56,8 @@ public CreatedSlotItemViewModel() public void Update(CreatedSlotItem item) { this.Succeed = item.Succeed; - this.Name = item.SlotItemInfo.Name; + this.Name = !item.Succeed ? "-----" + : string.Join(Environment.NewLine, item.SlotItemInfos.Select(x => x.Name).ToArray()); } } } diff --git a/source/Grabacr07.KanColleWrapper/Itemyard.cs b/source/Grabacr07.KanColleWrapper/Itemyard.cs index 3948c805f..2f82c0389 100644 --- a/source/Grabacr07.KanColleWrapper/Itemyard.cs +++ b/source/Grabacr07.KanColleWrapper/Itemyard.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; @@ -132,9 +132,12 @@ internal void RemoveFromRemodel(kcsapi_remodel_slot source) private void CreateItem(kcsapi_createitem source) { - if (source.api_create_flag == 1 && source.api_slot_item != null) + if (source.api_create_flag == 1 && source.api_get_items != null) { - this.SlotItems.Add(new SlotItem(source.api_slot_item)); + foreach (var x in source.api_get_items) + { + if (x.api_slotitem_id != -1) this.SlotItems.Add(new SlotItem(x)); + } } this.RaiseSlotItemsChanged(); } diff --git a/source/Grabacr07.KanColleWrapper/Models/CreatedSlotItem.cs b/source/Grabacr07.KanColleWrapper/Models/CreatedSlotItem.cs index 765a69646..243e1b612 100644 --- a/source/Grabacr07.KanColleWrapper/Models/CreatedSlotItem.cs +++ b/source/Grabacr07.KanColleWrapper/Models/CreatedSlotItem.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,18 +13,21 @@ public class CreatedSlotItem : RawDataWrapper { public bool Succeed => this.RawData.api_create_flag == 1; - public SlotItemInfo SlotItemInfo { get; } + public List SlotItemInfos { get; } public CreatedSlotItem(kcsapi_createitem rawData) : base(rawData) { try { - this.SlotItemInfo = this.Succeed - ? KanColleClient.Current.Master.SlotItems[rawData.api_slot_item.api_slotitem_id] - : KanColleClient.Current.Master.SlotItems[int.Parse(rawData.api_fdata.Split(',')[1])]; + this.SlotItemInfos = this.Succeed + ? new List( + rawData.api_get_items + .Where(x => x.api_slotitem_id != -1) + .Select(x => KanColleClient.Current.Master.SlotItems[x.api_slotitem_id])) + : null; - System.Diagnostics.Debug.WriteLine("createitem: {0} - {1}", this.Succeed, this.SlotItemInfo.Name); + //System.Diagnostics.Debug.WriteLine("createitem: {0} - {1}", this.Succeed, this.SlotItemInfos.Name); } catch (Exception ex) { diff --git a/source/Grabacr07.KanColleWrapper/Models/Raw/kcsapi_createitem.cs b/source/Grabacr07.KanColleWrapper/Models/Raw/kcsapi_createitem.cs index 819e1fcd1..ded68fca5 100644 --- a/source/Grabacr07.KanColleWrapper/Models/Raw/kcsapi_createitem.cs +++ b/source/Grabacr07.KanColleWrapper/Models/Raw/kcsapi_createitem.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,15 +9,19 @@ namespace Grabacr07.KanColleWrapper.Models.Raw // ReSharper disable InconsistentNaming public class kcsapi_createitem { - public int api_id { get; set; } - public int api_slotitem_id { get; set; } public int api_create_flag { get; set; } - public int api_shizai_flag { get; set; } - public kcsapi_slotitem api_slot_item { get; set; } + public kcsapi_slotitem[] api_get_items { get; set; } public int[] api_material { get; set; } + public kcsapi_createitem_unset_items[] kcsapi_unset_items { get; set; } + //public int api_id { get; set; } + //public int api_slotitem_id { get; set; } + //public int api_shizai_flag { get; set; } + //public string api_fdata { get; set; } + } + public class kcsapi_createitem_unset_items + { public int api_type3 { get; set; } - public int[] api_unsetslot { get; set; } - public string api_fdata { get; set; } + public int api_slot_list { get; set; } } // ReSharper restore InconsistentNaming -} \ No newline at end of file +}