Beispiel #1
0
        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();
                }
            }
        }