More abilities, refactor stealing held items
All checks were successful
Build / Build (push) Successful in 50s

This commit is contained in:
2025-06-15 11:49:15 +02:00
parent 1b9d137bb0
commit f5d18d7186
22 changed files with 326 additions and 21 deletions

View File

@@ -13,11 +13,12 @@ public class BugBite : Script
var targetHeldItem = target.HeldItem;
if (targetHeldItem is not { Category: ItemCategory.Berry })
if (targetHeldItem is not { Category: ItemCategory.Berry } || !target.TryStealHeldItem(out targetHeldItem))
{
move.GetHitData(target, hit).Fail();
return;
}
_ = target.SetHeldItem(null);
targetHeldItem.RunItemScript(battleData.Battle.Library.ScriptResolver, user);
}

View File

@@ -8,8 +8,8 @@ public class Covet : Script
{
if (target.HeldItem == null)
return;
if (move.User.HeldItem != null)
if (!move.User.TryStealHeldItem(out var item))
return;
_ = move.User.SetHeldItem(target.RemoveHeldItemForBattle());
_ = move.User.SetHeldItem(item);
}
}

View File

@@ -6,9 +6,11 @@ public class Incinerate : Script
/// <inheritdoc />
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
if (target.HeldItem is { Category: ItemCategory.Berry })
if (target.HeldItem is not { Category: ItemCategory.Berry } || !target.TryStealHeldItem(out _))
{
target.RemoveHeldItemForBattle();
move.GetHitData(target, hit).Fail();
return;
}
// TODO: Add message for item incineration
}
}

View File

@@ -6,7 +6,7 @@ public class KnockOff : Script
/// <inheritdoc />
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
if (target.RemoveHeldItemForBattle() is null)
if (!target.TryStealHeldItem(out var item))
{
move.GetHitData(target, hit).Fail();
}