Ejemplo n.º 1
0
        partial void Merge(CompetitiveMap entity, CompetitiveMapDTO dto, object state)
        {
            var scores = dto.Scores;

            if (scores != null && scores.Length == 3)
            {
                entity.Scores = this.scoreboardConverter.Convert(scores, dto);
            }

            var objectives = dto.Objectives;

            if (objectives != null)
            {
                var values = new List <MatchObjective>(objectives.Count);
                values.AddRange(objectives.Select(objective => this.objectiveConverter.Convert(objective, dto)));
                entity.Objectives = values;
            }

            var bonuses = dto.Bonuses;

            if (bonuses != null)
            {
                var values = new List <MapBonus>(bonuses.Count);
                values.AddRange(bonuses.Select(bonus => this.mapBonusConverter.Convert(bonus, dto)));
                entity.Bonuses = values;
            }
        }
Ejemplo n.º 2
0
        partial void Merge(CompetitiveMap entity, CompetitiveMapDTO dto, object state)
        {
            entity.Id   = dto.Id;
            entity.Type = dto.Type;

            var scores = dto.Scores;

            if (scores != null)
            {
                entity.Scores = this.scoreboardConverter.Convert(scores, dto);
            }

            var deaths = dto.Deaths;

            if (deaths != null)
            {
                entity.Deaths = this.scoreboardConverter.Convert(deaths, dto);
            }

            var kills = dto.Kills;

            if (kills != null)
            {
                entity.Kills = this.scoreboardConverter.Convert(kills, dto);
            }

            var objectives = dto.Objectives;

            if (objectives != null)
            {
                var values = new List <MatchObjective>(objectives.Count);
                values.AddRange(objectives.Select(objective => this.objectiveConverter.Convert(objective, dto)));
                entity.Objectives = values;
            }

            var bonuses = dto.Bonuses;

            if (bonuses != null)
            {
                var values = new List <MapBonus>(bonuses.Count);
                values.AddRange(bonuses.Select(bonus => this.mapBonusConverter.Convert(bonus, dto)));
                entity.Bonuses = values;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Retrieves a list of the objectives in the given match and map
        /// </summary>
        /// <param name="matchId">The match's ID</param>
        /// <param name="mapId">The map's ID</param>
        public IEnumerable <WvWObjective> GetMapObjectives(string matchId, WvWMap map)
        {
            List <WvWObjective> objectives = new List <WvWObjective>();

            try
            {
                var matchDetails = this.service.GetMatchDetails(matchId);
                if (matchDetails != null)
                {
                    CompetitiveMap mapDetails = null;
                    switch (map)
                    {
                    case WvWMap.BlueBorderlands:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is BlueBorderlands);
                        break;

                    case WvWMap.GreenBorderlands:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is GreenBorderlands);
                        break;

                    case WvWMap.RedBorderlands:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is RedBorderlands);
                        break;

                    case WvWMap.EternalBattlegrounds:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is EternalBattlegrounds);
                        break;

                    default:
                        break;
                    }

                    if (mapDetails != null)
                    {
                        foreach (var objective in mapDetails.Objectives)
                        {
                            var objData = new WvWObjective();

                            objData.ID         = objective.ObjectiveId;
                            objData.MatchId    = matchId;
                            objData.Map        = map;
                            objData.GuildOwner = objective.OwnerGuildId;

                            var objDetails = this.ObjectivesTable.Objectives.FirstOrDefault(obj => obj.ID == objData.ID);
                            if (objDetails != null)
                            {
                                objData.Type        = objDetails.Type;
                                objData.Name        = objDetails.Name;
                                objData.FullName    = objDetails.FullName;
                                objData.Location    = objDetails.Location;
                                objData.MapLocation = objDetails.MapLocation;
                                objData.Points      = objDetails.Points;
                            }

                            switch (objective.Owner)
                            {
                            case TeamColor.Blue:
                                objData.WorldOwner = WorldColor.Blue;
                                break;

                            case TeamColor.Green:
                                objData.WorldOwner = WorldColor.Green;
                                break;

                            case TeamColor.Red:
                                objData.WorldOwner = WorldColor.Red;
                                break;

                            default:
                                objData.WorldOwner = WorldColor.None;
                                break;
                            }

                            objectives.Add(objData);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // Don't crash if something goes wrong (like if WvW is resetting)
                logger.Error(ex);
            }

            return(objectives);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Retrieves a list of the objectives in the given match and map
        /// </summary>
        /// <param name="matchId">The match's ID</param>
        /// <param name="mapId">The map's ID</param>
        public IEnumerable <WvWObjective> GetMapObjectives(string matchId, WvWMap map)
        {
            List <WvWObjective> objectives = new List <WvWObjective>();

            try
            {
                var matchDetails = this.matchService.Find(new Matchup {
                    MatchId = matchId
                });
                if (matchDetails != null)
                {
                    CompetitiveMap mapDetails = null;
                    switch (map)
                    {
                    case WvWMap.BlueBorderlands:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is BlueBorderlands);
                        break;

                    case WvWMap.GreenBorderlands:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is GreenBorderlands);
                        break;

                    case WvWMap.RedDesertBorderlands:
                    case WvWMap.RedAplineBorderlands:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is RedBorderlands);
                        break;

                    case WvWMap.EternalBattlegrounds:
                        mapDetails = matchDetails.Maps.FirstOrDefault(m => m is EternalBattlegrounds);
                        break;

                    default:
                        break;
                    }

                    if (mapDetails != null)
                    {
                        foreach (var objective in mapDetails.Objectives)
                        {
                            var objData = new WvWObjective();

                            objData.ID         = new WvWObjectiveId(objective.ObjectiveId, map);
                            objData.MatchId    = matchId;
                            objData.Map        = map;
                            objData.GuildOwner = objective.OwnerGuildId;

                            var objDetails = this.ObjectivesTable.Objectives.FirstOrDefault(obj => obj.ID == objData.ID);
                            if (objDetails != null)
                            {
                                objData.Type        = objDetails.Type;
                                objData.Name        = this.objectiveNamesProvider.GetString(objData.ID, WvWObjectiveNameEnum.Short);
                                objData.FullName    = this.objectiveNamesProvider.GetString(objData.ID, WvWObjectiveNameEnum.Full);
                                objData.Location    = this.objectiveNamesProvider.GetString(objData.ID, WvWObjectiveNameEnum.Cardinal);
                                objData.MapLocation = objDetails.MapLocation;
                            }

                            switch (objData.Type)
                            {
                            case ObjectiveType.Castle:
                                objData.Points = 12;
                                break;

                            case ObjectiveType.Keep:
                                objData.Points = 8;
                                break;

                            case ObjectiveType.Tower:
                                objData.Points = 4;
                                break;

                            case ObjectiveType.Camp:
                                objData.Points = 2;
                                break;

                            default:
                                break;
                            }

                            switch (objective.Owner)
                            {
                            case TeamColor.Blue:
                                objData.WorldOwner = WorldColor.Blue;
                                break;

                            case TeamColor.Green:
                                objData.WorldOwner = WorldColor.Green;
                                break;

                            case TeamColor.Red:
                                objData.WorldOwner = WorldColor.Red;
                                break;

                            default:
                                objData.WorldOwner = WorldColor.None;
                                break;
                            }

                            objectives.Add(objData);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // Don't crash if something goes wrong (like if WvW is resetting)
                logger.Error(ex);
            }

            return(objectives);
        }