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

@@ -7,30 +7,26 @@ public class PollenPuff : Script, IScriptOnSecondaryEffect, IScriptChangeCategor
{
/// <inheritdoc />
/// <inheritdoc />
public void ChangeCategory(IExecutingMove move, IPokemon target, byte hitIndex, ref MoveCategory category)
public void ChangeCategory(IExecutingMove move, IBattlePokemon target, byte hitIndex, ref MoveCategory category)
{
var battleData = move.User.BattleData;
var targetBattleData = target.BattleData;
var battleData = move.User;
if (battleData == null || targetBattleData == null)
return;
return;
if (battleData.SideIndex == targetBattleData.SideIndex)
if (battleData.SideIndex == target.SideIndex)
{
category = MoveCategory.Status;
}
}
/// <inheritdoc />
public void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
public void OnSecondaryEffect(IExecutingMove move, IBattlePokemon target, byte hit)
{
var battleData = move.User.BattleData;
var targetBattleData = target.BattleData;
var battleData = move.User;
if (battleData == null || targetBattleData == null)
return;
return;
if (battleData.SideIndex == targetBattleData.SideIndex)
if (battleData.SideIndex == target.SideIndex)
{
var maxHealth = target.MaxHealth;
target.Heal(maxHealth / 2);