diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
index ae7be148a1..9674758892 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
@@ -122,6 +122,31 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel, FightSetting
StagePlan.Remove(plan);
}
+ ///
+ /// Gets or sets a value indicating whether to use custom stage code.
+ ///
+ public bool CustomStageCode
+ {
+ get => GetTaskConfig().IsStageManually;
+ set {
+ bool ret = SetTaskConfig(t => t.IsStageManually == value, t => t.IsStageManually = value);
+ if (ret && !value)
+ {
+ var stagePlan = GetTaskConfig().StagePlan;
+ for (int i = 0; i < stagePlan.Count; i++)
+ {
+ var stage = stagePlan[i];
+ if (!Instances.StageManager.GetStageList().Any(p => p.Value == stage))
+ {
+ stagePlan[i] = string.Empty;
+ }
+ }
+ SetTaskConfig(t => t.StagePlan.SequenceEqual(stagePlan), t => t.StagePlan = stagePlan);
+ RefreshCurrentStagePlan();
+ }
+ }
+ }
+
///
/// Reset unsaved battle parameters.
///