パッケージ mechanics.optimization

クラス RotationSearcher

java.lang.Object
mechanics.optimization.RotationSearcher

public class RotationSearcher extends Object
Finds the highest-damage rotation by exhaustively evaluating all combinations of character order permutations and named action profiles.

The search space is:

  • Order permutations – all N! orderings of the party members.
  • Profile combinations – the Cartesian product of each character's available ProfileLoader.ActionProfiles.

All combinations are evaluated concurrently via a parallel stream. findBestRotation(java.util.function.Supplier<simulation.CombatSimulator>) returns the RotationSearcher.RotationPlan with the highest total damage within a 25-second window.

  • コンストラクタの詳細

    • RotationSearcher

      public RotationSearcher()
  • メソッドの詳細

    • findBestRotation

      public RotationSearcher.RotationPlan findBestRotation(Supplier<CombatSimulator> simFactory)
      Searches all order permutations and profile combinations for the highest-damage rotation.

      Steps:

      1. Instantiates a temporary simulator to discover party member names.
      2. Loads action profiles for every character via ProfileLoader.
      3. Generates all N! order permutations and the Cartesian product of profile choices.
      4. Evaluates all resulting RotationSearcher.RunnableEvaluation tasks in parallel over a 25-second simulation window.
      5. Returns the plan with the maximum RotationSearcher.RotationPlan.totalDamage.
      パラメータ:
      simFactory - supplier that creates a fresh, identically configured CombatSimulator for each evaluation; called once per task plus once for discovery
      戻り値:
      the best-scoring RotationSearcher.RotationPlan found
      例外:
      RuntimeException - if no rotation can be evaluated