mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 02:10:21 +08:00
@@ -130,7 +130,7 @@ namespace MaaWpfGui.Constants
|
||||
public const string RoguelikeStartWithSelectList = "Roguelike.RoguelikeStartWithSelectList";
|
||||
public const string RoguelikeStartWithTwoIdeas = "Roguelike.RoguelikeStartWithTwoIdeas";
|
||||
public const string Roguelike3FirstFloorFoldartal = "Roguelike.Roguelike3FirstFloorFoldartal";
|
||||
public const string Roguelike3StartFloorFoldartal = "Roguelike.Roguelike3StartFloorFoldartal";
|
||||
public const string Roguelike3FirstFloorFoldartals = "Roguelike.Roguelike3StartFloorFoldartal";
|
||||
public const string Roguelike3NewSquad2StartingFoldartal = "Roguelike.Roguelike3NewSquad2StartingFoldartal";
|
||||
public const string Roguelike3NewSquad2StartingFoldartals = "Roguelike.Roguelike3NewSquad2StartingFoldartals";
|
||||
public const string RoguelikeExpectedCollapsalParadigms = "Roguelike.RoguelikeExpectedCollapsalParadigms";
|
||||
|
||||
@@ -2180,199 +2180,6 @@ namespace MaaWpfGui.Main
|
||||
return AsstSetTaskParamsWithEncoding(id, taskParams);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 无限刷肉鸽。
|
||||
/// </summary>
|
||||
/// <param name="mode">
|
||||
/// 模式。可用值包括:
|
||||
/// <list type="bullet">
|
||||
/// <item>
|
||||
/// <term><c>0</c></term>
|
||||
/// <description>刷蜡烛,尽可能稳定地打更多层数。</description>
|
||||
/// </item>
|
||||
/// <item>
|
||||
/// <term><c>1</c></term>
|
||||
/// <description>刷源石锭,第一层投资完就退出。</description>
|
||||
/// </item>
|
||||
/// <item>
|
||||
/// <term><c>2</c></term>
|
||||
/// <description><b>【即将弃用】</b>两者兼顾,投资过后再退出,没有投资就继续往后打。</description>
|
||||
/// </item>
|
||||
/// <item>
|
||||
/// <term><c>3</c></term>
|
||||
/// <description><b>【开发中】</b>尝试通关,尽可能打的远。</description>
|
||||
/// </item>
|
||||
/// </list>
|
||||
/// </param>
|
||||
/// <param name="difficulty">刷投资的目标难度/其他模式的选择难度</param>
|
||||
/// <param name="starts">开始探索次数。</param>
|
||||
/// <param name="investmentEnabled">是否投资源石锭</param>
|
||||
/// <param name="investmentWithMoreScore">投资时候刷更多分</param>
|
||||
/// <param name="collectibleModeShopping">刷开局模式是否购物</param>
|
||||
/// <param name="invests">投资源石锭次数。</param>
|
||||
/// <param name="stopWhenFull">投资满了自动停止任务。</param>
|
||||
/// <param name="collectibleModeSquad">烧水时使用的分队</param>
|
||||
/// <param name="squad">开局分队</param>
|
||||
/// <param name="roles">开局职业组</param>
|
||||
/// <param name="coreChar">开局干员名</param>
|
||||
/// <param name="startWithEliteTwo">是否凹开局直升</param>
|
||||
/// <param name="onlyStartWithEliteTwo">是否只凹开局直升,不进行作战</param>
|
||||
/// <param name="startWithSelectList">需要刷的开局</param>
|
||||
/// <param name="roguelike3FirstFloorFoldartal">凹第一层远见板子</param>
|
||||
/// <param name="roguelike3StartFloorFoldartal">需要凹的板子</param>
|
||||
/// <param name="roguelike3NewSquad2StartingFoldartal">是否在萨米肉鸽生活队凹开局板子</param>
|
||||
/// <param name="roguelike3NewSquad2StartingFoldartals">需要凹的板子,用;连接的字符串</param>
|
||||
/// <param name="roguelikeExpectedCollapsalParadigms">sami 刷坍缩专用,需要刷的坍缩列表</param>
|
||||
/// <param name="useSupport">是否core_char使用好友助战</param>
|
||||
/// <param name="enableNonFriendSupport">是否允许使用非好友助战</param>
|
||||
/// <param name="theme">肉鸽主题["Phantom", "Mizuki", "Sami", "Sarkaz"]</param>
|
||||
/// <param name="refreshTraderWithDice">是否用骰子刷新商店购买特殊商品,目前支持水月肉鸽的指路鳞</param>
|
||||
/// <param name="stopAtFinalBoss">是否在五层BOSS前停下来</param>
|
||||
/// <param name="monthlySquadAutoIterate">是否启动月度小队自动切换</param>
|
||||
/// <param name="monthlySquadCheckComms">是否将月度小队通信也作为切换依据</param>
|
||||
/// <param name="deepExplorationAutoIterate">是否启动深入调查自动切换</param>
|
||||
/// <param name="stopAtMaxLevel">是否在满级时停止任务</param>
|
||||
/// <param name="startWithSeed">是否使用刷钱种子</param>
|
||||
/// <returns>是否成功。</returns>
|
||||
public bool AsstAppendRoguelike(
|
||||
int mode,
|
||||
int difficulty,
|
||||
int starts,
|
||||
bool investmentEnabled,
|
||||
bool investmentWithMoreScore,
|
||||
bool collectibleModeShopping,
|
||||
int invests,
|
||||
bool stopWhenFull,
|
||||
string collectibleModeSquad,
|
||||
string squad,
|
||||
string roles,
|
||||
string coreChar,
|
||||
bool startWithEliteTwo,
|
||||
bool onlyStartWithEliteTwo,
|
||||
List<string> startWithSelectList,
|
||||
bool roguelike3FirstFloorFoldartal,
|
||||
string roguelike3StartFloorFoldartal,
|
||||
bool roguelike3NewSquad2StartingFoldartal,
|
||||
string roguelike3NewSquad2StartingFoldartals,
|
||||
string roguelikeExpectedCollapsalParadigms,
|
||||
bool useSupport,
|
||||
bool enableNonFriendSupport,
|
||||
string theme,
|
||||
bool refreshTraderWithDice,
|
||||
bool stopAtFinalBoss,
|
||||
bool monthlySquadAutoIterate,
|
||||
bool monthlySquadCheckComms,
|
||||
bool deepExplorationAutoIterate,
|
||||
bool stopAtMaxLevel,
|
||||
bool startWithSeed)
|
||||
{
|
||||
var taskParams = new JObject
|
||||
{
|
||||
["mode"] = mode,
|
||||
["starts_count"] = starts,
|
||||
["theme"] = theme,
|
||||
["investment_enabled"] = false,
|
||||
};
|
||||
|
||||
if (theme != "Phantom")
|
||||
{
|
||||
taskParams["difficulty"] = difficulty;
|
||||
}
|
||||
|
||||
if (investmentEnabled)
|
||||
{
|
||||
taskParams["investment_enabled"] = true;
|
||||
taskParams["investment_with_more_score"] = investmentWithMoreScore;
|
||||
taskParams["investments_count"] = invests;
|
||||
taskParams["stop_when_investment_full"] = stopWhenFull;
|
||||
}
|
||||
|
||||
if (squad.Length > 0)
|
||||
{
|
||||
taskParams["squad"] = squad;
|
||||
}
|
||||
|
||||
if (roles.Length > 0)
|
||||
{
|
||||
taskParams["roles"] = roles;
|
||||
}
|
||||
|
||||
if (coreChar.Length > 0)
|
||||
{
|
||||
taskParams["core_char"] = coreChar;
|
||||
}
|
||||
|
||||
if (mode == 0)
|
||||
{
|
||||
taskParams["stop_at_final_boss"] = stopAtFinalBoss;
|
||||
taskParams["stop_at_max_level"] = stopAtMaxLevel;
|
||||
}
|
||||
else if (mode == 4)
|
||||
{
|
||||
// 刷开局模式
|
||||
taskParams["collectible_mode_shopping"] = collectibleModeShopping;
|
||||
taskParams["collectible_mode_squad"] = collectibleModeSquad;
|
||||
taskParams["start_with_elite_two"] = startWithEliteTwo;
|
||||
taskParams["only_start_with_elite_two"] = onlyStartWithEliteTwo;
|
||||
|
||||
var rewardKeys = new Dictionary<string, string>
|
||||
{
|
||||
{ "Roguelike@LastReward", "hot_water" },
|
||||
{ "Roguelike@LastReward2", "shield" },
|
||||
{ "Roguelike@LastReward3", "ingot" },
|
||||
{ "Roguelike@LastReward4", "hope" },
|
||||
{ "Roguelike@LastRewardRand", "random" },
|
||||
{ "Mizuki@Roguelike@LastReward5", "key" },
|
||||
{ "Mizuki@Roguelike@LastReward6", "dice" },
|
||||
{ "Sarkaz@Roguelike@LastReward5", "ideas" },
|
||||
};
|
||||
var startWithSelect = new JObject();
|
||||
foreach (var select in startWithSelectList)
|
||||
{
|
||||
if (rewardKeys.TryGetValue(select, out var paramKey))
|
||||
{
|
||||
startWithSelect[paramKey] = true;
|
||||
}
|
||||
}
|
||||
|
||||
taskParams["collectible_mode_start_list"] = startWithSelect;
|
||||
}
|
||||
|
||||
if (mode == 6)
|
||||
{
|
||||
taskParams["monthly_squad_auto_iterate"] = monthlySquadAutoIterate;
|
||||
taskParams["monthly_squad_check_comms"] = monthlySquadCheckComms;
|
||||
}
|
||||
|
||||
if (mode == 7)
|
||||
{
|
||||
taskParams["deep_exploration_auto_iterate"] = deepExplorationAutoIterate;
|
||||
}
|
||||
|
||||
if (roguelike3FirstFloorFoldartal && roguelike3StartFloorFoldartal.Length > 0)
|
||||
{
|
||||
taskParams["first_floor_foldartal"] = roguelike3StartFloorFoldartal;
|
||||
}
|
||||
|
||||
if (roguelike3NewSquad2StartingFoldartal && roguelike3NewSquad2StartingFoldartals.Length > 0)
|
||||
{
|
||||
taskParams["start_foldartal_list"] = new JArray(roguelike3NewSquad2StartingFoldartals.Trim().Split(';', ';').Where(i => !string.IsNullOrEmpty(i)).Take(3));
|
||||
}
|
||||
|
||||
if (mode == 5 && roguelikeExpectedCollapsalParadigms.Length > 0)
|
||||
{
|
||||
taskParams["expected_collapsal_paradigms"] = new JArray(roguelikeExpectedCollapsalParadigms.Trim().Split(';', ';').Where(i => !string.IsNullOrEmpty(i)));
|
||||
}
|
||||
|
||||
taskParams["use_support"] = useSupport;
|
||||
taskParams["use_nonfriend_support"] = enableNonFriendSupport;
|
||||
taskParams["refresh_trader_with_dice"] = theme == "Mizuki" && refreshTraderWithDice;
|
||||
|
||||
AsstTaskId id = AsstAppendTaskWithEncoding(AsstTaskType.Roguelike, taskParams);
|
||||
_taskStatus.Add(id, TaskType.Roguelike);
|
||||
return id != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 公招识别。
|
||||
/// </summary>
|
||||
|
||||
281
src/MaaWpfGui/Models/AsstTasks/AsstRoguelikeTask.cs
Normal file
281
src/MaaWpfGui/Models/AsstTasks/AsstRoguelikeTask.cs
Normal file
@@ -0,0 +1,281 @@
|
||||
// <copyright file="AsstRoguelikeTask.cs" company="MaaAssistantArknights">
|
||||
// MaaWpfGui - A part of the MaaCoreArknights project
|
||||
// Copyright (C) 2021 MistEO and Contributors
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License v3.0 only as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY
|
||||
// </copyright>
|
||||
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using MaaWpfGui.Services;
|
||||
using MaaWpfGui.ViewModels.UserControl.TaskQueue;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace MaaWpfGui.Models.AsstTasks;
|
||||
|
||||
/// <summary>
|
||||
/// 肉鸽任务
|
||||
/// </summary>
|
||||
public class AsstRoguelikeTask : AsstBaseTask
|
||||
{
|
||||
public override AsstTaskType TaskType => AsstTaskType.Roguelike;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 模式。可用值包括:
|
||||
/// <list type="bullet">
|
||||
/// <item>
|
||||
/// <term><c>0</c></term>
|
||||
/// <description>刷蜡烛,尽可能稳定地打更多层数。</description>
|
||||
/// </item>
|
||||
/// <item>
|
||||
/// <term><c>1</c></term>
|
||||
/// <description>刷源石锭,第一层投资完就退出。</description>
|
||||
/// </item>
|
||||
/// <item>
|
||||
/// <term><c>2</c></term>
|
||||
/// <description><b>【即将弃用】</b>两者兼顾,投资过后再退出,没有投资就继续往后打。</description>
|
||||
/// </item>
|
||||
/// <item>
|
||||
/// <term><c>3</c></term>
|
||||
/// <description><b>【开发中】</b>尝试通关,尽可能打的远。</description>
|
||||
/// </item>
|
||||
/// </list>
|
||||
/// </summary>
|
||||
public int Mode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 刷投资的目标难度/其他模式的选择难度
|
||||
/// </summary>
|
||||
public int Difficulty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 开始探索次数
|
||||
/// </summary>
|
||||
public int Starts { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否投资源石锭
|
||||
/// </summary>
|
||||
public bool InvestmentEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 投资源石锭次数
|
||||
/// </summary>
|
||||
public int InvestmentCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 投资时候刷更多分
|
||||
/// </summary>
|
||||
public bool InvestmentWithMoreScore { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 投资满了自动停止任务
|
||||
/// </summary>
|
||||
public bool InvestmentStopWhenFull { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 刷开局模式是否购物
|
||||
/// </summary>
|
||||
public bool CollectibleModeShopping { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 烧水时使用的分队
|
||||
/// </summary>
|
||||
public string CollectibleModeSquad { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 开局分队
|
||||
/// </summary>
|
||||
public string Squad { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 开局职业组
|
||||
/// </summary>
|
||||
public string Roles { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 开局干员名
|
||||
/// </summary>
|
||||
public string CoreChar { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否凹开局直升
|
||||
/// </summary>
|
||||
public bool StartWithEliteTwo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否只凹开局直升,不进行作战
|
||||
/// </summary>
|
||||
public bool StartWithEliteTwoNonBattle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 需要刷的开局
|
||||
/// </summary>
|
||||
public Dictionary<string, bool> CollectibleModeStartRewards { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 凹第一层远见板子
|
||||
/// </summary>
|
||||
public bool SamiFirstFloorFoldartal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 需要凹的板子
|
||||
/// </summary>
|
||||
public string SamiStartFloorFoldartal { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否在萨米肉鸽生活队凹开局板子
|
||||
/// </summary>
|
||||
public bool SamiNewSquad2StartingFoldartal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 需要凹的板子
|
||||
/// </summary>
|
||||
public List<string> SamiNewSquad2StartingFoldartals { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 萨米刷坍缩专用,需要刷的坍缩列表
|
||||
/// </summary>
|
||||
public List<string> ExpectedCollapsalParadigms { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否core_char使用好友助战
|
||||
/// </summary>
|
||||
public bool UseSupport { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否允许使用非好友助战
|
||||
/// </summary>
|
||||
public bool UseSupportNonFriend { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets 肉鸽主题
|
||||
/// </summary>
|
||||
public RoguelikeTheme Theme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否用骰子刷新商店购买特殊商品,目前支持水月肉鸽的指路鳞
|
||||
/// </summary>
|
||||
public bool RefreshTraderWithDice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否启动月度小队自动切换
|
||||
/// </summary>
|
||||
public bool MonthlySquadAutoIterate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否将月度小队通信也作为切换依据
|
||||
/// </summary>
|
||||
public bool MonthlySquadCheckComms { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否启动深入调查自动切换
|
||||
/// </summary>
|
||||
public bool DeepExplorationAutoIterate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否在五层BOSS前停下来
|
||||
/// </summary>
|
||||
public bool StopAtFinalBoss { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否在满级时停止任务
|
||||
/// </summary>
|
||||
public bool StopAtMaxLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether 是否使用刷钱种子
|
||||
/// </summary>
|
||||
public bool StartWithSeed { get; set; }
|
||||
|
||||
public override (AsstTaskType TaskType, JObject Params) Serialize()
|
||||
{
|
||||
var taskParams = new JObject
|
||||
{
|
||||
["mode"] = Mode,
|
||||
["theme"] = Theme.ToString(),
|
||||
["starts_count"] = Starts,
|
||||
["investment_enabled"] = InvestmentEnabled,
|
||||
};
|
||||
|
||||
if (Theme != RoguelikeTheme.Phantom)
|
||||
{
|
||||
taskParams["difficulty"] = Difficulty;
|
||||
}
|
||||
|
||||
if (InvestmentEnabled)
|
||||
{
|
||||
taskParams["investment_with_more_score"] = InvestmentWithMoreScore;
|
||||
taskParams["investments_count"] = InvestmentCount;
|
||||
taskParams["stop_when_investment_full"] = InvestmentStopWhenFull;
|
||||
}
|
||||
|
||||
if (Squad.Length > 0)
|
||||
{
|
||||
taskParams["squad"] = Squad;
|
||||
}
|
||||
|
||||
if (Roles.Length > 0)
|
||||
{
|
||||
taskParams["roles"] = Roles;
|
||||
}
|
||||
|
||||
if (CoreChar.Length > 0)
|
||||
{
|
||||
taskParams["core_char"] = CoreChar;
|
||||
}
|
||||
|
||||
if (Mode == 0)
|
||||
{
|
||||
taskParams["stop_at_final_boss"] = StopAtFinalBoss;
|
||||
taskParams["stop_at_max_level"] = StopAtMaxLevel;
|
||||
}
|
||||
else if (Mode == 4)
|
||||
{
|
||||
// 刷开局模式
|
||||
taskParams["collectible_mode_shopping"] = CollectibleModeShopping;
|
||||
taskParams["collectible_mode_squad"] = CollectibleModeSquad;
|
||||
taskParams["start_with_elite_two"] = StartWithEliteTwo;
|
||||
taskParams["only_start_with_elite_two"] = StartWithEliteTwoNonBattle;
|
||||
taskParams["collectible_mode_start_list"] = JObject.FromObject(CollectibleModeStartRewards);
|
||||
}
|
||||
|
||||
if (Mode == 6)
|
||||
{
|
||||
taskParams["monthly_squad_auto_iterate"] = MonthlySquadAutoIterate;
|
||||
taskParams["monthly_squad_check_comms"] = MonthlySquadCheckComms;
|
||||
}
|
||||
|
||||
if (Mode == 7)
|
||||
{
|
||||
taskParams["deep_exploration_auto_iterate"] = DeepExplorationAutoIterate;
|
||||
}
|
||||
|
||||
if (SamiFirstFloorFoldartal && SamiStartFloorFoldartal.Length > 0)
|
||||
{
|
||||
taskParams["first_floor_foldartal"] = SamiStartFloorFoldartal;
|
||||
}
|
||||
|
||||
if (SamiNewSquad2StartingFoldartal && SamiNewSquad2StartingFoldartals.Count > 0)
|
||||
{
|
||||
taskParams["start_foldartal_list"] = JArray.FromObject(SamiNewSquad2StartingFoldartals);
|
||||
}
|
||||
|
||||
if (Mode == 5 && ExpectedCollapsalParadigms.Count > 0)
|
||||
{
|
||||
taskParams["expected_collapsal_paradigms"] = JArray.FromObject(ExpectedCollapsalParadigms);
|
||||
}
|
||||
|
||||
taskParams["use_support"] = UseSupport;
|
||||
taskParams["use_nonfriend_support"] = UseSupportNonFriend;
|
||||
taskParams["refresh_trader_with_dice"] = Theme == RoguelikeTheme.Mizuki && RefreshTraderWithDice;
|
||||
|
||||
return (TaskType, taskParams);
|
||||
}
|
||||
}
|
||||
@@ -1733,37 +1733,9 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
|
||||
private static bool AppendRoguelike()
|
||||
{
|
||||
return Instances.AsstProxy.AsstAppendRoguelike(
|
||||
RoguelikeTask.RoguelikeMode,
|
||||
RoguelikeTask.RoguelikeDifficulty,
|
||||
RoguelikeTask.RoguelikeStartsCount,
|
||||
RoguelikeTask.RoguelikeInvestmentEnabled,
|
||||
RoguelikeTask.RoguelikeInvestmentWithMoreScore,
|
||||
RoguelikeTask.RoguelikeCollectibleModeShopping,
|
||||
RoguelikeTask.RoguelikeInvestsCount,
|
||||
RoguelikeTask.RoguelikeStopWhenInvestmentFull,
|
||||
RoguelikeTask.RoguelikeCollectibleModeSquad,
|
||||
RoguelikeTask.RoguelikeSquad,
|
||||
RoguelikeTask.RoguelikeRoles,
|
||||
DataHelper.GetCharacterByNameOrAlias(RoguelikeTask.RoguelikeCoreChar)?.Name ?? RoguelikeTask.RoguelikeCoreChar,
|
||||
RoguelikeTask.RoguelikeStartWithEliteTwo,
|
||||
RoguelikeTask.RoguelikeOnlyStartWithEliteTwo,
|
||||
RoguelikeTask.RoguelikeStartWithSelectList,
|
||||
RoguelikeTask.Roguelike3FirstFloorFoldartal,
|
||||
RoguelikeTask.Roguelike3StartFloorFoldartal,
|
||||
RoguelikeTask.Roguelike3NewSquad2StartingFoldartal,
|
||||
RoguelikeTask.Roguelike3NewSquad2StartingFoldartals,
|
||||
RoguelikeTask.RoguelikeExpectedCollapsalParadigms,
|
||||
RoguelikeTask.RoguelikeUseSupportUnit,
|
||||
RoguelikeTask.RoguelikeEnableNonfriendSupport,
|
||||
RoguelikeTask.RoguelikeTheme.ToString(),
|
||||
RoguelikeTask.RoguelikeRefreshTraderWithDice,
|
||||
RoguelikeTask.RoguelikeStopAtFinalBoss,
|
||||
RoguelikeTask.RoguelikeMonthlySquadAutoIterate,
|
||||
RoguelikeTask.RoguelikeMonthlySquadCheckComms,
|
||||
RoguelikeTask.RoguelikeDeepExplorationAutoIterate,
|
||||
RoguelikeTask.RoguelikeStopAtMaxLevel,
|
||||
RoguelikeTask.RoguelikeStartWithSeed);
|
||||
// 被RemoteControlService反射调用,暂不移除
|
||||
var (type, param) = RoguelikeTask.Serialize();
|
||||
return Instances.AsstProxy.AsstAppendTaskWithEncoding(AsstProxy.TaskType.Roguelike, type, param);
|
||||
}
|
||||
|
||||
private static bool AppendReclamation()
|
||||
|
||||
@@ -18,6 +18,8 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using MaaWpfGui.Constants;
|
||||
using MaaWpfGui.Helper;
|
||||
using MaaWpfGui.Models.AsstTasks;
|
||||
using MaaWpfGui.Services;
|
||||
using MaaWpfGui.Utilities.ValueType;
|
||||
using MaaWpfGui.ViewModels.UI;
|
||||
using Newtonsoft.Json;
|
||||
@@ -365,15 +367,9 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public bool RoguelikeSquadIsProfessional =>
|
||||
RoguelikeMode == 4 &&
|
||||
RoguelikeTheme != Theme.Phantom &&
|
||||
RoguelikeSquad is "突击战术分队" or "堡垒战术分队" or "远程战术分队" or "破坏战术分队";
|
||||
public bool RoguelikeSquadIsProfessional => RoguelikeMode == 4 && RoguelikeTheme != Theme.Phantom && RoguelikeSquad is "突击战术分队" or "堡垒战术分队" or "远程战术分队" or "破坏战术分队";
|
||||
|
||||
public bool RoguelikeSquadIsFoldartal =>
|
||||
RoguelikeMode == 4 &&
|
||||
RoguelikeTheme == Theme.Sami &&
|
||||
RoguelikeSquad == "生活至上分队";
|
||||
public bool RoguelikeSquadIsFoldartal => RoguelikeMode == 4 && RoguelikeTheme == Theme.Sami && RoguelikeSquad == "生活至上分队";
|
||||
|
||||
private string _roguelikeRoles = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeRoles, string.Empty);
|
||||
|
||||
@@ -435,7 +431,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool RoguelikeStartWithEliteTwoRaw
|
||||
public bool RoguelikeStartWithEliteTwo
|
||||
{
|
||||
get => _roguelikeStartWithEliteTwo;
|
||||
set
|
||||
@@ -456,11 +452,6 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool RoguelikeStartWithEliteTwo => _roguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional;
|
||||
|
||||
private bool _roguelikeOnlyStartWithEliteTwo = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeOnlyStartWithEliteTwo, bool.FalseString));
|
||||
|
||||
/// <summary>
|
||||
@@ -479,7 +470,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether only need with elite two's core char.
|
||||
/// </summary>
|
||||
public bool RoguelikeOnlyStartWithEliteTwo => _roguelikeOnlyStartWithEliteTwo && RoguelikeStartWithEliteTwo;
|
||||
public bool RoguelikeOnlyStartWithEliteTwo => _roguelikeOnlyStartWithEliteTwo && _roguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional;
|
||||
|
||||
public static Dictionary<string, string> RoguelikeStartWithAllDict { get; } = new()
|
||||
{
|
||||
@@ -493,7 +484,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
{ "Sarkaz@Roguelike@LastReward5", LocalizationHelper.GetString("RoguelikeStartWithIdea") },
|
||||
};
|
||||
|
||||
private static object[] _roguelikeStartWithSelectListRaw = ConfigurationHelper.GetGlobalValue(ConfigurationKeys.RoguelikeStartWithSelectList, "Roguelike@LastReward Roguelike@LastReward4 Sarkaz@Roguelike@LastReward5")
|
||||
private object[] _roguelikeStartWithSelectListRaw = ConfigurationHelper.GetGlobalValue(ConfigurationKeys.RoguelikeStartWithSelectList, "Roguelike@LastReward Roguelike@LastReward4 Sarkaz@Roguelike@LastReward5")
|
||||
.Split(' ')
|
||||
.Where(s => RoguelikeStartWithAllDict.ContainsKey(s.ToString()))
|
||||
.Select(s => (object)new KeyValuePair<string, string>(s, RoguelikeStartWithAllDict[s]))
|
||||
@@ -511,14 +502,14 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public List<string> RoguelikeStartWithSelectList => (RoguelikeMode == 4 && !RoguelikeOnlyStartWithEliteTwo) ? _roguelikeStartWithSelectListRaw.Cast<KeyValuePair<string, string>>().Select(pair => pair.Key).ToList() : [];
|
||||
public List<string> RoguelikeStartWithSelectList => _roguelikeStartWithSelectListRaw.Cast<KeyValuePair<string, string>>().Select(pair => pair.Key).ToList();
|
||||
|
||||
private bool _roguelike3FirstFloorFoldartal = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3FirstFloorFoldartal, bool.FalseString));
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool Roguelike3FirstFloorFoldartalRaw
|
||||
public bool Roguelike3FirstFloorFoldartal
|
||||
{
|
||||
get => _roguelike3FirstFloorFoldartal;
|
||||
set
|
||||
@@ -528,20 +519,16 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool Roguelike3FirstFloorFoldartal => _roguelike3FirstFloorFoldartal && RoguelikeMode == 4 && RoguelikeTheme == Theme.Sami;
|
||||
private string _roguelike3FirstFloorFoldartals = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3FirstFloorFoldartals, string.Empty).Trim();
|
||||
|
||||
private string _roguelike3StartFloorFoldartal = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3StartFloorFoldartal, string.Empty);
|
||||
|
||||
public string Roguelike3StartFloorFoldartal
|
||||
public string Roguelike3FirstFloorFoldartals
|
||||
{
|
||||
get => _roguelike3StartFloorFoldartal;
|
||||
get => _roguelike3FirstFloorFoldartals;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _roguelike3StartFloorFoldartal, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3StartFloorFoldartal, value);
|
||||
value = value.Trim();
|
||||
SetAndNotify(ref _roguelike3FirstFloorFoldartals, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3FirstFloorFoldartals, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -550,7 +537,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool Roguelike3NewSquad2StartingFoldartalRaw
|
||||
public bool Roguelike3NewSquad2StartingFoldartal
|
||||
{
|
||||
get => _roguelike3NewSquad2StartingFoldartal;
|
||||
set
|
||||
@@ -560,24 +547,20 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool Roguelike3NewSquad2StartingFoldartal => _roguelike3NewSquad2StartingFoldartal && RoguelikeSquadIsFoldartal;
|
||||
|
||||
private string _roguelike3NewSquad2StartingFoldartals = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartals, string.Empty);
|
||||
private string _roguelike3NewSquad2StartingFoldartals = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartals, string.Empty).Replace(';', ';').Trim();
|
||||
|
||||
public string Roguelike3NewSquad2StartingFoldartals
|
||||
{
|
||||
get => _roguelike3NewSquad2StartingFoldartals;
|
||||
set
|
||||
{
|
||||
value = value.Replace(';', ';').Trim();
|
||||
SetAndNotify(ref _roguelike3NewSquad2StartingFoldartals, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartals, value);
|
||||
}
|
||||
}
|
||||
|
||||
private string _roguelikeExpectedCollapsalParadigms = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeExpectedCollapsalParadigms, string.Empty);
|
||||
private string _roguelikeExpectedCollapsalParadigms = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeExpectedCollapsalParadigms, string.Empty).Replace(";", ";").Trim();
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the expected collapsal paradigms.
|
||||
@@ -588,6 +571,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
get => _roguelikeExpectedCollapsalParadigms;
|
||||
set
|
||||
{
|
||||
value = value.Replace(';', ';').Trim();
|
||||
SetAndNotify(ref _roguelikeExpectedCollapsalParadigms, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeExpectedCollapsalParadigms, value);
|
||||
}
|
||||
@@ -603,9 +587,9 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
get => _roguelikeUseSupportUnit;
|
||||
set
|
||||
{
|
||||
if (value && RoguelikeStartWithEliteTwo)
|
||||
if (value && _roguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional)
|
||||
{
|
||||
RoguelikeStartWithEliteTwoRaw = false;
|
||||
RoguelikeStartWithEliteTwo = false;
|
||||
}
|
||||
|
||||
SetAndNotify(ref _roguelikeUseSupportUnit, value);
|
||||
@@ -628,17 +612,17 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
private string _roguelikeStartsCount = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeStartsCount, "99999");
|
||||
private int _roguelikeStartsCount = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeStartsCount, 99999);
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the start count of roguelike.
|
||||
/// </summary>
|
||||
public int RoguelikeStartsCount
|
||||
{
|
||||
get => int.Parse(_roguelikeStartsCount);
|
||||
get => _roguelikeStartsCount;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _roguelikeStartsCount, value.ToString());
|
||||
SetAndNotify(ref _roguelikeStartsCount, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeStartsCount, value.ToString());
|
||||
}
|
||||
}
|
||||
@@ -715,17 +699,17 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
private string _roguelikeInvestsCount = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeInvestsCount, "9999999");
|
||||
private int _roguelikeInvestsCount = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeInvestsCount, 999);
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the invests count of roguelike.
|
||||
/// </summary>
|
||||
public int RoguelikeInvestsCount
|
||||
{
|
||||
get => int.Parse(_roguelikeInvestsCount);
|
||||
get => _roguelikeInvestsCount;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _roguelikeInvestsCount, value.ToString());
|
||||
SetAndNotify(ref _roguelikeInvestsCount, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeInvestsCount, value.ToString());
|
||||
}
|
||||
}
|
||||
@@ -820,22 +804,91 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
private bool _roguelikeStartWithSeedRaw = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeStartWithSeed, bool.FalseString));
|
||||
private bool _roguelikeStartWithSeed = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeStartWithSeed, bool.FalseString));
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether start with seed when investing in Sarkaz.
|
||||
/// </summary>
|
||||
public bool RoguelikeStartWithSeedRaw
|
||||
public bool RoguelikeStartWithSeed
|
||||
{
|
||||
get => _roguelikeStartWithSeedRaw;
|
||||
get => _roguelikeStartWithSeed;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _roguelikeStartWithSeedRaw, value);
|
||||
SetAndNotify(ref _roguelikeStartWithSeed, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeStartWithSeed, value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public bool RoguelikeStartWithSeed => _roguelikeStartWithSeedRaw && RoguelikeTheme == Theme.Sarkaz && RoguelikeMode == 1 && RoguelikeSquad is "点刺成锭分队" or "后勤分队";
|
||||
public override (AsstTaskType Type, JObject Params) Serialize()
|
||||
{
|
||||
var task = new AsstRoguelikeTask()
|
||||
{
|
||||
Theme = RoguelikeTheme,
|
||||
Mode = RoguelikeMode,
|
||||
Starts = RoguelikeStartsCount,
|
||||
Difficulty = RoguelikeDifficulty,
|
||||
Squad = RoguelikeSquad,
|
||||
Roles = RoguelikeRoles,
|
||||
CoreChar = DataHelper.GetCharacterByNameOrAlias(RoguelikeCoreChar)?.Name ?? RoguelikeCoreChar,
|
||||
UseSupport = RoguelikeUseSupportUnit,
|
||||
UseSupportNonFriend = RoguelikeEnableNonfriendSupport,
|
||||
|
||||
InvestmentEnabled = RoguelikeInvestmentEnabled,
|
||||
InvestmentCount = RoguelikeInvestsCount,
|
||||
InvestmentStopWhenFull = RoguelikeStopWhenInvestmentFull,
|
||||
InvestmentWithMoreScore = RoguelikeInvestmentWithMoreScore,
|
||||
RefreshTraderWithDice = RoguelikeTheme == Theme.Mizuki && RoguelikeRefreshTraderWithDice,
|
||||
|
||||
StopAtFinalBoss = RoguelikeStopAtFinalBoss,
|
||||
StopAtMaxLevel = RoguelikeStopAtMaxLevel,
|
||||
|
||||
// 刷开局
|
||||
CollectibleModeSquad = RoguelikeCollectibleModeSquad,
|
||||
CollectibleModeShopping = RoguelikeCollectibleModeShopping,
|
||||
StartWithEliteTwo = RoguelikeStartWithEliteTwo && RoguelikeSquadIsProfessional,
|
||||
StartWithEliteTwoNonBattle = RoguelikeOnlyStartWithEliteTwo,
|
||||
|
||||
// 月度小队
|
||||
MonthlySquadAutoIterate = RoguelikeMonthlySquadAutoIterate,
|
||||
MonthlySquadCheckComms = RoguelikeMonthlySquadCheckComms,
|
||||
|
||||
// 深入探索
|
||||
DeepExplorationAutoIterate = RoguelikeDeepExplorationAutoIterate,
|
||||
|
||||
SamiFirstFloorFoldartal = RoguelikeTheme == Theme.Sami && RoguelikeMode == 4 && Roguelike3FirstFloorFoldartal,
|
||||
SamiStartFloorFoldartal = Roguelike3FirstFloorFoldartals,
|
||||
SamiNewSquad2StartingFoldartal = Roguelike3NewSquad2StartingFoldartal && RoguelikeSquadIsFoldartal,
|
||||
SamiNewSquad2StartingFoldartals = Roguelike3NewSquad2StartingFoldartals.Split(';').Where(i => !string.IsNullOrEmpty(i)).Take(3).ToList(),
|
||||
|
||||
ExpectedCollapsalParadigms = RoguelikeExpectedCollapsalParadigms.Split(';').Where(i => !string.IsNullOrEmpty(i)).ToList(),
|
||||
StartWithSeed = RoguelikeStartWithSeed && RoguelikeTheme == Theme.Sarkaz && RoguelikeMode == 1 && RoguelikeSquad is "点刺成锭分队" or "后勤分队",
|
||||
};
|
||||
|
||||
if (RoguelikeMode == 4 && !RoguelikeOnlyStartWithEliteTwo)
|
||||
{
|
||||
var rewardKeys = new Dictionary<string, string>
|
||||
{
|
||||
{ "Roguelike@LastReward", "hot_water" },
|
||||
{ "Roguelike@LastReward2", "shield" },
|
||||
{ "Roguelike@LastReward3", "ingot" },
|
||||
{ "Roguelike@LastReward4", "hope" },
|
||||
{ "Roguelike@LastRewardRand", "random" },
|
||||
{ "Mizuki@Roguelike@LastReward5", "key" },
|
||||
{ "Mizuki@Roguelike@LastReward6", "dice" },
|
||||
{ "Sarkaz@Roguelike@LastReward5", "ideas" },
|
||||
};
|
||||
var startWithSelect = new JObject();
|
||||
foreach (var select in RoguelikeStartWithSelectList)
|
||||
{
|
||||
if (rewardKeys.TryGetValue(select, out var paramKey))
|
||||
{
|
||||
task.CollectibleModeStartRewards[paramKey] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return task.Serialize();
|
||||
}
|
||||
}
|
||||
|
||||
public enum RoguelikeTheme
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
hc:InfoElement.Title="{DynamicResource Strategy}"
|
||||
DisplayMemberPath="Display"
|
||||
IsHitTestVisible="{Binding Path=Idle, Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
ItemsSource="{Binding RoguelikeModeList}"
|
||||
SelectedValue="{Binding RoguelikeMode}"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
SelectedValuePath="Value" />
|
||||
<hc:ComboBox
|
||||
Margin="0,5"
|
||||
@@ -153,7 +153,7 @@
|
||||
Visibility="{c:Binding 'RoguelikeTheme == task:RoguelikeTheme.Mizuki'}" />
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding RoguelikeStartWithEliteTwoRaw}"
|
||||
IsChecked="{Binding RoguelikeStartWithEliteTwo}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == 4 and RoguelikeTheme != task:RoguelikeTheme.Phantom and RoguelikeSquad == "突击战术分队" or RoguelikeSquad == "堡垒战术分队" or RoguelikeSquad == "远程战术分队" or RoguelikeSquad == "破坏战术分队"'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
@@ -163,7 +163,7 @@
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding RoguelikeOnlyStartWithEliteTwoRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeStartWithEliteTwoRaw and RoguelikeMode == 4 and RoguelikeTheme != task:RoguelikeTheme.Phantom'}">
|
||||
Visibility="{c:Binding 'RoguelikeStartWithEliteTwo and RoguelikeMode == 4 and RoguelikeTheme != task:RoguelikeTheme.Phantom'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
Text="{DynamicResource RoguelikeOnlyStartWithEliteTwo}"
|
||||
@@ -180,7 +180,7 @@
|
||||
Visibility="{c:Binding 'RoguelikeMode == 4 and !RoguelikeOnlyStartWithEliteTwoRaw'}" />
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding Roguelike3FirstFloorFoldartalRaw}"
|
||||
IsChecked="{Binding Roguelike3FirstFloorFoldartal}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == 4 and RoguelikeTheme == task:RoguelikeTheme.Sami'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
@@ -191,11 +191,11 @@
|
||||
IsReadOnly="{c:Binding !Idle,
|
||||
Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
Style="{StaticResource TextBoxExtend}"
|
||||
Text="{Binding Roguelike3StartFloorFoldartal, UpdateSourceTrigger=LostFocus}"
|
||||
Visibility="{c:Binding 'Roguelike3FirstFloorFoldartalRaw and RoguelikeMode == 4 and RoguelikeTheme == task:RoguelikeTheme.Sami'}" />
|
||||
Text="{Binding Roguelike3FirstFloorFoldartals}"
|
||||
Visibility="{c:Binding 'Roguelike3FirstFloorFoldartal and RoguelikeMode == 4 and RoguelikeTheme == task:RoguelikeTheme.Sami'}" />
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding Roguelike3NewSquad2StartingFoldartalRaw}"
|
||||
IsChecked="{Binding Roguelike3NewSquad2StartingFoldartal}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == 4 and RoguelikeTheme == task:RoguelikeTheme.Sami and RoguelikeSquad == "生活至上分队" '}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
@@ -205,14 +205,14 @@
|
||||
<TextBox
|
||||
IsReadOnly="{c:Binding !Idle,
|
||||
Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
Text="{Binding Roguelike3NewSquad2StartingFoldartals, UpdateSourceTrigger=LostFocus}"
|
||||
Text="{Binding Roguelike3NewSquad2StartingFoldartals}"
|
||||
ToolTip="{DynamicResource Roguelike3NewSquad2StartingFoldartalTip}"
|
||||
Visibility="{c:Binding 'Roguelike3NewSquad2StartingFoldartalRaw and RoguelikeMode == 4 and RoguelikeTheme == task:RoguelikeTheme.Sami and RoguelikeSquad == "生活至上分队" '}" />
|
||||
Visibility="{c:Binding 'Roguelike3NewSquad2StartingFoldartal and RoguelikeMode == 4 and RoguelikeTheme == task:RoguelikeTheme.Sami and RoguelikeSquad == "生活至上分队" '}" />
|
||||
<hc:TextBox
|
||||
hc:InfoElement.Title="{DynamicResource RoguelikeCollapseList}"
|
||||
IsReadOnly="{c:Binding !Idle,
|
||||
Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
Text="{Binding RoguelikeExpectedCollapsalParadigms, UpdateSourceTrigger=LostFocus}"
|
||||
Text="{Binding RoguelikeExpectedCollapsalParadigms}"
|
||||
ToolTip="{DynamicResource RoguelikeCollapseListTip}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == 5'}" />
|
||||
<CheckBox Margin="0,10" IsChecked="{Binding RoguelikeUseSupportUnit}">
|
||||
@@ -277,7 +277,7 @@
|
||||
</CheckBox>
|
||||
<!--<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding RoguelikeStartWithSeedRaw}"
|
||||
IsChecked="{Binding RoguelikeStartWithSeed}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == 1 and RoguelikeTheme == task:RoguelikeTheme.Sarkaz and (RoguelikeSquad == "点刺成锭分队" or RoguelikeSquad == "后勤分队")'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
|
||||
Reference in New Issue
Block a user