Aura.Channel.Skills.Combat.Smash.OnCreatureAttackedByPlayer C# (CSharp) Метод

OnCreatureAttackedByPlayer() публичный Метод

Training, called when someone attacks something.
public OnCreatureAttackedByPlayer ( TargetAction tAction ) : void
tAction TargetAction
Результат void
		public void OnCreatureAttackedByPlayer(TargetAction tAction)
		{
			// Only train if used skill was Smash
			if (tAction.AttackerSkillId != SkillId.Smash)
				return;

			// Get skill
			var attackerSkill = tAction.Attacker.Skills.Get(SkillId.Smash);
			if (attackerSkill == null) return; // Should be impossible.

			// Learning by attacking
			switch (attackerSkill.Info.Rank)
			{
				case SkillRank.RF:
				case SkillRank.RE:
					attackerSkill.Train(1); // Use the skill successfully.
					if (tAction.Has(TargetOptions.Critical)) attackerSkill.Train(2); // Critical Hit with Smash.
					if (tAction.Creature.IsDead) attackerSkill.Train(3); // Finishing blow with Smash.
					break;

				case SkillRank.RD:
				case SkillRank.RC:
				case SkillRank.RB:
				case SkillRank.RA:
				case SkillRank.R9:
				case SkillRank.R8:
				case SkillRank.R7:
					if (tAction.Has(TargetOptions.Critical) && tAction.Creature.IsDead)
						attackerSkill.Train(4); // Finishing blow with Critical Hit.
					goto case SkillRank.RF;

				case SkillRank.R6:
				case SkillRank.R5:
				case SkillRank.R4:
				case SkillRank.R3:
				case SkillRank.R2:
				case SkillRank.R1:
					if (tAction.Has(TargetOptions.Critical)) attackerSkill.Train(1); // Critical Hit with Smash.
					if (tAction.Creature.IsDead) attackerSkill.Train(2); // Finishing blow with Smash.
					if (tAction.Has(TargetOptions.Critical) && tAction.Creature.IsDead) attackerSkill.Train(3); // Finishing blow with Critical Hit.
					break;
			}
		}
	}