using System;
using System.Collections.Generic;
using KernelPanic.Data;
namespace KernelPanic.Meta
{
///
/// Provides the contract for spending entropy on persistent unlock pulls.
///
public sealed class GachaService
{
private readonly List bannerPool = new();
public int PullTokens => 0; // TODO: Replace with the real pull-token wallet when that meta system exists.
public IReadOnlyList BannerPool => bannerPool;
public event Action BannerPoolChanged;
public void AddToBannerPool(DistroDefinition distro)
{
if (distro == null || bannerPool.Contains(distro))
{
return;
}
bannerPool.Add(distro);
BannerPoolChanged?.Invoke();
}
public GachaPullResult PerformPull(EntropyWallet wallet, int cost)
{
throw new NotImplementedException();
}
}
///
/// Represents the result of a persistent unlock pull.
///
public readonly struct GachaPullResult
{
public GachaPullResult(bool success, string unlockId)
{
Success = success;
UnlockId = unlockId;
}
public bool Success { get; }
public string UnlockId { get; }
}
}