using System;
namespace UI.CardSystem.StateMachine
{
///
/// Booster-specific card context for reveal flow coordination.
/// Separated from generic CardContext to maintain single responsibility.
///
public class BoosterCardContext
{
// Booster reveal workflow state
private bool _hasCompletedReveal = false;
///
/// Has this card completed its booster reveal flow?
///
public bool HasCompletedReveal => _hasCompletedReveal;
///
/// Suppress NEW/REPEAT badges in revealed state
///
public bool SuppressRevealBadges { get; set; } = false;
///
/// Event fired when reveal flow is complete (card dismissed)
///
public event Action OnRevealFlowComplete;
///
/// Signal that this card has completed its reveal flow
///
public void NotifyRevealComplete()
{
if (!_hasCompletedReveal)
{
_hasCompletedReveal = true;
OnRevealFlowComplete?.Invoke();
}
}
///
/// Reset reveal state (for card reuse/pooling)
///
public void Reset()
{
_hasCompletedReveal = false;
SuppressRevealBadges = false;
}
}
}