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
|
// Collect all received items to show as a single grouped loot reveal
|
||||||
var allLoot = new List<(string name, string rarity, string category)>();
|
var allLoot = new List<(string name, string rarity, string category)>();
|
||||||
// Collect interactions to show after loot reveal with context
|
// Collect messages to show after loot reveal
|
||||||
var deferredInteractions = new List<string>();
|
var deferredMessages = new List<string>();
|
||||||
// Track consumed item names for interaction context
|
// Track consumed item names for interaction context
|
||||||
var consumedItemNames = new Dictionary<Guid, string>();
|
var consumedItemNames = new Dictionary<Guid, string>();
|
||||||
|
|
||||||
|
|
@ -544,12 +544,12 @@ public static class Program
|
||||||
{
|
{
|
||||||
interMsg = _loc.Get(interEvt.DescriptionKey);
|
interMsg = _loc.Get(interEvt.DescriptionKey);
|
||||||
}
|
}
|
||||||
deferredInteractions.Add(interMsg);
|
deferredMessages.Add(interMsg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ChainBonusEvent chainEvt:
|
case ChainBonusEvent chainEvt:
|
||||||
var bonusName = GetLocalizedName(chainEvt.BonusItemId);
|
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;
|
break;
|
||||||
|
|
||||||
case ResourceChangedEvent resEvt:
|
case ResourceChangedEvent resEvt:
|
||||||
|
|
@ -558,7 +558,7 @@ public static class Program
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MessageEvent msgEvt:
|
case MessageEvent msgEvt:
|
||||||
_renderer.ShowMessage(_loc.Get(msgEvt.MessageKey, msgEvt.Args ?? []));
|
deferredMessages.Add(_loc.Get(msgEvt.MessageKey, msgEvt.Args ?? []));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ChoiceRequiredEvent choiceEvt:
|
case ChoiceRequiredEvent choiceEvt:
|
||||||
|
|
@ -566,12 +566,12 @@ public static class Program
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LootTableModifiedEvent:
|
case LootTableModifiedEvent:
|
||||||
_renderer.ShowMessage(_loc.Get("interaction.key_no_match"));
|
deferredMessages.Add(_loc.Get("interaction.key_no_match"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AdventureUnlockedEvent advUnlockedEvt:
|
case AdventureUnlockedEvent advUnlockedEvt:
|
||||||
var advName = GetAdventureName(advUnlockedEvt.Theme);
|
var advName = GetAdventureName(advUnlockedEvt.Theme);
|
||||||
_renderer.ShowMessage(_loc.Get("adventure.unlocked", advName));
|
deferredMessages.Add(_loc.Get("adventure.unlocked", advName));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AdventureStartedEvent advEvt:
|
case AdventureStartedEvent advEvt:
|
||||||
|
|
@ -614,11 +614,11 @@ public static class Program
|
||||||
// Resource summary removed — characteristics are shown in the dedicated panel
|
// Resource summary removed — characteristics are shown in the dedicated panel
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show deferred interactions after the loot reveal, with context
|
// Show deferred messages after the loot reveal
|
||||||
foreach (var interactionMsg in deferredInteractions)
|
foreach (var msg in deferredMessages)
|
||||||
{
|
{
|
||||||
_renderer.ShowMessage("");
|
_renderer.ShowMessage("");
|
||||||
_renderer.ShowInteraction(interactionMsg);
|
_renderer.ShowInteraction(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
_renderer.WaitForKeyPress(_loc.Get("prompt.press_key"));
|
_renderer.WaitForKeyPress(_loc.Get("prompt.press_key"));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue