/// <summary>Escreve este controlo em html</summary> protected override void Render(HtmlTextWriter writer) { EnableViewState = false; Universe universe = Universe.instance; ILanguageInfo info = CultureModule.getLanguage(); ChronosStats stats = (ChronosStats)Page.Application["ChronosStats"]; writer.WriteLine("<div class='stats-box'>"); writer.WriteLine("<div align='center'><b>" + info.getContent("stats_title") + "</b></div>"); writer.WriteLine(info.getContent("stats_alliances") + "<b>: " + (universe.allianceCount - 1) + "</b><br />"); writer.WriteLine(info.getContent("stats_rulers") + ": <b>" + universe.rulerCount + "</b><br />"); int maxP = Coordinate.MaximumGalaxies * Coordinate.MaximumSystems * Coordinate.MaximumSectors * Coordinate.MaximumPlanets; writer.WriteLine(info.getContent("stats_planets") + ": <b>" + universe.planetCount + "/" + maxP + "</b><br />"); writer.WriteLine(info.getContent("stats_nextCoordinate") + ": <b>" + universe.CurrentCoordinate + "</b><br />"); writer.WriteLine("<div>--</div>"); writer.WriteLine(info.getContent("stats_timeFromLastReboot") + ": <b>" + stats.StartTime + "</b><br />"); writer.WriteLine("Dress Up: <b>" + stats.DressUp + "</b><br />"); writer.WriteLine(info.getContent("stats_lastTurnTime") + ": <b>" + stats.LastTurnTime + "</b><br />"); writer.WriteLine(info.getContent("stats_turnSinceReboot") + ": <b>" + stats.TurnCount + "</b><br />"); writer.WriteLine(info.getContent("stats_totalTurns") + ": <b>" + universe.TurnCount + "</b><br />"); writer.WriteLine(info.getContent("stats_turnTime") + ": <b>" + universe.TurnTime + "</b><br />"); writer.WriteLine(info.getContent("stats_lastTurn") + ": <b>" + stats.LastTurn.ToLongTimeString() + "</b><br />"); writer.WriteLine(info.getContent("stats_nextTurn") + ": <b>" + stats.LastTurn.AddMilliseconds(universe.TurnTime).ToLongTimeString() + "</b><br />"); if (Universe.instance.Persistence is UniverseSerializer) { writer.WriteLine("Stream Size: <b>" + (((UniverseSerializer)Universe.instance.Persistence).StreamSize / 1024) + " Kb</b><br />"); } writer.WriteLine("<div>--</div>"); writer.WriteLine(info.getContent("stats_persistence") + ": <b>" + Chronos.Persistence.UniverseSerializer.Instance.GetType().Name + "</b><br />"); writer.WriteLine("<div>--</div>"); writer.WriteLine("<b>Alnitak: </b><br/>{0}<p/>", OrionGlobals.AlnitakInfo.Replace(";", "<br/>")); writer.WriteLine("<b>Chronos: </b><br/>{0}", Chronos.Utils.Platform.ChronosInfo.Replace(";", "<br/>")); writer.WriteLine("</div>"); registerScripts(); writer.WriteLine("<p />"); writeCacheInfo(writer, info); writer.WriteLine("<p />"); writeApplicationInfo(writer, info); OrionGlobals.RegisterRequest(Chronos.Messaging.MessageType.Generic, info.getContent("section_admin")); }
/// <summary>notifica o inicio da passagem de turno</summary> private void turnEnd(object src, EventArgs args) { DateTime now = DateTime.Now; TimeSpan span = now - turnTimeStart; Application.Lock(); ChronosStats stats = (ChronosStats)Application["ChronosStats"]; stats.LastTurnTime = span; stats.LastTurn = now; ++stats.TurnCount; Application.UnLock(); Chronos.Utils.Log.log("Chronos Turn End! " + span); }
/// <summary>Escreve este controlo em html</summary> protected override void Render(HtmlTextWriter writer) { ChronosStats stats = (ChronosStats)Page.Application["ChronosStats"]; writer.Write(stats.MinutesToNextTurn > 0 ? stats.MinutesToNextTurn : 0); }
/// <summary>Marca o incio da aplicacao</summary> protected void Application_Start(object src, EventArgs e) { Log.log("---"); Log.log(OrionGlobals.AlnitakInfo); Log.log(Chronos.Utils.Platform.ChronosInfo); Log.log("---"); Log.log("Starting Alnitak..."); GenericIdentity identity = new GenericIdentity("guest"); defaultPrincipal = new GenericPrincipal(identity, defaultRoles); DateTime now = DateTime.Now; DateTime dressUp = now; Universe.Events.TurnStart += new EventHandler(turnStart); Universe.Events.TurnEnd += new EventHandler(turnEnd); Universe.Events.TurnError += new EventHandler(Events_TurnError); if (OrionGlobals.TraceTurn) { Universe.Events.UniverseTrace += new EventHandler(Events_TraceUniverse); } try { Log.log("Loading Universe..."); Universe.Parameters = OrionGlobals.Persistence; Universe.instance = Universe.load(); if (null == Universe.instance) { Universe.instance = new Universe(); Universe.instance.init(); } Log.log("Done!"); dressUp = DateTime.Now; } catch (Exception ex) { Log.log(ex); ExceptionLog.log(ex); } finally { try{ ChronosStats stats = new ChronosStats(); stats.StartTime = now; stats.DressUp = dressUp - now; Application["ChronosStats"] = stats; Application["AlnitakOnlineUsers"] = new UserWatcher(); Application["AlnitakOnlineUsersCount"] = 0; OrionGlobals.getRoles(); if (OrionGlobals.IsTurnTimeSpecified) { Universe.instance.TurnTime = OrionGlobals.TurnTime; } Universe.instance.start(); Universe.RankingBattleEnded += new Universe.RankingBattleHandler(OrionGlobals.RankingBattleEndend); Log.log("... Done!"); } catch (Exception ex) { throw new AlnitakException(ex.Message); } } }