26 lines
887 B
C#
26 lines
887 B
C#
using System;
|
|
using PkmnLib.Static;
|
|
|
|
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
|
|
|
[Script(ScriptCategory.Move, "heart_swap")]
|
|
public class HeartSwap : Script
|
|
{
|
|
/// <inheritdoc />
|
|
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
|
|
{
|
|
EventBatchId eventBatchId = new();
|
|
var userStats = move.User.StatBoost;
|
|
var targetStats = target.StatBoost;
|
|
|
|
foreach (Statistic stat in Enum.GetValues(typeof(Statistic)))
|
|
{
|
|
var userStat = userStats.GetStatistic(stat);
|
|
var targetStat = targetStats.GetStatistic(stat);
|
|
if (userStat == targetStat)
|
|
continue;
|
|
move.User.ChangeStatBoost(stat, (sbyte)(userStat - targetStat), true, eventBatchId);
|
|
target.ChangeStatBoost(stat, (sbyte)(targetStat - userStat), false, eventBatchId);
|
|
}
|
|
}
|
|
} |