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

@@ -23,16 +23,16 @@ public class MagnetRiseTests
/// Creates a fully mocked test setup for Magnet Rise tests. The user gets a real
/// <see cref="ScriptSet"/> as its volatile set, so the applied effect can be inspected.
/// </summary>
private static (MagnetRise script, IExecutingMove move, IPokemon target, IPokemon user, IScriptSet userVolatile,
IHitData hitData) CreateTestSetup()
private static (MagnetRise script, IExecutingMove move, IBattlePokemon target, IBattlePokemon user, IScriptSet
userVolatile, IHitData hitData) CreateTestSetup()
{
var script = new MagnetRise();
var move = Substitute.For<IExecutingMove>();
var target = Substitute.For<IPokemon>();
var target = Substitute.For<IBattlePokemon>();
var hitData = Substitute.For<IHitData>();
move.GetHitData(target, 0).Returns(hitData);
var user = Substitute.For<IPokemon>();
var user = Substitute.For<IBattlePokemon>();
user.GetScripts().Returns(_ => new ScriptIterator(new List<IEnumerable<ScriptContainer>>()));
user.ActiveAbility.Returns((IAbility?)null);
var userVolatile = new ScriptSet(user);
@@ -129,7 +129,7 @@ public class MagnetRiseTests
// Arrange
var effect = new MagnetRiseEffect();
var incomingMove = CreateIncomingMove("ground");
var owner = Substitute.For<IPokemon>();
var owner = Substitute.For<IBattlePokemon>();
var effectiveness = 1.0f;
// Act
@@ -149,7 +149,7 @@ public class MagnetRiseTests
// Arrange
var effect = new MagnetRiseEffect();
var incomingMove = CreateIncomingMove("rock");
var owner = Substitute.For<IPokemon>();
var owner = Substitute.For<IBattlePokemon>();
var effectiveness = 2.0f;
// Act
@@ -170,7 +170,7 @@ public class MagnetRiseTests
// Arrange
var effect = new MagnetRiseEffect();
var incomingMove = CreateIncomingMove("ground");
var owner = Substitute.For<IPokemon>();
var owner = Substitute.For<IBattlePokemon>();
owner.HasHeldItem("iron_ball").Returns(true);
incomingMove.User.Returns(owner);
var effectiveness = 1.0f;