using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "infestation")]
public class Infestation : Script, IScriptOnSecondaryEffect
{
///
public void OnSecondaryEffect(IExecutingMove move, IBattlePokemon target, byte hit)
{
var infestationEffect = ScriptUtils.ResolveName();
if (target.Volatile.Contains(infestationEffect))
{
move.GetHitData(target, hit).Fail();
return;
}
var battleData = move.User;
if (battleData == null)
return;
var turns = 4;
if (battleData.Battle.Random.GetBool())
{
turns = 5;
}
var args = new CustomTriggers.ModifyBindArgs(move)
{
Duration = turns,
DamagePercent = 1 / 8f,
};
move.User.RunScriptHook(x => x.CustomTrigger(CustomTriggers.ModifyBind, args));
var bindTurns = args.Duration;
var bindDamage = args.DamagePercent;
target.Volatile.Add(new InfestationEffect(target, bindTurns, bindDamage));
}
}