Aura.Channel.Skills.Combat.ArrowRevolver.OnCreatureAttacks C# (CSharp) Метод

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

Handles the skill training.
private OnCreatureAttacks ( TargetAction tAction ) : void
tAction TargetAction
Результат void
		private void OnCreatureAttacks(TargetAction tAction)
		{
			if (tAction.AttackerSkillId != SkillId.ArrowRevolver && tAction.AttackerSkillId != SkillId.ArrowRevolver2)
				return;

			var skill = tAction.Attacker.Skills.Get(tAction.AttackerSkillId);
			if (skill == null)
				return;

			var powerRating = tAction.Attacker.GetPowerRating(tAction.Creature);
			var targetDown = tAction.IsKnockBack;
			var targetDead = tAction.Creature.IsDead;

			if (skill.Info.Rank == SkillRank.RF)
			{
				skill.Train(2); // Successfully hit an enemy.

				if (targetDown) skill.Train(3); // Down an enemy with continous hit.
				if (targetDead) skill.Train(4); // Kill an enemy.
			}
			else if (skill.Info.Rank == SkillRank.RE)
			{
				if (targetDown) skill.Train(1); // Down an enemy with continous hit.
				if (targetDead) skill.Train(2); // Kill an enemy.

				if (powerRating == PowerRating.Normal)
				{
					skill.Train(3); // Attack a same level enemy.

					if (targetDown) skill.Train(4); // Down a same level enemy.
					if (targetDead) skill.Train(5); // Kill a same level enemy.
				}

				if (powerRating == PowerRating.Strong)
				{
					if (targetDown) skill.Train(6); // Down a strong enemy.
					if (targetDead) skill.Train(7); // Kill a strong enemy.
				}
			}
			else if (skill.Info.Rank == SkillRank.RD)
			{
				skill.Train(1); // Successfully hit an enemy.

				if (targetDown) skill.Train(2); // Down an enemy with continous hit.
				if (targetDead) skill.Train(3); // Kill an enemy.

				if (powerRating == PowerRating.Normal)
				{
					skill.Train(4); // Attack a same level enemy.

					if (targetDown) skill.Train(5); // Down a same level enemy.
					if (targetDead) skill.Train(6); // Kill a same level enemy.
				}

				if (powerRating == PowerRating.Strong)
				{
					if (targetDown) skill.Train(7); // Down a strong enemy.
					if (targetDead) skill.Train(8); // Kill a strong enemy.
				}
			}
			else if (skill.Info.Rank >= SkillRank.RC && skill.Info.Rank <= SkillRank.RB)
			{
				if (powerRating == PowerRating.Normal)
				{
					skill.Train(1); // Attack a same level enemy.

					if (targetDown) skill.Train(2); // Down a same level enemy.
					if (targetDead) skill.Train(3); // Kill a same level enemy.
				}
				else if (powerRating == PowerRating.Strong)
				{
					if (targetDown) skill.Train(4); // Down a strong enemy.
					if (targetDead) skill.Train(5); // Kill a strong enemy.
				}
				else if (powerRating == PowerRating.Awful)
				{
					if (targetDown) skill.Train(6); // Down an awful enemy.
					if (targetDead) skill.Train(7); // Kill an awful enemy.
				}
			}
			else if (skill.Info.Rank >= SkillRank.RA && skill.Info.Rank <= SkillRank.R8)
			{
				if (powerRating == PowerRating.Normal)
				{
					if (targetDown) skill.Train(1); // Down a same level enemy.
					if (targetDead) skill.Train(2); // Kill a same level enemy.
				}
				else if (powerRating == PowerRating.Strong)
				{
					if (targetDown) skill.Train(3); // Down a strong enemy.
					if (targetDead) skill.Train(4); // Kill a strong enemy.
				}
				else if (powerRating == PowerRating.Awful)
				{
					if (targetDown) skill.Train(5); // Down an awful enemy.
					if (targetDead) skill.Train(6); // Kill an awful enemy.
				}
				else if (powerRating == PowerRating.Boss && skill.Info.Rank == SkillRank.R8)
				{
					if (targetDown) skill.Train(7); // Down a boss level enemy.
					if (targetDead) skill.Train(8); // Kill a boss level enemy.
				}
			}
			else if (skill.Info.Rank == SkillRank.R7)
			{
				if (powerRating == PowerRating.Normal)
				{
					if (targetDead) skill.Train(1); // Kill a same level enemy.
				}
				else if (powerRating == PowerRating.Strong)
				{
					if (targetDown) skill.Train(2); // Down a strong enemy.
					if (targetDead) skill.Train(3); // Kill a strong enemy.
				}
				else if (powerRating == PowerRating.Awful)
				{
					if (targetDown) skill.Train(4); // Down an awful enemy.
					if (targetDead) skill.Train(5); // Kill an awful enemy.
				}
				else if (powerRating == PowerRating.Boss)
				{
					if (targetDown) skill.Train(6); // Down a boss level enemy.
					if (targetDead) skill.Train(7); // Kill a boss level enemy.
				}
			}
			else if (skill.Info.Rank >= SkillRank.R6 && skill.Info.Rank <= SkillRank.R1)
			{
				if (powerRating == PowerRating.Strong)
				{
					if (targetDown) skill.Train(1); // Down a strong enemy.
					if (targetDead) skill.Train(2); // Kill a strong enemy.
				}
				else if (powerRating == PowerRating.Awful)
				{
					if (targetDown) skill.Train(3); // Down an awful enemy.
					if (targetDead) skill.Train(4); // Kill an awful enemy.
				}
				else if (powerRating == PowerRating.Boss)
				{
					if (targetDown) skill.Train(5); // Down a boss level enemy.
					if (targetDead) skill.Train(6); // Kill a boss level enemy.
				}
			}
		}