Beispiel #1
0
            protected override void OnTarget(Mobile from, object target)
            {
                if (m_Player == null)
                {
                    return;
                }
                if (m_Player.Deleted)
                {
                    return;
                }

                if (m_Guild == null)
                {
                    m_Player.SendMessage("That guild no longer exists.");
                    return;
                }

                if (!m_Guild.IsMember(m_Player))
                {
                    m_Player.SendMessage("You are not a member of this guild.");
                    return;
                }

                GuildMemberEntry playerEntry = m_Guild.GetGuildMemberEntry(m_Player);

                if (playerEntry == null)
                {
                    return;
                }

                bool canImmediatelyAdd = m_Guild.CanAddCandidates(playerEntry.m_Rank);

                PlayerMobile playerTarget = target as PlayerMobile;

                if (playerTarget == null)
                {
                    m_Player.SendMessage("That is not a player.");
                    return;
                }

                if (Utility.GetDistance(m_Player.Location, playerTarget.Location) > 20)
                {
                    m_Player.SendMessage("That player is too far away.");
                    return;
                }

                if (playerTarget.Guild != null)
                {
                    m_Player.SendMessage("That player is already in a guild.");
                    return;
                }

                if (canImmediatelyAdd)
                {
                    if (m_Guild.AddMember(playerTarget))
                    {
                        string guildText = m_Guild.Name + " [" + m_Guild.m_Abbreviation + "]";

                        m_Guild.GuildAnnouncement(playerTarget.RawName + " has been made a member of the guild.", new List <PlayerMobile>()
                        {
                            playerTarget
                        }, GuildMemberRank.Recruit);

                        playerTarget.SendMessage(Guilds.GuildTextHue, "You have been made a guild member of " + guildText + ".");

                        return;
                    }

                    else
                    {
                        m_Player.SendMessage("That player is already a member of this guild or unable to join a guild at this time.");

                        return;
                    }
                }

                else
                {
                    if (m_Guild.m_Candidates.Contains(playerTarget))
                    {
                        m_Player.SendMessage("That player is already a candidate for membership in this guild.");
                        return;
                    }

                    else
                    {
                        m_Guild.m_Candidates.Add(playerTarget);

                        m_Player.SendMessage(Guilds.GuildTextHue, playerTarget.RawName + " has been made a candidate for guild membership.");
                        playerTarget.SendMessage(Guilds.GuildTextHue, "You have been made a candidate for guild membership.");

                        string message = playerTarget.RawName + " has been made a candidate for membership in the guild.";

                        m_Guild.GuildAnnouncement(message, new List <PlayerMobile>()
                        {
                            m_Player, playerTarget
                        }, GuildMemberRank.Officer);

                        return;
                    }
                }
            }