public override void OnDoubleClick(Mobile from)
        {
            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendLocalizedMessage(500446); // That is too far away.
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                m_Guild.Accepted.Remove(from);
                m_Guild.AddMember(from);

                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                from.NetState.SendMessageLocalized(
                    Serial,
                    ItemID,
                    MessageType.Regular,
                    0x3B2,
                    3,
                    501158
                    );
            }
            else
            {
                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
        }
Beispiel #2
0
        public override void OnDoubleClick(Mobile from)
        {
            if (Guild.NewGuildSystem)
            {
                return;
            }

            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendLocalizedMessage(500446);                   // That is too far away.
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                #region Factions
                PlayerState guildState  = PlayerState.Find(m_Guild.Leader);
                PlayerState targetState = PlayerState.Find(from);

                Faction guildFaction  = (guildState == null ? null : guildState.Faction);
                Faction targetFaction = (targetState == null ? null : targetState.Faction);

                if (guildFaction != targetFaction || (targetState != null && targetState.IsLeaving))
                {
                    return;
                }

                if (guildState != null && targetState != null)
                {
                    targetState.Leaving = guildState.Leaving;
                }
                #endregion

                GuildGump.EnsureClosed(from);
                m_Guild.Accepted.Remove(from);

                if (m_Guild.Type != GuildType.Regular && !Guild.JoinVirtue(from, m_Guild.Type))
                {
                    from.SendAsciiMessage(0x25, "You may not join this virtue guild.");
                    return;
                }

                m_Guild.AddMember(from);

                from.SendGump(new GuildGump(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                from.Send(new MessageLocalized(Serial, ItemID, MessageType.Regular, 0x3B2, 3, 501158, "", ""));                     // You are not a member ...
            }
            else
            {
                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
        }
Beispiel #3
0
        public override void OnDoubleClick(Mobile from)
        {
            if (Guild.NewGuildSystem)
            {
                return;
            }

            BaseHouse house = BaseHouse.FindHouseAt(this);
            BaseBoat  boat  = BaseBoat.FindBoatAt(this.Location, this.Map);

            if (house == null && boat == null)
            {
                Delete();
            }

            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendAsciiMessage("That is too far away.");                   // That is too far away.
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                #region Factions
                PlayerState guildState  = PlayerState.Find(m_Guild.Leader);
                PlayerState targetState = PlayerState.Find(from);

                Faction guildFaction  = (guildState == null ? null : guildState.Faction);
                Faction targetFaction = (targetState == null ? null : targetState.Faction);

                if (guildFaction != targetFaction || (targetState != null && targetState.IsLeaving))
                {
                    return;
                }

                if (guildState != null && targetState != null)
                {
                    targetState.Leaving = guildState.Leaving;
                }
                #endregion

                m_Guild.Accepted.Remove(from);
                m_Guild.AddMember(from);

                from.SendMenu(new GuildMenu(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                from.Send(new AsciiMessage(Serial, ItemID, MessageType.Regular, 0, 3, "", "You are not a member of this guild! To join, ask a current member to invite you into the guild.")); // You are not a member ...
            }
            else
            {
                from.SendMenu(new GuildMenu(from, m_Guild));
            }
        }
        public override void OnDoubleClick(Mobile from)
        {
            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendLocalizedMessage(500446);                 // That is too far away.
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                #region Factions
                PlayerState guildState  = PlayerState.Find(m_Guild.Leader);
                PlayerState targetState = PlayerState.Find(from);

                Faction guildFaction  = (guildState == null ? null : guildState.Faction);
                Faction targetFaction = (targetState == null ? null : targetState.Faction);

                if (guildFaction != targetFaction || (targetState != null && targetState.IsLeaving))
                {
                    return;
                }

                if (guildState != null && targetState != null)
                {
                    targetState.Leaving = guildState.Leaving;
                }
                #endregion

                m_Guild.Accepted.Remove(from);
                m_Guild.AddMember(from);

                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                BaseHouse house = BaseHouse.FindHouseAt(this);

                if (house != null && from.Alive && house.IsOwner(from))
                {
                    GuildGump.EnsureClosed(from);
                    from.SendGump(new MoveGuildstoneGump(from, this));
                }
                else
                {
                    from.Send(new MessageLocalized(Serial, ItemID, MessageType.Regular, 0x3B2, 3, 501158, "", ""));                     // You are not a member ...
                }
            }
            else
            {
                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
        }
Beispiel #5
0
        public override void OnDoubleClick(Mobile from)
        {
            if (Guild.NewGuildSystem)
            {
                return;
            }

            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && (!from.InRange(GetWorldLocation(), 2) || !from.InLOS(this)))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                #region Factions
                PlayerState guildState  = PlayerState.Find(m_Guild.Leader);
                PlayerState targetState = PlayerState.Find(from);

                Faction guildFaction  = (guildState == null ? null : guildState.Faction);
                Faction targetFaction = (targetState == null ? null : targetState.Faction);

                if (guildFaction != targetFaction || (targetState != null && targetState.IsLeaving))
                {
                    return;
                }

                if (guildState != null && targetState != null)
                {
                    targetState.Leaving = guildState.Leaving;
                }
                #endregion

                m_Guild.Accepted.Remove(from);
                m_Guild.AddMember(from);

                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                PrivateOverheadMessage(MessageType.Regular, 906, 501158, "", from.NetState); // You are not a member ...
            }
            else
            {
                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
        }
Beispiel #6
0
        public override void OnDoubleClick(Mobile from)
        {
            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendAsciiMessage("That is too far away.");
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                #region Factions
                PlayerState guildState  = PlayerState.Find(m_Guild.Leader);
                PlayerState targetState = PlayerState.Find(from);

                Faction guildFaction  = (guildState == null ? null : guildState.Faction);
                Faction targetFaction = (targetState == null ? null : targetState.Faction);

                if (guildFaction != targetFaction || (targetState != null && targetState.IsLeaving))
                {
                    return;
                }

                if (guildState != null && targetState != null)
                {
                    targetState.Leaving = guildState.Leaving;
                }
                #endregion

                m_Guild.Accepted.Remove(from);
                m_Guild.AddMember(from);

                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                this.SendAsciiMessageTo(from, "You are not a member of this guild! To join, ask a current member to invite you into the guild.");
            }
            else
            {
                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
        }
Beispiel #7
0
        public override void OnDoubleClick(Mobile from)
        {
            if (m_Guild == null || m_Guild.Disbanded)
            {
                Delete();
            }
            else if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendLocalizedMessage(500446);                   // That is too far away.
            }
            else if (m_Guild.Accepted.Contains(from))
            {
                m_Guild.Accepted.Remove(from);
                m_Guild.AddMember(from);

                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
            else if (from.AccessLevel < AccessLevel.GameMaster && !m_Guild.IsMember(from))
            {
                BaseHouse house = BaseHouse.FindHouseAt(this);

                if (house != null && from.Alive && house.IsOwner(from))
                {
                    GuildGump.EnsureClosed(from);
                    from.SendGump(new MoveGuildstoneGump(from, this));
                }
                else
                {
                    from.Send(new MessageLocalized(Serial, ItemID, MessageType.Regular, 0x3B2, 3, 501158, "", "")); // You are not a member ...
                }
            }
            else
            {
                GuildGump.EnsureClosed(from);
                from.SendGump(new GuildGump(from, m_Guild));
            }
        }
Beispiel #8
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;
                    }
                }
            }