更新版本号至 1.2.1.8,添加不带光环的单位选择功能及相关逻辑

This commit is contained in:
waynebian01
2026-08-20 13:31:20 +08:00
parent c993b44333
commit f37df2e7b8
6 changed files with 55 additions and 4 deletions

View File

@@ -11,6 +11,9 @@ public enum UnitSelectorKind
/// <summary>拥有任一光环且生命值最低。get_lowest_health_unit_with_any_aura</summary>
LowestHealthWithAnyAura,
/// <summary>不拥有所选任一光环且生命值最低。</summary>
LowestHealthWithoutAnyAura,
/// <summary>不带某光环且生命值最低。get_lowest_health_unit_without_aura</summary>
LowestHealthWithoutAura,
@@ -38,6 +41,9 @@ public enum UnitSelectorKind
/// <summary>拥有任一光环、治疗吸收高于阈值且治疗吸收最高的单位。</summary>
HighestHealingAbsorbWithAnyAura,
/// <summary>不拥有所选任一光环、治疗吸收高于阈值且治疗吸收最高的单位。</summary>
HighestHealingAbsorbWithoutAnyAura,
/// <summary>不带某光环、治疗吸收高于阈值且治疗吸收最高的单位。</summary>
HighestHealingAbsorbWithoutAura,

View File

@@ -35,6 +35,12 @@ public static class UnitSelector
threshold,
data => MatchesRoleFilter(data, unit.RoleFilter, unit.Role) && HasAnyAura(data, names))
: null,
UnitSelectorKind.LowestHealthWithoutAnyAura => unit.AuraNames is { Count: > 0 } names
? LowestHealth(
group,
threshold,
data => MatchesRoleFilter(data, unit.RoleFilter, unit.Role) && !HasAnyAura(data, names))
: null,
UnitSelectorKind.LowestHealthWithoutAura => aura is null
? null
: LowestHealth(
@@ -68,6 +74,9 @@ public static class UnitSelector
UnitSelectorKind.HighestHealingAbsorbWithAnyAura => unit.AuraNames is { Count: > 0 } names
? HighestHealingAbsorb(group, threshold, data => HasAnyAura(data, names))
: null,
UnitSelectorKind.HighestHealingAbsorbWithoutAnyAura => unit.AuraNames is { Count: > 0 } names
? HighestHealingAbsorb(group, threshold, data => !HasAnyAura(data, names))
: null,
UnitSelectorKind.HighestHealingAbsorbWithoutAura => aura is null
? null
: HighestHealingAbsorb(group, threshold, data => !HasAura(data, aura)),
@@ -316,6 +325,7 @@ public static class UnitSelector
private static bool IsHealingAbsorbKind(UnitSelectorKind kind)
=> kind is UnitSelectorKind.HighestHealingAbsorb
or UnitSelectorKind.HighestHealingAbsorbWithAnyAura
or UnitSelectorKind.HighestHealingAbsorbWithoutAnyAura
or UnitSelectorKind.HighestHealingAbsorbWithoutAura
or UnitSelectorKind.HighestHealingAbsorbWithAura
or UnitSelectorKind.HighestHealingAbsorbWithAuraCount;