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 }); }
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 }); }
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)); }
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 }); }
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)); }