public static string GetCondition(this QuestConditionMessage condition) { var conditionKey = "quest_condition_" + Convert.ToInt32(condition.Type); switch (condition.Type) { case QuestConditionType.WithPokemonCategory: return(string.Join(", ", condition.Info.PokemonIds?.Select(x => Translator.Instance.GetPokemonName(x)).ToList())); case QuestConditionType.WithPokemonType: return(string.Join(", ", condition.Info.PokemonTypeIds?.Select(x => Convert.ToString((PokemonType)x))) + "-type"); case QuestConditionType.WithQuestContext: break; case QuestConditionType.WithRaidLevel: return(Translator.Instance.Translate(conditionKey, string.Join(", ", condition.Info.RaidLevels))); case QuestConditionType.WithSuperEffectiveCharge: case QuestConditionType.WithThrowType: return(Translator.Instance.GetThrowName(condition.Info.ThrowTypeId)); case QuestConditionType.WithThrowTypeInARow: return(Translator.Instance.Translate(conditionKey, Translator.Instance.GetThrowName(condition.Info.ThrowTypeId))); case QuestConditionType.WithBadgeType: case QuestConditionType.WithCurveBall: case QuestConditionType.WithDailyCaptureBonus: case QuestConditionType.WithDailySpinBonus: case QuestConditionType.WithDaysInARow: case QuestConditionType.WithItem: case QuestConditionType.WithNewFriend: case QuestConditionType.WithPlayerLevel: case QuestConditionType.WithUniquePokestop: case QuestConditionType.WithWeatherBoost: case QuestConditionType.WithWinBattleStatus: case QuestConditionType.WithWinGymBattleStatus: case QuestConditionType.WithWinRaidStatus: case QuestConditionType.WithUniquePokemon: case QuestConditionType.WithNpcCombat: case QuestConditionType.WithPvpCombat: case QuestConditionType.WithLocation: case QuestConditionType.WithDistance: case QuestConditionType.WithBuddy: default: return(Translator.Instance.Translate(conditionKey)); case QuestConditionType.WithPokemonAlignment: return(string.Join(", ", condition.Info.AlignmentIds?.Select(x => Translator.Instance.GetAlignmentName((AlignmentId)x)))); case QuestConditionType.WithInvasionCharacter: return(string.Join(", ", condition.Info.CharacterCategoryIds?.Select(x => Translator.Instance.GetCharacterCategoryName((CharacterCategory)x)))); case QuestConditionType.WithTempEvoPokemon: // Mega evo return(string.Join(", ", condition.Info.RaidPokemonEvolutions?.Select(x => Translator.Instance.GetEvolutionName((TemporaryEvolutionId)x)))); } return(null); }
public static string GetCondition(this QuestConditionMessage condition) { var conditionKey = "quest_condition_" + Convert.ToInt32(condition.Type); switch (condition.Type) { case QuestConditionType.PokemonCategory: return(string.Join(", ", condition.Info.PokemonIds?.Select(x => Translator.Instance.GetPokemonName(x)).ToList())); case QuestConditionType.PokemonType: return(string.Join(", ", condition.Info.PokemonTypeIds?.Select(x => Convert.ToString((PokemonType)x))) + "-type"); case QuestConditionType.QuestContext: break; case QuestConditionType.RaidLevel: return(Translator.Instance.Translate(conditionKey, string.Join(", ", condition.Info.RaidLevels))); case QuestConditionType.SuperEffectiveCharge: case QuestConditionType.ThrowType: return(Translator.Instance.GetThrowName(condition.Info.ThrowTypeId)); case QuestConditionType.ThrowTypeInARow: return(Translator.Instance.Translate(conditionKey, Translator.Instance.GetThrowName(condition.Info.ThrowTypeId))); case QuestConditionType.BadgeType: case QuestConditionType.CurveBall: case QuestConditionType.DailyCaptureBonus: case QuestConditionType.DailySpinBonus: case QuestConditionType.DaysInARow: case QuestConditionType.Item: case QuestConditionType.NewFriend: case QuestConditionType.PlayerLevel: case QuestConditionType.UniquePokestop: case QuestConditionType.WeatherBoost: case QuestConditionType.WinBattleStatus: case QuestConditionType.WinGymBattleStatus: case QuestConditionType.WinRaidStatus: case QuestConditionType.UniquePokemon: case QuestConditionType.NpcCombat: case QuestConditionType.PvpCombat: case QuestConditionType.Location: case QuestConditionType.Distance: return(Translator.Instance.Translate(conditionKey)); case QuestConditionType.PokemonAlignment: //return Translator.Instance.Translate("quest_condition_" + Convert.ToInt32(condition.Type), condition.Info.Alignments); return("Pokemon Alignment"); //TODO: Finish Pokemon Alignment(s): %{alignments} case QuestConditionType.InvasionsCharacter: return("Invasion Category"); //TODO: Finish Invasion Category(s): %{categories} } return(null); }
public static string GetCondition(this QuestConditionMessage condition) { switch (condition.Type) { case QuestConditionType.BadgeType: break; case QuestConditionType.CurveBall: return("Curve ball"); case QuestConditionType.DailyCaptureBonus: return("Daily catch"); case QuestConditionType.DailySpinBonus: return("Daily spin"); case QuestConditionType.DaysInARow: return("Days in a row"); case QuestConditionType.Item: return("Use item"); case QuestConditionType.NewFriend: return("Make new friend"); case QuestConditionType.PlayerLevel: return("Reach level"); case QuestConditionType.PokemonCategory: return(string.Join(", ", condition.Info.PokemonIds?.Select(x => Database.Instance.Pokemon[x].Name).ToList())); case QuestConditionType.PokemonType: return(string.Join(", ", condition.Info.PokemonTypeIds?.Select(x => Convert.ToString((PokemonType)x))) + "-type"); case QuestConditionType.QuestContext: break; case QuestConditionType.RaidLevel: return("Level " + string.Join(", ", condition.Info.RaidLevels)); case QuestConditionType.SuperEffectiveCharge: return("Super effective charge move"); case QuestConditionType.ThrowType: return(GetThrowName(condition.Info.ThrowTypeId)); case QuestConditionType.ThrowTypeInARow: return(GetThrowName(condition.Info.ThrowTypeId) + " in a row"); case QuestConditionType.UniquePokestop: return("Unique"); case QuestConditionType.WeatherBoost: return("Weather boosted"); case QuestConditionType.WinBattleStatus: return("Win battle status"); case QuestConditionType.WinGymBattleStatus: return("Win gym battle"); case QuestConditionType.WinRaidStatus: return("Win raid"); case QuestConditionType.UniquePokemon: return("Unique Pokemon"); case QuestConditionType.NpcCombat: return("NPC Combat"); case QuestConditionType.PvpCombat: return("PvP Combat"); case QuestConditionType.Location: return("Location"); case QuestConditionType.Distance: return("Distance"); case QuestConditionType.PokemonAlignment: return("Pokemon Alignment"); //TODO: Finish Pokemon Alignment(s): %{alignments} case QuestConditionType.InvasionsCharacter: return("Invasion Category"); //TODO: Finish Invasion Category(s): %{categories} } return(null); }