public void Training(AttackerAction aAction, TargetAction tAction)
{
var attackerSkill = aAction.Creature.Skills.Get(SkillId.Counterattack);
var targetSkill = tAction.Creature.Skills.Get(SkillId.Counterattack);
if (attackerSkill.Info.Rank == SkillRank.RF)
{
attackerSkill.Train(2); // Successfully counter enemy's attack.
if (tAction.SkillId == SkillId.Smash)
attackerSkill.Train(4); // Counter enemy's special attack.
if (tAction.Has(TargetOptions.Critical))
attackerSkill.Train(5); // Counter with critical hit.
}
else
{
attackerSkill.Train(1); // Successfully counter enemy's attack.
if (tAction.SkillId == SkillId.Smash)
attackerSkill.Train(2); // Counter enemy's special attack.
if (tAction.Has(TargetOptions.Critical))
attackerSkill.Train(4); // Counter with critical hit.
}
if (targetSkill != null)
targetSkill.Train(3); // Learn from the enemy's counter attack.
else if (tAction.Creature.LearningSkillsEnabled)
tAction.Creature.Skills.Give(SkillId.Counterattack, SkillRank.Novice); // Obtaining the Skill
}
}