public async Task <string> _getcurrentLevelInfos(PokeRoadieInventory _inventory) { var stats = await _inventory.GetPlayerStats(); var output = string.Empty; var stat = stats.FirstOrDefault(); if (stat != null) { Currentlevel = stat.Level; var ep = (stat.NextLevelXp - stat.PrevLevelXp) - (stat.Experience - stat.PrevLevelXp); var time = Math.Round(ep / (TotalExperience / _getSessionRuntime()), 2); var hours = 0.00; var minutes = 0.00; if (Double.IsInfinity(time) == false && time > 0) { time = Convert.ToDouble(TimeSpan.FromHours(time).ToString("h\\.mm"), System.Globalization.CultureInfo.InvariantCulture); hours = Math.Truncate(time); minutes = Math.Round((time - hours) * 100); } bool didLevelUp = false; if (LevelForRewards == -1 || stat.Level >= LevelForRewards) { LevelUpRewardsResponse Result = await _inventory.GetLevelUpRewards(stat.Level); if (Result.Result == LevelUpRewardsResponse.Types.Result.AwardedAlready) { LevelForRewards = stat.Level + 1; } if (Result.Result == LevelUpRewardsResponse.Types.Result.Success) { didLevelUp = true; Logger.Write($"(LEVEL) Reached level {stat.Level}!", LogLevel.None, ConsoleColor.Green); RepeatedField <ItemAward> items = Result.ItemsAwarded; if (items.Any <ItemAward>()) { Logger.Write("Received Bonus Items:", LogLevel.None, ConsoleColor.Green); foreach (ItemAward item in items) { Logger.Write($"{item.ItemId} x {item.ItemCount} ", LogLevel.None, ConsoleColor.Green); } } } } if (!didLevelUp) { output = $"{stat.Level} (Level in {hours}h {minutes}m | {stat.Experience - stat.PrevLevelXp - GetXpDiff(stat.Level)}/{stat.NextLevelXp - stat.PrevLevelXp - GetXpDiff(stat.Level)} XP)"; } } return(output); }
public async Task <LevelUpRewardsResponse> GetLevelUpRewards(int level) { return(await _inventory.GetLevelUpRewards(level)); }