diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-05-26 12:50:11 -0400 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-05-26 12:50:11 -0400 |
| commit | c6d7af45fa044bbc3749c8012beb5bcc022e41a2 (patch) | |
| tree | 38139b9bafe04bef05317f34a55b1fc87616088e /AnodyneArchipelago/ArchipelagoManager.cs | |
| parent | ba2a395da7026de4be32733fc27011e161ead255 (diff) | |
| download | anodyne-archipelago-c6d7af45fa044bbc3749c8012beb5bcc022e41a2.tar.gz anodyne-archipelago-c6d7af45fa044bbc3749c8012beb5bcc022e41a2.tar.bz2 anodyne-archipelago-c6d7af45fa044bbc3749c8012beb5bcc022e41a2.zip | |
Scout locations for personal chest icons
Diffstat (limited to 'AnodyneArchipelago/ArchipelagoManager.cs')
| -rw-r--r-- | AnodyneArchipelago/ArchipelagoManager.cs | 32 |
1 files changed, 32 insertions, 0 deletions
| diff --git a/AnodyneArchipelago/ArchipelagoManager.cs b/AnodyneArchipelago/ArchipelagoManager.cs index e4ccf36..94085f0 100644 --- a/AnodyneArchipelago/ArchipelagoManager.cs +++ b/AnodyneArchipelago/ArchipelagoManager.cs | |||
| @@ -25,6 +25,8 @@ namespace AnodyneArchipelago | |||
| 25 | private readonly Queue<NetworkItem> _itemsToCollect = new(); | 25 | private readonly Queue<NetworkItem> _itemsToCollect = new(); |
| 26 | private readonly Queue<string> _messages = new(); | 26 | private readonly Queue<string> _messages = new(); |
| 27 | 27 | ||
| 28 | private Task<Dictionary<string, NetworkItem>> _scoutTask; | ||
| 29 | |||
| 28 | public long EndgameCardRequirement => _endgameCardRequirement; | 30 | public long EndgameCardRequirement => _endgameCardRequirement; |
| 29 | 31 | ||
| 30 | public async Task<LoginResult> Connect(string url, string slotName, string password) | 32 | public async Task<LoginResult> Connect(string url, string slotName, string password) |
| @@ -54,6 +56,8 @@ namespace AnodyneArchipelago | |||
| 54 | _endgameCardRequirement = (long)login.SlotData["endgame_card_requirement"]; | 56 | _endgameCardRequirement = (long)login.SlotData["endgame_card_requirement"]; |
| 55 | } | 57 | } |
| 56 | 58 | ||
| 59 | _scoutTask = Task.Run(() => ScoutAllLocations()); | ||
| 60 | |||
| 57 | return result; | 61 | return result; |
| 58 | } | 62 | } |
| 59 | 63 | ||
| @@ -73,6 +77,34 @@ namespace AnodyneArchipelago | |||
| 73 | _session = null; | 77 | _session = null; |
| 74 | } | 78 | } |
| 75 | 79 | ||
| 80 | private async Task<Dictionary<string, NetworkItem>> ScoutAllLocations() | ||
| 81 | { | ||
| 82 | LocationInfoPacket locationInfo = await _session.Locations.ScoutLocationsAsync(_session.Locations.AllLocations.ToArray()); | ||
| 83 | |||
| 84 | Dictionary<string, NetworkItem> result = new(); | ||
| 85 | foreach (NetworkItem networkItem in locationInfo.Locations) | ||
| 86 | { | ||
| 87 | result[_session.Locations.GetLocationNameFromId(networkItem.Location)] = networkItem; | ||
| 88 | } | ||
| 89 | |||
| 90 | return result; | ||
| 91 | } | ||
| 92 | |||
| 93 | public NetworkItem? GetScoutedLocation(string locationName) | ||
| 94 | { | ||
| 95 | if (_scoutTask == null || !_scoutTask.IsCompleted || !_scoutTask.Result.ContainsKey(locationName)) | ||
| 96 | { | ||
| 97 | return null; | ||
| 98 | } | ||
| 99 | |||
| 100 | return _scoutTask.Result[locationName]; | ||
| 101 | } | ||
| 102 | |||
| 103 | public string GetItemName(long id) | ||
| 104 | { | ||
| 105 | return _session.Items.GetItemName(id); | ||
| 106 | } | ||
| 107 | |||
| 76 | public string GetSeed() | 108 | public string GetSeed() |
| 77 | { | 109 | { |
| 78 | return _seedName; | 110 | return _seedName; |
