Exemplo n.º 1
0
        /// <summary>
        /// Creates a new tournament team.
        /// </summary>
        /// <param name="tournament">The tournament team.</param>
        /// <param name="id">The id.</param>
        /// <param name="name">The name.</param>
        /// <param name="x">The x coordinate.</param>
        /// <param name="y">The y coordinate.</param>
        public TournamentTeam(ITournamentBase tournament, int id, string name, ushort x, ushort y)
        {
            Members    = new ConcurrentDictionary <uint, Models.Entities.Player>();
            Tournament = tournament;
            Id         = id;
            Name       = name;
            X          = x;
            Y          = y;

            Team = this;
        }
        /// <summary>
        /// Handles the sign up validation for a player.
        /// </summary>
        /// <param name="tournament">The tournament.</param>
        /// <param name="player">The player.</param>
        /// <returns>The response.</returns>
        public static TournamentSignUpResponse SignUp(ITournamentBase tournament, Client.GameState player)
        {
            string _message = string.Empty;

            if (player.Entity.Level < tournament.RequiredLevel)
            {
                _message = TournamentMessage.TOURNAMENT_LEVEL_TOO_LOW;
            }

            if (player.Entity.Reborn < tournament.RequiredReborns)
            {
                _message = TournamentMessage.TOURNAMENT_REBORNS_TOO_LOW;
            }

            if (tournament.RequiredToBeVIP && player.Entity.VIPLevel == 0)
            {
                _message = TournamentMessage.TOURNAMENT_NOT_VIP;
            }

            if (tournament.RequiredToBeFemale && !player.Entity.IsFemale)
            {
                _message = TournamentMessage.TOURNAMENT_NOT_FEMALE;
            }
            else if (tournament.RequiredToBeMale && !player.Entity.IsMale)
            {
                _message = TournamentMessage.TOURNAMENT_NOT_MALE;
            }

            if (tournament.RequiredGuild && player.Entity.GuildID == null)
            {
                _message = TournamentMessage.TOURNAMENT_NO_GUILD;
            }
            else if (tournament.RequiredGuild)
            {
                if (tournament.RequiredGuildLeader && tournament.RequiredDeputyLeader &&
                    player.Entity.GuildRank != (ushort)Enums.GuildMemberRank.GuildLeader &&
                    player.Entity.GuildRank != (ushort)Enums.GuildMemberRank.DeputyLeader)
                {
                    _message = TournamentMessage.TOURNAMENT_NOT_GUILD_LEADER_OR_DEPUTY_LEADER;
                }
                else if (tournament.RequiredGuildLeader && player.Entity.GuildRank != (ushort)Enums.GuildMemberRank.GuildLeader)
                {
                    _message = TournamentMessage.TOURNAMENT_NOT_GUILD_LEADER;
                }
                else if (tournament.RequiredDeputyLeader && player.Entity.GuildRank != (ushort)Enums.GuildMemberRank.DeputyLeader)
                {
                    _message = TournamentMessage.TOURNAMENT_NOT_DEPUTY_LEADER;
                }
            }

            bool _success = string.IsNullOrWhiteSpace(_message);

            if (_success)
            {
                _message = TournamentMessage.TOURNAMENT_SIGNED_UP;
            }

            return(new TournamentSignUpResponse
            {
                Message = _message,
                Success = _success
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Handles the sign up validation for a player.
        /// </summary>
        /// <param name="tournament">The tournament.</param>
        /// <param name="player">The player.</param>
        /// <returns>The response.</returns>
        public static TournamentSignUpResponse SignUp(ITournamentBase tournament, Models.Entities.Player player)
        {
            string msg = string.Empty;

            if (player.Level < tournament.RequiredLevel)
            {
                msg = "TOURNAMENT_LEVEL_TOO_LOW";
            }

            if (tournament.RequiredJob != Enums.Job.Unknown && Tools.JobTools.GetBaseJob(player.Job) != tournament.RequiredJob)
            {
                msg = "TOURNAMENT_INVALID_JOB";
            }

            if (player.Reborns < tournament.RequiredReborns)
            {
                msg = "TOURNAMENT_REBORNS_TOO_LOW";
            }

            if (tournament.RequiredToBeVIP && player.VIPLevel == 0)
            {
                msg = "TOURNAMENT_NOT_VIP";
            }

            if (tournament.RequiredToBeFemale && !player.IsFemale)
            {
                msg = "TOURNAMENT_NOT_FEMALE";
            }
            else if (tournament.RequiredToBeMale && !player.IsMale)
            {
                msg = "TOURNAMENT_NOT_MALE";
            }

            if (tournament.RequiredGuild && player.Guild == null)
            {
                msg = "TOURNAMENT_NO_GUILD";
            }
            else if (tournament.RequiredGuild)
            {
                if (tournament.RequiredGuildLeader && tournament.RequiredDeputyLeader &&
                    player.GuildMember.Rank != Enums.GuildRank.GuildLeader &&
                    player.GuildMember.Rank != Enums.GuildRank.DeputyLeader)
                {
                    msg = "TOURNAMENT_NOT_GUILD_LEADER_OR_DEPUTY_LEADER";
                }
                else if (tournament.RequiredGuildLeader && player.GuildMember.Rank != Enums.GuildRank.GuildLeader)
                {
                    msg = "TOURNAMENT_NOT_GUILD_LEADER";
                }
                else if (tournament.RequiredDeputyLeader && player.GuildMember.Rank != Enums.GuildRank.DeputyLeader)
                {
                    msg = "TOURNAMENT_NOT_DEPUTY_LEADER";
                }
            }

            if (tournament.MinimumTeamMembers > 0 && (player.Team == null || player.Team.GetMembers().Count < tournament.MinimumTeamMembers))
            {
                msg = "TOURNAMENT_TEAM_TOO_SMALL";
            }

            bool success = string.IsNullOrWhiteSpace(msg);

            if (success)
            {
                msg = "TOURNAMENT_SIGNED_UP";
            }

            return(new TournamentSignUpResponse
            {
                Message = msg,
                Success = success
            });
        }