void SessionFounder() { Random random = new Random(); while (sessionAwaitPlayers.Count > 1) { lock (sessionAwaitPlayers) { var p1 = sessionAwaitPlayers[random.Next(sessionAwaitPlayers.Count)]; sessionAwaitPlayers.Remove(p1); var p2 = sessionAwaitPlayers[random.Next(sessionAwaitPlayers.Count)]; sessionAwaitPlayers.Remove(p2); var session = new CardSessionServer.Session(new Position(8, 8), new Pair <Modifier, int>[] { new Pair <Modifier, int>(new DurableModifier(typeof(Destroyable), "DeltaHealth", new object[] { 10 }), 15), new Pair <Modifier, int>(new Modifier(typeof(Attacker), "DeltaAttack", new object[] { -10 }), 15) }); foreach (var f in p1.PlayerInfo.SharedPlayerInfo.CurrentSoliders) { var ser = Soliders.Find(q => q.Obj2 == f).Obj1; var o = BinarySerializer.Deserialize(BinarySerializer.Serialize(ser)); ((Container)o).SetOwner(p1.ControllerInfo); session.AddObject((Container)o); } foreach (var f in p1.PlayerInfo.SharedPlayerInfo.CurrentSpells) { var ser = Spells.Find(q => q.Obj2 == f).Obj1; var o = BinarySerializer.Deserialize(BinarySerializer.Serialize(ser)); ((Container)o).SetOwner(p1.ControllerInfo); session.AddObject((Container)o); } foreach (var f in p2.PlayerInfo.SharedPlayerInfo.CurrentSoliders) { var ser = Soliders.Find(q => q.Obj2 == f).Obj1; var o = BinarySerializer.Deserialize(BinarySerializer.Serialize(ser)); ((Container)o).SetOwner(p2.ControllerInfo); session.AddObject((Container)o); } foreach (var f in p2.PlayerInfo.SharedPlayerInfo.CurrentSpells) { var ser = Spells.Find(q => q.Obj2 == f).Obj1; var o = BinarySerializer.Deserialize(BinarySerializer.Serialize(ser)); ((Container)o).SetOwner(p2.ControllerInfo); session.AddObject((Container)o); } session.AddController(p1); session.AddController(p2); session.StartSession(); } } }