Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }