26 lines
776 B
C#

using PkmnLib.Plugin.Gen7.Scripts.Battle;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "uproar")]
public class Uproar : Script, IScriptOnSecondaryEffect
{
/// <inheritdoc />
public void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
var battle = move.Battle;
foreach (var pokemon in battle.Sides.SelectMany(x => x.Pokemon).WhereNotNull())
{
if (pokemon.HasStatus(ScriptUtils.ResolveName<Status.Sleep>()))
{
pokemon.ClearStatus();
}
}
var script = battle.Volatile.Add(new UproarEffect());
if (script?.Script is UproarEffect uproarEffect)
{
uproarEffect.SetPlacer(move.User);
}
}
}