Aura.Channel.Skills.Music.PlayingInstrument.AfterPlay C# (CSharp) Method

AfterPlay() protected method

Called when completing (training).
protected AfterPlay ( Creature creature, Skill skill, int quality ) : void
creature Aura.Channel.World.Entities.Creature
skill Skill
quality int
return void
		protected virtual void AfterPlay(Creature creature, Skill skill, int quality)
		{
			var playingQuality = this.GetQualityRating(quality);

			// Success unless total failure, condition 2 for Novice.
			if (skill.Info.Rank == SkillRank.Novice && playingQuality != PlayingQuality.VeryBad)
				skill.Train(2); // Use the skill successfully.

			// All ranks above F have the same 2 first conditions.
			if (skill.Info.Rank >= SkillRank.RF && skill.Info.Rank <= SkillRank.R1)
			{
				if (playingQuality >= PlayingQuality.Bad)
					skill.Train(1); // Use the skill successfully.

				if (playingQuality == PlayingQuality.VeryGood)
					skill.Train(2); // Get a very good result.
			}

			// Training by failing is possible between F and 6.
			if (skill.Info.Rank >= SkillRank.RF && skill.Info.Rank <= SkillRank.R6 && playingQuality == PlayingQuality.Bad)
				skill.Train(3); // Fail at using the skill.

			// Training by failing badly is possible at F and E.
			if (skill.Info.Rank >= SkillRank.RF && skill.Info.Rank <= SkillRank.RE && playingQuality == PlayingQuality.VeryBad)
				skill.Train(4); // Get a horrible result.

			// Cancel special motion
			if (playingQuality == PlayingQuality.VeryGood)
				Send.CancelMotion(creature);

			// TODO: "Use the skill successfully to grow crops faster."
			// TODO: "Use a music buff skill."
		}