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; } } }