示例#1
0
        public static Type FindFirstChainQuest(BaseQuest quest)
        {
            if (quest == null)
                return null;
				
            Type[] quests = null;
		
            if (quest.Quester is MondainQuester)
            {
                MondainQuester mQuester = (MondainQuester)quest.Quester;
				
                quests = mQuester.Quests;
            }
            else if (quest.Quester is BaseQuestItem)
            {
                BaseQuestItem iQuester = (BaseQuestItem)quest.Quester;
				
                quests = iQuester.Quests;
            }
			
            if (quests != null)
            {
                for (int i = 0; i < quests.Length; i ++)
                {
                    BaseQuest fQuest = Construct(quests[i]) as BaseQuest;
					
                    if (fQuest != null && fQuest.ChainID == quest.ChainID)
                        return fQuest.GetType();
                }
            }
			
            return null;
        }
示例#2
0
        public static bool FirstChainQuest(BaseQuest quest, object quester)
        {
            Type[] quests = null;

            if (quester is MondainQuester)
            {
                MondainQuester mQuester = (MondainQuester)quester;

                quests = mQuester.Quests;
            }
            else if (quester is BaseQuestItem)
            {
                BaseQuestItem iQuester = (BaseQuestItem)quester;

                quests = iQuester.Quests;
            }

            if (quests != null)
            {
                for (int i = 0; i < quests.Length; i++)
                {
                    if (quests[i] == quest.GetType())
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
示例#3
0
        public static bool InProgress(PlayerMobile player, MondainQuester quester)
        { 
            for (int i = 0; i < player.Quests.Count; i ++)
            {
                BaseQuest quest = player.Quests[i];
				
                if (quest.Quester == null)
                    continue;
					
                if (quest.Quester.GetType() == quester.GetType())
                {
                    if (quest.Completed)		
                    {
                        if (quest.Complete == null && !AnyRewards(quest))
                            quest.GiveRewards();
                        else 
                            player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));
                    }
                    else
                    {
                        player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                        quest.InProgress();
                    }
						
                    return true;
                }
            }
			
            return false;
        }
示例#4
0
        public MLQuestFinishGump(PlayerMobile pm, BaseQuest quest, MondainQuester quester)
            : base(75, 25)
        {
            m_Quest   = quest;
            m_From    = pm;
            m_Quester = quester;

            if (m_Quest.Complete == null)
            {
                if (QuestHelper.TryDeleteItems(m_Quest))
                {
                    if (QuestHelper.AnyRewards(m_Quest))
                    {
                        m_From.CloseGump(this.GetType());
                        m_From.SendGump(new MLQuestRewardGump(m_Quest));
                    }
                    else
                    {
                        m_Quest.GiveRewards();
                    }
                }

                return;
            }

            Intern("");

            AddPage(1);

            Closable = false;
            AddImageTiled(50, 20, 400, 400, 0x1404);
            AddImageTiled(50, 29, 30, 390, 0x28DC);
            AddImageTiled(34, 140, 17, 279, 0x242F);
            AddImage(48, 135, 0x28AB);
            AddImage(-16, 285, 0x28A2);
            AddImage(0, 10, 0x28B5);
            AddImage(25, 0, 0x28B4);
            AddImageTiled(83, 15, 350, 15, 0x280A);
            AddImage(34, 419, 0x2842);
            AddImage(442, 419, 0x2840);
            AddImageTiled(51, 419, 392, 17, 0x2775);
            AddImageTiled(415, 29, 44, 390, 0xA2D);
            AddImageTiled(415, 29, 30, 390, 0x28DC);
            AddLabelIntern(100, 50, 0x481, 0);
            AddImage(370, 50, 0x589);
            AddImage(379, 60, 0x15A9);
            AddImage(425, 0, 0x28C9);
            AddImage(90, 33, 0x232D);
            AddHtmlLocalized(130, 45, 270, 16, 3006156, 0xFFFFFF, false, false);               // Quest Conversation
            AddImageTiled(130, 65, 175, 1, 0x238D);
            AddHtmlLocalized(130, 68, 220, 48, 1114513, String.Format("#{0}", quest.Title.ToString()), 0x2710, false, false);

            AddHtmlObject(98, 140, 312, 180, quest.Complete, 0x15F90, false, true);
            AddButton(95, 395, 0x2EE9, 0x2EEB, 4, GumpButtonType.Reply, 0);               // Continue
            AddKRHtmlLocalized(0, 0, 0, 0, 1011036, false, false);
            AddKRHtmlLocalized(0, 0, 0, 0, 1011012, false, false);
            AddButton(313, 395, 0x2EE6, 0x2EE8, 3, GumpButtonType.Reply, 0);               // Close
        }
示例#5
0
        public MLQuestFinishGump( PlayerMobile pm, BaseQuest quest, MondainQuester quester )
            : base(75, 25)
        {
            m_Quest = quest;
            m_From = pm;
            m_Quester = quester;

            if ( m_Quest.Complete == null )
            {
                if ( QuestHelper.TryDeleteItems( m_Quest ) )
                {
                    if ( QuestHelper.AnyRewards( m_Quest ) )
                    {
                        m_From.CloseGump( this.GetType() );
                        m_From.SendGump( new MLQuestRewardGump( m_Quest ) );
                    }
                    else
                        m_Quest.GiveRewards();
                }

                return;
            }

            Intern( "" );

            AddPage( 1 );

            Closable = false;
            AddImageTiled( 50, 20, 400, 400, 0x1404 );
            AddImageTiled( 50, 29, 30, 390, 0x28DC );
            AddImageTiled( 34, 140, 17, 279, 0x242F );
            AddImage( 48, 135, 0x28AB );
            AddImage( -16, 285, 0x28A2 );
            AddImage( 0, 10, 0x28B5 );
            AddImage( 25, 0, 0x28B4 );
            AddImageTiled( 83, 15, 350, 15, 0x280A );
            AddImage( 34, 419, 0x2842 );
            AddImage( 442, 419, 0x2840 );
            AddImageTiled( 51, 419, 392, 17, 0x2775 );
            AddImageTiled( 415, 29, 44, 390, 0xA2D );
            AddImageTiled( 415, 29, 30, 390, 0x28DC );
            AddLabelIntern( 100, 50, 0x481, 0 );
            AddImage( 370, 50, 0x589 );
            AddImage( 379, 60, 0x15A9 );
            AddImage( 425, 0, 0x28C9 );
            AddImage( 90, 33, 0x232D );
            AddHtmlLocalized( 130, 45, 270, 16, 3006156, 0xFFFFFF, false, false ); // Quest Conversation
            AddImageTiled( 130, 65, 175, 1, 0x238D );
            AddHtmlLocalized( 130, 68, 220, 48, 1114513, String.Format( "#{0}", quest.Title.ToString() ), 0x2710, false, false );

            AddHtmlObject( 98, 140, 312, 180, quest.Complete, 0x15F90, false, true );
            AddButton( 95, 395, 0x2EE9, 0x2EEB, 4, GumpButtonType.Reply, 0 ); // Continue
            AddKRHtmlLocalized( 0, 0, 0, 0, 1011036, false, false );
            AddKRHtmlLocalized( 0, 0, 0, 0, 1011012, false, false );
            AddButton( 313, 395, 0x2EE6, 0x2EE8, 3, GumpButtonType.Reply, 0 ); // Close
        }
示例#6
0
        public static bool InProgress(PlayerMobile player, MondainQuester quester)
        {
            for (int i = 0; i < player.Quests.Count; i++)
            {
                BaseQuest quest = player.Quests[i];

                if (quest.Quester == null)
                {
                    continue;
                }

                if (quest.Quester.GetType() == quester.GetType())
                {
                    player.CloseGump(typeof(BaseQuestGump));

                    if (quest.Completed)
                    {
                        if (quest.Complete == null && !AnyRewards(quest))
                        {
                            quest.GiveRewards();
                        }
                        else
                        {
                            player.SendGump(new MLQuestFinishGump(player, quest));
                        }
                    }
                    else
                    {
                        player.SendGump(new MLQuestConversationGump(quest, MLQuestConverType.InProgress));
                        quest.InProgress();
                    }

                    return(true);
                }
            }

            return(false);
        }
示例#7
0
        public static bool HasFishQuest(PlayerMobile player, MondainQuester quester, bool inRange)
        {
            //We need to bump the completed quests to the front so we can get credit before the incomplete quests.
            List <ProfessionalFisherQuest> quests = new List <ProfessionalFisherQuest>();

            if (player.Quests != null)
            {
                for (int i = 0; i < player.Quests.Count; i++)
                {
                    if (player.Quests[i] is ProfessionalFisherQuest)
                    {
                        ProfessionalFisherQuest quest = player.Quests[i] as ProfessionalFisherQuest;

                        if (quest.Completed)
                        {
                            quests.Insert(0, quest);
                        }
                        else
                        {
                            quests.Add(quest);
                        }
                    }
                }
            }

            for (int i = 0; i < quests.Count; i++)
            {
                ProfessionalFisherQuest quest = quests[i];

                if (quest.Quester is Mobile && (Mobile)quest.Quester == quester)
                {
                    player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                    quest.InProgress();
                    return(true);
                }

                if (quest.TurnIn == quester || (quest.TurnIn != null && quest.TurnIn.Region != null && quester.Region != null && quest.TurnIn.Region.Name == quester.Region.Name))
                {
                    if (!inRange)
                    {
                        quester.SayTo(player, 1116519); //I can't find your ship! You need to bring it in closer.
                        return(true);
                    }

                    if (quest.Completed)
                    {
                        quest.OnCompleted();
                        player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));
                    }
                    else
                    {
                        player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                        quest.InProgress();
                    }
                    return(true);
                }
            }

            if (!inRange)
            {
                quester.SayTo(player, 1116514); //Bring yer ship around, I might have some work for ye!
                return(true);
            }

            return(false);
        }
示例#8
0
        public static bool HasFishQuest(PlayerMobile player, MondainQuester quester, bool inRange)
        {
            //We need to bump the completed quests to the front so we can get credit before the incomplete quests.
            List<ProfessionalFisherQuest> quests = new List<ProfessionalFisherQuest>();

            if (player.Quests != null)
            {
                for (int i = 0; i < player.Quests.Count; i++)
                {
                    if (player.Quests[i] is ProfessionalFisherQuest)
                    {
                        ProfessionalFisherQuest quest = player.Quests[i] as ProfessionalFisherQuest;

                        if (quest.Completed)
                            quests.Insert(0, quest);
                        else
                            quests.Add(quest);
                    }
                }
            }

            for (int i = 0; i < quests.Count; i++)
            {
                ProfessionalFisherQuest quest = quests[i] as ProfessionalFisherQuest;

                if (quest.Quester is Mobile && (Mobile)quest.Quester == quester)
                {
                    player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                    quest.InProgress();
                    return true;
                }

                if (quest.TurnIn == quester || (quest.TurnIn != null && quest.TurnIn.Region != null && quester.Region != null && quest.TurnIn.Region.Name == quester.Region.Name))
                {
                    if (!inRange)
                    {
                        quester.SayTo(player, 1116519); //I can't find your ship! You need to bring it in closer.
                        return true;
                    }

                    if (quest.Completed)
                    {
                        quest.OnCompleted();
                        player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));
                    }
                    else
                    {
                        player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                        quest.InProgress();
                    }
                    return true;
                }
            }

            if (!inRange)
            {
                quester.SayTo(player, 1116514); //Bring yer ship around, I might have some work for ye!
                return true;
            }

            return false;
        }
示例#9
0
        public static bool InProgress(PlayerMobile player, MondainQuester quester)
        { 
            for (int i = 0; i < player.Quests.Count; i ++)
            {
                BaseQuest quest = player.Quests[i];
				
                if (quest.Quester == null)
                    continue;
					
                if (quest.Quester.GetType() == quester.GetType())
                {
                    if (quest.Completed)		
                    {
                        if (quest.Complete == null && !AnyRewards(quest))
                            quest.GiveRewards();
                        else 
                            player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));
                    }
                    else
                    {
                        player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                        quest.InProgress();
                    }
						
                    return true;
                }
            }
			
            return false;
        }