using System.Collections.Generic;
using KernelPanic.Data;
namespace KernelPanic.Run
{
///
/// Provides post-wave reward choice generation contracts.
///
public sealed class RewardService
{
public IReadOnlyList GeneratePostWaveChoices(RunConfig runConfig, int waveNumber)
{
// TODO: Generate real post-wave rewards once card reward pools and upgrade rules exist.
return new[] { new RewardChoice(RewardChoiceType.Skip, null) };
}
}
///
/// Represents one selectable reward option after clearing a wave.
///
public readonly struct RewardChoice
{
public RewardChoice(RewardChoiceType type, CardDefinition card)
{
Type = type;
Card = card;
}
public RewardChoiceType Type { get; }
public CardDefinition Card { get; }
}
///
/// Identifies the type of reward choice offered after a wave.
///
public enum RewardChoiceType
{
AddCard,
UpgradeCard,
Skip
}
}