public int GetExpBonus()
{
var result = 0f;
var month = ErinnTime.Now.Month;
// Use current training experience as base.
result += ((this.RankData.Conditions[0].Count - this.Info.ConditionCount1) * this.RankData.Conditions[0].Exp);
result += ((this.RankData.Conditions[1].Count - this.Info.ConditionCount2) * this.RankData.Conditions[1].Exp);
result += ((this.RankData.Conditions[2].Count - this.Info.ConditionCount3) * this.RankData.Conditions[2].Exp);
result += ((this.RankData.Conditions[3].Count - this.Info.ConditionCount4) * this.RankData.Conditions[3].Exp);
result += ((this.RankData.Conditions[4].Count - this.Info.ConditionCount5) * this.RankData.Conditions[4].Exp);
result += ((this.RankData.Conditions[5].Count - this.Info.ConditionCount6) * this.RankData.Conditions[5].Exp);
result += ((this.RankData.Conditions[6].Count - this.Info.ConditionCount7) * this.RankData.Conditions[6].Exp);
result += ((this.RankData.Conditions[7].Count - this.Info.ConditionCount8) * this.RankData.Conditions[7].Exp);
result += ((this.RankData.Conditions[8].Count - this.Info.ConditionCount9) * this.RankData.Conditions[8].Exp);
// Multiply for more exp on higher ranks.
result *= (int)this.Info.Rank * 0.6f;
// Perfect bonus
if (this.IsFullyTrained)
{
var bonus = 1.5f;
// Wednesday: Increase in rank-up bonus for complete mastery of a skill.
if (month == ErinnMonth.AlbanHeruin)
bonus = 2f;
result *= bonus;
}
// Monday: Increase in rank up bonus for life skills (110%).
if (month == ErinnMonth.AlbanEiler && this.Data.Category == SkillCategory.Life)
result *= 1.10f;
// Tuesday: Increase in rank-up bonus for Combat skills.
else if (month == ErinnMonth.Baltane && this.Data.Category == SkillCategory.Combat)
result *= 1.10f;
// Thursday: Increase in rank-up bonus for Magic skills.
else if (month == ErinnMonth.Lughnasadh && this.Data.Category == SkillCategory.Magic)
result *= 1.10f;
return (int)result;
}
}