private IEnumerator PlayroutinePart(RotationTime routinePart) { float elapsedTime = 0; Coroutine rotRoutine = StartCoroutine(RotateTo(routinePart.QuaternionRotation)); while (elapsedTime < routinePart.Time) { elapsedTime += Time.deltaTime; yield return(null); } if (rotRoutine != null) { StopCoroutine(rotRoutine); } }
public override Dictionary <string, string> GetCharacterDisplayCalculationValues() { float critRating = BasicStats.CritRating; float hitRating = BasicStats.HitRating; Dictionary <string, string> dictValues = new Dictionary <string, string>(); dictValues.Add("Health", BasicStats.Health.ToString("N0")); dictValues.Add("Strength", BasicStats.Strength.ToString("N0")); dictValues.Add("Agility", string.Format("{0:0}*Provides {1:P} crit chance", BasicStats.Agility, StatConversion.GetCritFromAgility(BasicStats.Agility, CharacterClass.DeathKnight))); dictValues.Add("Attack Power", BasicStats.AttackPower.ToString("N0")); dictValues.Add("Crit Rating", string.Format("{0:0}*Provides {1:P} crit chance", critRating, StatConversion.GetCritFromRating(critRating, CharacterClass.DeathKnight))); dictValues.Add("Hit Rating", string.Format("{0:0}*Negates {1:P} melee miss / {2:P} spell miss", hitRating, StatConversion.GetPhysicalHitFromRating(hitRating, CharacterClass.DeathKnight), StatConversion.GetSpellHitFromRating(hitRating, CharacterClass.DeathKnight))); dictValues.Add("Expertise", string.Format("{0:0.00} / {1:0.00}*Negates {2:P} / {3:P} dodge chance", MHExpertise, OHExpertise, StatConversion.GetDodgeParryReducFromExpertise(MHExpertise), StatConversion.GetDodgeParryReducFromExpertise(OHExpertise))); dictValues.Add("Haste Rating", string.Format("{0:0}*Increases attack speed by {1:P}", BasicStats.HasteRating, StatConversion.GetHasteFromRating(BasicStats.HasteRating, CharacterClass.DeathKnight))); dictValues.Add("Armor", BasicStats.Armor.ToString("N0")); dictValues.Add("Resilience", BasicStats.Resilience.ToString("F0")); dictValues.Add("Mastery", string.Format("{0:N0}*Rating: {1:N0}", BasicStats.Mastery, BasicStats.MasteryRating)); dictValues.Add("Weapon Damage", MHWeaponDamage.ToString("N2") + " / " + OHWeaponDamage.ToString("N2")); dictValues.Add("Attack Speed", MHAttackSpeed.ToString("N2") + " / " + OHAttackSpeed.ToString("N2")); dictValues.Add("Crit Chance", string.Format("{0:P}", BasicStats.PhysicalCrit)); dictValues.Add("Avoided Attacks", string.Format("{0:P}*{1:P} Dodged, {2:P} Missed", AvoidedAttacks, DodgedAttacks, MissedAttacks)); dictValues.Add("Enemy Mitigation", string.Format("{0:P}*{1:0} effective enemy armor", EnemyMitigation, EffectiveArmor)); dictValues.Add("White HitChance", string.Format("{0:P}*Include Glance & Crit Chance", WhiteHitChance)); dictValues.Add("Yellow HitChance", string.Format("{0:P}", YellowHitChance)); foreach (int i in EnumHelper.GetValues(typeof(DKability))) { dictValues.Add(Enum.GetName(typeof(DKability), i), string.Format("{0:N2}*{1:P}", dpsSub[i], (dpsSub[i] / DPSPoints))); } dictValues.Add("Total DPS", DPSPoints.ToString("N2")); dictValues.Add("Rotation Duration", RotationTime.ToString() + " secs"); dictValues.Add("Blood", Blood.ToString()); dictValues.Add("Frost", Frost.ToString()); dictValues.Add("Unholy", Unholy.ToString()); dictValues.Add("Death", Death.ToString()); dictValues.Add("Runic Power", Death.ToString()); dictValues.Add("RE Runes", FreeRERunes.ToString("N2")); dictValues.Add("Rune Cooldown", m_RuneCD.ToString("N2")); PopulateSingleUseValues(dictValues, "BB", DKability.BloodBoil); PopulateSingleUseValues(dictValues, "BP", DKability.BloodPlague); PopulateSingleUseValues(dictValues, "BS", DKability.BloodStrike); PopulateSingleUseValues(dictValues, "DC", DKability.DeathCoil); PopulateSingleUseValues(dictValues, "DnD", DKability.DeathNDecay); PopulateSingleUseValues(dictValues, "DS", DKability.DeathStrike); PopulateSingleUseValues(dictValues, "Fest", DKability.FesteringStrike); PopulateSingleUseValues(dictValues, "FF", DKability.FrostFever); PopulateSingleUseValues(dictValues, "FS", DKability.FrostStrike); PopulateSingleUseValues(dictValues, "HS", DKability.HeartStrike); PopulateSingleUseValues(dictValues, "HB", DKability.HowlingBlast); PopulateSingleUseValues(dictValues, "IT", DKability.IcyTouch); PopulateSingleUseValues(dictValues, "NS", DKability.NecroticStrike); PopulateSingleUseValues(dictValues, "OB", DKability.Obliterate); PopulateSingleUseValues(dictValues, "PS", DKability.PlagueStrike); PopulateSingleUseValues(dictValues, "RS", DKability.RuneStrike); PopulateSingleUseValues(dictValues, "SS", DKability.ScourgeStrike); return(dictValues); }