Beispiel #1
0
 public object[] Underestimated(CombatResult owner, CombatResult enemy)
 {
     if (owner.character.level < enemy.character.level ||
         owner.character.Rank() < enemy.character.Rank())
     {
         owner.damageMultiplier = ArrayM.AddEach(owner.damageMultiplier, 0.1);
     }
     return(new object[] { owner, enemy });
 }
Beispiel #2
0
 public object[] Opportunist(CombatResult owner, CombatResult enemy)
 {
     if (enemy.character.status.Count > 0)
     {
         owner.damageMultiplier = ArrayM.AddEach(owner.damageMultiplier,
                                                 0.01 * enemy.character.status.Count);
     }
     return(new object[] { owner, enemy });
 }
Beispiel #3
0
        public object[] Vengeful(CombatResult owner)
        {
            double per = (owner.character.health / owner.character.Health()) - 0.35;

            if (per > 0)
            {
                owner.damageMultiplier = ArrayM.AddEach(owner.damageMultiplier, per);
            }
            return(R(owner));
        }
Beispiel #4
0
 public object[] LoneWolf(CombatResult owner, CombatResult enemy)
 {
     if (enemy.SentHit && enemy.abilityUsed.type == Ability.AType.Martial)
     {
         var enemies = enemy.GetAllies();
         var allies  = owner.GetAllies();
         int d       = enemies.Length - allies.Length;
         if (d > 0)
         {
             owner.bonusResistance = ArrayM.AddEach(owner.bonusResistance, 20 * d);
         }
     }
     return(new object[] { owner, enemy });
 }
Beispiel #5
0
 public object[] AwaitedStorm(CombatResult owner, CombatResult enemy)
 {
     if (owner.abilityUsed.IsType(Ability.AType.Elemental, Ability.AType.Enchantment, Ability.AType.Martial))
     {
         if (rank > 0)
         {
             int bonus = owner.character.stats.GetSTR() * rank;
             owner.damageMultiplier = ArrayM.AddEach(owner.damageMultiplier, bonus / 100.00);
             owner.perkProcs.Add($"+{bonus}% DMG on {enemy.Name}");
             rank = 0;
         }
     }
     else
     {
         rank++;
     }
     return(R(owner, enemy));
 }
        public object[] GladiatorPatientia(CombatResult owner)
        {
            int    set  = GearSets.GetSetPower("Gladiator", owner.character.equipment);
            double buff = (set * 0.2) * rank;
            int    max  = 10 + (3 * set);

            if (buff >= max)
            {
                buff += (18 * set);
                rank  = 0;
            }
            else
            {
                rank++;
            }

            owner.perkProcs.Add($"Gladiator Patientia: +{Math.Round(buff, 2)}% PHY DMG");

            owner.damageMultiplier = ArrayM.AddEach(owner.damageMultiplier, buff / 100.00);

            return(R(owner));
        }