Defer feedback messages to display after loot reveal
Move MessageEvent, AdventureUnlockedEvent and LootTableModifiedEvent rendering after the loot table so players see their items first, then contextual feedback like key hints and adventure unlocks.
This commit is contained in:
parent
41bfb54a2c
commit
671aa30409
1 changed files with 10 additions and 10 deletions
|
|
@ -467,8 +467,8 @@ public static class Program
|
|||
|
||||
// Collect all received items to show as a single grouped loot reveal
|
||||
var allLoot = new List<(string name, string rarity, string category)>();
|
||||
// Collect interactions to show after loot reveal with context
|
||||
var deferredInteractions = new List<string>();
|
||||
// Collect messages to show after loot reveal
|
||||
var deferredMessages = new List<string>();
|
||||
// Track consumed item names for interaction context
|
||||
var consumedItemNames = new Dictionary<Guid, string>();
|
||||
|
||||
|
|
@ -544,12 +544,12 @@ public static class Program
|
|||
{
|
||||
interMsg = _loc.Get(interEvt.DescriptionKey);
|
||||
}
|
||||
deferredInteractions.Add(interMsg);
|
||||
deferredMessages.Add(interMsg);
|
||||
break;
|
||||
|
||||
case ChainBonusEvent chainEvt:
|
||||
var bonusName = GetLocalizedName(chainEvt.BonusItemId);
|
||||
deferredInteractions.Add(_loc.Get("interaction.chain_bonus", chainEvt.ChainLength) + $" {bonusName}");
|
||||
deferredMessages.Add(_loc.Get("interaction.chain_bonus", chainEvt.ChainLength) + $" {bonusName}");
|
||||
break;
|
||||
|
||||
case ResourceChangedEvent resEvt:
|
||||
|
|
@ -558,7 +558,7 @@ public static class Program
|
|||
break;
|
||||
|
||||
case MessageEvent msgEvt:
|
||||
_renderer.ShowMessage(_loc.Get(msgEvt.MessageKey, msgEvt.Args ?? []));
|
||||
deferredMessages.Add(_loc.Get(msgEvt.MessageKey, msgEvt.Args ?? []));
|
||||
break;
|
||||
|
||||
case ChoiceRequiredEvent choiceEvt:
|
||||
|
|
@ -566,12 +566,12 @@ public static class Program
|
|||
break;
|
||||
|
||||
case LootTableModifiedEvent:
|
||||
_renderer.ShowMessage(_loc.Get("interaction.key_no_match"));
|
||||
deferredMessages.Add(_loc.Get("interaction.key_no_match"));
|
||||
break;
|
||||
|
||||
case AdventureUnlockedEvent advUnlockedEvt:
|
||||
var advName = GetAdventureName(advUnlockedEvt.Theme);
|
||||
_renderer.ShowMessage(_loc.Get("adventure.unlocked", advName));
|
||||
deferredMessages.Add(_loc.Get("adventure.unlocked", advName));
|
||||
break;
|
||||
|
||||
case AdventureStartedEvent advEvt:
|
||||
|
|
@ -614,11 +614,11 @@ public static class Program
|
|||
// Resource summary removed — characteristics are shown in the dedicated panel
|
||||
}
|
||||
|
||||
// Show deferred interactions after the loot reveal, with context
|
||||
foreach (var interactionMsg in deferredInteractions)
|
||||
// Show deferred messages after the loot reveal
|
||||
foreach (var msg in deferredMessages)
|
||||
{
|
||||
_renderer.ShowMessage("");
|
||||
_renderer.ShowInteraction(interactionMsg);
|
||||
_renderer.ShowInteraction(msg);
|
||||
}
|
||||
|
||||
_renderer.WaitForKeyPress(_loc.Get("prompt.press_key"));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue