diff --git a/.editorconfig b/.editorconfig index 1e47248..4868ece 100644 --- a/.editorconfig +++ b/.editorconfig @@ -63,7 +63,7 @@ dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:sug dotnet_style_predefined_type_for_member_access = true:suggestion dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion dotnet_style_parentheses_in_other_operators=always_for_clarity:silent -dotnet_style_object_initializer = false +dotnet_style_object_initializer = false:suggestion csharp_space_between_method_call_empty_parameter_list_parentheses = false csharp_space_between_method_call_parameter_list_parentheses = false csharp_space_between_method_declaration_empty_parameter_list_parentheses = false @@ -130,9 +130,51 @@ resharper_suggest_var_or_type_elsewhere_highlighting = hint resharper_suggest_var_or_type_simple_types_highlighting = hint resharper_unused_auto_property_accessor_global_highlighting = none csharp_style_deconstructed_variable_declaration=true:silent +csharp_using_directive_placement = outside_namespace:suggestion +csharp_prefer_simple_using_statement = true:suggestion +csharp_prefer_braces = true:silent +csharp_style_namespace_declarations = file_scoped:silent +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_top_level_statements = true:silent +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_lambdas = true:suggestion +csharp_style_expression_bodied_local_functions = true:suggestion +csharp_indent_labels = flush_left +dotnet_diagnostic.MA0049.severity = silent +dotnet_diagnostic.MA0007.severity = silent +dotnet_diagnostic.MA0048.severity = silent +dotnet_diagnostic.MA0006.severity = suggestion +dotnet_diagnostic.MA0016.severity = suggestion +dotnet_diagnostic.MA0008.severity = suggestion +dotnet_diagnostic.CA1805.severity = warning +dotnet_diagnostic.CA1825.severity = warning +dotnet_diagnostic.CA1841.severity = suggestion +dotnet_diagnostic.CA1845.severity = suggestion +dotnet_diagnostic.MA0011.severity = silent +dotnet_diagnostic.MA0076.severity = silent +dotnet_diagnostic.MA0002.severity = silent +csharp_style_prefer_switch_expression = true:suggestion +csharp_style_prefer_pattern_matching = true:silent +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_prefer_not_pattern = true:suggestion +csharp_style_prefer_extended_property_pattern = true:suggestion [*.{appxmanifest,asax,ascx,aspx,axaml,axml,build,c,c++,cc,cginc,compute,config,cp,cpp,cs,cshtml,csproj,css,cu,cuh,cxx,dbml,discomap,dtd,h,hh,hlsl,hlsli,hlslinc,hpp,htm,html,hxx,inc,inl,ino,ipp,js,json,jsproj,jsx,lsproj,master,mpp,mq4,mq5,mqh,njsproj,nuspec,paml,proj,props,proto,razor,resjson,resw,resx,skin,StyleCop,targets,tasks,tpp,ts,tsx,usf,ush,vb,vbproj,xaml,xamlx,xml,xoml,xsd}] indent_style = space indent_size = 4 tab_width = 4 dotnet_style_parentheses_in_other_operators=always_for_clarity:silent +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_auto_properties = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_collection_initializer = true:suggestion +dotnet_diagnostic.CA1852.severity = warning +dotnet_style_namespace_match_folder = true:suggestion diff --git a/Benchmark/Craftimizer.Benchmark.csproj b/Benchmark/Craftimizer.Benchmark.csproj index 79298c0..e7b4a1c 100644 --- a/Benchmark/Craftimizer.Benchmark.csproj +++ b/Benchmark/Craftimizer.Benchmark.csproj @@ -7,6 +7,14 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/Benchmark/Program.cs b/Benchmark/Program.cs index d91a17c..32eb7cc 100644 --- a/Benchmark/Program.cs +++ b/Benchmark/Program.cs @@ -1,12 +1,17 @@ using Craftimizer.Simulator; using Craftimizer.Simulator.Actions; +using Craftimizer.Solver.Crafty; +using ObjectLayoutInspector; namespace Craftimizer.Benchmark; -internal class Program +internal static class Program { - private static void Main(string[] args) + private static void Main() { + //TypeLayout.PrintLayout(true); + //return; + var input = new SimulationInput() { Stats = new CharacterStats { Craftsmanship = 4041, Control = 3905, CP = 609, Level = 90 }, diff --git a/Craftimizer/Configuration.cs b/Craftimizer/Configuration.cs index 30d93b7..d3c59d3 100644 --- a/Craftimizer/Configuration.cs +++ b/Craftimizer/Configuration.cs @@ -6,7 +6,7 @@ namespace Craftimizer.Plugin; [Serializable] public class Configuration : IPluginConfiguration { - public int Version { get; set; } = 0; + public int Version { get; set; } = 1; public void Save() { diff --git a/Craftimizer/Craftimizer.Plugin.csproj b/Craftimizer/Craftimizer.Plugin.csproj index 99d8a00..14c5f77 100644 --- a/Craftimizer/Craftimizer.Plugin.csproj +++ b/Craftimizer/Craftimizer.Plugin.csproj @@ -30,7 +30,11 @@ - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + $(DalamudLibPath)FFXIVClientStructs.dll diff --git a/Craftimizer/ImGuiUtils.cs b/Craftimizer/ImGuiUtils.cs index 7cb176e..7b2bf03 100644 --- a/Craftimizer/ImGuiUtils.cs +++ b/Craftimizer/ImGuiUtils.cs @@ -5,7 +5,7 @@ using System.Numerics; namespace Craftimizer.Plugin; -internal class ImGuiUtils +internal static class ImGuiUtils { private static readonly Stack<(Vector2 Min, Vector2 Max)> GroupPanelLabelStack = new(); diff --git a/Craftimizer/SimulatorUtils.cs b/Craftimizer/SimulatorUtils.cs index 2d474d3..1f31a35 100644 --- a/Craftimizer/SimulatorUtils.cs +++ b/Craftimizer/SimulatorUtils.cs @@ -52,7 +52,7 @@ internal static class ActionUtils var (craftAction, action) = GetActionRow(me, classJob); if (craftAction != null) return craftAction.Name.ToDalamudString().TextValue; - else if (action != null) + if (action != null) return action.Name.ToDalamudString().TextValue; return "Unknown"; } @@ -62,7 +62,7 @@ internal static class ActionUtils var (craftAction, action) = GetActionRow(me, classJob); if (craftAction != null) return Icons.GetIconFromId(craftAction.Icon); - else if (action != null) + if (action != null) return Icons.GetIconFromId(action.Icon); // Old "Steady Hand" action icon return Icons.GetIconFromId(1953); diff --git a/Craftimizer/packages.lock.json b/Craftimizer/packages.lock.json index 3544bdf..c1aa84e 100644 --- a/Craftimizer/packages.lock.json +++ b/Craftimizer/packages.lock.json @@ -4,9 +4,15 @@ "net7.0-windows7.0": { "DalamudPackager": { "type": "Direct", - "requested": "[2.1.10, )", - "resolved": "2.1.10", - "contentHash": "S6NrvvOnLgT4GDdgwuKVJjbFo+8ZEj+JsEYk9ojjOR/MMfv1dIFpT8aRJQfI24rtDcw1uF+GnSSMN4WW1yt7fw==" + "requested": "[2.1.11, )", + "resolved": "2.1.11", + "contentHash": "9qlAWoRRTiL/geAvuwR/g6Bcbrd/bJJgVnB/RurBiyKs6srsP0bvpoo8IK+Eg8EA6jWeM6/YJWs66w4FIAzqPw==" + }, + "Meziantou.Analyzer": { + "type": "Direct", + "requested": "[2.0.61, )", + "resolved": "2.0.61", + "contentHash": "DhiEScqTxQb8R7s9EWMjs5F5EA7AD+JO5upb88QqPwPQUsAOm2gN5AjeQon3XLrquw1G5r+C9Yxct+rFxwuMZg==" }, "craftimizer.simulator": { "type": "Project" diff --git a/Simulator/Actions/AdvancedTouch.cs b/Simulator/Actions/AdvancedTouch.cs index 3dad79a..d234b77 100644 --- a/Simulator/Actions/AdvancedTouch.cs +++ b/Simulator/Actions/AdvancedTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class AdvancedTouch : BaseAction +internal sealed class AdvancedTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 84; diff --git a/Simulator/Actions/BaseAction.cs b/Simulator/Actions/BaseAction.cs index 0105320..aaf5fa1 100644 --- a/Simulator/Actions/BaseAction.cs +++ b/Simulator/Actions/BaseAction.cs @@ -6,9 +6,7 @@ public abstract class BaseAction { [ThreadStatic] internal static Simulator? TLSSimulation; - protected static Simulator Simulation => TLSSimulation ?? throw new NullReferenceException(); - - public BaseAction() { } + protected static Simulator Simulation => TLSSimulation!; // Non-instanced properties public abstract ActionCategory Category { get; } diff --git a/Simulator/Actions/BasicSynthesis.cs b/Simulator/Actions/BasicSynthesis.cs index c8440e9..888f08b 100644 --- a/Simulator/Actions/BasicSynthesis.cs +++ b/Simulator/Actions/BasicSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class BasicSynthesis : BaseAction +internal sealed class BasicSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 1; diff --git a/Simulator/Actions/BasicTouch.cs b/Simulator/Actions/BasicTouch.cs index c37c2fb..bd2a765 100644 --- a/Simulator/Actions/BasicTouch.cs +++ b/Simulator/Actions/BasicTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class BasicTouch : BaseAction +internal sealed class BasicTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 5; diff --git a/Simulator/Actions/ByregotsBlessing.cs b/Simulator/Actions/ByregotsBlessing.cs index 86f40dc..3317099 100644 --- a/Simulator/Actions/ByregotsBlessing.cs +++ b/Simulator/Actions/ByregotsBlessing.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class ByregotsBlessing : BaseAction +internal sealed class ByregotsBlessing : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 50; diff --git a/Simulator/Actions/CarefulObservation.cs b/Simulator/Actions/CarefulObservation.cs index 224a634..cdd12f3 100644 --- a/Simulator/Actions/CarefulObservation.cs +++ b/Simulator/Actions/CarefulObservation.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class CarefulObservation : BaseAction +internal sealed class CarefulObservation : BaseAction { public override ActionCategory Category => ActionCategory.Other; public override int Level => 55; diff --git a/Simulator/Actions/CarefulSynthesis.cs b/Simulator/Actions/CarefulSynthesis.cs index 693520f..59413d5 100644 --- a/Simulator/Actions/CarefulSynthesis.cs +++ b/Simulator/Actions/CarefulSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class CarefulSynthesis : BaseAction +internal sealed class CarefulSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 62; diff --git a/Simulator/Actions/DelicateSynthesis.cs b/Simulator/Actions/DelicateSynthesis.cs index 724b86d..82e6c7c 100644 --- a/Simulator/Actions/DelicateSynthesis.cs +++ b/Simulator/Actions/DelicateSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class DelicateSynthesis : BaseAction +internal sealed class DelicateSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 76; diff --git a/Simulator/Actions/FinalAppraisal.cs b/Simulator/Actions/FinalAppraisal.cs index e792d97..132ddfe 100644 --- a/Simulator/Actions/FinalAppraisal.cs +++ b/Simulator/Actions/FinalAppraisal.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class FinalAppraisal : BaseBuffAction +internal sealed class FinalAppraisal : BaseBuffAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 42; diff --git a/Simulator/Actions/FocusedSynthesis.cs b/Simulator/Actions/FocusedSynthesis.cs index 6c8d95b..075c3f2 100644 --- a/Simulator/Actions/FocusedSynthesis.cs +++ b/Simulator/Actions/FocusedSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class FocusedSynthesis : BaseAction +internal sealed class FocusedSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 67; diff --git a/Simulator/Actions/FocusedTouch.cs b/Simulator/Actions/FocusedTouch.cs index dc83848..667305b 100644 --- a/Simulator/Actions/FocusedTouch.cs +++ b/Simulator/Actions/FocusedTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class FocusedTouch : BaseAction +internal sealed class FocusedTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 68; diff --git a/Simulator/Actions/GreatStrides.cs b/Simulator/Actions/GreatStrides.cs index 202d949..afe47cf 100644 --- a/Simulator/Actions/GreatStrides.cs +++ b/Simulator/Actions/GreatStrides.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class GreatStrides : BaseBuffAction +internal sealed class GreatStrides : BaseBuffAction { public override ActionCategory Category => ActionCategory.Buffs; public override int Level => 21; diff --git a/Simulator/Actions/Groundwork.cs b/Simulator/Actions/Groundwork.cs index baed064..eb8bf7b 100644 --- a/Simulator/Actions/Groundwork.cs +++ b/Simulator/Actions/Groundwork.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class Groundwork : BaseAction +internal sealed class Groundwork : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 72; diff --git a/Simulator/Actions/HastyTouch.cs b/Simulator/Actions/HastyTouch.cs index 745e0ee..e655ba2 100644 --- a/Simulator/Actions/HastyTouch.cs +++ b/Simulator/Actions/HastyTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class HastyTouch : BaseAction +internal sealed class HastyTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 9; diff --git a/Simulator/Actions/HeartAndSoul.cs b/Simulator/Actions/HeartAndSoul.cs index ed13336..8311779 100644 --- a/Simulator/Actions/HeartAndSoul.cs +++ b/Simulator/Actions/HeartAndSoul.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class HeartAndSoul : BaseBuffAction +internal sealed class HeartAndSoul : BaseBuffAction { public override ActionCategory Category => ActionCategory.Other; public override int Level => 86; diff --git a/Simulator/Actions/Innovation.cs b/Simulator/Actions/Innovation.cs index f8c5737..28ad3be 100644 --- a/Simulator/Actions/Innovation.cs +++ b/Simulator/Actions/Innovation.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class Innovation : BaseBuffAction +internal sealed class Innovation : BaseBuffAction { public override ActionCategory Category => ActionCategory.Buffs; public override int Level => 26; diff --git a/Simulator/Actions/IntensiveSynthesis.cs b/Simulator/Actions/IntensiveSynthesis.cs index 270ed37..7f1022c 100644 --- a/Simulator/Actions/IntensiveSynthesis.cs +++ b/Simulator/Actions/IntensiveSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class IntensiveSynthesis : BaseAction +internal sealed class IntensiveSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 78; diff --git a/Simulator/Actions/Manipulation.cs b/Simulator/Actions/Manipulation.cs index 2e9f44a..e0a27ef 100644 --- a/Simulator/Actions/Manipulation.cs +++ b/Simulator/Actions/Manipulation.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class Manipulation : BaseBuffAction +internal sealed class Manipulation : BaseBuffAction { public override ActionCategory Category => ActionCategory.Durability; public override int Level => 65; diff --git a/Simulator/Actions/MastersMend.cs b/Simulator/Actions/MastersMend.cs index e54443e..feb30db 100644 --- a/Simulator/Actions/MastersMend.cs +++ b/Simulator/Actions/MastersMend.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class MastersMend : BaseAction +internal sealed class MastersMend : BaseAction { public override ActionCategory Category => ActionCategory.Durability; public override int Level => 7; diff --git a/Simulator/Actions/MuscleMemory.cs b/Simulator/Actions/MuscleMemory.cs index 0b71c16..f35f839 100644 --- a/Simulator/Actions/MuscleMemory.cs +++ b/Simulator/Actions/MuscleMemory.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class MuscleMemory : BaseAction +internal sealed class MuscleMemory : BaseAction { public override ActionCategory Category => ActionCategory.FirstTurn; public override int Level => 54; diff --git a/Simulator/Actions/Observe.cs b/Simulator/Actions/Observe.cs index 7068826..3ed19b5 100644 --- a/Simulator/Actions/Observe.cs +++ b/Simulator/Actions/Observe.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class Observe : BaseAction +internal sealed class Observe : BaseAction { public override ActionCategory Category => ActionCategory.Other; public override int Level => 13; diff --git a/Simulator/Actions/PreciseTouch.cs b/Simulator/Actions/PreciseTouch.cs index d076971..a4c2382 100644 --- a/Simulator/Actions/PreciseTouch.cs +++ b/Simulator/Actions/PreciseTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class PreciseTouch : BaseAction +internal sealed class PreciseTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 53; diff --git a/Simulator/Actions/PreparatoryTouch.cs b/Simulator/Actions/PreparatoryTouch.cs index d246ed3..fba6bc9 100644 --- a/Simulator/Actions/PreparatoryTouch.cs +++ b/Simulator/Actions/PreparatoryTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class PreparatoryTouch : BaseAction +internal sealed class PreparatoryTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 71; diff --git a/Simulator/Actions/PrudentSynthesis.cs b/Simulator/Actions/PrudentSynthesis.cs index 5c20439..3397c64 100644 --- a/Simulator/Actions/PrudentSynthesis.cs +++ b/Simulator/Actions/PrudentSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class PrudentSynthesis : BaseAction +internal sealed class PrudentSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 88; diff --git a/Simulator/Actions/PrudentTouch.cs b/Simulator/Actions/PrudentTouch.cs index 7bd06dc..2446a8e 100644 --- a/Simulator/Actions/PrudentTouch.cs +++ b/Simulator/Actions/PrudentTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class PrudentTouch : BaseAction +internal sealed class PrudentTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 66; diff --git a/Simulator/Actions/RapidSynthesis.cs b/Simulator/Actions/RapidSynthesis.cs index d82cf79..0868136 100644 --- a/Simulator/Actions/RapidSynthesis.cs +++ b/Simulator/Actions/RapidSynthesis.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class RapidSynthesis : BaseAction +internal sealed class RapidSynthesis : BaseAction { public override ActionCategory Category => ActionCategory.Synthesis; public override int Level => 9; diff --git a/Simulator/Actions/Reflect.cs b/Simulator/Actions/Reflect.cs index c09d75d..e2bfebe 100644 --- a/Simulator/Actions/Reflect.cs +++ b/Simulator/Actions/Reflect.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class Reflect : BaseAction +internal sealed class Reflect : BaseAction { public override ActionCategory Category => ActionCategory.FirstTurn; public override int Level => 69; diff --git a/Simulator/Actions/StandardTouch.cs b/Simulator/Actions/StandardTouch.cs index f3525ce..087ff41 100644 --- a/Simulator/Actions/StandardTouch.cs +++ b/Simulator/Actions/StandardTouch.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class StandardTouch : BaseAction +internal sealed class StandardTouch : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 18; diff --git a/Simulator/Actions/TrainedEye.cs b/Simulator/Actions/TrainedEye.cs index 25a1df0..c5834b4 100644 --- a/Simulator/Actions/TrainedEye.cs +++ b/Simulator/Actions/TrainedEye.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class TrainedEye : BaseAction +internal sealed class TrainedEye : BaseAction { public override ActionCategory Category => ActionCategory.FirstTurn; public override int Level => 80; diff --git a/Simulator/Actions/TrainedFinesse.cs b/Simulator/Actions/TrainedFinesse.cs index e65e7be..d7a26ac 100644 --- a/Simulator/Actions/TrainedFinesse.cs +++ b/Simulator/Actions/TrainedFinesse.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class TrainedFinesse : BaseAction +internal sealed class TrainedFinesse : BaseAction { public override ActionCategory Category => ActionCategory.Quality; public override int Level => 90; diff --git a/Simulator/Actions/TricksOfTheTrade.cs b/Simulator/Actions/TricksOfTheTrade.cs index 80b2dcc..28a8002 100644 --- a/Simulator/Actions/TricksOfTheTrade.cs +++ b/Simulator/Actions/TricksOfTheTrade.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class TricksOfTheTrade : BaseAction +internal sealed class TricksOfTheTrade : BaseAction { public override ActionCategory Category => ActionCategory.Other; public override int Level => 13; diff --git a/Simulator/Actions/Veneration.cs b/Simulator/Actions/Veneration.cs index 5bfb491..f609396 100644 --- a/Simulator/Actions/Veneration.cs +++ b/Simulator/Actions/Veneration.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class Veneration : BaseBuffAction +internal sealed class Veneration : BaseBuffAction { public override ActionCategory Category => ActionCategory.Buffs; public override int Level => 15; diff --git a/Simulator/Actions/WasteNot.cs b/Simulator/Actions/WasteNot.cs index d25be2c..f337b09 100644 --- a/Simulator/Actions/WasteNot.cs +++ b/Simulator/Actions/WasteNot.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class WasteNot : BaseBuffAction +internal sealed class WasteNot : BaseBuffAction { public override ActionCategory Category => ActionCategory.Durability; public override int Level => 15; diff --git a/Simulator/Actions/WasteNot2.cs b/Simulator/Actions/WasteNot2.cs index ef1a3b0..935de53 100644 --- a/Simulator/Actions/WasteNot2.cs +++ b/Simulator/Actions/WasteNot2.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator.Actions; -internal class WasteNot2 : BaseBuffAction +internal sealed class WasteNot2 : BaseBuffAction { public override ActionCategory Category => ActionCategory.Durability; public override int Level => 47; diff --git a/Simulator/CharacterStats.cs b/Simulator/CharacterStats.cs index f216497..f114dbf 100644 --- a/Simulator/CharacterStats.cs +++ b/Simulator/CharacterStats.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator; -public record CharacterStats +public sealed record CharacterStats { public int Craftsmanship { get; init; } public int Control { get; init; } diff --git a/Simulator/Craftimizer.Simulator.csproj b/Simulator/Craftimizer.Simulator.csproj index cfadb03..b1f8f15 100644 --- a/Simulator/Craftimizer.Simulator.csproj +++ b/Simulator/Craftimizer.Simulator.csproj @@ -6,4 +6,11 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/Simulator/Recipe.cs b/Simulator/Recipe.cs index c1562a2..5cdb32b 100644 --- a/Simulator/Recipe.cs +++ b/Simulator/Recipe.cs @@ -1,6 +1,6 @@ namespace Craftimizer.Simulator; -public record RecipeInfo +public sealed record RecipeInfo { public bool IsExpert { get; init; } public int ClassJobLevel { get; init; } diff --git a/Simulator/SimulationInput.cs b/Simulator/SimulationInput.cs index 5d8b47f..824352e 100644 --- a/Simulator/SimulationInput.cs +++ b/Simulator/SimulationInput.cs @@ -1,5 +1,3 @@ -using System; - namespace Craftimizer.Simulator; public readonly record struct SimulationInput diff --git a/Solver/Craftimizer.Solver.csproj b/Solver/Craftimizer.Solver.csproj index 77caee8..985ce10 100644 --- a/Solver/Craftimizer.Solver.csproj +++ b/Solver/Craftimizer.Solver.csproj @@ -6,6 +6,13 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/Solver/Crafty/ActionSet.cs b/Solver/Crafty/ActionSet.cs index 5e11f54..1910bcb 100644 --- a/Solver/Crafty/ActionSet.cs +++ b/Solver/Crafty/ActionSet.cs @@ -7,7 +7,7 @@ namespace Craftimizer.Solver.Crafty; public sealed class ActionSet { - private uint Bits { get; set; } = 0; + private uint Bits { get; set; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static int NthBitSet(uint value, int n) diff --git a/Solver/Crafty/NodeScores.cs b/Solver/Crafty/NodeScores.cs index bee1631..1fed933 100644 --- a/Solver/Crafty/NodeScores.cs +++ b/Solver/Crafty/NodeScores.cs @@ -1,8 +1,8 @@ namespace Craftimizer.Solver.Crafty; -public class NodeScores +public sealed class NodeScores { - public float ScoreSum { get; set; } = 0; - public float MaxScore { get; set; } = 0; - public float Visits { get; set; } = 0; + public float ScoreSum { get; set; } + public float MaxScore { get; set; } + public float Visits { get; set; } } diff --git a/Solver/Crafty/Solver.cs b/Solver/Crafty/Solver.cs index fb98b25..f05738b 100644 --- a/Solver/Crafty/Solver.cs +++ b/Solver/Crafty/Solver.cs @@ -1,5 +1,6 @@ using Craftimizer.Simulator; using Craftimizer.Simulator.Actions; +using System.Diagnostics; using System.Runtime.CompilerServices; namespace Craftimizer.Solver.Crafty; @@ -213,6 +214,7 @@ public class Solver return (actions, state); } + Debugger.Break(); var solver = new Solver(state, true); while (!solver.Simulator.IsComplete) { @@ -232,6 +234,7 @@ public class Solver solver = new Solver(state, true); } + Debugger.Break(); return (actions, state); }