about summary refs log tree commit diff stats
path: root/AnodyneArchipelago
diff options
context:
space:
mode:
Diffstat (limited to 'AnodyneArchipelago')
-rw-r--r--AnodyneArchipelago/ArchipelagoManager.cs17
1 files changed, 12 insertions, 5 deletions
diff --git a/AnodyneArchipelago/ArchipelagoManager.cs b/AnodyneArchipelago/ArchipelagoManager.cs index 9a3ac59..34ca75a 100644 --- a/AnodyneArchipelago/ArchipelagoManager.cs +++ b/AnodyneArchipelago/ArchipelagoManager.cs
@@ -22,6 +22,7 @@ namespace AnodyneArchipelago
22 private string _seedName; 22 private string _seedName;
23 23
24 private readonly Queue<NetworkItem> _itemsToCollect = new(); 24 private readonly Queue<NetworkItem> _itemsToCollect = new();
25 private readonly Queue<string> _messages = new();
25 26
26 public async Task<LoginResult> Connect(string url, string slotName, string password) 27 public async Task<LoginResult> Connect(string url, string slotName, string password)
27 { 28 {
@@ -111,15 +112,21 @@ namespace AnodyneArchipelago
111 _itemIndex = _session.Items.AllItemsReceived.Count; 112 _itemIndex = _session.Items.AllItemsReceived.Count;
112 } 113 }
113 114
114 if (_itemsToCollect.Count > 0 && 115 if ((GlobalState.Dialogue == null || GlobalState.Dialogue == "") &&
115 (GlobalState.Dialogue == null || GlobalState.Dialogue == "") &&
116 !GlobalState.ScreenTransition && 116 !GlobalState.ScreenTransition &&
117 Plugin.Player != null && 117 Plugin.Player != null &&
118 GlobalState.black_overlay.alpha == 0f && 118 GlobalState.black_overlay.alpha == 0f &&
119 !Plugin.IsGamePaused) 119 !Plugin.IsGamePaused)
120 { 120 {
121 NetworkItem item = _itemsToCollect.Dequeue(); 121 if (_itemsToCollect.Count > 0)
122 HandleItem(item); 122 {
123 NetworkItem item = _itemsToCollect.Dequeue();
124 HandleItem(item);
125 }
126 else if (_messages.Count > 0)
127 {
128 GlobalState.Dialogue = _messages.Dequeue();
129 }
123 } 130 }
124 } 131 }
125 132
@@ -272,7 +279,7 @@ namespace AnodyneArchipelago
272 messageText = $"Sent {itemName} to {otherPlayer}."; 279 messageText = $"Sent {itemName} to {otherPlayer}.";
273 280
274 SoundManager.PlaySoundEffect("gettreasure"); 281 SoundManager.PlaySoundEffect("gettreasure");
275 GlobalState.Dialogue = messageText; 282 _messages.Enqueue(messageText);
276 } 283 }
277 break; 284 break;
278 } 285 }