/// <summary> /// Handles events. /// </summary> /// <param name="e"></param> /// <param name="sender"></param> /// <param name="args"></param> public override void Notify(DOLEvent e, object sender, EventArgs args) { base.Notify(e, sender, args); if (e == GamePlayerEvent.QuestRewardChosen) { QuestRewardChosenEventArgs rewardArgs = args as QuestRewardChosenEventArgs; if (rewardArgs == null) { return; } // Check if this particular quest has been finished. if (QuestMgr.GetIDForQuestType(this.GetType()) != rewardArgs.QuestID) { return; } for (int reward = 0; reward < rewardArgs.CountChosen; ++reward) { Rewards.Choose(rewardArgs.ItemsChosen[reward]); } //k109: Handle the player not choosing a reward. if (Rewards.ChoiceOf > 0 && rewardArgs.CountChosen <= 0) { QuestPlayer.Out.SendMessage(LanguageMgr.GetTranslation(QuestPlayer.Client, "RewardQuest.Notify"), eChatType.CT_System, eChatLoc.CL_ChatWindow); return; } FinishQuest(); } }