More moves, allow for typeless moves
This commit is contained in:
@@ -346,7 +346,7 @@ public interface IPokemon : IScriptSource, IDeepCloneable
|
||||
/// <summary>
|
||||
/// Adds a non-volatile status to the Pokemon.
|
||||
/// </summary>
|
||||
void SetStatus(StringKey status);
|
||||
bool SetStatus(StringKey status);
|
||||
|
||||
/// <summary>
|
||||
/// Removes the current non-volatile status from the Pokemon.
|
||||
@@ -447,7 +447,7 @@ public interface IPokemonBattleData : IDeepCloneable
|
||||
/// <summary>
|
||||
/// Marks an item as consumed.
|
||||
/// </summary>
|
||||
void MarkItemAsConsumed(IItem itemName);
|
||||
void MarkItemAsConsumed(IItem item);
|
||||
|
||||
uint SwitchInTurn { get; internal set; }
|
||||
|
||||
@@ -780,6 +780,7 @@ public class PokemonImpl : ScriptSource, IPokemon
|
||||
this.RunScriptHook(script => script.PreventHeldItemConsume(this, HeldItem, ref prevented));
|
||||
if (prevented)
|
||||
return false;
|
||||
BattleData.MarkItemAsConsumed(HeldItem);
|
||||
}
|
||||
|
||||
// TODO: actually consume the item
|
||||
@@ -1007,6 +1008,7 @@ public class PokemonImpl : ScriptSource, IPokemon
|
||||
{
|
||||
BattleData.Battle.Sides[BattleData.SideIndex].MarkPositionAsUnfillable(BattleData.Position);
|
||||
}
|
||||
BattleData.BattleSide.MarkFaint(BattleData.Position);
|
||||
|
||||
// Validate the battle state to see if the battle is over.
|
||||
BattleData.Battle.ValidateBattleState();
|
||||
@@ -1078,11 +1080,12 @@ public class PokemonImpl : ScriptSource, IPokemon
|
||||
public bool HasStatus(StringKey status) => StatusScript.Script?.Name == status;
|
||||
|
||||
/// <inheritdoc />
|
||||
public void SetStatus(StringKey status)
|
||||
public bool SetStatus(StringKey status)
|
||||
{
|
||||
if (!Library.ScriptResolver.TryResolve(ScriptCategory.Status, status, null, out var statusScript))
|
||||
throw new KeyNotFoundException($"Status script {status} not found");
|
||||
StatusScript.Set(statusScript);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -1255,9 +1258,10 @@ public class PokemonBattleDataImpl : IPokemonBattleData
|
||||
public IReadOnlyList<IItem> ConsumedItems => _consumedItems;
|
||||
|
||||
/// <inheritdoc />
|
||||
public void MarkItemAsConsumed(IItem itemName)
|
||||
public void MarkItemAsConsumed(IItem item)
|
||||
{
|
||||
_consumedItems.Add(itemName);
|
||||
_consumedItems.Add(item);
|
||||
BattleSide.SetConsumedItem(Position, item);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
Reference in New Issue
Block a user