34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
|
|
using PkmnLib.Plugin.Gen7.Scripts.Side;
|
|
|
|
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
|
|
|
[Script(ScriptCategory.Move, "feint")]
|
|
public class Feint : Script, IScriptOnBeforeHit
|
|
{
|
|
/// <inheritdoc />
|
|
public void OnBeforeHit(IExecutingMove move, IPokemon target, byte hitIndex)
|
|
{
|
|
var toRemove = new List<ScriptContainer>();
|
|
foreach (var script in target.Volatile)
|
|
{
|
|
if (script.Script is ProtectionEffectScript)
|
|
{
|
|
toRemove.Add(script);
|
|
}
|
|
}
|
|
foreach (var script in toRemove)
|
|
{
|
|
script.Clear();
|
|
}
|
|
|
|
var battleData = target.BattleData;
|
|
if (battleData is not null)
|
|
{
|
|
if (battleData.BattleSide.VolatileScripts.Contains<CraftyShieldEffect>())
|
|
battleData.BattleSide.VolatileScripts.Remove<CraftyShieldEffect>();
|
|
if (battleData.BattleSide.VolatileScripts.Contains<MatBlockEffect>())
|
|
battleData.BattleSide.VolatileScripts.Remove<MatBlockEffect>();
|
|
}
|
|
}
|
|
} |