Aura.Channel.Skills.Combat.Defense.OnCreatureAttack C# (CSharp) Метод

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

Training, called when someone attacks something.
public OnCreatureAttack ( TargetAction tAction ) : void
tAction TargetAction
Результат void
		public void OnCreatureAttack(TargetAction tAction)
		{
			// We're only interested in hits on creatures using Defense
			if (tAction.SkillId != SkillId.Defense)
				return;

			// Did the target successfully defend itself?
			var defended = (tAction.Flags == CombatActionType.Defended);

			// Get skill
			var attackerSkill = tAction.Attacker.Skills.Get(SkillId.Defense);
			var targetSkill = tAction.Creature.Skills.Get(SkillId.Defense);

			if (targetSkill != null)
			{
				switch (targetSkill.Info.Rank)
				{
					case SkillRank.RF:
						if (defended) targetSkill.Train(2); // Get hit by an enemy while in the defense stance.
						break;
					case SkillRank.RE:
					case SkillRank.RD:
					case SkillRank.RC:
					case SkillRank.RB:
					case SkillRank.RA:
					case SkillRank.R9:
					case SkillRank.R8:
					case SkillRank.R7:
					case SkillRank.R6:
					case SkillRank.R5:
					case SkillRank.R4:
					case SkillRank.R3:
					case SkillRank.R2:
					case SkillRank.R1:
						if (defended) targetSkill.Train(1); // Get hit by an enemy while in the defense stance.
						break;
				}
			}

			if (attackerSkill != null)
			{
				switch (attackerSkill.Info.Rank)
				{
					case SkillRank.RF:
						if (defended) attackerSkill.Train(3); // Watch an enemy defend itself.
						break;
					case SkillRank.RE:
						if (defended) attackerSkill.Train(2); // Watch an enemy defend itself.
						break;
					case SkillRank.RD:
					case SkillRank.RC:
					case SkillRank.RB:
					case SkillRank.RA:
					case SkillRank.R9:
					case SkillRank.R8:
					case SkillRank.R7:
					case SkillRank.R6:
					case SkillRank.R5:
					case SkillRank.R4:
					case SkillRank.R3:
					case SkillRank.R2:
					case SkillRank.R1:
						if (tAction.AttackerSkillId == SkillId.Smash || tAction.AttackerSkillId == SkillId.MagnumShot || tAction.AttackerSkillId == SkillId.Firebolt || tAction.AttackerSkillId == SkillId.WaterCannon || tAction.AttackerSkillId == SkillId.AssaultSlash)
							attackerSkill.Train(3); // Successful in using a special skill to attack a defending enemy.
						goto case SkillRank.RE;
				}
			}
		}
	}