Move all battle state from IPokemon to an ephemeral IBattlePokemon wrapper

This commit is contained in:
2026-08-28 15:20:26 +02:00
parent 942be8eaeb
commit 8a2733a0a9
859 changed files with 4408 additions and 5331 deletions

View File

@@ -25,7 +25,7 @@ public class ChangeTargetSpecialDefenseTests
/// <summary>
/// Helper to extract the arguments of the ChangeStatBoost call received by a substitute target.
/// </summary>
private static object?[]? GetStatBoostCallArgs(IPokemon target)
private static object?[]? GetStatBoostCallArgs(IBattlePokemon target)
{
var call = target.ReceivedCalls().FirstOrDefault(c => c.GetMethodInfo().Name == "ChangeStatBoost");
return call?.GetArguments();
@@ -41,9 +41,9 @@ public class ChangeTargetSpecialDefenseTests
// Arrange
var script = CreateInitializedScript();
var move = Substitute.For<IExecutingMove>();
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
move.User.Returns(user);
var target = Substitute.For<IPokemon>();
var target = Substitute.For<IBattlePokemon>();
// Act
script.OnSecondaryEffect(move, target, 0);
@@ -66,9 +66,9 @@ public class ChangeTargetSpecialDefenseTests
// Arrange
var script = CreateInitializedScript();
var move = Substitute.For<IExecutingMove>();
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
move.User.Returns(user);
var target = Substitute.For<IPokemon>();
var target = Substitute.For<IBattlePokemon>();
// Act
script.OnSecondaryEffect(move, target, 0);
@@ -90,9 +90,9 @@ public class ChangeTargetSpecialDefenseTests
// Arrange
var script = CreateInitializedScript();
var move = Substitute.For<IExecutingMove>();
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
move.User.Returns(user);
var target = Substitute.For<IPokemon>();
var target = Substitute.For<IBattlePokemon>();
// Act
script.OnSecondaryEffect(move, target, 0);
@@ -114,9 +114,9 @@ public class ChangeTargetSpecialDefenseTests
// Arrange
var script = CreateInitializedScript();
var move = Substitute.For<IExecutingMove>();
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
move.User.Returns(user);
var target = Substitute.For<IPokemon>();
var target = Substitute.For<IBattlePokemon>();
// Act
script.OnSecondaryEffect(move, target, 0);
@@ -137,7 +137,7 @@ public class ChangeTargetSpecialDefenseTests
// Arrange
var script = CreateInitializedScript();
var move = Substitute.For<IExecutingMove>();
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
move.User.Returns(user);
// Act - the user is hit by its own move (e.g. redirected)
@@ -159,9 +159,9 @@ public class ChangeTargetSpecialDefenseTests
// Arrange
var script = CreateInitializedScript(amount);
var move = Substitute.For<IExecutingMove>();
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
move.User.Returns(user);
var target = Substitute.For<IPokemon>();
var target = Substitute.For<IBattlePokemon>();
// Act
script.OnSecondaryEffect(move, target, 0);