Esempio n. 1
0
        protected override List <MLQuest> ConstructQuestList()
        {
            if (m_MLQuest == null)
            {
                Region reg  = Region;
                Type[] list = reg.IsPartOf("Haven Island") ? m_MLQuestTypesNH : m_MLQuestTypes;

                int randomIdx = Utility.Random(list.Length);

                for (int i = 0; i < list.Length; ++i)
                {
                    Type questType = list[randomIdx];

                    MLQuest quest = MLQuestSystem.FindQuest(questType);

                    if (quest != null)
                    {
                        bool okay = true;

                        foreach (BaseObjective obj in quest.Objectives)
                        {
                            if (obj is EscortObjective && ((EscortObjective)obj).Destination.Contains(reg))
                            {
                                okay = false;                                 // We're already there!
                                break;
                            }
                        }

                        if (okay)
                        {
                            m_MLQuest = quest;
                            break;
                        }
                    }
                    else if (MLQuestSystem.Debug)
                    {
                        Console.WriteLine("Warning: Escortable cannot be assigned quest type '{0}', it is not registered", questType.Name);
                    }

                    randomIdx = (randomIdx + 1) % list.Length;
                }

                if (m_MLQuest == null)
                {
                    if (MLQuestSystem.Debug)
                    {
                        Console.WriteLine("Warning: No suitable quest found for escort {0}", Serial);
                    }

                    return(null);
                }
            }

            List <MLQuest> result = new List <MLQuest>
            {
                m_MLQuest
            };

            return(result);
        }
Esempio n. 2
0
        public void AddObjectives(MLQuest quest)
        {
            AddHtmlLocalized(98, 140, 312, 16, 1049073, 0x2710); // Objective:
            AddHtmlLocalized(
                98,
                156,
                312,
                16,
                quest.ObjectiveType == ObjectiveType.All ? 1072208 : 1072209,
                0x2710
                ); // All of the following / Only one of the following

            var y = 172;

            foreach (var objective in quest.Objectives)
            {
                objective.WriteToGump(this, ref y);

                if (objective.IsTimed)
                {
                    if (objective is CollectObjective)
                    {
                        y -= 16;
                    }

                    BaseObjectiveInstance.WriteTimeRemaining(this, ref y, objective.Duration);
                }
            }
        }
Esempio n. 3
0
		public MLQuestInstance( MLQuest quest, IQuestGiver quester, PlayerMobile player )
		{
			m_Quest = quest;

			m_Quester = quester;
			m_QuesterType = ( quester == null ) ? null : quester.GetType();
			m_Player = player;

			m_Accepted = DateTime.UtcNow;
			m_Flags = MLQuestInstanceFlags.None;

			m_ObjectiveInstances = new BaseObjectiveInstance[quest.Objectives.Count];

			BaseObjectiveInstance obj;
			bool timed = false;

			for ( int i = 0; i < quest.Objectives.Count; ++i )
			{
				m_ObjectiveInstances[i] = obj = quest.Objectives[i].CreateInstance( this );

				if ( obj.IsTimed )
					timed = true;
			}

			Register();

			if ( timed )
				m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 5 ), TimeSpan.FromSeconds( 5 ), Slice );
		}
Esempio n. 4
0
        public QuestLogDetailedGump(MLQuestInstance instance, bool closeGumps)
            : base(1046026)               // Quest Log
        {
            m_Instance   = instance;
            m_CloseGumps = closeGumps;

            PlayerMobile pm    = instance.Player;
            MLQuest      quest = instance.Quest;

            if (closeGumps)
            {
                CloseOtherGumps(pm);
                pm.CloseGump(typeof(QuestLogDetailedGump));
            }

            SetTitle(quest.Title);
            RegisterButton(ButtonPosition.Left, ButtonGraphic.Resign, 1);
            RegisterButton(ButtonPosition.Right, ButtonGraphic.Okay, 2);

            SetPageCount(3);

            BuildPage();
            AddDescription(quest);

            if (instance.Failed)                                                  // only displayed on the first page
            {
                AddHtmlLocalized(160, 80, 250, 16, 500039, 0x3C00, false, false); // Failed!
            }
            BuildPage();
            AddObjectivesProgress(instance);

            BuildPage();
            AddRewardsPage(quest);
        }
Esempio n. 5
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            if (reader.ReadBool())
            {
                m_DestinationString = reader.ReadString(); // NOTE: We cannot EDI.Find here, regions have not yet been loaded :-(
            }
            if (reader.ReadBool())
            {
                m_DeleteTime  = reader.ReadDeltaTime();
                m_DeleteTimer = new DeleteTimer(this, m_DeleteTime - DateTime.UtcNow);
                m_DeleteTimer.Start();
            }

            if (version >= 1)
            {
                MLQuest quest = MLQuestSystem.ReadQuestRef(reader);

                if (MLQuestSystem.Enabled && quest != null && !StaticMLQuester)
                {
                    m_MLQuest = quest;
                }
            }
        }
Esempio n. 6
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_RequiredQuest = MLQuestSystem.ReadQuestRef(reader);
            m_Message       = TextDefinition.Deserialize(reader);
        }
Esempio n. 7
0
		protected override List<MLQuest> ConstructQuestList()
		{
			if ( m_MLQuest == null )
			{
				Region reg = Region;
				Type[] list = reg.IsPartOf( "Haven Island" ) ? m_MLQuestTypesNH : m_MLQuestTypes;

				int randomIdx = Utility.Random( list.Length );

				for ( int i = 0; i < list.Length; ++i )
				{
					Type questType = list[randomIdx];

					MLQuest quest = MLQuestSystem.FindQuest( questType );

					if ( quest != null )
					{
						bool okay = true;

						foreach ( BaseObjective obj in quest.Objectives )
						{
							if ( obj is EscortObjective && ( (EscortObjective)obj ).Destination.Contains( reg ) )
							{
								okay = false; // We're already there!
								break;
							}
						}

						if ( okay )
						{
							m_MLQuest = quest;
							break;
						}
					}
					else if ( MLQuestSystem.Debug )
					{
						Console.WriteLine( "Warning: Escortable cannot be assigned quest type '{0}', it is not registered", questType.Name );
					}

					randomIdx = ( randomIdx + 1 ) % list.Length;
				}

				if ( m_MLQuest == null )
				{
					if ( MLQuestSystem.Debug )
						Console.WriteLine( "Warning: No suitable quest found for escort {0}", Serial );

					return null;
				}
			}

			List<MLQuest> result = new List<MLQuest>();
			result.Add( m_MLQuest );

			return result;
		}
        public void AddRewards(MLQuest quest, int x, int y, int spacing)
        {
            int xReward = x + 28;

            foreach (BaseReward reward in quest.Rewards)
            {
                AddImage(x, y + 1, 0x4B9);
                reward.WriteToGump(this, xReward, ref y);
                y += spacing;
            }
        }
Esempio n. 9
0
 public void AddDescription(MLQuest quest)
 {
     AddHtmlLocalized(
         98,
         140,
         312,
         16,
         quest.IsChainTriggered || quest.NextQuest != null ? 1075024 : 1072202,
         0x2710
         ); // Description [(quest chain)]
     TextDefinition.AddHtmlText(this, 98, 156, 312, 240, quest.Description, false, true, 0x15F90, 0xBDE784);
 }
Esempio n. 10
0
        public QuestConversationGump(MLQuest quest, PlayerMobile pm, TextDefinition text) : base(3006156)            // Quest Conversation
        {
            CloseOtherGumps(pm);

            SetTitle(quest.Title);
            RegisterButton(ButtonPosition.Right, ButtonGraphic.Close, 3);

            SetPageCount(1);

            BuildPage();
            AddConversation(text);
        }
        public void AddRewards(MLQuest quest)           // For the claim rewards gump
        {
            int y = 146;

            if (quest.Rewards.Count > 1)
            {
                // TODO: Is this what this is for? Does "Only one of the following" occur?
                AddHtmlLocalized(100, 140, 312, 16, 1072208, 0x2710, false, false);                   // All of the following
                y += 16;
            }

            AddRewards(quest, 107, y, 26);
        }
Esempio n. 12
0
		public QuestConversationGump( MLQuest quest, PlayerMobile pm, TextDefinition text )
			: base( 3006156 ) // Quest Conversation
		{
			CloseOtherGumps( pm );

			SetTitle( quest.Title );
			RegisterButton( ButtonPosition.Right, ButtonGraphic.Close, 3 );

			SetPageCount( 1 );

			BuildPage();
			AddConversation( text );
		}
        public void AddObjectivesProgress(MLQuestInstance instance)
        {
            MLQuest quest = instance.Quest;

            AddHtmlLocalized(98, 140, 312, 16, 1049073, 0x2710, false, false);                                                        // Objective:
            AddHtmlLocalized(98, 156, 312, 16, (quest.ObjectiveType == ObjectiveType.All) ? 1072208 : 1072209, 0x2710, false, false); // All of the following / Only one of the following

            int y = 172;

            foreach (BaseObjectiveInstance objInstance in instance.Objectives)
            {
                objInstance.WriteToGump(this, ref y);
            }
        }
        public void AddRewardsPage(MLQuest quest)                              // For the quest log/offer gumps
        {
            AddHtmlLocalized(98, 140, 312, 16, 1072201, 0x2710, false, false); // Reward

            int y = 162;

            if (quest.Rewards.Count > 1)
            {
                // TODO: Is this what this is for? Does "Only one of the following" occur?
                AddHtmlLocalized(98, 156, 312, 16, 1072208, 0x2710, false, false);                   // All of the following
                y += 16;
            }

            AddRewards(quest, 105, y, 16);
        }
        public QuestRewardGump(MLQuestInstance instance) : base(1072201)            // Reward
        {
            m_Instance = instance;

            MLQuest      quest = instance.Quest;
            PlayerMobile pm    = instance.Player;

            CloseOtherGumps(pm);

            SetTitle(quest.Title);
            RegisterButton(ButtonPosition.Left, ButtonGraphic.Accept, 1);

            SetPageCount(1);

            BuildPage();
            AddRewards(quest);
        }
Esempio n. 16
0
        public void ConsumeNeeded(PlayerMobile pm)
        {
            MLQuestContext context = MLQuestSystem.GetContext(pm);

            if (context != null)
            {
                foreach (Type type in Needed)
                {
                    MLQuest quest = MLQuestSystem.FindQuest(type);

                    if (quest != null)
                    {
                        context.RemoveDoneQuest(quest);
                    }
                }
            }
        }
Esempio n. 17
0
        public void TalkTo(PlayerMobile pm)
        {
            if (pm == null || m_Timer?.Running == true)
            {
                return;
            }

            int completed = CompletedCount(pm);

            if (completed == Needed.Length)
            {
                m_Timer = new InternalTimer(this, pm, Complete, true);
            }
            else if (completed == 0)
            {
                m_Timer = new InternalTimer(this, pm, Offer, false);
            }
            else
            {
                List <TextDefinition> conversation = new List <TextDefinition>();
                conversation.AddRange(Incomplete);

                MLQuestContext context = MLQuestSystem.GetContext(pm);

                if (context != null)
                {
                    foreach (Type type in Needed)
                    {
                        MLQuest quest = MLQuestSystem.FindQuest(type);

                        if (quest == null || context.HasDoneQuest(quest))
                        {
                            continue;
                        }

                        conversation.Add(quest.Title);
                    }
                }

                m_Timer = new InternalTimer(this, pm, conversation, false);
            }

            m_Timer.Start();
        }
Esempio n. 18
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.Write((int)2); // version
            writer.Write(MLQuestSystem.Contexts.Count);

            foreach (MLQuestContext context in MLQuestSystem.Contexts.Values)
            {
                context.Serialize(writer);
            }

            writer.Write(MLQuestSystem.Quests.Count);

            foreach (MLQuest quest in MLQuestSystem.Quests.Values)
            {
                MLQuest.Serialize(writer, quest);
            }
        }
        public QuestReportBackGump(MLQuestInstance instance) : base(3006156)            // Quest Conversation
        {
            m_Instance = instance;

            MLQuest      quest = instance.Quest;
            PlayerMobile pm    = instance.Player;

            // TODO: Check close sequence
            CloseOtherGumps(pm);

            SetTitle(quest.Title);
            RegisterButton(ButtonPosition.Left, ButtonGraphic.Continue, 4);
            RegisterButton(ButtonPosition.Right, ButtonGraphic.Close, 3);

            SetPageCount(1);

            BuildPage();
            AddConversation(quest.CompletionMessage);
        }
Esempio n. 20
0
        private int CompletedCount(PlayerMobile pm)
        {
            MLQuestContext context = MLQuestSystem.GetContext(pm);

            if (context == null)
            {
                return(0);
            }

            int result = 0;

            foreach (Type type in Needed)
            {
                MLQuest quest = MLQuestSystem.FindQuest(type);

                if (quest == null || context.HasDoneQuest(quest))
                {
                    ++result;
                }
            }

            return(result);
        }
        public QuestOfferGump(MLQuest quest, IQuestGiver quester, PlayerMobile pm) : base(1049010)            // Quest Offer
        {
            m_Quest   = quest;
            m_Quester = quester;

            CloseOtherGumps(pm);
            pm.CloseGump(typeof(QuestOfferGump));

            SetTitle(quest.Title);
            RegisterButton(ButtonPosition.Left, ButtonGraphic.Accept, 1);
            RegisterButton(ButtonPosition.Right, ButtonGraphic.Refuse, 2);

            SetPageCount(3);

            BuildPage();
            AddDescription(quest);

            BuildPage();
            AddObjectives(quest);

            BuildPage();
            AddRewardsPage(quest);
        }
Esempio n. 22
0
		public QuestOfferGump( MLQuest quest, IQuestGiver quester, PlayerMobile pm )
			: base( 1049010 ) // Quest Offer
		{
			m_Quest = quest;
			m_Quester = quester;

			CloseOtherGumps( pm );
			pm.CloseGump( typeof( QuestOfferGump ) );

			SetTitle( quest.Title );
			RegisterButton( ButtonPosition.Left, ButtonGraphic.Accept, 1 );
			RegisterButton( ButtonPosition.Right, ButtonGraphic.Refuse, 2 );

			SetPageCount( 3 );

			BuildPage();
			AddDescription( quest );

			BuildPage();
			AddObjectives( quest );

			BuildPage();
			AddRewardsPage( quest );
		}
Esempio n. 23
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version  = reader.ReadInt();
            int contexts = reader.ReadInt();

            for (int i = 0; i < contexts; ++i)
            {
                MLQuestContext context = new MLQuestContext(reader, version);

                if (context.Owner != null)
                {
                    MLQuestSystem.Contexts[context.Owner] = context;
                }
            }

            int quests = reader.ReadInt();

            for (int i = 0; i < quests; ++i)
            {
                MLQuest.Deserialize(reader, version);
            }
        }
Esempio n. 24
0
		public void AddRewards( MLQuest quest ) // For the claim rewards gump
		{
			int y = 146;

			if ( quest.Rewards.Count > 1 )
			{
				// TODO: Is this what this is for? Does "Only one of the following" occur?
				AddHtmlLocalized( 100, 140, 312, 16, 1072208, 0x2710, false, false ); // All of the following
				y += 16;
			}

			AddRewards( quest, 107, y, 26 );
		}
Esempio n. 25
0
		public void AddRewards( MLQuest quest, int x, int y, int spacing )
		{
			int xReward = x + 28;

			foreach ( BaseReward reward in quest.Rewards )
			{
				AddImage( x, y + 1, 0x4B9 );
				reward.WriteToGump( this, xReward, ref y );
				y += spacing;
			}
		}
Esempio n. 26
0
		public bool HasDoneQuest( MLQuest quest )
		{
			foreach ( MLDoneQuestInfo info in m_DoneQuests )
			{
				if ( info.m_Quest == quest )
					return true;
			}

			return false;
		}
Esempio n. 27
0
		public static void WriteQuestRef( GenericWriter writer, MLQuest quest )
		{
			writer.Write( ( quest != null && quest.SaveEnabled ) ? quest.GetType().FullName : null );
		}
Esempio n. 28
0
		private static bool FindQuest( IQuestGiver quester, PlayerMobile pm, MLQuestContext context, out MLQuest quest, out MLQuestInstance entry )
		{
			quest = null;
			entry = null;

			List<MLQuest> quests = quester.MLQuests;
			Type questerType = quester.GetType();

			// 1. Check quests in progress with this NPC (overriding deliveries is intended)
			if ( context != null )
			{
				foreach ( MLQuest questEntry in quests )
				{
					MLQuestInstance instance = context.FindInstance( questEntry );

					if ( instance != null && ( instance.Quester == quester || ( !questEntry.IsEscort && instance.QuesterType == questerType ) ) )
					{
						entry = instance;
						quest = questEntry;
						return true;
					}
				}
			}

			// 2. Check deliveries (overriding chain offers is intended)
			if ( ( entry = HandleDelivery( pm, quester, questerType ) ) != null )
			{
				quest = entry.Quest;
				return true;
			}

			// 3. Check chain quest offers
			if ( context != null )
			{
				foreach ( MLQuest questEntry in quests )
				{
					if ( questEntry.IsChainTriggered && context.ChainOffers.Contains( questEntry ) )
					{
						quest = questEntry;
						return true;
					}
				}
			}

			// 4. Random quest
			quest = RandomStarterQuest( quester, pm, context );

			return ( quest != null );
		}
Esempio n. 29
0
		public static void Register( MLQuest quest, params Type[] questerTypes )
		{
			Register( quest.GetType(), quest );

			foreach ( Type questerType in questerTypes )
				RegisterQuestGiver( quest, questerType );
		}
Esempio n. 30
0
		public void AddDescription( MLQuest quest )
		{
			AddHtmlLocalized( 98, 140, 312, 16, ( quest.IsChainTriggered || quest.NextQuest != null ) ? 1075024 : 1072202, 0x2710, false, false ); // Description [(quest chain)]
			TextDefinition.AddHtmlText( this, 98, 156, 312, 240, quest.Description, false, true, 0x15F90, 0xBDE784 );
		}
Esempio n. 31
0
		public void RemoveDoneQuest( MLQuest quest )
		{
			for ( int i = m_DoneQuests.Count - 1; i >= 0; --i )
			{
				MLDoneQuestInfo info = m_DoneQuests[i];

				if ( info.m_Quest == quest )
					m_DoneQuests.RemoveAt( i );
			}
		}
Esempio n. 32
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			if (reader.ReadBool())
				m_DestinationString = reader.ReadString(); // NOTE: We cannot EDI.Find here, regions have not yet been loaded :-(

			if (reader.ReadBool())
			{
				m_DeleteTime = reader.ReadDeltaTime();
				m_DeleteTimer = new DeleteTimer(this, m_DeleteTime - DateTime.UtcNow);
				m_DeleteTimer.Start();
			}

			if ( version >= 1 )
			{
				MLQuest quest = MLQuestSystem.ReadQuestRef( reader );

				if ( MLQuestSystem.Enabled && quest != null && !StaticMLQuester )
					m_MLQuest = quest;
			}
		}
        public QuestCancelConfirmGump(MLQuestInstance instance, bool closeGumps)
            : base(120, 50)
        {
            m_Instance   = instance;
            m_CloseGumps = closeGumps;

            if (closeGumps)
            {
                BaseQuestGump.CloseOtherGumps(instance.Player);
            }

            AddPage(0);

            Closable = false;

            AddImageTiled(0, 0, 348, 262, 0xA8E);
            AddAlphaRegion(0, 0, 348, 262);

            AddImage(0, 15, 0x27A8);
            AddImageTiled(0, 30, 17, 200, 0x27A7);
            AddImage(0, 230, 0x27AA);

            AddImage(15, 0, 0x280C);
            AddImageTiled(30, 0, 300, 17, 0x280A);
            AddImage(315, 0, 0x280E);

            AddImage(15, 244, 0x280C);
            AddImageTiled(30, 244, 300, 17, 0x280A);
            AddImage(315, 244, 0x280E);

            AddImage(330, 15, 0x27A8);
            AddImageTiled(330, 30, 17, 200, 0x27A7);
            AddImage(330, 230, 0x27AA);

            AddImage(333, 2, 0x2716);
            AddImage(333, 248, 0x2716);
            AddImage(2, 248, 0x2716);
            AddImage(2, 2, 0x2716);

            AddHtmlLocalized(25, 22, 200, 20, 1049000, 0x7D00, false, false);               // Confirm Quest Cancellation
            AddImage(25, 40, 0xBBF);

            /*
             * This quest will give you valuable information, skills
             * and equipment that will help you advance in the
             * game at a quicker pace.<BR>
             * <BR>
             * Are you certain you wish to cancel at this time?
             */
            AddHtmlLocalized(25, 55, 300, 120, 1060836, 0xFFFFFF, false, false);

            MLQuest quest = instance.Quest;

            if (quest.IsChainTriggered || quest.NextQuest != null)
            {
                AddRadio(25, 145, 0x25F8, 0x25FB, false, 2);
                AddHtmlLocalized(60, 150, 280, 20, 1075023, 0xFFFFFF, false, false);                   // Yes, I want to quit this entire chain!
            }

            AddRadio(25, 180, 0x25F8, 0x25FB, true, 1);
            AddHtmlLocalized(60, 185, 280, 20, 1049005, 0xFFFFFF, false, false);               // Yes, I really want to quit this quest!

            AddRadio(25, 215, 0x25F8, 0x25FB, false, 0);
            AddHtmlLocalized(60, 220, 280, 20, 1049006, 0xFFFFFF, false, false);               // No, I don't want to quit.

            AddButton(265, 220, 0xF7, 0xF8, 7, GumpButtonType.Reply, 0);
        }
Esempio n. 34
0
		public bool HasDoneQuest( MLQuest quest, out DateTime nextAvailable )
		{
			nextAvailable = DateTime.MinValue;

			foreach ( MLDoneQuestInfo info in m_DoneQuests )
			{
				if ( info.m_Quest == quest )
				{
					nextAvailable = info.m_NextAvailable;
					return true;
				}
			}

			return false;
		}
Esempio n. 35
0
		public void SetDoneQuest( MLQuest quest )
		{
			SetDoneQuest( quest, DateTime.MinValue );
		}
Esempio n. 36
0
 public MLQuestTeleporter(Point3D pointDest, Map mapDest, MLQuest quest, TextDefinition message)
     : base(pointDest, mapDest)
 {
     m_RequiredQuest = quest;
     m_Message       = message;
 }
Esempio n. 37
0
		public void AddRewardsPage( MLQuest quest ) // For the quest log/offer gumps
		{
			AddHtmlLocalized( 98, 140, 312, 16, 1072201, 0x2710, false, false ); // Reward

			int y = 162;

			if ( quest.Rewards.Count > 1 )
			{
				// TODO: Is this what this is for? Does "Only one of the following" occur?
				AddHtmlLocalized( 98, 156, 312, 16, 1072208, 0x2710, false, false ); // All of the following
				y += 16;
			}

			AddRewards( quest, 105, y, 16 );
		}
Esempio n. 38
0
 public MLQuestTeleporter(Point3D pointDest, Map mapDest, MLQuest quest, TextDefinition message)
     : base(pointDest, mapDest)
 {
     m_RequiredQuest = quest;
     m_Message = message;
 }
Esempio n. 39
0
		public void AddObjectives( MLQuest quest )
		{
			AddHtmlLocalized( 98, 140, 312, 16, 1049073, 0x2710, false, false ); // Objective:
			AddHtmlLocalized( 98, 156, 312, 16, ( quest.ObjectiveType == ObjectiveType.All ) ? 1072208 : 1072209, 0x2710, false, false ); // All of the following / Only one of the following

			int y = 172;

			foreach ( BaseObjective objective in quest.Objectives )
			{
				objective.WriteToGump( this, ref y );

				if ( objective.IsTimed )
				{
					if ( objective is CollectObjective )
						y -= 16;

					BaseObjectiveInstance.WriteTimeRemaining( this, ref y, objective.Duration );
				}
			}
		}
Esempio n. 40
0
		public void SetDoneQuest( MLQuest quest, DateTime nextAvailable )
		{
			foreach ( MLDoneQuestInfo info in m_DoneQuests )
			{
				if ( info.m_Quest == quest )
				{
					info.m_NextAvailable = nextAvailable;
					return;
				}
			}

			m_DoneQuests.Add( new MLDoneQuestInfo( quest, nextAvailable ) );
		}
Esempio n. 41
0
			public MLDoneQuestInfo( MLQuest quest, DateTime nextAvailable )
			{
				m_Quest = quest;
				m_NextAvailable = nextAvailable;
			}
Esempio n. 42
0
		public bool IsDoingQuest( MLQuest quest )
		{
			return ( FindInstance( quest ) != null );
		}
Esempio n. 43
0
		private static void RegisterQuestGiver( MLQuest quest, Type questerType )
		{
			List<MLQuest> questList;

			if ( !m_QuestGivers.TryGetValue( questerType, out questList ) )
				m_QuestGivers[questerType] = questList = new List<MLQuest>();

			questList.Add( quest );
		}
Esempio n. 44
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_RequiredQuest = MLQuestSystem.ReadQuestRef(reader);
            m_Message = TextDefinition.Deserialize(reader);
        }
Esempio n. 45
0
		private static void Register( Type type, MLQuest quest )
		{
			m_Quests[type] = quest;
		}
Esempio n. 46
0
		public MLQuestInstance FindInstance( MLQuest quest )
		{
			foreach ( MLQuestInstance instance in m_QuestInstances )
			{
				if ( instance.Quest == quest )
					return instance;
			}

			return null;
		}