Deukhoofd 43813c1c1c
All checks were successful
Build / Build (push) Successful in 48s
Implements pledge moves
2025-06-22 12:17:08 +02:00

35 lines
1.2 KiB
C#

using PkmnLib.Plugin.Gen7.Scripts.MoveVolatile;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "fire_pledge")]
public class FirePledge : Script
{
/// <inheritdoc />
public override void StopBeforeMove(IExecutingMove move, ref bool stop)
{
if (move.MoveChoice.Volatile.Contains<FireWaterPledgeMove>() ||
move.MoveChoice.Volatile.Contains<FireGrassPledgeMove>())
{
return;
}
var pledgeMove = (IMoveChoice?)move.Battle.ChoiceQueue?.FirstOrDefault(x =>
x is IMoveChoice mc && mc.User.BattleData?.SideIndex == move.User.BattleData?.SideIndex &&
(mc.ChosenMove.MoveData.Name == "water_pledge" || mc.ChosenMove.MoveData.Name == "grass_pledge"));
if (pledgeMove is null)
return;
// If a pledge move is already queued, we stop the current move.
stop = true;
if (pledgeMove.ChosenMove.MoveData.Name == "water_pledge")
{
pledgeMove.Volatile.Add(new FireWaterPledgeMove());
}
else if (pledgeMove.ChosenMove.MoveData.Name == "grass_pledge")
{
pledgeMove.Volatile.Add(new FireGrassPledgeMove());
}
}
}