feat: 删除访问好友任务,整合进商店任务中

This commit is contained in:
MistEO
2022-11-26 03:47:05 +08:00
parent 0d975e93c6
commit 480f46b9ea
11 changed files with 20 additions and 169 deletions

View File

@@ -26,8 +26,6 @@ func (t TaskType) String() string {
return "Recruit"
case Infrast:
return "Infrast"
case Visit:
return "Visit"
case Mall:
return "Mall"
case Award:
@@ -48,7 +46,6 @@ var TaskFixed = map[string]TaskType{
"Fight": Fight,
"Recruit": Recruit,
"Infrast": Infrast,
"Visit": Visit,
"Mall": Mall,
"Award": Award,
"Roguelike": Roguelike,

View File

@@ -19,7 +19,6 @@
#include "Task/Interface/RecruitTask.h"
#include "Task/Interface/RoguelikeTask.h"
#include "Task/Interface/StartUpTask.h"
#include "Task/Interface/VisitTask.h"
#ifdef ASST_DEBUG
#include "Task/Interface/DebugTask.h"
#endif
@@ -119,7 +118,6 @@ asst::Assistant::TaskId asst::Assistant::append_task(const std::string& type, co
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(StartUpTask)
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(CloseDownTask)
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(AwardTask)
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(VisitTask)
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(MallTask)
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(InfrastTask)
ASST_ASSISTANT_APPEND_TASK_FROM_STRING_IF_BRANCH(RecruitTask)

View File

@@ -94,7 +94,6 @@
<ClInclude Include="Task\Interface\RecruitTask.h" />
<ClInclude Include="Task\Interface\RoguelikeTask.h" />
<ClInclude Include="Task\Interface\StartUpTask.h" />
<ClInclude Include="Task\Interface\VisitTask.h" />
<ClInclude Include="Task\Miscellaneous\AutoRecruitTask.h" />
<ClInclude Include="Task\Miscellaneous\BattleFormationTask.h" />
<ClInclude Include="Task\Miscellaneous\BattleProcessTask.h" />
@@ -205,7 +204,6 @@
<ClCompile Include="Task\Interface\RecruitTask.cpp" />
<ClCompile Include="Task\Interface\RoguelikeTask.cpp" />
<ClCompile Include="Task\Interface\StartUpTask.cpp" />
<ClCompile Include="Task\Interface\VisitTask.cpp" />
<ClCompile Include="Task\Miscellaneous\AutoRecruitTask.cpp" />
<ClCompile Include="Task\Miscellaneous\BattleFormationTask.cpp" />
<ClCompile Include="Task\Miscellaneous\BattleProcessTask.cpp" />

View File

@@ -255,9 +255,6 @@
<ClInclude Include="Task\Interface\StartUpTask.h">
<Filter>源文件\Task\Interface</Filter>
</ClInclude>
<ClInclude Include="Task\Interface\VisitTask.h">
<Filter>源文件\Task\Interface</Filter>
</ClInclude>
<ClInclude Include="Utils\Demangle.hpp">
<Filter>源文件\Utils</Filter>
</ClInclude>
@@ -581,9 +578,6 @@
<ClCompile Include="Task\Interface\StartUpTask.cpp">
<Filter>源文件\Task\Interface</Filter>
</ClCompile>
<ClCompile Include="Task\Interface\VisitTask.cpp">
<Filter>源文件\Task\Interface</Filter>
</ClCompile>
<ClCompile Include="Utils\Platform\PlatformPosix.cpp">
<Filter>源文件\Utils\Platform</Filter>
</ClCompile>

View File

@@ -1,20 +1,26 @@
#include "MallTask.h"
#include "Task/Miscellaneous/CreditFightTask.h"
#include "Task/Miscellaneous/CreditShoppingTask.h"
#include "Task/ProcessTask.h"
asst::MallTask::MallTask(const AsstCallback& callback, void* callback_arg)
: InterfaceTask(callback, callback_arg, TaskType),
m_visit_task_ptr(std::make_shared<ProcessTask>(m_callback, m_callback_arg, TaskType)),
m_credit_fight_task_ptr(std::make_shared<CreditFightTask>(callback, callback_arg, TaskType)),
m_mall_task_ptr(std::make_shared<ProcessTask>(callback, callback_arg, TaskType)),
m_shopping_first_task_ptr(std::make_shared<CreditShoppingTask>(callback, callback_arg, TaskType)),
m_shopping_task_ptr(std::make_shared<CreditShoppingTask>(callback, callback_arg, TaskType)),
m_shopping_force_task_ptr(std::make_shared<CreditShoppingTask>(callback, callback_arg, TaskType))
{
m_visit_task_ptr->set_tasks({ "VisitBegin" });
m_mall_task_ptr->set_tasks({ "MallBegin" });
m_shopping_first_task_ptr->set_enable(false).set_retry_times(1);
m_shopping_task_ptr->set_enable(false).set_retry_times(1);
m_shopping_force_task_ptr->set_enable(false).set_retry_times(1);
m_subtasks.emplace_back(m_visit_task_ptr);
m_subtasks.emplace_back(m_credit_fight_task_ptr);
m_subtasks.emplace_back(m_mall_task_ptr);
m_subtasks.emplace_back(m_shopping_first_task_ptr);
m_subtasks.emplace_back(m_shopping_task_ptr);
@@ -75,5 +81,11 @@ bool asst::MallTask::set_params(const json::value& params)
m_shopping_task_ptr->set_enable(false);
m_shopping_force_task_ptr->set_enable(false);
}
if (!m_running) {
bool credit_fight = params.get("credit_fight", false);
m_credit_fight_task_ptr->set_enable(credit_fight);
}
return true;
}

View File

@@ -4,6 +4,7 @@
namespace asst
{
class ProcessTask;
class CreditFightTask;
class CreditShoppingTask;
class MallTask final : public InterfaceTask
@@ -17,6 +18,8 @@ namespace asst
virtual bool set_params(const json::value& params) override;
private:
std::shared_ptr<ProcessTask> m_visit_task_ptr = nullptr;
std::shared_ptr<CreditFightTask> m_credit_fight_task_ptr = nullptr;
std::shared_ptr<ProcessTask> m_mall_task_ptr = nullptr;
std::shared_ptr<CreditShoppingTask> m_shopping_first_task_ptr = nullptr;
std::shared_ptr<CreditShoppingTask> m_shopping_task_ptr = nullptr;

View File

@@ -1,25 +0,0 @@
#include "VisitTask.h"
#include <utility>
#include "Task/Miscellaneous/CreditFightTask.h"
#include "Task/ProcessTask.h"
asst::VisitTask::VisitTask(const AsstCallback& callback, void* callback_arg)
: InterfaceTask(callback, callback_arg, TaskType),
m_visit_task_ptr(std::make_shared<ProcessTask>(m_callback, m_callback_arg, TaskType)),
m_credit_fight_task_ptr(std::make_shared<CreditFightTask>(callback, callback_arg, TaskType))
{
m_visit_task_ptr->set_tasks({ "VisitBegin" });
m_subtasks.emplace_back(m_visit_task_ptr)->set_ignore_error(false);
m_subtasks.emplace_back(m_credit_fight_task_ptr);
}
bool asst::VisitTask::set_params(const json::value& params)
{
bool credit_fight = params.get("credit_fight", false);
m_credit_fight_task_ptr->set_enable(credit_fight);
return true;
}

View File

@@ -1,23 +0,0 @@
#pragma once
#include "Task/InterfaceTask.h"
namespace asst
{
class ProcessTask;
class CreditFightTask;
class VisitTask final : public InterfaceTask
{
public:
inline static constexpr std::string_view TaskType = "Visit";
VisitTask(const AsstCallback& callback, void* callback_arg);
virtual ~VisitTask() override = default;
virtual bool set_params(const json::value& params) override;
private:
std::shared_ptr<ProcessTask> m_visit_task_ptr = nullptr;
std::shared_ptr<CreditFightTask> m_credit_fight_task_ptr = nullptr;
};
}

View File

@@ -1133,7 +1133,6 @@ namespace MeoAsstGui
FightRemainingSanity,
Recruit,
Infrast,
Visit,
Mall,
Award,
Roguelike,
@@ -1261,31 +1260,19 @@ namespace MeoAsstGui
return id != 0 && AsstStart();
}
/// <summary>
/// 访问好友。
/// </summary>
/// <param name="credit_fight">是否借助战作战。</param>
/// <returns>是否成功。</returns>
public bool AsstAppendVisit(bool credit_fight)
{
var task_params = new JObject();
task_params["credit_fight"] = credit_fight;
AsstTaskId id = AsstAppendTaskWithEncoding("Visit", task_params);
_latestTaskId[TaskType.Visit] = id;
return id != 0;
}
/// <summary>
/// 领取信用及商店购物。
/// </summary>
/// <param name="credit_fight">是否信用战斗。</param>
/// <param name="with_shopping">是否购物。</param>
/// <param name="first_list">优先购买列表。</param>
/// <param name="blacklist">黑名单列表。</param>
/// <param name="force_shopping_if_credit_full">是否在信用溢出时无视黑名单</param>
/// <returns>是否成功。</returns>
public bool AsstAppendMall(bool with_shopping, string[] first_list, string[] blacklist, bool force_shopping_if_credit_full)
public bool AsstAppendMall(bool credit_fight, bool with_shopping, string[] first_list, string[] blacklist, bool force_shopping_if_credit_full)
{
var task_params = new JObject();
task_params["credit_fight"] = credit_fight;
task_params["shopping"] = with_shopping;
task_params["buy_first"] = new JArray { first_list };
task_params["blacklist"] = new JArray { blacklist };

View File

@@ -16,7 +16,6 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
@@ -172,92 +171,17 @@ namespace MeoAsstGui
}
}
// TODO: Delete this.
/// <summary>
/// Delete old configurations.
/// Note that this feature ought to be removed in later versions.
/// </summary>
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交換", "報酬受取", "自動ローグ",
"宿舎", "製造所", "貿易所", "発電所", "応接室", "事務所", "制御中枢",
"웨이크업", "공개모집", "기반시설 교대", "작전", "친구 방문", "상점", "일일 퀘스트 보상을 수집", "통합전략",
"숙소", "제조소", "무역소", "발전소", "응접실", "사무실", "제어 센터",
"🍸💃💃", "🍸🍺🍻", "🍺🍸🍺", "🍸🍷", "🍺🍸🍷", "🍻🍺🍸🍻", "🍺🍸🕺🍸", "🍺🍸🍸",
"🍻💃", "🕺🍺", "🍺🍺", "🍺🍸", "🍺🍻", "🕺🍸", "🍻🍸🍻",
"Login", "Recruit", "Visit Friends", "Credit Store", "Collect mission rewards", "Auto I.S.",
"Manufacturing Station", "Trade Post", "Power Station", "Reception Room", "Control Center",
};
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);
}
}
/// <summary>
/// Initializes items.
/// </summary>
public void InitializeItems()
{
DeleteOldConfig();
string[] task_list = new string[]
{
"WakeUp",
"Recruiting",
"Base",
"Combat",
"Visiting",
"Mall",
"Mission",
"AutoRoguelike",
@@ -285,7 +209,7 @@ namespace MeoAsstGui
var vm = new DragItemViewModel(Localization.GetString(task), task, "TaskQueue.");
if (!parsed || order < 0)
if (!parsed || order < 0 || order >= temp_order_list.Count)
{
non_order_list.Add(vm);
}
@@ -698,10 +622,6 @@ namespace MeoAsstGui
{
ret &= appendRecruit();
}
else if (item.OriginalName == "Visiting")
{
ret &= appendVisit();
}
else if (item.OriginalName == "Mall")
{
ret &= appendMall();
@@ -905,14 +825,6 @@ namespace MeoAsstGui
settings.CustomInfrastEnabled, settings.CustomInfrastFile, CustomInfrastPlanIndex);
}
private bool appendVisit()
{
var settings = _container.Get<SettingsViewModel>();
var asstProxy = _container.Get<AsstProxy>();
return asstProxy.AsstAppendVisit(settings.CreditFightTaskEnabled);
}
private bool appendMall()
{
var settings = _container.Get<SettingsViewModel>();
@@ -929,7 +841,7 @@ namespace MeoAsstGui
black_list[i] = black_list[i].Trim();
}
return asstProxy.AsstAppendMall(settings.CreditShopping, buy_first, black_list, settings.CreditForceShoppingIfCreditFull);
return asstProxy.AsstAppendMall(settings.CreditFightTaskEnabled, settings.CreditShopping, buy_first, black_list, settings.CreditForceShoppingIfCreditFull);
}
private bool appendRecruit()

View File

@@ -68,8 +68,6 @@ int main([[maybe_unused]] int argc, char** argv)
}
)");
AsstAppendTask(ptr, "Visit", nullptr);
AsstAppendTask(ptr, "Mall", R"(
{
"shopping": true,