Exemple #1
0
        /// <summary>
        /// Invoked when scholar receives an item.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="item"></param>
        /// <returns></returns>
        public override bool ReceiveItem(GameLiving source, InventoryItem item)
        {
            GamePlayer player = source as GamePlayer;

            if (player != null)
            {
                lock (QuestListToGive.SyncRoot)
                {
                    foreach (AbstractQuest quest in player.QuestList)
                    {
                        if (quest is ArtifactTurnInQuest)
                        {
                            ArtifactTurnInQuest aquest = quest as ArtifactTurnInQuest;

                            if (HasQuest(aquest.GetType()) != null && aquest.ReceiveItem(player, this, item))
                            {
                                return(true);
                            }
                        }
                    }
                }
            }

            return(base.ReceiveItem(source, item));
        }
Exemple #2
0
        /// <summary>
        /// When someone whispers to this scholar
        /// </summary>
        /// <param name="source"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, string text)
        {
            GamePlayer player = source as GamePlayer;

            if (player != null)
            {
                lock (QuestListToGive.SyncRoot)
                {
                    // Start new quest...

                    foreach (ArtifactTurnInQuest quest in QuestListToGive)
                    {
                        if (text.ToLower() == "interested" && quest.CheckQuestQualification(player))
                        {
                            ArtifactTurnInQuest newQuest = new ArtifactTurnInQuest(player, this.Name);
                            newQuest.Step = 0;
                            player.AddQuest(newQuest);
                            player.Out.SendQuestListUpdate();
                            SayTo(player, "Since you are still interested, simply hand me your Artifact and I shall begin.");
                            return(true);
                        }
                    }

                    // ...or continuing a quest?

                    foreach (AbstractQuest quest in player.QuestList)
                    {
                        if (quest is ArtifactTurnInQuest && HasQuest(quest.GetType()) != null)
                        {
                            if ((quest as ArtifactTurnInQuest).WhisperReceive(player, this, text))
                            {
                                return(true);
                            }
                        }
                    }
                }
            }
            return(base.WhisperReceive(source, text));
        }