Adds effects for after you, assist, and attract
This commit is contained in:
32
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/AfterYou.cs
Normal file
32
Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/AfterYou.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using PkmnLib.Dynamic.Models;
|
||||
using PkmnLib.Dynamic.ScriptHandling;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
|
||||
namespace PkmnLib.Plugin.Gen7.Moves;
|
||||
|
||||
/// <summary>
|
||||
/// The user helps the target and makes it use its move right after the user.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The target will move next on the current turn, ignoring priority. After You bypasses accuracy checks to always hit,
|
||||
/// unless the target is in the semi-invulnerable turn of a move such as Dig or Fly. It fails if the target has already
|
||||
/// moved on the same turn. After You ignores the effects of Quash.
|
||||
/// After You fails if the order remains the same after using After You.
|
||||
/// </remarks>
|
||||
[Script(ScriptCategory.Move, "after_you")]
|
||||
public class AfterYou : Script
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
||||
{
|
||||
var queue = move.User.BattleData!.Battle.ChoiceQueue;
|
||||
if (queue == null)
|
||||
return;
|
||||
|
||||
// If the queue doesn't change, the move fails
|
||||
if (!queue.MovePokemonChoiceNext(target))
|
||||
{
|
||||
move.GetHitData(target, hit).Fail();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user