public void Init() { IsDead = false; if (LastSkillUse != null) { LastSkillUse.Clear(); } else { LastSkillUse = new Dictionary <byte, DateTime>(); } if (SpawnedMobs != null) { SpawnedMobs.Clear(); } else { SpawnedMobs = new Dictionary <int, Mob>(); } MobData data = DataProvider.Mobs[MobID]; HP = data.MaxHP; MP = data.MaxMP; EXP = data.EXP; Owner = null; Controller = null; AllowedSpeed = (100 + data.Speed) / 100.0f; lastMove = DateTime.Now; }
private void MateLife() { Owner?.Session?.SendPacket(GeneratePst()); if (!IsAlive) { if (LastDeath.AddMinutes(3) < DateTime.Now) { GenerateRevive(); } return; } if (LastHealth.AddSeconds(IsSitting ? 1.5 : 2) <= DateTime.Now) { LastHealth = DateTime.Now; if (LastDefence.AddSeconds(4) <= DateTime.Now && LastSkillUse.AddSeconds(2) <= DateTime.Now && Hp > 0) { Hp += Hp + HealthHpLoad() < HpLoad() ? HealthHpLoad() : HpLoad() - Hp; Mp += Mp + HealthMpLoad() < MpLoad() ? HealthMpLoad() : MpLoad() - Mp; } } }