33 lines
943 B
C#
33 lines
943 B
C#
using PkmnLib.Dynamic.BattleFlow;
|
|
|
|
namespace PkmnLib.Plugin.Gen7.Scripts.Side;
|
|
|
|
[Script(ScriptCategory.Side, "spotlight")]
|
|
public class SpotlightEffect : Script, IScriptChangeIncomingTargets, IScriptOnEndTurn
|
|
{
|
|
private readonly byte _position;
|
|
private readonly IBattleSide _side;
|
|
|
|
public SpotlightEffect(IBattleSide side, byte position)
|
|
{
|
|
_side = side;
|
|
_position = position;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void ChangeIncomingTargets(IMoveChoice moveChoice, ref IReadOnlyList<IPokemon?> targets)
|
|
{
|
|
if (!TargetResolver.IsValidTarget(_side.Index, _position, moveChoice.ChosenMove.MoveData.Target,
|
|
moveChoice.User))
|
|
return;
|
|
if (_side.Pokemon[_position] == null)
|
|
return;
|
|
targets = [_side.Pokemon[_position]!];
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void OnEndTurn(IScriptSource owner, IBattle battle)
|
|
{
|
|
RemoveSelf();
|
|
}
|
|
} |