Lots more work on implementing battling

This commit is contained in:
2024-08-10 09:44:46 +02:00
parent 554e1cf2cd
commit a049dda240
29 changed files with 1226 additions and 48 deletions

View File

@@ -0,0 +1,63 @@
using PkmnLib.Dynamic.Models;
using PkmnLib.Plugin.Gen7.Moves;
using PkmnLib.Static;
namespace PkmnLib.Plugin.Gen7.Tests.Scripts.Moves;
public class AcrobaticsTests
{
[Test]
public void ChangeBasePower_UserNotHoldingItem_BasePowerDoubles()
{
// Arrange
var move = new Mock<IExecutingMove>();
var target = new Mock<IPokemon>();
byte basePower = 10;
move.Setup(m => m.User).Returns(new Mock<IPokemon>().Object);
move.Setup(m => m.User.HeldItem).Returns((IItem?)null);
var acrobatics = new Acrobatics();
// Act
acrobatics.ChangeBasePower(move.Object, target.Object, 0, ref basePower);
// Assert
Assert.That(basePower, Is.EqualTo(20));
}
[Test]
public void ChangeBasePower_UserHoldingItem_BasePowerUnchanged()
{
// Arrange
var move = new Mock<IExecutingMove>();
var target = new Mock<IPokemon>();
byte basePower = 10;
move.Setup(m => m.User).Returns(new Mock<IPokemon>().Object);
move.Setup(m => m.User.HeldItem).Returns(new Mock<IItem>().Object);
var acrobatics = new Acrobatics();
// Act
acrobatics.ChangeBasePower(move.Object, target.Object, 0, ref basePower);
// Assert
Assert.That(basePower, Is.EqualTo(10));
}
[Test]
public void ChangeBasePower_UserNotHoldingItem_NoOverflow()
{
// Arrange
var move = new Mock<IExecutingMove>();
var target = new Mock<IPokemon>();
byte basePower = 200;
move.Setup(m => m.User).Returns(new Mock<IPokemon>().Object);
move.Setup(m => m.User.HeldItem).Returns((IItem?)null);
var acrobatics = new Acrobatics();
// Act
acrobatics.ChangeBasePower(move.Object, target.Object, 0, ref basePower);
// Assert
Assert.That(basePower, Is.EqualTo(byte.MaxValue));
}
}

View File

@@ -14,9 +14,6 @@ namespace PkmnLib.Plugin.Gen7.Moves;
[Script(ScriptCategory.Move, "acrobatics")]
public class Acrobatics : Script
{
/// <inheritdoc />
public override StringKey Name => "acrobatics";
/// <inheritdoc />
public override void ChangeBasePower(IExecutingMove move, IPokemon target, byte hit, ref byte basePower)
{