Implement miracle unlock management and update tooltip logic for MiracleButton

This commit is contained in:
2025-08-23 14:25:35 +02:00
parent 83b89e3099
commit a6c6bde622
4 changed files with 26 additions and 6 deletions

View File

@@ -63,18 +63,17 @@ public partial class GameBus : Node
{
foreach (var id in unlockEffect.MiraclesToUnlock)
{
if (AllMiracles.TryGetValue(id, out var def))
if (AllMiracles.TryGetValue(id, out var def) && !_gameState.IsMiracleUnlocked(id))
{
if (miraclesToUnlock.Contains(def) || _gameState.MiraclesInHand().ContainsKey(id)) continue;
miraclesToUnlock.Add(def);
_gameState.MiraclesInHand().Add(id, def);
_gameState.AddUnlockedMiracle(id);
}
}
}
else if (effect is DestroySelfEffect)
{
MiracleCompleted?.Invoke(miracle);
_gameState.MiraclesInHand().Remove(miracle.Id);
_gameState.RemoveUnlockedMiracle(miracle.Id);
}
}