public static void HealHPMP(Systems Target, int slot, int skillid, bool delete, bool UpdatePacket)
{
try
{
int amount;
int sid;
// get skillid from parameters
if (skillid == -1)
sid = Target.Character.Action.Buff.SkillID[slot];
else
sid = skillid;
if (!delete)
{
// if hp full
if (Target.Character.Stat.SecondHp == Target.Character.Stat.Hp) return;
if (Data.SkillBase[sid].Properties1["heal"] != 0)
{
amount = Data.SkillBase[sid].Properties1["heal"];
// add the calculated amount
if (Target.Character.Stat.SecondHp + amount < Target.Character.Stat.Hp)
Target.Character.Stat.SecondHp += amount;
else if (Target.Character.Stat.SecondHp != Target.Character.Stat.Hp)
Target.Character.Stat.SecondHp += Target.Character.Stat.Hp - Target.Character.Stat.SecondHp;
if (UpdatePacket) Target.UpdateHp();
}
if (Data.SkillBase[sid].Properties2["heal"] != 0)
{
amount = Data.SkillBase[sid].Properties2["heal"];
amount = (Target.Character.Stat.Hp / 100) * amount;
// add the calculated amount
if (Target.Character.Stat.SecondHp + amount < Target.Character.Stat.Hp)
Target.Character.Stat.SecondHp += amount;
else if (Target.Character.Stat.SecondHp != Target.Character.Stat.Hp)
Target.Character.Stat.SecondHp += Target.Character.Stat.Hp - Target.Character.Stat.SecondHp;
if (UpdatePacket) Target.UpdateHp();
}
if (Data.SkillBase[sid].Properties3["heal"] != 0)
{
amount = Data.SkillBase[sid].Properties3["heal"];
// add the calculated amount
if (Target.Character.Stat.SecondMP + amount < Target.Character.Stat.Mp)
Target.Character.Stat.SecondMP += amount;
else if (Target.Character.Stat.SecondMP != Target.Character.Stat.Mp)
Target.Character.Stat.SecondMP += Target.Character.Stat.Mp - Target.Character.Stat.SecondMP;
if (UpdatePacket) Target.UpdateMp();
}
if (Data.SkillBase[sid].Properties3["heal"] != 0)
{
amount = Data.SkillBase[sid].Properties4["heal"];
amount = (Target.Character.Stat.Mp / 100) * amount;
// add the calculated amount
if (Target.Character.Stat.SecondMP + amount < Target.Character.Stat.Mp)
Target.Character.Stat.SecondMP += amount;
else if (Target.Character.Stat.SecondMP != Target.Character.Stat.Mp)
Target.Character.Stat.SecondMP += Target.Character.Stat.Mp - Target.Character.Stat.SecondMP;
if (UpdatePacket) Target.UpdateMp();
}
}
else
{
//dunno....
}
}
catch (Exception ex)
{
Systems.Debugger.Write(ex);
}
}