Aura.Channel.World.Entities.Creatures.CreatureQuests.EndQuest C# (CSharp) Méthode

EndQuest() private méthode

Completes and removes quest, if it exists, giving the rewards in the process, if warranted.
private EndQuest ( Aura.Channel.World.Quests.Quest quest, int rewardGroup, bool owl ) : bool
quest Aura.Channel.World.Quests.Quest
rewardGroup int Reward group to use, set to -1 for no rewards.
owl bool Show owl delivering the rewards?
Résultat bool
		private bool EndQuest(Quest quest, int rewardGroup, bool owl)
		{
			var result = quest.GetResult();

			// Increase PTJ done/success
			if (quest.Data.Type == QuestType.Deliver)
				this.ModifyPtjTrackRecord(quest.Data.PtjType, +1, (result == QuestResult.Perfect ? +1 : 0));

			// Rewards
			if (rewardGroup != -1)
			{
				var rewards = quest.Data.GetRewards(rewardGroup, result);
				if (rewards.Count == 0)
					Log.Warning("CreatureQuests.EndQuest: No rewards for group '{0}' at result '{1}' in quest '{2}'.", rewardGroup, result, quest.Id);
				else
					this.GiveRewards(quest, rewards, owl);
			}

			// Remove from quest log.
			Send.QuestClear(_creature, quest.UniqueId);

			// Unset party quest
			if (quest.Data.IsPartyQuest)
				_creature.Party.UnsetPartyQuest();

			// Update PTJ stuff and stop clock
			if (quest.Data.Type == QuestType.Deliver)
			{
				var record = this.GetPtjTrackRecord(quest.Data.PtjType);

				Send.QuestUpdatePtj(_creature, quest.Data.PtjType, record.Done, record.Success);
				Send.QuestEndPtj(_creature);
			}

			return true;
		}