Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [RoomType("GameType")]
- public class GameCode : Game<Player>
- {
- Message m;
- Player player_1;
- Player player_2;
- Player[] arrplayer = new Player[45];
- DateTime time_close; // diff zwischen datetime last und close
- DateTime time_last; // wann der spieler zuletzt gesetzt hat
- Timer timer;
- string time_send;
- string username_1 = "";
- string username_2 = "";
- int powerup_1 = 0;
- int powerup_2 = 0;
- int strike_1 = 0;
- int strike_2 = 0;
- bool powerup_1_able = true;
- bool powerup_2_able = true;
- bool turn_1;
- bool turn_2;
- bool send_start = false;
- bool allow_join = true;
- int[] value_col = new int[7];
- int[,] field = new int[7, 6];
- int number = 0;
- string field_code = "";
- public override void GameStarted()
- {
- Username();
- PlayerIO.BigDB.Load("Roomdata", RoomId,
- delegate (DatabaseObject obj)
- {
- if (obj != null)
- {
- string db_roomname = obj.GetString("Roomname");
- if(db_roomname == RoomId)
- {
- if (obj.Contains("Closetime") == true)
- {
- Console.Write("Closetime gibts NICHT");
- strike_1 = obj.GetInt("Strike_1");
- strike_2 = obj.GetInt("Strike_2");
- turn_1 = obj.GetBool("Turn_1");
- turn_2 = obj.GetBool("Turn_2");
- DateTime.TryParse(obj.GetString("Closetime"), out time_close);
- DateTime.TryParse(obj.GetString("Lasttime"), out time_last);
- DateTime n = DateTime.UtcNow;
- if (n > time_last.AddSeconds(90))
- {
- PlayerIO.BigDB.DeleteKeys("Roomdata", RoomId);
- return;
- }
- if (n >= time_last.AddSeconds(15)) // 11:00:05 11:00:10
- {
- if (turn_1 == true)
- {
- strike_1++;
- number = 1;
- }
- else if (turn_2 == true)
- {
- strike_2++;
- number = 2;
- }
- System.Random r;
- r = new System.Random();
- int v = r.Next(0, 7);
- while (value_col[v] >= 6)
- {
- v = r.Next(0, 7);
- }
- field[v, value_col[v]] = number;
- value_col[v]++;
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- }
- else
- {
- TimeSpan p = time_last.AddSeconds(15) - DateTime.UtcNow;
- int min = p.Minutes * 60;
- int hou = p.Hours * 3600;
- int sec = (p.Seconds + min + hou) * 1000;
- Console.WriteLine(sec);
- DateTime Next = DateTime.UtcNow.AddSeconds(sec);
- time_send = Next.ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- Timer(sec);
- }
- if (n >= time_last.AddSeconds(30))
- {
- if (turn_1 == true)
- {
- strike_1++;
- number = 1;
- }
- else if (turn_2 == true)
- {
- strike_2++;
- number = 2;
- }
- System.Random r;
- r = new System.Random();
- int v = r.Next(0, 7);
- while (value_col[v] >= 6)
- {
- v = r.Next(0, 7);
- }
- field[v, value_col[v]] = number;
- value_col[v]++;
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- }
- else
- {
- TimeSpan p = time_last.AddSeconds(30) - DateTime.UtcNow;
- int min = p.Minutes * 60;
- int hou = p.Hours * 3600;
- int sec = (p.Seconds + min + hou) * 1000;
- Console.WriteLine(sec);
- DateTime Next = DateTime.UtcNow.AddSeconds(sec);
- time_send = Next.ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- Timer(sec);
- }
- if (n >= time_last.AddSeconds(45))
- {
- if (turn_1 == true)
- {
- strike_1++;
- number = 1;
- }
- else if (turn_2 == true)
- {
- strike_2++;
- number = 2;
- }
- System.Random r;
- r = new System.Random();
- int v = r.Next(0, 7);
- while (value_col[v] >= 6)
- {
- v = r.Next(0, 7);
- }
- field[v, value_col[v]] = number;
- value_col[v]++;
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- }
- else
- {
- TimeSpan p = time_last.AddSeconds(45) - DateTime.UtcNow;
- int min = p.Minutes * 60;
- int hou = p.Hours * 3600;
- int sec = (p.Seconds + min + hou) * 1000;
- Console.WriteLine(sec);
- DateTime Next = DateTime.UtcNow.AddSeconds(sec);
- time_send = Next.ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- Timer(sec);
- }
- if (n >= time_last.AddSeconds(60))
- {
- if (turn_1 == true)
- {
- strike_1++;
- number = 1;
- }
- else if (turn_2 == true)
- {
- strike_2++;
- number = 2;
- }
- System.Random r;
- r = new System.Random();
- int v = r.Next(0, 7);
- while (value_col[v] >= 6)
- {
- v = r.Next(0, 7);
- }
- field[v, value_col[v]] = number;
- value_col[v]++;
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- }
- else
- {
- TimeSpan p = time_last.AddSeconds(60) - DateTime.UtcNow;
- int min = p.Minutes * 60;
- int hou = p.Hours * 3600;
- int sec = (p.Seconds + min + hou) * 1000;
- Console.WriteLine(sec);
- DateTime Next = DateTime.UtcNow.AddSeconds(sec);
- time_send = Next.ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- Timer(sec);
- }
- if (n >= time_last.AddSeconds(75))
- {
- if (turn_1 == true)
- {
- strike_1++;
- number = 1;
- }
- else if (turn_2 == true)
- {
- strike_2++;
- number = 2;
- }
- System.Random r;
- r = new System.Random();
- int v = r.Next(0, 7);
- while (value_col[v] >= 6)
- {
- v = r.Next(0, 7);
- }
- field[v, value_col[v]] = number;
- value_col[v]++;
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- }
- else
- {
- TimeSpan p = time_last.AddSeconds(75) - DateTime.UtcNow;
- int min = p.Minutes * 60;
- int hou = p.Hours * 3600;
- int sec = (p.Seconds + min + hou) * 1000;
- Console.WriteLine(sec);
- DateTime Next = DateTime.UtcNow.AddSeconds(sec);
- time_send = Next.ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- Timer(sec);
- }
- if (strike_1 >= 3 && strike_2 < 3)
- {
- // 2 gewinnt
- }
- else if (strike_2 >= 3 && strike_1 < 3)
- {
- // 1 gewinnt
- }
- else if (strike_1 >= 3 && strike_2 >= 3)
- {
- // keiner bekommt was
- }
- else
- {
- // es geht weiter
- }
- Writer();
- field_code = obj.GetString("Fieldcode");
- send_start = true;
- Join();
- }
- else
- {
- DateTime temp = DateTime.UtcNow.AddSeconds(10);
- time_send = temp.ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- timer = AddTimer(
- delegate ()
- {
- time_send = DateTime.UtcNow.AddSeconds(10).ToString(String.Format("MM.dd.yyyy HH:mm:ss"));
- Broadcast("StartGame", turn_1 = true, turn_2 = false, time_send);
- timer.Stop();
- timer = null;
- Timer(15000);
- },
- 10000);
- send_start = true;
- Join();
- }
- }
- }
- else
- {
- //kick all
- }
- });
- }
- public void Join()
- {
- Console.WriteLine("Join()");
- if (send_start == true)
- {
- Console.WriteLine("Join() == true");
- for (int i = 0; i < arrplayer.Length; i++)
- {
- if (arrplayer[i] != null)
- {
- Console.WriteLine(username_1);
- Console.WriteLine(username_2);
- if (arrplayer[i].username == username_1)
- {
- player_1 = arrplayer[i];
- if (time_send != "")
- {
- Console.WriteLine("1");
- m = Message.Create("JoinedGame", 1, time_send);
- arrplayer[i].Send(m);
- }
- }
- else if (arrplayer[i].username == username_2)
- {
- player_2 = arrplayer[i];
- if (time_send != "")
- {
- Console.WriteLine("2");
- m = Message.Create("JoinedGame", 2, time_send);
- arrplayer[i].Send(m);
- }
- }
- else
- {
- // spectator
- }
- }
- else
- {
- // kick
- }
- }
- }
- }
- public override void GameClosed()
- {
- timer.Stop();
- Writer();
- PlayerIO.BigDB.Load("Roomdata", RoomId,
- delegate (DatabaseObject obj)
- {
- obj.Set("Fieldcode", field_code);
- obj.Set("Closetime", DateTime.UtcNow.ToString(String.Format("MM.dd.yyyy HH:mm:ss")));
- obj.Set("Turn_1", turn_1);
- obj.Set("Turn_2", turn_2);
- obj.Set("Powerup_1_able", powerup_1_able);
- obj.Set("Powerup_2_able", powerup_2_able);
- obj.Set("Strike_1", strike_1);
- obj.Set("Strike_2", strike_2);
- obj.Set("Lasttime", time_last);
- obj.Save();
- });
- }
- void Username()
- {
- int s = RoomId.IndexOf("-") + 1;
- int e = RoomId.LastIndexOf("_");
- int l = e - s;
- username_1 = RoomId.Substring(s, l);
- s = RoomId.LastIndexOf("_") + 1;
- e = RoomId.LastIndexOf("-");
- l = e - s;
- username_2 = RoomId.Substring(s, l);
- }
- void Keys(Player player)
- {
- foreach (string Key in player.JoinData.Keys)
- {
- string value = player.JoinData[Key];
- if (Key == "Username")
- {
- player.username = value;
- }
- if (Key == "Password")
- {
- player.password = value;
- }
- }
- }
- public override void UserJoined(Player player)
- {
- Username();
- Keys(player);
- PlayerIO.BigDB.Load("PlayerObjects", player.username,
- delegate (DatabaseObject obj)
- {
- if (obj != null)
- {
- string db_username = obj.GetString("Username");
- string db_password = obj.GetString("Password");
- string db_roomname = obj.GetString("Roomname");
- int db_powerup = obj.GetInt("Powerup");
- if (db_roomname == RoomId)
- {
- if (db_username == player.username && db_password == player.password)
- {
- for (int i = 0; i < arrplayer.Length; i++)
- {
- if (arrplayer[i] == null)
- {
- arrplayer[i] = player;
- break; // methode geht weiter
- }
- }
- }
- }
- else
- {
- }
- }
- else
- {
- //kick
- }
- });
- }
- public override void GotMessage(Player player, Message message)
- {
- switch (message.Type)
- {
- //case "ScriptIsLoaded":
- // m = Message.Create("ScrDone", turn_1, turn_2);
- // player.Send(m);
- // break;
- }
- if (player == player_1 && turn_1 == true || player == player_2 && turn_2 == true)
- {
- if (turn_1 == true)
- {
- number = 1;
- }
- else if (turn_2 == true)
- {
- number = 2;
- }
- for (int x = 0; x < 7; x++)
- {
- if (message.Type == x.ToString())
- {
- if (value_col[x] < 6)
- {
- field[x, value_col[x]] = number;
- value_col[x]++;
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- Writer();
- Broadcast("uTurn", turn_1, turn_2, field_code, DateTime.UtcNow.AddSeconds(15).ToString(String.Format("MM.dd.yyyy HH:mm:ss")));
- timer.Stop();
- timer = null;
- Timer(15000);
- Inspector();
- time_last = DateTime.UtcNow;
- }
- else
- {
- // voll
- }
- }
- }
- }
- else
- {
- // spectator
- }
- }
- public override bool AllowUserJoin(Player player)
- {
- if (allow_join == true)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- void Kick()
- {
- allow_join = false;
- for (int i = 0; i < arrplayer.Length; i++)
- {
- if (arrplayer[i] != null)
- {
- PlayerIO.BigDB.Load("PlayerObjects", arrplayer[i].username, delegate (DatabaseObject obj)
- {
- obj.Set("Roomname", "");
- arrplayer[i].Disconnect();
- Null(arrplayer[i]);
- });
- }
- }
- }
- void Null(Player player)
- {
- if (player == player_1)
- {
- player_1 = null;
- }
- else if (player == player_2)
- {
- player_2 = null;
- }
- player = null;
- }
- void Timer(int sec)
- {
- timer = AddTimer(
- delegate ()
- {
- if (turn_1 == true)
- {
- number = 1;
- }
- else if (turn_2 == true)
- {
- number = 2;
- }
- System.Random r;
- r = new System.Random();
- int v = r.Next(0, 7);
- while (value_col[v] >= 6)
- {
- v = r.Next(0, 7);
- }
- field[v, value_col[v]] = number;
- value_col[v]++;
- Writer();
- turn_1 = !turn_1;
- turn_2 = !turn_2;
- Broadcast("uTurn", turn_1, turn_2, field_code, DateTime.UtcNow.AddSeconds(15).ToString(String.Format("MM.dd.yyyy HH:mm:ss")));
- Inspector();
- time_last = DateTime.UtcNow;
- sec = 15000;
- },
- sec);
- }
- public void Writer()
- {
- field_code = "";
- int k = 0;
- string[] arr = new string[42];
- for (int x = 0; x < 7; x++)
- {
- for (int y = 0; y < 6; y++)
- {
- arr[k] = field[x, y].ToString();
- field_code = field_code + arr[k];
- k++;
- }
- }
- }
- public void Inspector()
- {
- for (int x = 0; x < 7; x++)
- {
- for (int y = 0; y < 6; y++)
- {
- if (((x + 3 < 7 && field[x, y] == 1 && field[x + 1, y] == 1 && field[x + 2, y] == 1 && field[x + 3, y] == 1) ||
- (y + 3 < 6 && field[x, y] == 1 && field[x, y + 1] == 1 && field[x, y + 2] == 1 && field[x, y + 3] == 1) ||
- (x + 3 < 7 && y + 3 < 6 && field[x, y] == 1 && field[x + 1, y + 1] == 1 && field[x + 2, y + 2] == 1 && field[x + 3, y + 3] == 1) ||
- (x + 3 < 7 && y - 3 > -1 && field[x, y] == 1 && field[x + 1, y - 1] == 1 && field[x + 2, y - 2] == 1 && field[x + 3, y - 3] == 1))
- &&
- ((x + 3 < 7 && field[x, y] == 2 && field[x + 1, y] == 2 && field[x + 2, y] == 2 && field[x + 3, y] == 2) ||
- (y + 3 < 6 && field[x, y] == 2 && field[x, y + 1] == 2 && field[x, y + 2] == 2 && field[x, y + 3] == 2) ||
- (x + 3 < 7 && y + 3 < 6 && field[x, y] == 2 && field[x + 1, y + 1] == 2 && field[x + 2, y + 2] == 2 && field[x + 3, y + 3] == 2) ||
- (x + 3 < 7 && y - 3 > -1 && field[x, y] == 2 && field[x + 1, y - 1] == 2 && field[x + 2, y - 2] == 2 && field[x + 3, y - 3] == 2)))
- {
- Console.WriteLine("Beide");
- turn_1 = false;
- turn_2 = false;
- timer.Stop();
- //timer = null;
- Broadcast("uTurn", turn_1, turn_2, field_code); //Oder lieber End; ??
- return;
- }
- else if ((x + 3 < 7 && field[x, y] == 1 && field[x + 1, y] == 1 && field[x + 2, y] == 1 && field[x + 3, y] == 1) ||
- (y + 3 < 6 && field[x, y] == 1 && field[x, y + 1] == 1 && field[x, y + 2] == 1 && field[x, y + 3] == 1) ||
- (x + 3 < 7 && y + 3 < 6 && field[x, y] == 1 && field[x + 1, y + 1] == 1 && field[x + 2, y + 2] == 1 && field[x + 3, y + 3] == 1) ||
- (x + 3 < 7 && y - 3 > -1 && field[x, y] == 1 && field[x + 1, y - 1] == 1 && field[x + 2, y - 2] == 1 && field[x + 3, y - 3] == 1))
- {
- Console.WriteLine("Spieler 1");
- turn_1 = false;
- turn_2 = false;
- timer.Stop();
- //timer = null;
- Broadcast("uTurn", turn_1, turn_2, field_code);
- return;
- }
- else if ((x + 3 < 7 && field[x, y] == 2 && field[x + 1, y] == 2 && field[x + 2, y] == 2 && field[x + 3, y] == 2) ||
- (y + 3 < 6 && field[x, y] == 2 && field[x, y + 1] == 2 && field[x, y + 2] == 2 && field[x, y + 3] == 2) ||
- (x + 3 < 7 && y + 3 < 6 && field[x, y] == 2 && field[x + 1, y + 1] == 2 && field[x + 2, y + 2] == 2 && field[x + 3, y + 3] == 2) ||
- (x + 3 < 7 && y - 3 > -1 && field[x, y] == 2 && field[x + 1, y - 1] == 2 && field[x + 2, y - 2] == 2 && field[x + 3, y - 3] == 2))
- {
- Console.WriteLine("Spieler 2");
- turn_1 = false;
- turn_2 = false;
- timer.Stop();
- //timer = null;
- Broadcast("uTurn", turn_1, turn_2, field_code);
- return;
- }
- else if (value_col[0] >= 6 && value_col[1] >= 6 && value_col[2] >= 6 && value_col[3] >= 6 && value_col[4] >= 6 && value_col[5] >= 6 && value_col[6] >= 6)
- {
- Console.WriteLine("Beide_2");
- turn_1 = false;
- turn_2 = false;
- timer.Stop();
- //timer = null;
- Broadcast("uTurn", turn_1, turn_2, field_code);
- return;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement