public void ExecuteServerWork(TimeSpan elapsedTime) { ServerTimer.Update(elapsedTime); if (ServerTimer.Elapsed) { UpdateAreas(elapsedTime); UpdateComponents(elapsedTime); } }
public void Update(TimeSpan elapsedTime) { ServerTimer.Update(elapsedTime); if (ServerTimer.Elapsed) { UpdateClients(elapsedTime); UpdateAreas(elapsedTime); UpdateComponents(elapsedTime); } }
private void Regen(TimeSpan elapsedTime) { if (Aisling.Con > Aisling.ExpLevel + 1) { HpRegenTimer.Delay = TimeSpan.FromMilliseconds(ServerContext.Config.RegenRate / 3); } if (Aisling.Wis > Aisling.ExpLevel + 1) { MpRegenTimer.Delay = TimeSpan.FromMilliseconds(ServerContext.Config.RegenRate / 3); } HpRegenTimer.Update(elapsedTime); MpRegenTimer.Update(elapsedTime); if (HpRegenTimer.Elapsed) { HpRegenTimer.Reset(); var hpRegenSeed = (Aisling.Con - Aisling.ExpLevel).Clamp(0, 10) * 0.01; var hpRegenAmount = (Aisling.MaximumHp * (hpRegenSeed + 0.10)); Aisling.CurrentHp = (Aisling.CurrentHp + (int)hpRegenAmount).Clamp(0, Aisling.MaximumHp); SendStats(StatusFlags.StructB); } if (MpRegenTimer.Elapsed) { MpRegenTimer.Reset(); var mpRegenSeed = (Aisling.Wis - Aisling.ExpLevel).Clamp(0, 10) * 0.01; var mpRegenAmount = (Aisling.MaximumMp * (mpRegenSeed + 0.10)); Aisling.CurrentMp = (Aisling.CurrentMp + (int)mpRegenAmount).Clamp(0, Aisling.MaximumMp); SendStats(StatusFlags.StructB); } }