Aura.Channel.Skills.Life.Cooking.OnPlayerUsesItem C# (CSharp) Метод

OnPlayerUsesItem() приватный Метод

Handles part of the skill training.
private OnPlayerUsesItem ( Creature creature, Item item ) : void
creature Aura.Channel.World.Entities.Creature
item Item
Результат void
		private void OnPlayerUsesItem(Creature creature, Item item)
		{
			// Get skill
			var skill = creature.Skills.Get(SkillId.Cooking);
			if (skill == null)
				return;

			// Check if item is food
			if (!item.HasTag("/food/"))
				return;

			// Get quality and method
			var method = item.MetaData1.GetString("MKACT");
			if (method == null)
				return;

			var quality = item.MetaData1.GetInt("QUAL");
			var rating = this.GetRating(quality);
			var isDelicious = (rating >= DeliciousRating);

			if (skill.Info.Rank == SkillRank.RF)
			{
				if (method == CookingMethod.Simmering)
					skill.Train(3); // Eat a simmered dish without sharing.
				else if (method == CookingMethod.Baking)
				{
					if (isDelicious)
						skill.Train(4); // Eat a deliciously baked dish.
				}

				return;
			}

			if (skill.Info.Rank == SkillRank.RE)
			{
				if (method == CookingMethod.Simmering)
				{
					if (isDelicious)
						skill.Train(3); // Eat a deliciously simmered dish.
				}

				return;
			}

			if (skill.Info.Rank == SkillRank.RD)
			{
				if (method == CookingMethod.Boiling)
					skill.Train(3); // Eat a boiled dish without sharing.
				else if (method == CookingMethod.Simmering)
				{
					if (isDelicious)
						skill.Train(4); // Eat a deliciously simmered dish.
				}

				return;
			}

			if (skill.Info.Rank == SkillRank.RC)
			{
				if (method == CookingMethod.Boiling)
				{
					if (isDelicious)
						skill.Train(3); // Eat a deliciously boiled dish.
				}

				return;
			}

			if (skill.Info.Rank == SkillRank.RB)
			{
				if (method == CookingMethod.DeepFrying)
					skill.Train(3); // Eat a deep-fried dish without sharing.
				else if (method == CookingMethod.Boiling)
				{
					if (isDelicious)
						skill.Train(4); // Eat a deliciously boiled dish.
				}

				return;
			}

			if (skill.Info.Rank == SkillRank.RA)
			{
				if (method == CookingMethod.StirFrying)
					skill.Train(3); // Eat a stir-fried dish without sharing.
				else if (method == CookingMethod.DeepFrying)
				{
					if (isDelicious)
						skill.Train(4); // Eat a deliciously deep-fried dish.
				}

				return;
			}

			if (skill.Info.Rank >= SkillRank.R9 && skill.Info.Rank <= SkillRank.R7)
			{
				if (method == CookingMethod.StirFrying)
				{
					if (isDelicious)
						skill.Train(3); // Eat a deliciously stir-fried dish.
				}

				return;
			}

			// TODO: Jam and pies don't have jam and pie tags,
			//   how to identify them for the last two ranks
			//   without hard-coded ids?

			if (skill.Info.Rank == SkillRank.R6)
			{
				//if (item.HasTag("/jam/"))
				//	skill.Train(3); // Eat Jam

				return;
			}

			if (skill.Info.Rank == SkillRank.R5)
			{
				//if (item.HasTag("/pie/"))
				//	skill.Train(3); // Eat a Pie

				return;
			}
		}