diff --git a/Simulator/ActionCategory.cs b/Simulator/ActionCategory.cs index 56ce764..727772e 100644 --- a/Simulator/ActionCategory.cs +++ b/Simulator/ActionCategory.cs @@ -22,7 +22,6 @@ public static class ActionCategoryUtils { SortedActions = new( Enum.GetValues() - .Where(a => a.Category() != ActionCategory.Combo) .GroupBy(a => a.Category()) .ToDictionary(g => g.Key, g => g.OrderBy(a => a.Level()).ToArray())); } diff --git a/Simulator/Actions/ActionType.cs b/Simulator/Actions/ActionType.cs index 1c6e589..d7dd285 100644 --- a/Simulator/Actions/ActionType.cs +++ b/Simulator/Actions/ActionType.cs @@ -63,12 +63,6 @@ public static class ActionUtils [MethodImpl(MethodImplOptions.AggressiveInlining)] public static BaseAction Base(this ActionType me) => Actions[(int)me]; - public static IEnumerable AvailableActions(Simulator simulation) => - simulation.IsComplete - ? Enumerable.Empty() - : Enum.GetValues() - .Where(a => a.Base().CanUse(simulation)); - public static int Level(this ActionType me) => me.Base().Level; diff --git a/Simulator/Condition.cs b/Simulator/Condition.cs index 6ba2103..0f9e6d7 100644 --- a/Simulator/Condition.cs +++ b/Simulator/Condition.cs @@ -1,22 +1,38 @@ namespace Craftimizer.Simulator; -public enum Condition : ushort +public enum Condition : byte { - Poor = 0x0008, - Normal = 0x0001, - Good = 0x0002, - Excellent = 0x0004, + Normal, + Good, + Excellent, + Poor, - Centered = 0x0010, - Sturdy = 0x0020, - Pliant = 0x0040, - Malleable = 0x0080, - Primed = 0x0100, - GoodOmen = 0x0200, + Centered, + Sturdy, + Pliant, + Malleable, + Primed, + GoodOmen, } public static class ConditionUtils { + [Flags] + private enum ConditionMask : ushort + { + Normal = 1 << 0, // 0x0001 + Good = 1 << 1, // 0x0002 + Excellent = 1 << 2, // 0x0004 + Poor = 1 << 3, // 0x0008 + + Centered = 1 << 4, // 0x0010 + Sturdy = 1 << 5, // 0x0020 + Pliant = 1 << 6, // 0x0040 + Malleable = 1 << 7, // 0x0080 + Primed = 1 << 8, // 0x0100 + GoodOmen = 1 << 9, // 0x0200 + } + public static Condition[] GetPossibleConditions(ushort conditionsFlag) => - Enum.GetValues().Where(c => ((Condition)conditionsFlag).HasFlag(c)).ToArray(); + Enum.GetValues().Where(c => ((ConditionMask)conditionsFlag).HasFlag((ConditionMask)(1 << (ushort)c))).ToArray(); }