namespace ‹ { using ; using ; using †; using System; using System.Collections.ObjectModel; using System.Data; using System.Text; using System.Threading; internal class € { internal Š ; internal bool ; internal int ; internal string ; internal int ; internal int ; internal int ; internal  ; internal int[] ; internal  ; internal Collection<> ; internal Collection<>[] ; private int ; private int ; private int ; internal string ; private byte[,] ; private bool[,] ; private ‚[,] ; private ƒ[,] ; private Thread ; internal void ( Player, int fromTeamID, int toTeamID) { try { if (fromTeamID != -1) { this.[fromTeamID].Remove(Player); } if (toTeamID != -1) { if (!this.[toTeamID].Contains(Player)) { this.[toTeamID].Add(Player); } Player. = toTeamID; } else { this.[Player.].Remove(Player); Player.. = null; } this.("Ci" + this.()); } catch { } } internal bool (int teamID) { try { int num = 0; switch (this..Length) { case 2: num = 6; break; case 3: num = 4; break; case 4: num = 3; break; } return (this.[teamID].Count < num); } catch { return false; } } internal void () { “ “; this. = .; foreach (  in this.) { .(this.()); } using (“ = „..ž()) { this. = “.Œ(string.Concat(new object[] { "SELECT heightmap FROM games_maps WHERE type = '", this..Type, "' AND id = '", this., "'" })); } string[] strArray = this..Split(new char[] { Convert.ToChar(13) }); this. = strArray[0].Length; this. = strArray.Length - 1; string[] strArray2 = null; if (this.) { this. = new ‚[this., this.]; this. = new ƒ[this., this.]; using (“ = „..ž()) { strArray2 = “.Œ("SELECT bb_tilemap FROM games_maps WHERE type = 'bb' AND id = '" + this. + "'").Split(new char[] { Convert.ToChar(13) }); } } this. = new byte[this., this.]; this. = new bool[this., this.]; for (int i = 0; i < this.; i++) { for (int k = 0; k < this.; k++) { string str = strArray[i].Substring(k, 1); if (str == "x") { this.[k, i] = true; if (this.) { this.[k, i] = ƒ.; this.[k, i] = ‚.; } } else { this.[k, i] = Convert.ToByte(str); if (this.) { if (strArray2[i].Substring(k, 1) == "1") { this.[k, i] = ƒ.; } else { this.[k, i] = ƒ.; this.[k, i] = ‚.; } } } } } int num3 = 0; for (int j = 0; j < this..Length; j++) { if (this.[j].Count != 0) { DataRow row; using (“ = „..ž()) { row = “.Š(string.Concat(new object[] { "SELECT x,y,z FROM games_maps_playerspawns WHERE type = '", this..Type, "' AND mapid = '", this., "' AND teamid = '", j, "'" })); } int num5 = Convert.ToInt32(row["x"]); int num6 = Convert.ToInt32(row["y"]); byte num7 = Convert.ToByte(row["z"]); bool flag = false; foreach ( 2 in this.[j]) { 2. = num3; Label_047B: try { while (this.[num5, num6]) { switch (num7) { case 0: case 2: if (flag) { num5--; } else { num5++; } goto Label_047A; case 4: case 6: if (flag) { num6--; } else { num6++; } break; } Label_047A:; } flag = !flag; } catch { flag = !flag; goto Label_047B; } this.[num5, num6] = true; 2. = num5; 2. = num6; 2. = num7; 2. = this.[num5, num6]; 2. = -1; 2. = true; num3++; Ž.WriteLine(string.Concat(new object[] { "Assigned spawnpoint [", num5, ",", num6, "] to player [", num3, ", team id: ", 2., "]" })); } } } this.("Cq" + œ.€(-1)); new „.‡(this.).BeginInvoke(null, null); } private void () { while (this. > 0) { this.--; Thread.Sleep(0x3e8); } using (“ “ = „..ž()) { for (int i = 0; i < this..Length; i++) { foreach (  in this.[i]) { .. -= 2; ..("A|" + ..); “.‰(string.Concat(new object[] { "UPDATE users SET tickets = '", .., "' WHERE id = '", .., "' LIMIT 1" })); } } } this. = new Thread(new ThreadStart(this.)); this..Start(); this.("Cw" + œ.€(this.)); } internal string () { StringBuilder builder = new StringBuilder(); if (this.) { builder.Append("I" + œ.€(this.) + œ.€(Œ.) + "H" + œ.€(this.) + œ.€(this.)); for (int i = 0; i < this.; i++) { for (int j = 0; j < this.; j++) { builder.Append(œ.€((int) this.[j, i]) + œ.€((int) this.[j, i])); } } builder.Append("IH"); } else { builder.Append("holo.cast.not_finished"); } return builder.ToString(); } internal string () { StringBuilder builder = null; StringBuilder builder2 = new StringBuilder(); Random random = new Random(DateTime.Now.Millisecond * this.); if (this.) { int i = 0; for (int j = 0; j < this..Length; j++) { foreach (  in this.[j]) { Ž.WriteLine(. + "!"); builder2.Append(string.Concat(new object[] { "H", œ.€(i), œ.€(.), œ.€(.), œ.€(.), œ.€(.), "HM", .., Convert.ToChar(2), .., Convert.ToChar(2), .., Convert.ToChar(2), .., Convert.ToChar(2), œ.€(.), œ.€(.) })); i++; } } builder = new StringBuilder("I" + œ.€(this.) + œ.€(Œ.) + œ.€(i)); builder.Append(builder2.ToString()); builder2 = null; builder.Append(œ.€(this.) + œ.€(this.)); for (int k = 0; k < this.; k++) { for (int m = 0; m < this.; m++) { builder.Append(œ.€((int) this.[m, k]) + œ.€((int) this.[m, k])); } } builder.Append("IH"); } else { builder.Append("holo.cast.not_finished"); } return builder.ToString(); } private void () { if (this.) { int length = this..Length; int[] numArray = new int[length]; bool flag = false; int num2 = 0; int index = 0; while (index < length) { if (this.[index].Count > 0) { num2++; } else { numArray[index] = -1; } index++; } Random random = new Random(DateTime.Now.Millisecond * length); while (this. > 0) { int[] numArray2 = new int[3]; StringBuilder builder = new StringBuilder(); StringBuilder builder2 = new StringBuilder(); StringBuilder builder3 = new StringBuilder(); index = 0; while (index < length) { foreach (  in this.[index]) { builder.Append("H" + œ.€(.) + œ.€(.) + œ.€(.) + œ.€(.) + œ.€(.) + "HM"); if (.) { . = false; builder2.Append(œ.€(.) + œ.€(.) + œ.€((int) this.[., .]) + œ.€((int) this.[., .])); numArray2[1]++; } if (. != -1) {   = .Ÿ(., ., ., .); if ((. != -1) && !this.[., .]) { numArray2[2]++; builder3.Append("J" + œ.€(.) + œ.€(.) + œ.€(.)); if ((. == .) && (. == .)) { . = -1; } this.[., .] = false; this.[., .] = true; . = .(., ., ., .); . = .; . = .; . = this.[., .]; if (this.[., .] != ‚.) { if (this.[., .] == .) { this.[., .]++; } else { this.[., .] = ‚.; this.[., .] = (ƒ) .; } int num4 = 0; switch (((int) this.[., .])) { case 1: num4 = num2; break; case 2: num4 = num2 * 3; break; case 3: num4 = num2 * 5; break; case 4: num4 = num2 * 7; break; } numArray[.] += num4; . += num4; . = true; } } else { . = -1; } } numArray2[0]++; } index++; } string str = "H" + œ.€(length); index = 0; while (index < length) { str = str + œ.€(numArray[index]); index++; } this.("Ct" + œ.€(numArray2[0]) + builder.ToString() + œ.€(numArray2[1]) + builder2.ToString() + str + "I" + œ.€(numArray2[2]) + builder3.ToString()); if (flag) { this.--; } flag = !flag; Thread.Sleep(470); } this. = .; StringBuilder builder4 = new StringBuilder("Cx" + œ.€(Œ.) + œ.€(length)); for (index = 0; index < length; index++) { int count = this.[index].Count; if (count > 0) { builder4.Append(œ.€(count)); using (“ “ = „..ž()) { foreach (  in this.[index]) { builder4.Append(œ.€(.)); if (. != null) { “.‰(string.Concat(new object[] { "UPDATE users SET bb_playedgames = bb_playedgames + 1,bb_totalpoints = bb_totalpoints + ", ., " WHERE id = '", .., "' LIMIT 1" })); builder4.Append(.. + Convert.ToChar(2)); } else { builder4.Append("M"); } builder4.Append(œ.€(.)); } } builder4.Append(œ.€(numArray[index])); } else { builder4.Append("M"); } } this.(builder4.ToString()); } } internal void (string Data) { for (int i = 0; i < this..Length; i++) { foreach (  in this.[i]) { .(Data); } } if (this. == .) { foreach ( 2 in this.) { 2.(Data); } } } private [] ( Start) { return null; } internal €(Š Lobby, int ID, string Name, int mapID, int teamAmount, int[] enabledPowerups,  Owner) { this. = new Collection<>(); this. = Œ.; this. = Lobby; this. = ID; this. = Name; this. = mapID; this. = Owner; this. = enabledPowerups; this. = Œ.; this. = Œ.; this. = true; this. = new Collection<>[teamAmount]; for (int i = 0; i < teamAmount; i++) { this.[i] = new Collection<>(); } } internal €(Š Lobby, int ID, string Name, int mapID, int teamAmount, int totalTime,  Owner) { this. = new Collection<>(); this. = Œ.; this. = Lobby; this. = ID; this. = Name; this. = mapID; this. = Owner; this. = totalTime; this. = totalTime; this. = false; this. = new Collection<>[teamAmount]; for (int i = 0; i < teamAmount; i++) { this.[i] = new Collection<>(); } } internal void Abort() { try { this..Abort(); } catch { } string data = "CmH"; for (int i = 0; i < this..Length; i++) { foreach (  in this.[i]) { if (. != null) { if (this. == .) { ..(data); } .. = null; } } } foreach ( 2 in this.) { if (2. != null) { if (this. == .) { 2..(data); } 2.. = null; } } } internal bool Launchable { get { int num = 0; for (int i = 0; i < this..Length; i++) { if (this.[i].Count != 0) { num++; } } return (num > 1); } } internal string Sub { get { int num; StringBuilder builder = new StringBuilder(œ.€((int) this.)); if (this.()) { builder.Append("I"); } else { builder.Append("H"); } builder.Append(string.Concat(new object[] { this., Convert.ToChar(2), œ.€(this..), this..., Convert.ToChar(2) })); if (!this.) { builder.Append(œ.€(this.)); } builder.Append(œ.€(this.) + œ.€(0) + œ.€(this..Length)); for (num = 0; num < this..Length; num++) { builder.Append(œ.€(this.[num].Count)); foreach (  in this.[num]) { builder.Append(œ.€(.) + .. + Convert.ToChar(2)); } } if (this.) { for (num = 0; num < this..Length; num++) { builder.Append(this.[num] + ","); } builder.Append("9" + Convert.ToChar(2)); } else { builder.Append(œ.€(this.) + œ.€(this.)); } return builder.ToString(); } } internal enum  { , ,  } private enum ‚ { , , , ,  } private enum ƒ {  = -2,  = -1,  = 0,  = 1,  = 2,  = 3 } } }