namespace PkmnLib.Plugin.Gen7.Scripts.Moves;

[Script(ScriptCategory.Move, "fusion_flare")]
public class FusionFlare : Script, IScriptChangeDamageModifier
{
    /// <inheritdoc />
    public void ChangeDamageModifier(IExecutingMove move, IPokemon target, byte hit, ref float modifier)
    {
        var battleData = target.BattleData;
        if (battleData == null)
            return;

        // Grab the choices for the current turn, that have been executed before this move.
        var choice = battleData.Battle.PreviousTurnChoices.Last().TakeWhile(x => !Equals(x, move.MoveChoice))
            // Of these, find the move choice that used Fusion Bolt.
            .OfType<MoveChoice>().FirstOrDefault(x => x.ChosenMove.MoveData.Name == "fusion_bolt");

        // If Fusion Bolt was used, Fusion Flare's power is doubled.
        if (choice != null)
        {
            modifier *= 2;
        }
    }
}