using PkmnLib.Static.Utils; namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// /// Dark Aura is an ability that increases the power of Dark-type moves by 33% for all Pokémon on the field. /// The effect can be modified by other abilities (such as Aura Break) via a custom script hook. /// /// Bulbapedia - Dark Aura /// [Script(ScriptCategory.Ability, "dark_aura")] public class DarkAura : Script { /// public override void ChangeDamageModifier(IExecutingMove move, IPokemon target, byte hit, ref float modifier) { if (move.GetHitData(target, hit).Type?.Name == "dark") { var auraModifier = 5448f / 4096f; var parameters = new Dictionary { ["aura_type"] = "dark", ["modifier"] = auraModifier, }; move.Battle.Sides.SelectMany(side => side.Pokemon).WhereNotNull() .RunScriptHook(x => x.CustomTrigger(CustomTriggers.ModifyAuraEffect, parameters)); if (parameters.TryGetValue("modifier", out var modObj) && modObj is float modValue) { auraModifier = modValue; } modifier *= auraModifier; move.Battle.EventHook.Invoke(new AbilityTriggerEvent(move.User)); } } }