Exemplo n.º 1
0
        public static string GetGruntLeaderString(InvasionGruntType gruntType)
        {
            switch (gruntType)
            {
            case InvasionGruntType.Blanche:
            case InvasionGruntType.Candela:
            case InvasionGruntType.Spark:
                return(Convert.ToString(gruntType));

            case InvasionGruntType.ExecutiveArlo:
                return("Executive Arlo");

            case InvasionGruntType.ExecutiveCliff:
                return("Executive Cliff");

            case InvasionGruntType.ExecutiveSierra:
                return("Executive Sierra");

            case InvasionGruntType.Giovanni:
                return("Giovanni or Decoy");

            case InvasionGruntType.DecoyFemale:
            case InvasionGruntType.DecoyMale:
                return("Decoy");

            case InvasionGruntType.PlayerTeamLeader:
                return("Player Team Leader");

            default:
                return("Tier II");
            }
        }
Exemplo n.º 2
0
 public List <SubscriptionObject> GetUserSubscriptionsByGruntType(InvasionGruntType gruntType)
 {
     return(_subscriptions?.Where(x =>
                                  x.Enabled && x.Invasions != null &&
                                  x.Invasions.Exists(y => y.GruntType == gruntType)
                                  )?.ToList());
 }
Exemplo n.º 3
0
        public bool AddInvasion(ulong userId, InvasionGruntType gruntType, List <string> cities)
        {
            _logger.Trace($"SubscriptionManager::AddInvasion [UserId={userId}, GruntType={gruntType}, Cities={cities}]");

            using (var conn = DataAccessLayer.CreateFactory().Open())
            {
                var subscription = GetUserSubscriptions(userId);
                for (var i = 0; i < cities.Count; i++)
                {
                    var city        = cities[i];
                    var invasionSub = subscription.Invasions.FirstOrDefault(x => gruntType == x.GruntType && string.Compare(x.City, city, true) == 0);
                    if (invasionSub != null)
                    {
                        continue;
                    }

                    //Create new Team Rocket invasion subscription object.
                    invasionSub = new InvasionSubscription
                    {
                        UserId    = userId,
                        GruntType = gruntType,
                        City      = city
                    };
                    subscription.Invasions.Add(invasionSub);
                }

                try
                {
                    if (conn.Save(subscription, true))
                    {
                        _logger.Debug($"Invasion Added!");
                    }
                    else
                    {
                        _logger.Debug("Invasion Updated!");
                    }
                }
                catch (MySql.Data.MySqlClient.MySqlException)
                {
                    return(AddInvasion(userId, gruntType, cities));
                }
                catch (Exception ex)
                {
                    _logger.Error(ex);
                }
            }

            return(true);
        }
Exemplo n.º 4
0
        public bool RemoveInvasion(ulong userId, InvasionGruntType gruntType, List <string> cities)
        {
            _logger.Trace($"SubscriptionManager::RemoveInvasion [UserId={userId}, GruntType={gruntType}, Cities={cities}]");

            using (var conn = DataAccessLayer.CreateFactory().Open())
            {
                for (var i = 0; i < cities.Count; i++)
                {
                    if (conn.Delete <InvasionSubscription>(x =>
                                                           x.UserId == userId &&
                                                           x.GruntType == gruntType &&
                                                           string.Compare(cities[i], x.City, true) == 0) == 0)
                    {
                        _logger.Warn($"Could not delete invasion subscription for user {userId} invasion {gruntType} city {cities[i]}");
                    }
                }
            }

            return(true);
        }
Exemplo n.º 5
0
        public TeamRocketInvasion(InvasionGruntType gruntType)
        {
            InvasionGruntType = gruntType;
            var gender       = PokemonGender.Unset;
            var type         = PokemonType.None;
            var secondReward = false;
            var encounters   = new TeamRocketEncounters();

            switch (gruntType)
            {
            case InvasionGruntType.Unset:
            case InvasionGruntType.Blanche:
            case InvasionGruntType.Candela:
            case InvasionGruntType.Spark:
                break;

            case InvasionGruntType.MaleGrunt:
                gender           = PokemonGender.Male;
                secondReward     = true;
                encounters.First = new List <int> {
                    1, 4, 7
                };
                encounters.Second = new List <int> {
                    2, 5, 8
                };
                encounters.Third = new List <int> {
                    3, 6, 9
                };
                break;

            case InvasionGruntType.FemaleGrunt:
                gender           = PokemonGender.Female;
                secondReward     = false;
                encounters.First = new List <int> {
                    143, 131
                };
                encounters.Second = new List <int> {
                    143, 62, 282
                };
                encounters.Third = new List <int> {
                    143, 149, 130
                };
                break;

            case InvasionGruntType.BugFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Bug;
                break;

            case InvasionGruntType.BugMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Bug;
                secondReward     = false;
                encounters.First = new List <int> {
                    13, 48, 123
                };
                encounters.Second = new List <int> {
                    14, 49, 212
                };
                encounters.Third = new List <int> {
                    15, 123, 212
                };
                break;

            case InvasionGruntType.DarknessFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Ghost;
                break;

            case InvasionGruntType.DarknessMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Ghost;
                secondReward     = false;
                encounters.First = new List <int> {
                    302, 353, 355
                };
                encounters.Second = new List <int> {
                    302, 354, 356
                };
                encounters.Third = new List <int> {
                    302, 354, 477
                };
                break;

            case InvasionGruntType.DarkFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Dark;
                break;

            case InvasionGruntType.DarkMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Dark;
                break;

            case InvasionGruntType.DragonFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Dragon;
                secondReward     = false;
                encounters.First = new List <int> {
                    147
                };
                encounters.Second = new List <int> {
                    147, 148, 330
                };
                encounters.Third = new List <int> {
                    130, 148, 149
                };
                break;

            case InvasionGruntType.DragonMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Dragon;
                break;

            case InvasionGruntType.ElectricFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Electric;
                secondReward     = false;
                encounters.First = new List <int> {
                    125, 179
                };
                encounters.Second = new List <int> {
                    125, 180
                };
                encounters.Third = new List <int> {
                    125, 181
                };
                break;

            case InvasionGruntType.ElectricMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Electric;
                break;

            case InvasionGruntType.FairyFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Fairy;
                break;

            case InvasionGruntType.FairyMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Fairy;
                break;

            case InvasionGruntType.FightingFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Fighting;
                secondReward     = false;
                encounters.First = new List <int> {
                    107
                };
                encounters.Second = new List <int> {
                    107
                };
                encounters.Third = new List <int> {
                    107
                };
                break;

            case InvasionGruntType.FightingMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Fighting;
                break;

            case InvasionGruntType.FireFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Fire;
                secondReward     = true;
                encounters.First = new List <int> {
                    58, 126, 228
                };
                encounters.Second = new List <int> {
                    5, 229
                };
                encounters.Third = new List <int> {
                    5, 59, 229
                };
                break;

            case InvasionGruntType.FireMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Fire;
                break;

            case InvasionGruntType.FlyingFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Flying;
                secondReward     = false;
                encounters.First = new List <int> {
                    41, 42
                };
                encounters.Second = new List <int> {
                    42, 123, 169
                };
                encounters.Third = new List <int> {
                    130, 149, 169
                };
                break;

            case InvasionGruntType.FlyingMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Flying;
                break;

            case InvasionGruntType.GhostFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Ghost;
                break;

            case InvasionGruntType.GhostMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Ghost;
                secondReward     = false;
                encounters.First = new List <int> {
                    302, 353, 355
                };
                encounters.Second = new List <int> {
                    302, 354, 356
                };
                encounters.Third = new List <int> {
                    302, 354, 477
                };
                break;

            case InvasionGruntType.GrassFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Grass;
                break;

            case InvasionGruntType.GrassMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Grass;
                secondReward     = true;
                encounters.First = new List <int> {
                    273, 331, 387
                };
                encounters.Second = new List <int> {
                    1, 2, 44
                };
                encounters.Third = new List <int> {
                    45, 275, 332
                };
                break;

            case InvasionGruntType.GroundFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Ground;
                break;

            case InvasionGruntType.GroundMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Ground;
                secondReward     = false;
                encounters.First = new List <int> {
                    104, 246, 328
                };
                encounters.Second = new List <int> {
                    104, 105, 329
                };
                encounters.Third = new List <int> {
                    105, 130
                };
                break;

            case InvasionGruntType.IceFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Ice;
                break;

            case InvasionGruntType.IceMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Ice;
                break;

            case InvasionGruntType.MetalFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Steel;
                break;

            case InvasionGruntType.MetalMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Steel;
                break;

            case InvasionGruntType.NormalFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Normal;
                break;

            case InvasionGruntType.NormalMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Normal;
                secondReward     = true;
                encounters.First = new List <int> {
                    19, 41
                };
                encounters.Second = new List <int> {
                    19, 20
                };
                encounters.Third = new List <int> {
                    20, 143
                };
                break;

            case InvasionGruntType.PoisonFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Poison;
                secondReward     = true;
                encounters.First = new List <int> {
                    41, 48, 88
                };
                encounters.Second = new List <int> {
                    42, 88, 89
                };
                encounters.Third = new List <int> {
                    42, 49, 89
                };
                break;

            case InvasionGruntType.PoisonMaleGrunt:
                gender = PokemonGender.Male;
                type   = PokemonType.Poison;
                break;

            case InvasionGruntType.PsychicFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Psychic;
                break;

            case InvasionGruntType.PsychicMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Psychic;
                secondReward     = true;
                encounters.First = new List <int> {
                    63, 96, 280
                };
                encounters.Second = new List <int> {
                    96, 97, 280
                };
                encounters.Third = new List <int> {
                    64, 97, 281
                };
                break;

            case InvasionGruntType.RockFemaleGrunt:
                gender = PokemonGender.Female;
                type   = PokemonType.Rock;
                break;

            case InvasionGruntType.RockMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Rock;
                secondReward     = false;
                encounters.First = new List <int> {
                    246
                };
                encounters.Second = new List <int> {
                    246, 247
                };
                encounters.Third = new List <int> {
                    247, 248
                };
                break;

            case InvasionGruntType.WaterFemaleGrunt:
                gender           = PokemonGender.Female;
                type             = PokemonType.Water;
                secondReward     = false;
                encounters.First = new List <int> {
                    54, 60
                };
                encounters.Second = new List <int> {
                    55, 61
                };
                encounters.Third = new List <int> {
                    62, 186
                };
                break;

            case InvasionGruntType.WaterMaleGrunt:
                gender           = PokemonGender.Male;
                type             = PokemonType.Water;
                secondReward     = false;
                encounters.First = new List <int> {
                    129
                };
                encounters.Second = new List <int> {
                    129
                };
                encounters.Third = new List <int> {
                    129, 130
                };
                break;

            case InvasionGruntType.PlayerTeamLeader:
            case InvasionGruntType.DecoyFemale:
            case InvasionGruntType.DecoyMale:
            case InvasionGruntType.Giovanni:
            case InvasionGruntType.ExecutiveCliff:
            case InvasionGruntType.ExecutiveArlo:
            case InvasionGruntType.ExecutiveSierra:
                break;
            }

            Type         = type;
            Gender       = gender;
            SecondReward = secondReward;
            Encounters   = encounters;
        }
Exemplo n.º 6
0
        public static string InvasionTypeToString(InvasionGruntType gruntType)
        {
            switch (gruntType)
            {
            case InvasionGruntType.Unset:
                return("None");

            case InvasionGruntType.Blanche:
                return("Blanche");

            case InvasionGruntType.Candela:
                return("Candela");

            case InvasionGruntType.Spark:
                return("Spark");

            case InvasionGruntType.MaleGrunt:
                return("Male Grunt");

            case InvasionGruntType.FemaleGrunt:
                return("Female Grunt");

            case InvasionGruntType.BugFemaleGrunt:
                return("Bug - Female Grunt");

            case InvasionGruntType.BugMaleGrunt:
                return("Bug - Male Grunt");

            case InvasionGruntType.DarknessFemaleGrunt:
                return("Ghost - Female Grunt");

            case InvasionGruntType.DarknessMaleGrunt:
                return("Ghost - Male Grunt");

            case InvasionGruntType.DarkFemaleGrunt:
                return("Dark - Female Grunt");

            case InvasionGruntType.DarkMaleGrunt:
                return("Dark - Male Grunt");

            case InvasionGruntType.DragonFemaleGrunt:
                return("Dragon - Female Grunt");

            case InvasionGruntType.DragonMaleGrunt:
                return("Dragon - Male Grunt");

            case InvasionGruntType.FairyFemaleGrunt:
                return("Fairy - Female Grunt");

            case InvasionGruntType.FairyMaleGrunt:
                return("Fairy - Male Grunt");

            case InvasionGruntType.FightingFemaleGrunt:
                return("Fighting - Female Grunt");

            case InvasionGruntType.FightingMaleGrunt:
                return("Fighting - Male Grunt");

            case InvasionGruntType.FireFemaleGrunt:
                return("Fire - Female Grunt");

            case InvasionGruntType.FireMaleGrunt:
                return("Fire - Male Grunt");

            case InvasionGruntType.FlyingFemaleGrunt:
                return("Flying - Female Grunt");

            case InvasionGruntType.FlyingMaleGrunt:
                return("Flying - Male Grunt");

            case InvasionGruntType.GrassFemaleGrunt:
                return("Grass - Female Grunt");

            case InvasionGruntType.GrassMaleGrunt:
                return("Grass - Male Grunt");

            case InvasionGruntType.GroundFemaleGrunt:
                return("Ground - Female Grunt");

            case InvasionGruntType.GroundMaleGrunt:
                return("Ground - Male Grunt");

            case InvasionGruntType.IceFemaleGrunt:
                return("Ice - Female Grunt");

            case InvasionGruntType.IceMaleGrunt:
                return("Ice - Male Grunt");

            case InvasionGruntType.MetalFemaleGrunt:
                return("Steel - Female Grunt");

            case InvasionGruntType.MetalMaleGrunt:
                return("Steel - Male Grunt");

            case InvasionGruntType.NormalFemaleGrunt:
                return("Normal - Female Grunt");

            case InvasionGruntType.NormalMaleGrunt:
                return("Normal - Male Grunt");

            case InvasionGruntType.PoisonFemaleGrunt:
                return("Poison - Female Grunt");

            case InvasionGruntType.PoisonMaleGrunt:
                return("Poison - Male Grunt");

            case InvasionGruntType.PsychicFemaleGrunt:
                return("Psychic - Female Grunt");

            case InvasionGruntType.PsychicMaleGrunt:
                return("Psychic - Male Grunt");

            case InvasionGruntType.RockFemaleGrunt:
                return("Rock - Female Grunt");

            case InvasionGruntType.RockMaleGrunt:
                return("Rock - Male Grunt");

            case InvasionGruntType.WaterFemaleGrunt:
                return("Water - Female Grunt");

            case InvasionGruntType.WaterMaleGrunt:
                return("Water - Male Grunt");

            case InvasionGruntType.PlayerTeamLeader:
                return("Player Team Leader");

            default:
                return(gruntType.ToString());
            }
        }
Exemplo n.º 7
0
 public string GetInvasionIcon(string style, InvasionGruntType gruntType)
 {
     return(_iconStyles[style] + "invasion/" + (int)gruntType + ".png");
 }