/// <summary> /// Beware when updating: The spells from an earlier returned Rotation are references to the SpellBox from this Estimation. /// </summary> /// <param name="baseStats"></param> /// <param name="procStats"></param> /// <param name="talents"></param> /// <param name="calcOpts"></param> public void Update(Stats baseStats, Stats procStats, ShamanTalents talents, CalculationOptionsElemental calcOpts) { this.baseStats = baseStats; this.procStats = procStats; this.talents = talents; this.calcOpts = calcOpts; Stats addedStats = baseStats.Clone(); addedStats.Accumulate(procStats); CombatFactors combatFactors = new CombatFactors(talents, addedStats, Math.Max(calcOpts.NumberOfTargets - 1, 0), calcOpts.LatencyCast, calcOpts.LatencyGcd, calcOpts.UseFireNova, calcOpts.UseChainLightning, calcOpts.UseDpsTotem); spellbox.Update(combatFactors); }