Example #1
0
        /// <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();
            }
        }