public void OnCreatureAttackedByPlayer(TargetAction action)
{
// Check if skill used is LightningRod
if (action.AttackerSkillId != SkillId.LightningRod)
return;
// Get skill
var attackerSkill = action.Attacker.Skills.Get(SkillId.LightningRod);
if (attackerSkill == null) return; // Should be impossible.
// Learning by attacking
switch (attackerSkill.Info.Rank)
{
case SkillRank.RF:
case SkillRank.RE:
attackerSkill.Train(2); // Attack an enemy
break;
case SkillRank.RD:
case SkillRank.RC:
attackerSkill.Train(2); // Attack an enemy
if (action.Attacker.Temp.LightningRodFullCharge) attackerSkill.Train(3); // Attack an Enemy with a Max Charge
break;
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 (action.Creature.IsDead) attackerSkill.Train(2); // Defeat an enemy
if (action.Creature.IsDead && action.Attacker.Temp.LightningRodFullCharge) attackerSkill.Train(3); // Defeat an Enemy with a Max Charge
break;
}
}