using System.Collections.Generic;
using System.Linq;
using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
using PkmnLib.Static.Utils;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "gravity")]
public class Gravity : Script
{
///
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
var battleData = target.BattleData;
if (battleData == null)
return;
battleData.Battle.Volatile.StackOrAdd("gravity", () =>
{
battleData.Battle.Library.ScriptResolver.TryResolve(ScriptCategory.Battle, "gravity",
new Dictionary(), out var script);
return script;
});
foreach (var pokemon in battleData.Battle.Sides.SelectMany(x => x.Pokemon).WhereNotNull())
{
var chargeBounceEffect = ScriptUtils.ResolveName();
if (pokemon.Volatile.Contains(chargeBounceEffect))
pokemon.Volatile.Remove(chargeBounceEffect);
var flyEffect = ScriptUtils.ResolveName();
if (pokemon.Volatile.Contains(flyEffect))
pokemon.Volatile.Remove(flyEffect);
// TODO: Sky Drop
}
}
}