protected void Page_Load(object sender, EventArgs e) { if (Globals.Player != null) { var fact = Globals.Galaxy.GetFaction(Globals.MyFaction); int shift = 0; int.TryParse(Request["shift"], out shift); int cnt = 0; StringBuilder sb = new StringBuilder(); sb.AppendFormat("<h2>#{0} channel chat history</h2>", Globals.MyFaction); string pnline = HtmlRenderingExtensions.GetPrevNext(fact.ChatEvents.Count, shift, DisplayLines); sb.Append("<table style='border:0; ' cellspacing='0' cellpadding='0' border='0'>"); sb.Append(pnline); for (int i = Math.Max(0, fact.ChatEvents.Count - DisplayLines - shift); i < fact.ChatEvents.Count && cnt < DisplayLines; i++, cnt++) { var c = fact.ChatEvents[i]; sb.AppendFormat("<tr><td>{0}</td><td><<span style='color:aqua;'>{1}</span>></td><td> {2}</td></tr>", c.Time, Server.HtmlEncode(c.Name), Server.HtmlEncode(c.Text)); } sb.Append(pnline); sb.Append("</table>"); litChat.Text = sb.ToString(); } }
protected void Page_Load(object sender, EventArgs e) { displayedPlayer = Globals.Galaxy.GetPlayer(Request["name"]); if (displayedPlayer == null) { return; } isOwner = false; isAllied = false; if (Globals.Player != null) { if (Globals.Player.Name == displayedPlayer.Name) { isOwner = true; } if (Globals.Player.FactionName == displayedPlayer.FactionName) { isAllied = true; } } if (IsPostBack) { if (isOwner) { PurchaseUpgradeCheck(); Globals.ResetGalaxy(); displayedPlayer = Globals.Galaxy.GetPlayer(Request["name"]); } } else { if (!isOwner && isAllied) { lbSendBp.Visible = true; tbBpAmmount.Visible = true; btnSendBp.Visible = true; } var planet = Globals.Galaxy.GetPlanet(displayedPlayer.Name); lbPlanet.Text = planet.ToHtml(); lbFaction.Text = HtmlRenderingExtensions.GetFactionLink(displayedPlayer.FactionName); } imgRank.ImageUrl = displayedPlayer.Rank.GetImageUrl(); lbName.Text = displayedPlayer.Name + HtmlRenderingExtensions.GetFactionImage(displayedPlayer.FactionName); lbRankName.Text = displayedPlayer.RankText; DisplayAwards(displayedPlayer); DisplayEvents(); DisplayBuildPowerTable(displayedPlayer); DisplayUpgrades(displayedPlayer, isOwner); }
protected void Page_Load(object sender, EventArgs e) { const int MaxLines = 50; int shift = 0; int.TryParse(Request["shift"], out shift); string nline = HtmlRenderingExtensions.GetPrevNext(int.MaxValue, shift, MaxLines); var sb = new StringBuilder(); //typeof(Event) var allowedTypes = new List<Type>(); foreach (var t in Assembly.GetAssembly(typeof(Event)).GetTypes()) { if (t.IsSubclassOf(typeof (Event))) { string nam = t.Name.Remove(t.Name.Length-5,5); bool blocked = Request[nam] != null; sb.AppendFormat( "<input type='checkbox' name='{0}' value='{0}' {1}>{0} ", nam, blocked ? "checked" : ""); if (blocked) allowedTypes.Add(t); } } sb.Append("<input type='submit' value='Filter'/>"); sb.Append("<table style='border:0'>\n"); sb.Append(nline); var p = Globals.Player; foreach (var ev in Globals.Galaxy.Events.Where(x => allowedTypes.Count == 0 || allowedTypes.Contains(x.GetType()) && !x.IsHiddenFrom(Globals.MyFaction)).Reverse().Skip(shift).Take(MaxLines)) { sb.AppendFormat( "<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>\n", ev.TimeOffset(p), ev.Turn, ev.ToHtml()); } sb.Append(nline); sb.Append("</table>"); litEvents.Text = sb.ToString(); litEvents.EnableViewState = false; }
protected void Page_Load(object sender, EventArgs e) { string factName = Request["name"]; if (!IsPostBack) { Label1.Text = factName + " commanders"; } const int MaxLines = 100; int shift = 0; int.TryParse(Request["shift"], out shift); int maxim = Globals.Galaxy.Players.Where(x => x.FactionName == factName).Count(); string nline = HtmlRenderingExtensions.GetPrevNext(maxim, shift, MaxLines, "name=" + factName + "&"); var sb = new StringBuilder(); sb.Append("<table style='border:0px solid;' border='0' cellspacing='0' cellpadding=0'>\n"); sb.Append(nline); sb.AppendLine( "<tr><th>Name</th><th>Rank points (wins-defeats) </th><th>Credits (used) </th><th>Credits sent - recieved </th><th>Clout</th><th>Skill (1v1)</th></tr>\n"); int cnt = 0; foreach (var p in Globals.Galaxy.Players.Where(x => x.FactionName == factName).OrderBy(x => x.RankOrder).Skip(shift).Take(MaxLines)) { sb.AppendFormat( "<tr><td><span style='color:aqua'/>{11}. </span>{0}</td><td>{1:F1} ({2}-{3})</td><td>{4} ({5})</td><td>{6} - {7}</td><td>{8}</td><td>{9:f0} ({10:f0})</td></tr>\n", p.ToHtml(), p.RankPoints, p.Victories, p.Defeats, p.MetalAvail, p.MetalSpent, p.SentMetal, p.RecievedMetal, p.Clout, p.Elo, p.Elo1v1, 1 + cnt++); } sb.Append(nline); sb.Append("</table>"); litPlayers.Text = sb.ToString(); }
protected void Page_Load(object sender, EventArgs e) { var js = new StringBuilder(); var t = new StringBuilder(); GeneratePlanetLinks(t); js.Append("PW.init();\n"); js.Append("PW.graphics.SetStroke(1);\n"); js.Append("PW.graphics.SetColor('#89fecd')\n"); var springieStates = Globals.Server.GetSpringieStates(); var hide = Globals.Galaxy.Planets.Where(x => x.FactionName == null).Select(x => x.ID); if (hide.Count() > 0) { hide = hide.Except(Globals.Galaxy.GetClaimablePlanets().Select(x => x.ID)); } var planetAttacked = new Dictionary <int, string>(); int cnt = 0; foreach (var state in springieStates) { int num = cnt % 3; if (state.Value.ReminderEvent == ReminderEvent.OnBattleStarted) { planetAttacked[state.Value.GameStartedStatus.PlanetID] = "img/planetstatus/attacking" + num + ".png"; } else { planetAttacked[state.Value.PlanetID] = "img/planetstatus/preparing" + num + ".png"; } cnt++; } var planetBattles = new Dictionary <int, IEnumerable <BattleEvent> >(); foreach (var b in Globals.Galaxy.Events.OfType <BattleEvent>().GroupBy(x => x.PlanetID)) { planetBattles.Add(b.Key, b); } var planetOrbits = new Dictionary <int, List <SpaceFleet> >(); var fleetIcon = Utils.GetImageDimensionsCached("img/fleets/Arm.png"); foreach (var fleet in Globals.Galaxy.Fleets) { PointF curpos; if (fleet.GetCurrentPosition(out curpos, Globals.Galaxy.Turn)) { List <SpaceFleet> fleets; if (!planetOrbits.TryGetValue(fleet.TargetPlanetID, out fleets)) { fleets = new List <SpaceFleet>(); } fleets.Add(fleet); planetOrbits[fleet.TargetPlanetID] = fleets; } else { RenderFleet(fleet, ToScreenX(curpos.X) - fleetIcon.X / 2, ToScreenY(curpos.Y) - fleetIcon.Y / 2, t, js); } } foreach (var planet in Globals.Galaxy.Planets) { if (hide.Contains(planet.ID)) { continue; } bool isMy = (Globals.Player != null && planet.OwnerName == Globals.Player.Name); var player = planet.OwnerName != null?Globals.Galaxy.GetPlayer(planet.OwnerName) : null; string planetImage = string.Format("planets/{0}.png", player == null ? "neutral" : player.FactionName.ToLower()); // planet.ID % 15 var imgSize = Utils.GetImageDimensionsCached(planetImage); string divid = "p" + planet.ID; // currently selected marker string overlay; if (planetAttacked.TryGetValue(planet.ID, out overlay)) { t.AppendFormat( "<a href='planet.aspx?name={5}' id='{6}'><img src='{4}' style='position:absolute; z-index:3; left:{0}px; top: {1}px;width:{2}px; height:{3}px'></a>", GetPlanetX(planet) - (imgSize.X + 10) / 2, GetPlanetY(planet) - (imgSize.Y + 10) / 2, imgSize.X + 10, imgSize.Y + 10, overlay, Uri.EscapeDataString(planet.Name), divid); } // main image + text t.AppendFormat( "<a href='planet.aspx?name={3}' id='{5}' class='mapplanet' style='left:{0}px;top:{1}px;{4}'><img src='{2}'></a>", GetPlanetX(planet) - imgSize.X / 2, GetPlanetY(planet) - imgSize.Y / 2, planetImage, Uri.EscapeDataString(planet.Name), isMy ? "text-decoration: overline;" : "", overlay == null ?divid :""); t.AppendFormat( "<span class='mapowner' style='left:{0}px;top:{1}px;{3}'>{2}</span>", GetPlanetX(planet) + imgSize.X / 2, GetPlanetY(planet) - imgSize.Y / 2 - 5, planet.ToHtml(), isMy ? "text-decoration: overline;" : ""); t.AppendFormat( "<span class='mapowner' style='left:{0}px;top:{1}px;{3}'>{2}</span>", GetPlanetX(planet) + imgSize.X / 2, GetPlanetY(planet) - imgSize.Y / 2 + 10, player.ToHtml(), isMy ? "text-decoration: overline;" : ""); // past battles IEnumerable <BattleEvent> battles; if (planetBattles.TryGetValue(planet.ID, out battles)) { int battleCount = battles.Count(); var iconSize = Utils.GetImageDimensionsCached("img/battles/Arm.png"); const int maxLine = 5; int offsetY = -imgSize.Y / 2 - (((battleCount - 1) / maxLine) + 1) * iconSize.Y; int offsetX = -iconSize.X * Math.Min(maxLine, battleCount) / 2; int i = 0; foreach (var battle in battles) { var factionPlayers = from p in battle.EndGameInfos where !p.Spectator group p by p.Side into grouped select new { factionName = grouped.Key, factionCount = grouped.Count() }; string sideStrength = ""; foreach (var fp in factionPlayers) { sideStrength += string.Format("{0} {1} armies<br/>", fp.factionName, fp.factionCount); } string iconName = string.Format( "img/battles/{0}{1}.png", battle.Victor, battle.Attacker == battle.Victor ? "" : "def"); t.AppendFormat( "<a href='battle.aspx?turn={0}' id='b{0}'><img id='b{0}' src='{3}' style='position:absolute;z-index:4;left:{1}px;top:{2}px;'></a>", battle.Turn, GetPlanetX(planet) + offsetX + (i % maxLine) * iconSize.X, GetPlanetY(planet) + offsetY + (i / maxLine) * iconSize.Y, iconName); js.AppendFormat( "PW.AddTooltip('b{0}', '<div class=\"popup\">{1} The {2} have {3} {4}.<br/>{5}</div>', null);\n", battle.Turn, HtmlRenderingExtensions.GetFactionImage(battle.Victor), battle.Victor, battle.Attacker == battle.Victor ? "invaded" : "protected", planet.Name, sideStrength); i++; } } List <SpaceFleet> fleets; if (planetOrbits.TryGetValue(planet.ID, out fleets)) { int count = fleets.Count; var iconSize = Utils.GetImageDimensionsCached("img/fleets/Arm.png"); const int maxLine = 5; int offsetY = imgSize.Y / 2; int offsetX = -iconSize.X * Math.Min(maxLine, count) / 2; int i = 0; foreach (var fleet in fleets) { RenderFleet( fleet, GetPlanetX(planet) + offsetX + (i % maxLine) * iconSize.X, GetPlanetY(planet) + offsetY + (i / maxLine) * iconSize.Y, t, js); i++; } } string htmltext = String.Format( "<div class=\"popup\"><b>Name:</b> {0}<br /><b>Owner:</b> {1}<br /><b>Map:</b> {2}<br/><img src=\"{3}\" style=\"max-width: 200px\"><br/>{4}</div>", planet.Name, planet.OwnerName ?? "Unknown", Path.GetFileNameWithoutExtension(planet.MapName ?? "Uncharted"), HtmlRenderingExtensions.GetMinimapUrl(planet.MapName), PlanetPage.GetMapInfoTable(planet.MapName, player != null ? player.Description : null)); js.AppendFormat("PW.AddTooltip('{0}', '{1}', {2});\n", divid, htmltext, "null"); } js.Append("PW.graphics.Paint();\n"); litPlanets.Text += t.ToString(); litJs.Text = "<script language=\"javascript\">\nfunction doStuff() {" + js + "\n}\naddLoadEvent(doStuff);</script>"; }
protected void ddMap_SelectedIndexChanged(object sender, EventArgs e) { imgMap.ImageUrl = HtmlRenderingExtensions.GetMinimapUrl(ddMap.SelectedValue); litPlanetInfo.Text = GetMapInfoTable(ddMap.SelectedValue, planetOwner != null ? planetOwner.Description : null); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string pname = Request["name"]; lbName.Text = pname; displayedPlanet = Globals.Galaxy.Planets.SingleOrDefault(p => p.Name == pname); if (displayedPlanet == null) { return; } lbName.Text += HtmlRenderingExtensions.GetFactionImage(displayedPlanet.FactionName); imgMap.ImageUrl = HtmlRenderingExtensions.GetMinimapUrl(displayedPlanet.MapName); if (Globals.Player != null && Globals.Player.Name == displayedPlanet.OwnerName) { lbRename.Visible = true; tbName.Visible = true; tbName.Text = displayedPlanet.Name; btnSubmit.Visible = true; if (Globals.Player.HasChangedMap) { ddMap.Visible = false; } else { ddMap.Visible = true; var items = Globals.Galaxy.GetAvailableMaps().OrderBy(x => x); foreach (var c in items) { ddMap.Items.Add(c); } ddMap.SelectedValue = displayedPlanet.MapName; } } if (Globals.Player != null) { var fleet = Globals.Galaxy.Fleets.SingleOrDefault(f => f.OwnerName == Globals.MyPlayerName); if (fleet != null) { btnSendFleet.Visible = true; btnSendFleet.Text = string.Format("Send blockade fleet to {0} ({1} turns)", displayedPlanet.Name, fleet.EtaToPlanet(displayedPlanet.ID, Globals.Galaxy)); } } // events var sb = new StringBuilder(); Globals.Galaxy.Events.Where( x => x.IsPlanetRelated(displayedPlanet.ID) && !x.IsHiddenFrom(Globals.MyFaction)). Reverse().ForEach( x => sb.AppendFormat("{0}: {1}<br/>\n", x.TimeOffset(Globals.Player), x.ToHtml())); litEvents.Text = sb.ToString(); lbFaction.Text = HtmlRenderingExtensions.GetFactionLink(displayedPlanet.FactionName); planetOwner = Globals.Galaxy.GetOwner(displayedPlanet.ID); if (planetOwner != null) { bool isOwner = false; if (Globals.Player != null) { if (Globals.Player.Name == planetOwner.Name) { isOwner = true; } } lbOwner.Text = planetOwner.ToHtml(); if (planetOwner.FactionName != displayedPlanet.FactionName) { lbFaction.Text += " <span style='color:red;'>(Occupied)</span>"; } if (isOwner) { tbDesciption.Text = planetOwner.Description + ""; tbDesciption.Visible = true; btnSetDesciption.Visible = true; } DisplayPlanetStructures(displayedPlanet); } else { lbOwner.Text = "uncolonized"; } litPlanetInfo.Text = GetMapInfoTable(displayedPlanet.MapName, planetOwner != null ? planetOwner.Description : null); litPlanetInfo.Text += string.Format("<a href='heightmaps/{0}.jpg' target='_new'>Topological scan</a><br/><a target='_new' href='metalmaps/{0}.png'>Mineral scan</a>", displayedPlanet.MapName); } }
void DisplayPlanetStructures(Planet planet) { if (planet == null) { return; } var sb = new StringBuilder(); var mi = Utils.GetMapInfoCached(planet.MapName); var imgDim = Utils.GetImageDimensionsCached(HtmlRenderingExtensions.GetMinimapUrl(planet.MapName)); if (Globals.Server.UpgradeData == null) { return; } // array with coordiantes var coords = new StringBuilder(); coords.Append("<script type='text/javascript'>\nvar tpos = Array("); var js = new StringBuilder(); js.Append("<script type='text/javascript'>\nfunction AddHovers() {\n"); int cnt = 0; foreach (var up in Globals.Server.UpgradeData) { bool isAlly = Globals.Galaxy.GetPlayer(up.Key).FactionName == Globals.MyFaction; bool isSelf = up.Key == Globals.MyPlayerName; foreach (var upd in up.Value.Where(x => x.QuantityDeployed > 0 && x.IsBuilding)) { foreach (var dep in upd.DeployLocations.Where(x => x.PlanetID == planet.ID)) { string icon = "static_enemy"; if (isSelf) { icon = "static_self"; } else if (isAlly) { icon = "static_ally"; } // images sb.AppendFormat( "<img src='uniticons/{1}.png' style='position:absolute;z-index:2;top:0;left:0;' id='img{0}'/></a>", cnt, icon); // array with coordiantes if (cnt > 0) { coords.Append(","); } int posx = (int)(((double)dep.X / mi.Width) * imgDim.X) - 5; int posy = (int)(((double)dep.Z / mi.Height) * imgDim.Y) - 5; coords.AppendFormat("{0},{1}", posx, posy); // js tooltips string htmltext = String.Format( "<div class=\"popup\"><img src=\"unitpics/{0}.png\"><br/>{1}<br/>", upd.UnitChoice, up.Key); js.AppendFormat("PW.AddTooltip('img{0}', '{1}', null);\n", cnt, htmltext); cnt++; } } } coords.Append(");\n"); coords.AppendFormat("var firefoxFix = {0};", imgDim.Y); coords.Append("</script>\n"); litPlanetStructures.Text = sb.ToString() + coords.ToString(); js.Append("\n}\naddLoadEvent(AddHovers);\n"); js.Append("</script>\n"); litPopupLinks.Text = js.ToString(); }
void RenderLeftBar() { var sb = new StringBuilder(); var planetCounts = from p in Globals.Galaxy.Planets where p.FactionName != null group p by p.FactionName into g orderby g.Key select new { Faction = g.Key, Count = g.Count() }; int totalCount = 0; foreach (var ts in planetCounts) { totalCount += ts.Count; } sb.AppendFormat("<table cellpadding='0' cellspacing='0'><tr width='200' style='color:white;'>"); var colorTable = new[] { "Blue", "Red" }; int cnt = 0; foreach (var pk in planetCounts) { sb.AppendFormat( "<td style='width:{0}px;height:20px;text-align:center;background-color:{3}'>{2}{1}</td>", pk.Count * 200 / totalCount, pk.Count, HtmlRenderingExtensions.GetFactionImage(pk.Faction), colorTable[cnt++ % colorTable.Length]); } sb.AppendFormat("</tr></table>\n"); foreach (var faction in Globals.Galaxy.Factions) { var plList = Globals.Galaxy.Players.Where(p => p.FactionName == faction.Name); var list = plList.ToList(); sb.AppendFormat("<hr/>{0}<hr/>\n", HtmlRenderingExtensions.GetFactionLink(faction.Name)); list.Sort(Player.CompareTo); for (int i = 1; i <= Math.Min(10, list.Count); i++) { var pl = list[list.Count - i]; sb.AppendFormat("{0}. {1} ({2:f1})<br/>\n", i, pl.ToHtml(), pl.RankPoints); } } sb.AppendFormat("<hr/><a href='awardhall.aspx'>Awards Hall of Fame</a>\n"); sb.AppendFormat("<hr/><a href='events.aspx'>Last events</a><hr/>\n"); Globals.Galaxy.Events.Where(x => !x.IsHiddenFrom(Globals.MyFaction)).Reverse().Take(10).ForEach( x => sb.AppendFormat("{0}: <span style='color: white;'>{1}</span><br/>\n", x.TimeOffset(Globals.Player, true), x.ToHtml())); if (Globals.Player != null) { sb.AppendFormat( "<hr/><span style='color:white;'><a href='chat.aspx'>#{0} channel log</a></span><hr/>\n<span style='color:white;font-size:xx-small;'>", Globals.MyFaction); var chatEvents = Globals.Galaxy.GetFaction(Globals.MyFaction).ChatEvents; for (int i = Math.Max(chatEvents.Count - 100, 0); i < chatEvents.Count; i++) { var ce = chatEvents[i]; sb.AppendFormat( "<span style='color:aqua'>{0}</span> {1}<br/>\n", Server.HtmlEncode(ce.Name), Server.HtmlEncode(ce.Text)); } sb.Append("</span>"); } litPlayers.Text = sb.ToString(); }
void SetGeneralGalaxyInfo() { lbTurn.Text = Globals.Galaxy.Turn.ToString(); lbAttacks.Text = HtmlRenderingExtensions.GetFactionLink(Globals.Galaxy.OffensiveFaction.Name); }
protected void Page_Load(object sender, EventArgs e) { int turn = int.Parse(Request["turn"]); BattleEvent b = null; foreach (var ev in Globals.Galaxy.Events) { if (ev is BattleEvent && ev.Turn == turn) { b = ev as BattleEvent; break; } } if (b == null) { return; } var planet = Globals.Galaxy.GetPlanet(b.PlanetID); var loggedInPlayer = Globals.Player; lbTitle.Text = "Battle on " + planet.Name + " turn " + b.Turn; //lbTime.Text = b.Time.ToString(); lbTime.Text = b.TimeOffset(loggedInPlayer); lbAttacker.Text = HtmlRenderingExtensions.GetFactionLink(b.Attacker); lbWinner.Text = HtmlRenderingExtensions.GetFactionLink(b.Victor); lbPlanet.Text = planet.ToHtml(); var sb = new StringBuilder(); sb.Append("<table style='border:0'>"); int totalTime = 0; foreach (var p in b.EndGameInfos.Where(x => x.Spectator == false).OrderBy(x => x.Side)) { int pTime = 0; if (!p.AliveTillEnd) { if (p.LoseTime > 0) { pTime = p.LoseTime; } else if (p.LeaveTime > 0) { pTime = p.LeaveTime; } } if (pTime > totalTime) { totalTime = pTime; } string awards = ""; var player = Globals.Galaxy.GetPlayer(p.Name); foreach (var aw in player.Awards.Where( x => x.Turn == b.Turn && x.Round == b.Round)) { awards += aw.Text + "<br/>"; } string fixedFactionName = Globals.Galaxy.Factions.Single(x => x.Name.ToLower() == p.Side.ToLower()).Name; sb.AppendFormat( "<tr><td>{0}</td><td>{1}</td><td></td><td>{2}</td><td>{3}</td></tr>", player.ToHtml(), HtmlRenderingExtensions.GetFactionLink(fixedFactionName), pTime.ToTime(), awards); } lbLength.Text = totalTime.ToTime(); sb.Append("</table>"); sb.AppendFormat("<img src='{0}' style='width:200px; margin:4px; border: 1px aqua solid;'><br/>", HtmlRenderingExtensions.GetMinimapUrl(planet.MapName)); litDetails.Text = sb.ToString(); }