protected void Heal(Creature creature, double life, double mana, double stamina, double toxicity)
{
// Potion poisoning heal mount increase
// http://wiki.mabinogiworld.com/view/Potion_Poisoning#Stages_of_Potion_Poisoning
var multiplier = 1.0;
var toxicityStage = GetToxicityStage(creature.Toxic);
if (toxicityStage != ToxicityStage.Normal)
{
var rnd = RandomProvider.Get();
switch (toxicityStage)
{
case ToxicityStage.Stage1: multiplier = 1.0 + rnd.NextDouble() * 0.3; break;
case ToxicityStage.Stage2: multiplier = 1.3; break;
case ToxicityStage.Stage3: multiplier = 1.3 + rnd.NextDouble() * 0.3; break;
case ToxicityStage.Stage4: multiplier = 1.6; break;
case ToxicityStage.Stage5: multiplier = 1.6 + rnd.NextDouble() * 0.4; break;
case ToxicityStage.Stage6: multiplier = 2.0 + rnd.NextDouble() * 1.0; break;
}
life *= multiplier;
mana *= multiplier;
stamina *= multiplier;
}
// Friday: All potions become more potent. (Potion effect x 1.5 including toxicity).
// +50%? Seems a lot, but that's what the Wiki says.
if (ErinnTime.Now.Month == ErinnMonth.AlbanElved)
{
life *= 1.5;
mana *= 1.5;
stamina *= 1.5;
}
var beforeLife = creature.Life;
var beforeMana = creature.Mana;
var beforeStamina = creature.Stamina;
creature.Life += (float)life;
creature.Mana += (float)mana;
creature.Stamina += (float)stamina * creature.StaminaRegenMultiplicator;
var diffLife = creature.Life - beforeLife;
var diffMana = creature.Mana - beforeMana;
var diffStamina = creature.Stamina - beforeStamina;
this.Poison(creature, diffLife, diffMana, diffStamina, toxicity);
}