Example #1
0
File: Skill.cs Project: rakot/rawr
 public DivineStorm(Character character, StatsRetri stats) : base("Divine Storm", character, stats, AbilityType.Melee, DamageType.Physical)
 {
     CT            = new BasePhysicalYellowCombatTable(Character.BossOptions, _stats, Attacktype.MeleeMH);
     Cooldown      = PaladinConstants.DS_COOLDOWN / (Talents.SanctityOfBattle > 0 ? (1f + _stats.PhysicalHaste) : 1f);
     MaxTargets    = 100;
     AbilityDamage = AbilityHelper.WeaponDamage(_character, _stats.AttackPower, true) * PaladinConstants.DS_DMG_BONUS;
 }
Example #2
0
File: Skill.cs Project: rakot/rawr
        public TemplarsVerdict(Character character, StatsRetri stats) : base("Templar's Verdict", character, stats, AbilityType.Melee, DamageType.Physical)
        {
            CT = new BasePhysicalYellowCombatTable(Character.BossOptions, _stats, Attacktype.MeleeMH);
            CT.AbilityCritCorr = Talents.ArbiterOfTheLight * PaladinConstants.ARBITER_OF_THE_LIGHT;
            AbilityDamageMulitplier[Multiplier.Talents] = (1f + PaladinConstants.CRUSADE * Talents.Crusade);
            AbilityDamageMulitplier[Multiplier.Glyphs]  = (1f + (Talents.GlyphOfTemplarsVerdict ? PaladinConstants.GLYPH_OF_TEMPLARS_VERDICT : .0f));
            AbilityDamageMulitplier[Multiplier.Sets]    = (1f + (Stats.T11_2P ? .1f : 0f));
            AbilityDamage = AbilityHelper.WeaponDamage(Character, _stats.AttackPower) * PaladinConstants.TV_THREE_STK;

            //Hand of Light
            AddTrigger(new HandofLight(Character, Stats, AverageDamage));
        }
Example #3
0
File: Skill.cs Project: rakot/rawr
        public CrusaderStrike(Character character, StatsRetri stats) : base("Crusader Strike", character, stats, AbilityType.Melee, DamageType.Physical, true)
        {
            CT = new BasePhysicalYellowCombatTable(Character.BossOptions, _stats, Attacktype.MeleeMH);
            CT.AbilityCritCorr = Talents.RuleOfLaw * PaladinConstants.RULE_OF_LAW +
                                 (Talents.GlyphOfCrusaderStrike ? PaladinConstants.GLYPH_OF_CRUSADER_STRIKE : 0);
            AbilityDamageMulitplier[Multiplier.Talents] = (1f + PaladinConstants.CRUSADE * Talents.Crusade);
            AbilityDamageMulitplier[Multiplier.Sets]    = (1f + Stats.BonusDamageMultiplierCrusaderStrike);
            Cooldown      = PaladinConstants.CS_COOLDOWN / (Talents.SanctityOfBattle > 0 ? (1f + _stats.SpellHaste) : 1f);
            AbilityDamage = AbilityHelper.WeaponDamage(_character, _stats.AttackPower, true) * PaladinConstants.CS_DMG_BONUS;

            if (_stats.T12_2P)
            {
                MagicDamage spell = new MagicDamage("T12 2P Bonus", _character, new StatsRetri(), DamageType.Fire, true);
                spell.CT.CanCrit    = false;
                spell.CT.CanMiss    = false;
                spell.AbilityDamage = AverageDamage * .15f;
                AddTrigger(spell);
            }
            //Hand of Light
            AddTrigger(new HandofLight(Character, Stats, AverageDamage));

            _CycleTime = GCD * 2f + (1.5f / (1 + Stats.SpellHaste) + Latency);
        }
        // Add calculated values to the values dictionary.
        // These values are then available for display via the CharacterDisplayCalculationLabels
        // member defined in CalculationsRetribution.cs
        // While possible, there's little reason to add values to the dictionary that are not being
        // used by the CharacterDisplayCalculationLabels.
        public override Dictionary <string, string> GetCharacterDisplayCalculationValues()
        {
            Dictionary <string, string> dictValues = new Dictionary <string, string>();

            // Basic stats
            dictValues["Health"]          = string.Format("{0:N0}*Base Health: {1:N0}", CombatStats.Health, BasicStats.Health);
            dictValues["Mana"]            = string.Format("{0:N0}*Base Mana: {1:N0}", CombatStats.Mana, BasicStats.Mana);
            dictValues["Strength"]        = string.Format("{0:N0}*Base Strength: {1:N0}", CombatStats.Strength, BasicStats.Strength);
            dictValues["Agility"]         = string.Format("{0:N0}*Base Agility: {1:N0}", CombatStats.Agility, BasicStats.Agility);
            dictValues["Attack Power"]    = string.Format("{0:N0}*Base Attack Power: {1:N0}", CombatStats.AttackPower, BasicStats.AttackPower);
            dictValues["Melee Crit"]      = string.Format("{0:P}*{1:0} Crit Rating ({2:P})", CombatStats.PhysicalCrit, BasicStats.CritRating, StatConversion.GetCritFromRating(BasicStats.CritRating, CharacterClass.Paladin));
            dictValues["Melee Haste"]     = string.Format("{0:P}*{1:0} Haste Rating ({2:P})", CombatStats.PhysicalHaste, BasicStats.HasteRating, StatConversion.GetHasteFromRating(BasicStats.HasteRating, CharacterClass.Paladin));
            dictValues["Chance to Dodge"] = string.Format("{0:P}*{1:0} Expertise Rating ({2:F1})", ((BasePhysicalWhiteCombatTable)WhiteSkill.CT).ChanceToDodge, BasicStats.ExpertiseRating, BasicStats.Expertise);
            dictValues["Mastery"]         = string.Format("{0:F2}*{1:0} Mastery Rating ({2:F1})\n{3:P} Hand of Light", (8f + StatConversion.GetMasteryFromRating(CombatStats.MasteryRating, CharacterClass.Paladin)),
                                                          BasicStats.MasteryRating, StatConversion.GetMasteryFromRating(BasicStats.MasteryRating, CharacterClass.Paladin),
                                                          (8f + StatConversion.GetMasteryFromRating(BasicStats.MasteryRating, CharacterClass.Paladin)) * PaladinConstants.HOL_COEFF);
            dictValues["Miss Chance"]        = string.Format("{0:P}*{1:0} Hit Rating ({2:P})", WhiteSkill.CT.ChanceToMiss, BasicStats.HitRating, StatConversion.GetHitFromRating(BasicStats.HitRating, CharacterClass.Paladin));
            dictValues["Spell Power"]        = string.Format("{0:N0}*Base Spell Power: {1:N0}", CombatStats.SpellPower, BasicStats.SpellPower);
            dictValues["Spell Crit"]         = string.Format("{0:P}*{1:0} Crit Rating ({2:P})", CombatStats.SpellCrit, BasicStats.CritRating, StatConversion.GetCritFromRating(BasicStats.CritRating, CharacterClass.Paladin));
            dictValues["Spell Haste"]        = string.Format("{0:P}*{1:0} Haste Rating ({2:P})", CombatStats.SpellHaste, BasicStats.HasteRating, StatConversion.GetHasteFromRating(BasicStats.HasteRating, CharacterClass.Paladin));
            dictValues["Weapon Damage"]      = string.Format("{0:F}*Base Weapon Damage: {1:F}", AbilityHelper.WeaponDamage(Character, CombatStats.AttackPower), AbilityHelper.WeaponDamage(Character, BasicStats.AttackPower));
            dictValues["Weapon Damage @3.3"] = string.Format("{0:F}*Base Weapon Damage: {1:F}", AbilityHelper.WeaponDamage(Character, CombatStats.AttackPower, true), AbilityHelper.WeaponDamage(Character, BasicStats.AttackPower, true));
            dictValues["Attack Speed"]       = string.Format("{0:F2}*Base Attack Speed: {1:F2}", AbilityHelper.WeaponSpeed(Character, CombatStats.PhysicalHaste), AbilityHelper.WeaponSpeed(Character, BasicStats.PhysicalHaste));

            // DPS Breakdown
            dictValues["Total DPS"]        = OverallPoints.ToString("N0");
            dictValues["White"]            = string.Format("{0:N0}*" + WhiteSkill, WhiteSkill.GetDPS());
            dictValues["Seal"]             = string.Format("{0:N0}*" + SealSkill, SealSkill.GetDPS());
            dictValues["Seal (Dot)"]       = string.Format("{0:N0}*" + SealDotSkill, SealDotSkill.GetDPS());
            dictValues["Seal of Command"]  = string.Format("{0:N0}*" + CommandSkill, CommandSkill.GetDPS());
            dictValues["Crusader Strike"]  = string.Format("{0:N0}*" + CrusaderStrikeSkill, CrusaderStrikeSkill.GetDPS());
            dictValues["Templars Verdict"] = string.Format("{0:N0}*" + TemplarsVerdictSkill, TemplarsVerdictSkill.GetDPS());
            dictValues["Judgement"]        = string.Format("{0:N0}*" + JudgementSkill, JudgementSkill.GetDPS());
            dictValues["Consecration"]     = string.Format("{0:N0}*" + ConsecrationSkill, ConsecrationSkill.GetDPS());
            dictValues["Exorcism"]         = string.Format("{0:N0}*" + ExorcismSkill, ExorcismSkill.GetDPS());
            dictValues["Holy Wrath"]       = string.Format("{0:N0}*" + HolyWrathSkill, HolyWrathSkill.GetDPS());
            dictValues["Hammer of Wrath"]  = string.Format("{0:N0}*" + HammerOfWrathSkill, HammerOfWrathSkill.GetDPS());
            dictValues["GoaK"]             = string.Format("{0:N0}*" + GoakSkill, GoakSkill.GetDPS());
            dictValues["Other"]            = OtherDPS.ToString("N0");

            // Rotation Info:
            dictValues["Inqusition Uptime"]       = CrusaderStrikeSkill.InqUptime.ToString("P2");
            dictValues["Crusader Strike Usage"]   = (CrusaderStrikeSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["Templar's Verdict Usage"] = (TemplarsVerdictSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["Exorcism Usage"]          = (ExorcismSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["Hammer of Wrath Usage"]   = (HammerOfWrathSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["Judgement Usage"]         = (JudgementSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["Holy Wrath Usage"]        = (HolyWrathSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["Consecration Usage"]      = (ConsecrationSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");
            dictValues["GoaK Usage"] = (GoakSkill.UsagePerSec * Character.BossOptions.BerserkTimer).ToString("F2");

            return(dictValues);
        }
Example #5
0
File: Skill.cs Project: rakot/rawr
 public White(Character character, StatsRetri stats) : base("Autoattack", character, stats, AbilityType.Melee, DamageType.Physical, false)
 {
     CT            = new BasePhysicalWhiteCombatTable(Character.BossOptions, _stats, Attacktype.MeleeMH);
     AbilityDamage = AbilityHelper.WeaponDamage(_character, _stats.AttackPower);
 }
Example #6
0
File: Skill.cs Project: rakot/rawr
 public SealOfTruth(Character character, StatsRetri stats) : base("Seal of Truth", character, stats, AbilityType.Melee)
 {
     CT            = new BasePhysicalYellowCombatTable(Character.BossOptions, _stats, Attacktype.MeleeMH);
     CT.CanMiss    = false;
     AbilityDamage = AbilityHelper.WeaponDamage(_character, _stats.AttackPower) * PaladinConstants.SOT_SEAL_COEFF;
 }
Example #7
0
File: Skill.cs Project: rakot/rawr
 public SealOfCommand(Character character, StatsRetri stats) : base("Seal of Command", character, stats, AbilityType.Melee, DamageType.Holy, false)
 {
     CT = new BasePhysicalYellowCombatTable(Character.BossOptions, _stats, Attacktype.MeleeMH);
     AbilityDamageMulitplier[Multiplier.Others] = (1f + PaladinConstants.TWO_H_SPEC);
     AbilityDamage = (Talents.SealsOfCommand > 0 ? AbilityHelper.WeaponDamage(_character, _stats.AttackPower) * PaladinConstants.SOC_COEFF : 0f);
 }