new battle gui

This commit is contained in:
cthangover committed 2026-09-28 10:48:04 +03:00
1 parent b5ad139d69
commit 8fbac46378
59 files changed
+2897 -37

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
namespace Cthangover.Core.Battle
{
/// <summary>
/// Optional automation contract for battle cores. The base
/// <see cref="IBattleCore"/> contract describes how a battle starts but
/// not how it advances: every core owns its own UI and waits for player
/// input in its own way. Integration tests and AI tooling therefore ask
/// the core itself when it waits for the player and how to advance the
/// turn, instead of hunting for core-specific buttons by node path.
/// Cores that don't implement this interface are still runnable but are
/// reported as not universally testable by the battle coverage tool.
/// </summary>
public interface IBattleAutoPlayable
{
/// <summary>
/// <c>true</c> while the core accepts a player turn advance. Must
/// become <c>false</c> immediately when the turn ends, so a polling
/// driver cannot trigger two turns in a row.
/// </summary>
bool IsWaitingForPlayerInput { get; }
/// <summary>
/// Ends the current player turn through the same path the core's UI
/// uses (skipping the player's actions is a valid strategy for
/// smoke tests). Must be a no-op when
/// <see cref="IsWaitingForPlayerInput"/> is <c>false</c>.
/// </summary>
void AdvancePlayerTurn();
}
}