public void CustomPrepareUsage(Creature creature, Skill skill)
{
var cost = skill.RankData.ManaPrepare;
if (cost == 0)
return;
var addedStacks = Math.Min(skill.RankData.StackMax - skill.Stacks, skill.RankData.Stack + creature.GetChainCastLevel(skill.Info.Id));
cost *= addedStacks;
var castTime = skill.GetCastTime();
if (castTime == 0)
{
creature.Mana += cost;
Send.StatUpdate(creature, StatUpdateType.Private, Stat.Mana);
}
else
{
var perSecond = (float)(cost / Math.Ceiling(castTime / 1000f) * (skill.RankData.NewLoadTime / 1000f));
var seconds = (int)(Math.Ceiling(castTime / 1000f) * 1000);
creature.Regens.Add(Stat.Mana, perSecond, creature.ManaMax, seconds);
}
}
}