feat: 在gui添加“借助战作战”选项

This commit is contained in:
Hydrogina
2022-11-23 19:34:34 +08:00
parent 8bd902133a
commit ae6079e862
6 changed files with 54 additions and 9 deletions

View File

@@ -7,11 +7,20 @@
asst::VisitTask::VisitTask(AsstCallback callback, void* callback_arg)
: PackageTask(std::move(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>(m_callback, m_callback_arg))
m_visit_task_ptr(std::make_shared<ProcessTask>(m_callback, m_callback_arg, TaskType)),
m_credit_fight_task_ptr(std::make_shared<CreditFightTask>(m_callback, m_callback_arg))
{
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)->set_ignore_error(false);
}
bool asst::VisitTask::set_params(const json::value& params)
{
bool credit_fight_task_enabled = params.get("credit_fight_task_enabled", false);
if (credit_fight_task_enabled) {
m_subtasks.emplace_back(m_credit_fight_task_ptr)->set_ignore_error(false);
}
return true;
}

View File

@@ -12,6 +12,8 @@ namespace asst
VisitTask(AsstCallback callback, void* callback_arg);
virtual ~VisitTask() override = default;
virtual bool set_params(const json::value& params) override;
static constexpr const char* TaskType = "Visit";
private:

View File

@@ -1246,10 +1246,13 @@ namespace MeoAsstGui
/// <summary>
/// 访问好友。
/// </summary>
/// <param name="credit_fight_task_enabled">是否借助战作战。</param>
/// <returns>是否成功。</returns>
public bool AsstAppendVisit()
public bool AsstAppendVisit(bool credit_fight_task_enabled)
{
TaskId id = AsstAppendTaskWithEncoding("Visit");
var task_params = new JObject();
task_params["credit_fight_task_enabled"] = credit_fight_task_enabled;
TaskId id = AsstAppendTaskWithEncoding("Visit", task_params);
_latestTaskId[TaskType.Visit] = id;
return id != 0;
}

View File

@@ -16,19 +16,26 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<CheckBox
Margin="-200,10,10,10"
Margin="-300,10,10,10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource SocialPtShop}"
IsChecked="{Binding CreditShopping}" />
<CheckBox
Margin="200,10,10,10"
Margin="0,10,10,10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource ForceShoppingIfCreditFull}"
IsChecked="{Binding CreditForceShoppingIfCreditFull}" />
<CheckBox
Margin="300,10,10,10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource CreditFight}"
IsChecked="{Binding CreditFightTaskEnabled}" />
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"

View File

@@ -1006,6 +1006,22 @@ namespace MeoAsstGui
}
}
/* 访问好友设置 */
private bool _creditFightTaskEnabled = Convert.ToBoolean(ViewStatusStorage.Get("Visit.CreditFightTaskEnabled", bool.FalseString));
/// <summary>
/// Gets or sets a value indicating whether credit fight task is enabled.
/// </summary>
public bool CreditFightTaskEnabled
{
get => _creditFightTaskEnabled;
set
{
SetAndNotify(ref _creditFightTaskEnabled, value);
ViewStatusStorage.Set("Visit.CreditFightTaskEnabled", value.ToString());
}
}
/* 信用商店设置 */
private bool _creditShopping = Convert.ToBoolean(ViewStatusStorage.Get("Mall.CreditShopping", bool.TrueString));

View File

@@ -700,7 +700,7 @@ namespace MeoAsstGui
}
else if (item.OriginalName == "Visiting")
{
ret &= asstProxy.AsstAppendVisit();
ret &= appendVisit();
}
else if (item.OriginalName == "Mall")
{
@@ -900,6 +900,14 @@ 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>();