/// <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)); }
/// <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)); }