diff --git a/PkmnLib.Dynamic/Models/PokemonPartyImpl.cs b/PkmnLib.Dynamic/Models/PokemonPartyImpl.cs index 9bd5101..b157551 100644 --- a/PkmnLib.Dynamic/Models/PokemonPartyImpl.cs +++ b/PkmnLib.Dynamic/Models/PokemonPartyImpl.cs @@ -74,6 +74,17 @@ public class PokemonPartyImpl : IPokemonParty /// Swaps two Pokemon in the party around. /// public void Swap(int index1, int index2) + { + (_pokemon[index1], _pokemon[index2]) = (_pokemon[index2], _pokemon[index1]); + var originalIndex1Value = _pokemon[index1]; + var originalIndex2Value = _pokemon[index2]; + Pack(); + var newIndex1 = Array.IndexOf(_pokemon, originalIndex1Value); + var newIndex2 = Array.IndexOf(_pokemon, originalIndex2Value); + OnSwap?.Invoke(this, (newIndex1, newIndex2)); + } + + private void SwapWithoutPack(int index1, int index2) { (_pokemon[index1], _pokemon[index2]) = (_pokemon[index2], _pokemon[index1]); OnSwap?.Invoke(this, (index1, index2)); @@ -106,7 +117,7 @@ public class PokemonPartyImpl : IPokemonParty { if (_pokemon[j] == null) continue; - Swap(i, j); + SwapWithoutPack(i, j); break; } }