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

@@ -46,17 +46,14 @@ public class AuroraVeilEffect : Script, IScriptChangeIncomingMoveDamage, IScript
}
/// <inheritdoc />
public void ChangeIncomingMoveDamage(IExecutingMove move, IPokemon target, byte hit, ref uint damage)
public void ChangeIncomingMoveDamage(IExecutingMove move, IBattlePokemon target, byte hit, ref uint damage)
{
var hitData = move.GetHitData(target, hit);
if (hitData.IsCritical)
return;
if (move.User.BattleData?.SideIndex == target.BattleData?.SideIndex)
if (move.User.SideIndex == target.SideIndex)
return;
var targetSide = target.BattleData?.SideIndex;
if (targetSide == null)
return;
var side = move.User.BattleData!.Battle.Sides[targetSide.Value];
var side = move.User.Battle.Sides[target.SideIndex];
switch (move.UseMove.Category)
{
case MoveCategory.Physical when side.VolatileScripts.Contains(ScriptUtils.ResolveName<ReflectEffect>()):
@@ -65,7 +62,7 @@ public class AuroraVeilEffect : Script, IScriptChangeIncomingMoveDamage, IScript
}
var modifier = 0.5f;
if (target.BattleData!.Battle.PositionsPerSide > 1)
if (target.Battle.PositionsPerSide > 1)
modifier = 2732f / 4096f;
damage = (uint)(damage * modifier);
}