// OnTrigger Exit void OnTriggerExit(Collider collider) { if (isClimbing) { isClimbing = false; currentLadder = null; } }
public void TestSetup() { using (IWindsorContainer container = new WindsorContainer()) { container.Install(new ServicesInstaller()); characterService = container.Resolve <ICharacterService>(); string ladderJson = Encoding.UTF8.GetString(POEToolsTestsBase.Properties.Resources.Ladder); ladder = JsonConvert.DeserializeObject <Ladder>(ladderJson, GetJsonSettings()); string ladder96Json = Encoding.UTF8.GetString(POEToolsTestsBase.Properties.Resources.Ladder96); ladder96 = JsonConvert.DeserializeObject <Ladder>(ladder96Json, GetJsonSettings()); } }
public int GetRank(ILadder ladder, string characterName) { Contract.Requires(ladder != null && characterName != null); foreach (var entry in ladder.Entries) { if (characterName == entry.Character.Name) { return(entry.Rank); } } throw new CharacterNotFoundException(); }
// OnTrigger Enter void OnTriggerEnter(Collider collider) { if (canClimb) { currentLadder = collider.GetComponent <ILadder>(); if (currentLadder != null) { if (isCrouched) { Crouch(); } currentLadder.AssignAudioSource(GetComponent <AudioSource>()); moveDirection = Vector3.zero; isClimbing = true; } } }
private async void InitializeCharactersList() { charactersComboBox.Items.Clear(); if (selectedLeague != null && accountName != null && accountName.Length > 0) { logger.Debug($"Get ladder {selectedLeague.Id} - {accountName}"); ILadder ladder = await httpClientService.GetLadderAsync(selectedLeague.Id, accountName).ConfigureAwait(true); try { selectedEntry = null; CheckIfOkButtonCanBeEnabled(); if (ladder == null || (ladder.Entries != null && ladder.Entries.Count == 0)) { SetAccountNameError(); } else { foreach (Entry entry in ladder.Entries) { if (!entry.Dead && !entry.Retired) { var item = new ComboBoxItem { Text = $"{entry.Character.Name} ({entry.Character.Level})", Value = entry, }; charactersComboBox.Items.Add(item); if (entry.Character.Name == Properties.Settings.Default.CharacterName) { charactersComboBox.SelectedItem = item; } } } SetAccountNameError(); } } catch (HttpRequestException e) { logger.Error(e, "Unable to retrieve characters"); errorProvider.SetError(accountNameTextBox, Strings.UnableToRetrieveCharacters); } } }
public void GetLadderAsyncOffsetAndLimit() { var ladderJson = Encoding.UTF8.GetString(POEToolsTestsBase.Properties.Resources.LadderOffset1Limit2); string leagueId = "Hardcore"; var url = $"https://api.pathofexile.com/ladders/{leagueId}?offset=1&limit=2"; var list = new List <UrlWithResponse>() { new UrlWithResponse() { Url = url, Response = ladderJson, StatusCode = HttpStatusCode.OK, } }; service = GetService(list); ILadder ladder = service.GetLadderAsync(leagueId, 1, 2).Result; Assert.AreEqual(2, ladder.Entries.Count); }
public void GetLadderAsync() { var ladderJson = Encoding.UTF8.GetString(POEToolsTestsBase.Properties.Resources.LadderMorinfa); string leagueId = "Hardcore"; string accountName = "morinfa"; var url = $"https://api.pathofexile.com/ladders/{leagueId}?accountName={accountName}"; var list = new List <UrlWithResponse>() { new UrlWithResponse() { Url = url, Response = ladderJson, StatusCode = HttpStatusCode.OK, } }; service = GetService(list); ILadder ladder = service.GetLadderAsync(leagueId, accountName).Result; Assert.AreEqual(12, ladder.Entries.Count); }
public async Task <List <IEntry> > GetEntries(string leagueId, string accountName, string characterName) { List <IEntry> entries = new List <IEntry>(); try { logger.Debug("GetEntries"); ILadder ladder = await GetLadderAsync(leagueId, accountName).ConfigureAwait(true); int rank = 0; if (ladder != null) { foreach (var entry in ladder.Entries) { if (characterName == entry.Character.Name) { rank = entry.Rank; } } } logger.Debug($"Rank : {rank}"); int limit = 200; int offset = -1; int tasksNumber = (int)Math.Ceiling((double)rank / limit); OnGetEntriesStarted(tasksNumber); ConcurrentBag <List <IEntry> > bag = new ConcurrentBag <List <IEntry> >(); tokenSource = new CancellationTokenSource(); var token = tokenSource.Token; Task[] tasks = new Task[tasksNumber]; for (int i = 0; i < tasksNumber; i++) { tasks[i] = Task.Run(async() => { var offsetNow = Interlocked.Increment(ref offset); var nextLadder = await GetLadderAsync(leagueId, limit * offsetNow, limit).ConfigureAwait(true); if (nextLadder != null) { bag.Add(nextLadder.Entries); } OnGetEntriesIncremented(); }, token); } await Task.WhenAll(tasks).ConfigureAwait(true); foreach (var task in tasks) { task.Dispose(); } OnGetEntriesEnded(tasksNumber); while (!bag.IsEmpty) { if (bag.TryTake(out List <IEntry> bagEntries)) { entries.AddRange(bagEntries); } } bag = null; entries.Sort((IEntry x, IEntry y) => { return(x.Rank - y.Rank); }); } catch (TaskCanceledException e) { logger.Debug(e, "Task cancelled"); } return(entries); }
public void TestSetup() { string ladderJson = Encoding.UTF8.GetString(POEToolsTestsBase.Properties.Resources.Ladder);; ladder = JsonConvert.DeserializeObject <Ladder>(ladderJson, GetJsonSettings()); }