diff --git a/src/MeoAsstGui/Helper/DragItemViewModel.cs b/src/MeoAsstGui/Helper/DragItemViewModel.cs
index 0d8ff45c8b..94fd442700 100644
--- a/src/MeoAsstGui/Helper/DragItemViewModel.cs
+++ b/src/MeoAsstGui/Helper/DragItemViewModel.cs
@@ -28,10 +28,36 @@ namespace MeoAsstGui
public DragItemViewModel(string name, string storageKey)
{
this.Name = name;
+ this.OriginalName = name;
this._isCheckedStorageKey = storageKey + name + ".IsChecked";
this.IsChecked = System.Convert.ToBoolean(ViewStatusStorage.Get(_isCheckedStorageKey, bool.TrueString));
}
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The name (viewed name).
+ /// The original name (may not be the same as viewed name).
+ /// The storage key.
+ public DragItemViewModel(string name, string original_name, string storageKey)
+ {
+ this.Name = name;
+ this.OriginalName = original_name;
+ this._isCheckedStorageKey = storageKey + original_name + ".IsChecked";
+ this.IsChecked = System.Convert.ToBoolean(ViewStatusStorage.Get(_isCheckedStorageKey, bool.TrueString));
+ }
+
+ private string _original_name;
+
+ ///
+ /// Gets or sets the original_name.
+ ///
+ public string OriginalName
+ {
+ get { return _original_name; }
+ set { SetAndNotify(ref _original_name, value); }
+ }
+
private string _name;
///
diff --git a/src/MeoAsstGui/Helper/ViewStatusStorage.cs b/src/MeoAsstGui/Helper/ViewStatusStorage.cs
index f5eaf3d773..91adedb566 100644
--- a/src/MeoAsstGui/Helper/ViewStatusStorage.cs
+++ b/src/MeoAsstGui/Helper/ViewStatusStorage.cs
@@ -101,6 +101,26 @@ namespace MeoAsstGui
return true;
}
+ ///
+ /// Deletes configuration.
+ ///
+ /// The key.
+ /// Whether the operation is successful.
+ public static bool Delete(string key)
+ {
+ try
+ {
+ _viewStatus.Remove(key);
+ Save();
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
///
/// Saves configuration.
///
diff --git a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs
index b91713b655..e72d9b6ae0 100644
--- a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs
+++ b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs
@@ -119,13 +119,13 @@ namespace MeoAsstGui
/* 基建设置 */
var facility_list = new string[]
{
- Localization.GetString("Mfg"),
- Localization.GetString("Trade"),
- Localization.GetString("Control"),
- Localization.GetString("Power"),
- Localization.GetString("Reception"),
- Localization.GetString("Office"),
- Localization.GetString("Dorm"),
+ "Mfg",
+ "Trade",
+ "Control",
+ "Power",
+ "Reception",
+ "Office",
+ "Dorm",
};
var temp_order_list = new List(new DragItemViewModel[facility_list.Length]);
@@ -136,24 +136,16 @@ namespace MeoAsstGui
if (!parsed || order < 0)
{
- temp_order_list[i] = new DragItemViewModel(facility, "Infrast.");
+ temp_order_list[i] = new DragItemViewModel(Localization.GetString(facility), facility, "Infrast.");
}
else
{
- temp_order_list[order] = new DragItemViewModel(facility, "Infrast.");
+ temp_order_list[order] = new DragItemViewModel(Localization.GetString(facility), facility, "Infrast.");
}
}
InfrastItemViewModels = new ObservableCollection(temp_order_list);
- _facilityKey.Add(Localization.GetString("Dorm"), "Dorm");
- _facilityKey.Add(Localization.GetString("Mfg"), "Mfg");
- _facilityKey.Add(Localization.GetString("Trade"), "Trade");
- _facilityKey.Add(Localization.GetString("Power"), "Power");
- _facilityKey.Add(Localization.GetString("Reception"), "Reception");
- _facilityKey.Add(Localization.GetString("Office"), "Office");
- _facilityKey.Add(Localization.GetString("Control"), "Control");
-
UsesOfDronesList = new List
{
new CombData { Display = Localization.GetString("DronesNotUse"), Value = "_NotUse" },
@@ -480,7 +472,6 @@ namespace MeoAsstGui
}
/* 基建设置 */
- private readonly Dictionary _facilityKey = new Dictionary();
///
/// Gets or sets the infrast item view models.
@@ -574,7 +565,7 @@ namespace MeoAsstGui
continue;
}
- orderList.Add(_facilityKey[item.Name]);
+ orderList.Add(item.OriginalName);
}
return orderList;
@@ -587,7 +578,7 @@ namespace MeoAsstGui
{
for (int i = 0; i < InfrastItemViewModels.Count; i++)
{
- ViewStatusStorage.Set("Infrast.Order." + InfrastItemViewModels[i].Name, i.ToString());
+ ViewStatusStorage.Set("Infrast.Order." + InfrastItemViewModels[i].OriginalName, i.ToString());
}
}
diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs
index 0d96766165..38887ba83e 100644
--- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs
+++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs
@@ -153,21 +153,94 @@ namespace MeoAsstGui
}
}
+
+ // TODO: Delete this.
+
+ ///
+ /// Delete old configurations.
+ /// Note that this feature ought to be removed in later versions.
+ ///
+ public void DeleteOldConfig()
+ {
+
+ string[] saved_list_name_1 = new string[]
+ {
+ "WakeUp", "Recruiting", "Base", "Combat", "Visiting", "Mall", "Mission", "AutoRoguelike",
+ };
+ foreach (var name in saved_list_name_1)
+ {
+ string local_name = Localization.GetString(name);
+ string check = ViewStatusStorage.Get("TaskQueue." + local_name + ".IsChecked", string.Empty);
+ string order = ViewStatusStorage.Get("TaskQueue.Order." + local_name, string.Empty);
+ if (check != string.Empty)
+ {
+ ViewStatusStorage.Set("TaskQueue." + name + ".IsChecked", check);
+ }
+ if (order != string.Empty)
+ {
+ ViewStatusStorage.Set("TaskQueue.Order." + name, order);
+ }
+ }
+
+ string[] saved_list_name_2 = new string[]
+ {
+ "Mfg", "Trade", "Control", "Power", "Reception", "Office", "Dorm",
+ };
+ foreach (var name in saved_list_name_2)
+ {
+ string local_name = Localization.GetString(name);
+ string check = ViewStatusStorage.Get("Infrast." + local_name + ".IsChecked", string.Empty);
+ string order = ViewStatusStorage.Get("Infrast.Order." + local_name, string.Empty);
+ if (check != string.Empty)
+ {
+ ViewStatusStorage.Set("Infrast." + name + ".IsChecked", check);
+ }
+ if (order != string.Empty)
+ {
+ ViewStatusStorage.Set("Infrast.Order." + name, order);
+ }
+ }
+
+ string[] old_list_name = new string[]
+ {
+ "开始唤醒", "自动公招", "基建换班", "刷理智", "访问好友", "收取信用及购物", "领取日常奖励", "自动肉鸽",
+ "宿舍", "制造站", "贸易站", "发电站", "会客室", "办公室", "控制中枢",
+ "開始喚醒", "自動公招", "基建換班", "刷理智", "訪問好友", "收取信用及購物", "領取日常獎勵", "自動肉鴿",
+ "宿舍", "製造站", "貿易站", "發電站", "會客室", "辦公室", "控制中樞",
+ "ウェイクアップ", "公開求人", "基地仕事", "作戦", "戦友訪問", "FP交換", "報酬受取", "自動ローグ",
+ "宿舎", "製造所", "貿易所", "発電所", "応接室", "事務所", "制御中枢",
+ "웨이크업", "공개모집", "기반시설 교대", "작전", "친구 방문", "상점", "일일 퀘스트 보상을 수집", "통합전략",
+ "숙소", "제조소", "무역소", "발전소", "응접실", "사무실", "제어 센터",
+ "🍻💃", "🕺🍺", "🍺🍺", "🍺🍸", "🍺🍻", "🕺🍸", "🍻🍸🍻",
+ "🍸💃💃", "🍸🍺🍻", "🍺🍸🍺", "🍸🍷", "🍺🍸🍷", "🍻🍺🍸🍻", "🍺🍸🕺🍸", "🍺🍸🍸",
+ };
+ foreach (var name in old_list_name)
+ {
+ ViewStatusStorage.Delete("TaskQueue." + name + ".IsChecked");
+ ViewStatusStorage.Delete("TaskQueue.Order." + name);
+ ViewStatusStorage.Delete("Infrast." + name + ".IsChecked");
+ ViewStatusStorage.Delete("Infrast.Order." + name);
+ }
+ }
+
+
///
/// Initializes items.
///
public void InitializeItems()
{
+ DeleteOldConfig();
+
string[] task_list = new string[]
{
- Localization.GetString("WakeUp"),
- Localization.GetString("Recruiting"),
- Localization.GetString("Base"),
- Localization.GetString("Combat"),
- Localization.GetString("Visiting"),
- Localization.GetString("Mall"),
- Localization.GetString("Mission"),
- Localization.GetString("AutoRoguelike"),
+ "WakeUp",
+ "Recruiting",
+ "Base",
+ "Combat",
+ "Visiting",
+ "Mall",
+ "Mission",
+ "AutoRoguelike",
};
ActionAfterCompletedList = new List>
{
@@ -189,8 +262,8 @@ namespace MeoAsstGui
int order;
bool parsed = int.TryParse(ViewStatusStorage.Get("TaskQueue.Order." + task, "-1"), out order);
- var vm = new DragItemViewModel(task, "TaskQueue.");
- if (task == Localization.GetString("AutoRoguelike"))
+ var vm = new DragItemViewModel(Localization.GetString(task), task, "TaskQueue.");
+ if (task == "AutoRoguelike")
{
vm.IsChecked = false;
}
@@ -443,7 +516,7 @@ namespace MeoAsstGui
{
foreach (var item in TaskItemViewModels)
{
- if (item.Name == Localization.GetString("AutoRoguelike"))
+ if (item.OriginalName == "AutoRoguelike")
{
continue;
}
@@ -606,7 +679,7 @@ namespace MeoAsstGui
{
foreach (var item in TaskItemViewModels)
{
- if (item.Name == Localization.GetString("AutoRoguelike"))
+ if (item.OriginalName == "AutoRoguelike")
{
continue;
}
@@ -635,6 +708,16 @@ namespace MeoAsstGui
Idle = false;
+ // 点击开始后先保存两大顺序:任务顺序和基建顺序
+ // TODO: optimize me: 要不要改成类似 check,在拖动后保存?
+ int index = 0;
+ foreach (var item in TaskItemViewModels)
+ {
+ ViewStatusStorage.Set("TaskQueue.Order." + item.OriginalName, index.ToString());
+ ++index;
+ }
+ _container.Get().SaveInfrastOrderList();
+
ClearLog();
AddLog(Localization.GetString("ConnectingToEmulator"));
@@ -678,47 +761,43 @@ namespace MeoAsstGui
// 直接遍历TaskItemViewModels里面的内容,是排序后的
int count = 0;
- int index = 0;
foreach (var item in TaskItemViewModels)
{
- ViewStatusStorage.Set("TaskQueue.Order." + item.Name, index.ToString());
- ++index;
-
if (item.IsChecked == false)
{
continue;
}
++count;
- if (item.Name == Localization.GetString("Base"))
+ if (item.OriginalName == "Base")
{
ret &= appendInfrast();
}
- else if (item.Name == Localization.GetString("WakeUp"))
+ else if (item.OriginalName == "WakeUp")
{
ret &= appendStart();
}
- else if (item.Name == Localization.GetString("Combat"))
+ else if (item.OriginalName == "Combat")
{
ret &= appendFight();
}
- else if (item.Name == Localization.GetString("Recruiting"))
+ else if (item.OriginalName == "Recruiting")
{
ret &= appendRecruit();
}
- else if (item.Name == Localization.GetString("Visiting"))
+ else if (item.OriginalName == "Visiting")
{
ret &= asstProxy.AsstAppendVisit();
}
- else if (item.Name == Localization.GetString("Mall"))
+ else if (item.OriginalName == "Mall")
{
ret &= appendMall();
}
- else if (item.Name == Localization.GetString("Mission"))
+ else if (item.OriginalName == "Mission")
{
ret &= asstProxy.AsstAppendAward();
}
- else if (item.Name == Localization.GetString("AutoRoguelike"))
+ else if (item.OriginalName == "AutoRoguelike")
{
ret &= appendRoguelike();
}