namespace PkmnLib.Plugin.Gen7.Scripts.Moves;

[Script(ScriptCategory.Move, "synthesis")]
public class Synthesis : Script, IScriptOnSecondaryEffect
{
    /// <inheritdoc />
    public void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
    {
        var healModifier = 0.5f;
        var weatherName = target.BattleData?.Battle.WeatherName;
        if (weatherName == ScriptUtils.ResolveName<Weather.HarshSunlight>())
            healModifier = 2 / 3f;
        else if (weatherName == ScriptUtils.ResolveName<Weather.Rain>() ||
                 weatherName == ScriptUtils.ResolveName<Weather.Hail>() ||
                 weatherName == ScriptUtils.ResolveName<Weather.Sandstorm>())
            healModifier = 1 / 4f;

        move.User.Heal((uint)(move.User.MaxHealth * healModifier));
    }
}