Files
PkmnLib.NET/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/Gravity.cs
Deukhoofd d2a82b5fe3
All checks were successful
Build / Build (push) Successful in 3m12s
Many more tests and fixes
2026-08-27 17:11:12 +02:00

37 lines
1.4 KiB
C#

using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "gravity")]
public class Gravity : Script, IScriptOnSecondaryEffect
{
/// <inheritdoc />
public 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<StringKey, object?>(), out var script);
return script;
});
var chargeBounceEffect = ScriptUtils.ResolveName<ChargeBounceEffect>();
var flyEffect = ScriptUtils.ResolveName<ChargeFlyEffect>();
var skyDropEffect = ScriptUtils.ResolveName<ChargeSkyDropEffect>();
var telekinesisEffect = ScriptUtils.ResolveName<TelekinesisEffect>();
var magnetRiseEffect = ScriptUtils.ResolveName<MagnetRiseEffect>();
foreach (var pokemon in battleData.Battle.Sides.SelectMany(x => x.Pokemon).WhereNotNull())
{
pokemon.Volatile.Remove(chargeBounceEffect);
pokemon.Volatile.Remove(flyEffect);
pokemon.Volatile.Remove(skyDropEffect);
pokemon.Volatile.Remove(telekinesisEffect);
pokemon.Volatile.Remove(magnetRiseEffect);
}
}
}