Minor sim refactors

This commit is contained in:
Asriel Camora
2024-03-03 19:03:07 -08:00
parent 2f0e30e4c2
commit 84d7d5737f
3 changed files with 28 additions and 19 deletions
-1
View File
@@ -22,7 +22,6 @@ public static class ActionCategoryUtils
{
SortedActions = new(
Enum.GetValues<ActionType>()
.Where(a => a.Category() != ActionCategory.Combo)
.GroupBy(a => a.Category())
.ToDictionary(g => g.Key, g => g.OrderBy(a => a.Level()).ToArray()));
}
-6
View File
@@ -63,12 +63,6 @@ public static class ActionUtils
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static BaseAction Base(this ActionType me) => Actions[(int)me];
public static IEnumerable<ActionType> AvailableActions(Simulator simulation) =>
simulation.IsComplete
? Enumerable.Empty<ActionType>()
: Enum.GetValues<ActionType>()
.Where(a => a.Base().CanUse(simulation));
public static int Level(this ActionType me) =>
me.Base().Level;
+28 -12
View File
@@ -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<Condition>().Where(c => ((Condition)conditionsFlag).HasFlag(c)).ToArray();
Enum.GetValues<Condition>().Where(c => ((ConditionMask)conditionsFlag).HasFlag((ConditionMask)(1 << (ushort)c))).ToArray();
}