public void PlayerCheckTest_2_1()         //Если на вход поступает список из двух пользователей и иформация об игроке
        {
            //arrange
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);

            List <GeneralInfo> listG = new List <GeneralInfo>();
            GeneralInfo        gen   = new GeneralInfo();

            gen.Name     = "Test_1";
            gen.Password = "******";
            listG.Add(gen);

            gen          = new GeneralInfo();
            gen.Name     = "Test_2";
            gen.Password = "******";
            listG.Add(gen);

            GeneralInfo userG = new GeneralInfo();

            userG.Name     = "Test_1";
            userG.Password = "******";

            GeneralInfo expected = listG[0];

            //act
            GeneralInfo actual = ControllersS.cInfoUsers.PlayerCheck(listG, userG);

            //assert
            Assert.AreEqual(expected, actual);
        }
        public void PlayerSaveTest_1()         //В метод поступает пустое значение
        {
            //arrange
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);

            List <GeneralInfo> listG = new List <GeneralInfo>();
            GeneralInfo        gen   = new GeneralInfo();

            gen.Name     = "Test_1";
            gen.Password = "******";
            listG.Add(gen);

            gen          = new GeneralInfo();
            gen.Name     = "Test_2";
            gen.Password = "******";
            listG.Add(gen);

            bool expected = true;
            //act
            bool actual = ControllersS.cInfoUsers.PlayerSave(listG);

            //assert
            Assert.AreEqual(expected, actual);
        }
예제 #3
0
        public override void Process(ModelServer Model)
        {
            foreach (Item item in items)
            {
                for (int i = 1; i <= Model.ListUsers[num].Items.Length; i++)
                {
                    if (Model.ListUsers[num].Items[i].IdItem == item.IdItem)
                    {
                        Item voidItem = new Item();
                        Model.ListUsers[num].Items[i] = voidItem;                         //Удаляем вещь из инвентаря игрока
                        voidItem.IdItem = -1;
                        item.Location   = itemLocation;
                        lock (Model.Map.ListItems)
                        {
                            Model.Map.ListItems.Add(item);                             //Добавляем вещь на карту
                        }

                        break;
                    }
                }
                itemLocation.X += 25;
            }
            foreach (NetworkStream nStream in Model.ListNs)             //Даём актуальную инфу всем игрокам об удалённом с карты предмете
            {
                GetInfoItems items = new GetInfoItems();
                items.listItems = Model.Map.ListItems;
                CTransfers.Writing(items, nStream);
            }
        }
예제 #4
0
        public override void Process(ModelServer Model)
        {
            this.Model = Model;
            switch (action.act)
            {
            case ClassLibrary.Action.action.moveUp: Model.ListMove[num].moveUp = true; break;

            case ClassLibrary.Action.action.moveDown: Model.ListMove[num].moveDown = true; break;

            case ClassLibrary.Action.action.noveLeft: Model.ListMove[num].moveLeft = true; break;

            case ClassLibrary.Action.action.moveRight: Model.ListMove[num].moveRight = true; break;

            case ClassLibrary.Action.action.shiftDown: Model.ListMove[num].shift = true; break;

            case ClassLibrary.Action.action.stopUp: Model.ListMove[num].moveUp = false; break;

            case ClassLibrary.Action.action.stopDown: Model.ListMove[num].moveDown = false; break;

            case ClassLibrary.Action.action.stopLeft: Model.ListMove[num].moveLeft = false; break;

            case ClassLibrary.Action.action.stopRight: Model.ListMove[num].moveRight = false; break;

            case ClassLibrary.Action.action.shiftUp: Model.ListMove[num].shift = false; break;
            }
        }
        public void CheckDataTest_2_1_errorPassword()         //Если на вход поступает список из двух пользователей и иформация об игроке, но пароль не верен
        {
            //arrange
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);

            List <GeneralInfo> listG = new List <GeneralInfo>();
            GeneralInfo        gen   = new GeneralInfo();

            gen.Name     = "Test_1";
            gen.Password = "******";
            listG.Add(gen);

            gen          = new GeneralInfo();
            gen.Name     = "Test_2";
            gen.Password = "******";
            listG.Add(gen);

            GeneralInfo userG = new GeneralInfo();

            userG.Name     = "Test_1";
            userG.Password = "******";

            bool expected = false;

            //act
            bool actual = ControllersS.cInfoUsers.CheckData(listG, userG);

            //assert
            Assert.AreEqual(expected, actual);
        }
예제 #6
0
        public override void Process(ModelServer Model)
        {
            for (int i = 1; i < Model.ListUsers[num].Items.Length; i++)
            {
                if (Model.ListUsers[num].Items[i].Name == null)
                {
                    Model.ListUsers[num].Items[i] = item;                     //Кладём вещь игроку

                    lock (Model.Map.ListItems)
                    {
                        for (int j = 0; j < Model.Map.ListItems.Count; j++)
                        {
                            if (Model.Map.ListItems[j].IdItem == item.IdItem)
                            {
                                Model.Map.ListItems.RemoveAt(j);                                                                                                                       //Удаляем вещь с карты
                            }
                        }
                    }

                    foreach (NetworkStream nStream in Model.ListNs)                     //Даём актуальную инфу всем игрокам об удалённом с карты предмете
                    {
                        GetInfoItems items = new GetInfoItems();
                        items.listItems = Model.Map.ListItems;
                        CTransfers.Writing(items, nStream);
                    }
                    break;
                }
            }
        }
예제 #7
0
 public override void Process(ModelServer Model)
 {
     this.Model = Model;
     try
     {
         Model.ListUsers[num].Name = name;
     }
     catch { throw new Exception(); }
 }
예제 #8
0
        public override void Process(ModelServer Model)
        {
            this.Model = Model;
            byte[] ping = new byte[1];
            ping[0] = 2;
            PingInfoClient pic = new PingInfoClient();

            CTransfers.Writing(pic, Model.ListNs[this.num]);
        }
예제 #9
0
        public VMServer(ModelServer modelServer)
        {
            _modelServer = modelServer;

            //   ConId = modelServer.ConId;
            //   Ip = modelServer.Ip;
            // Port = modelServer.Port;
            //  IsAvailable = modelServer.IsAvailable;
            // Name = modelServer.Name;
        }
예제 #10
0
        public override void Process(ModelServer Model)
        {
            this.model = Model;

            Model.ListUsers[num].flagRecharge = false;
            if (!Model.ListUsers[num].flagShoting && !Model.ListUsers[num].flagWaitShoting && Model.workingGame)
            {
                Model.ListUsers[num].flagShoting = true;
                Model.ListShoting[num]           = new Thread(new ParameterizedThreadStart(ShotUser));
                Model.ListShoting[num].Start(Model.ListUsers[num]);
            }
        }
예제 #11
0
        public void Dispose()
        {
#if UNITY_EDITOR || !(UNITY_IOS || UNITY_ANDROID || UNITY_WSA || UNITY_WEBGL)
            ConnectionManager.Connection.UnadvertiseService(ModelServer.ModelServiceName);
            ConnectionManager.Connection.UnadvertiseService(ModelServer.TextureServiceName);
            ConnectionManager.Connection.UnadvertiseService(ModelServer.FileServiceName);
            ConnectionManager.Connection.UnadvertiseService(ModelServer.SdfServiceName);

            modelServer?.Dispose();
            modelServer = null;
#endif
        }
        public void GenerateItemsTests_6000x6000()         //Генерация предметов на карте при нормальных размерах
        {
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);

            model.Map.MapBorders = new Rectangle(0, 0, 6000, 6000);
            bool expected = true;

            bool actual = ControllersS.cMap.GenerateItems();

            Assert.AreEqual(expected, actual);
        }
예제 #13
0
        public void RemoveTest()         //Тест очистки карты
        {
            //arrange
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);
            bool             expected   = true;

            //act
            bool actual = model.Map.Remove();

            //assert
            Assert.AreEqual(expected, actual);
        }
        public void RandomTreeTests_6000x6000()         //Генерация предметов на карте при нормальных размерах
        {
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);

            model.Map.MapBorders        = new Rectangle(0, 0, 6000, 6000);
            model.Map.bordersForUsers   = new bool[model.Map.mapBorders.Width, model.Map.mapBorders.Height];
            model.Map.bordersForBullets = new bool[model.Map.mapBorders.Width, model.Map.mapBorders.Height];
            bool expected = true;

            bool actual = ControllersS.cMap.RandomTree();

            Assert.AreEqual(expected, actual);
        }
        public void PlayerSaveTest_null()         //В метод поступает пустое значение
        {
            //arrange
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);

            List <GeneralInfo> listG = null;
            bool expected            = false;

            //act
            bool actual = ControllersS.cInfoUsers.PlayerSave(listG);

            //assert
            Assert.AreEqual(expected, actual);
        }
        public void CheckDataTest_null_null()        //Если на вход поступает пустой список пользователей и пустая иформация об игроке
        {
            //arrange
            ModelServer        model      = new ModelServer();
            ControllerServer   controller = new ControllerServer(model);
            List <GeneralInfo> listG      = null;
            GeneralInfo        userG      = null;
            bool expected = false;

            //act
            bool actual = ControllersS.cInfoUsers.CheckData(listG, userG);

            //assert
            Assert.AreEqual(expected, actual);
        }
예제 #17
0
        public async Task <List <ModelDatabase> > GetDataBases(ModelServer _server)
        {
            var options = new JsonSerializerOptions()
            {
                PropertyNamingPolicy = JsonNamingPolicy.CamelCase
            };

            List <ModelDatabase> databases = new List <ModelDatabase>();

            var streamDbases = client.GetStreamAsync($"http://{_server.IpAddress}:{_server.Port}/api/DatabaseService/GetAllByServer?serverId={_server.ServersId}");

            databases = await JsonSerializer.DeserializeAsync <List <ModelDatabase> >(await streamDbases, options);

            return(databases);
        }
예제 #18
0
        public void NewCenterZone_600x600_610610_10_falseReturned()        //Создание нового центра зоны при существующей границе карты,
        //Предыдущем центре и ридусе, но центр выходит за пределы границы карты.
        {
            //arrange
            ModelServer      model      = new ModelServer();
            ControllerServer controller = new ControllerServer(model);
            Rectangle        rect       = new Rectangle(0, 0, 600, 600);
            Point            center     = new Point(610, 610);
            int radius = 10;

            bool expected = false;

            //act
            bool actual = model.Map.NextZone.NewCenterZone(rect, center, radius);

            //assert
            Assert.AreEqual(expected, actual);
        }
예제 #19
0
        public async Task Restart(bool enableFileScheme, CancellationToken token = default)
        {
#if UNITY_EDITOR || !(UNITY_IOS || UNITY_ANDROID || UNITY_WSA || UNITY_WEBGL)
            string rosPackagePathExtras = await GetPathExtras(token);

            modelServer?.Dispose();
            modelServer = new ModelServer(rosPackagePathExtras, enableFileScheme);
            if (enableFileScheme)
            {
                Logger.Warn(
                    "Iviz.ModelService started. Uris starting with 'package://' and 'file://' are now enabled." +
                    " This grants access to all files from the outside");
            }
            else if (modelServer.NumPackages == 0)
            {
                Logger.Info(
                    "Iviz.Model.Service started. However, no packages were found. Try creating a ros_package_path file with a list of ROS root paths.");
                return;
            }
            else
            {
                Logger.Info(
                    "Iviz.ModelService started. Uris starting with 'package://' are now enabled." +
                    " This grants access to all files within the ROS packages.");
            }

            ConnectionManager.Connection.AdvertiseService <GetModelResource>(
                ModelServer.ModelServiceName, ModelCallback);

            ConnectionManager.Connection.AdvertiseService <GetModelTexture>(
                ModelServer.TextureServiceName, modelServer.TextureCallback);

            ConnectionManager.Connection.AdvertiseService <GetFile>(
                ModelServer.FileServiceName, modelServer.FileCallback);

            ConnectionManager.Connection.AdvertiseService <GetSdf>(
                ModelServer.SdfServiceName, modelServer.SdfCallback);

            Logger.Info($"Iviz.Model.Service started with {modelServer.NumPackages} paths.");
#endif
        }
예제 #20
0
        public override void Process(ModelServer Model)
        {
            this.Model = Model;
            Model.ListUsers[num].flagRecharge    = false;
            Model.ListUsers[num].flagWaitShoting = true;
            Model.ListShoting[num].Abort();
            if (Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] is Grenade)
            {
                (Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] as Grenade).Grena.flagFly = true;
            }
            Model.ListUsers[num].flagShoting = false;
            short  Time = Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Time;
            Thread t    = new Thread(() =>
            {
                Thread.Sleep(Time);
                Model.ListUsers[num].flagWaitShoting = false;
            });

            t.Start();
            Model.ListUsers[num].thisItem = numItems;
        }
예제 #21
0
        public void OnConnectionDisconnect(int conId)
        {
            //  _lstModelServer = new List<ModelServer>();

            //   _lstModelServer.Add(new ModelServer { ConId = 0, Ip = "", IsAvailable = false, Name = "1234567", Port = 11 });



            if (_lstModelServer.Count >= conId - 1)
            {
                //  _lstModelServer[conId].IsAvailable = false;
                // _lstModelServer[conId].Name = "123";


                ModelServer oldValue = _lstModelServer[conId];

                _lstModelServer[conId] = new ModelServer
                {
                    IsAvailable = false,
                    ConId       = oldValue.ConId,
                    Ip          = oldValue.Ip,
                    Name        = oldValue.Name,
                    Port        = oldValue.Port
                };


                //   CollVMServers[conId].IsAvailable = false;
            }
            else
            {
                Error("OnConnectionDisconnect connection not found");
            }


            _dispatcher.Invoke(new Action(() =>
            {
                ModelVMSynchro(_lstModelServer, CollVMServers, VMServer.Create);
            }
                                          ));
        }
예제 #22
0
 public override void Process(ModelServer Model)
 {
     this.Model = Model;
     if (Model.ListUsers[num].flagShoting && !Model.ListUsers[num].flagWaitShoting)
     {
         Model.ListUsers[num].flagWaitShoting = true;
         Model.ListShoting[num].Abort();
         if (Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] is Grenade)
         {
             (Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] as Grenade).Grena.flagFly = true;
         }
         Model.ListUsers[num].flagShoting = false;
         Thread t = new Thread(() =>
         {
             Thread.Sleep(Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Time);
             try
             {
                 Model.ListUsers[num].flagWaitShoting = false;
             }
             catch { }
         });
         t.Start();
     }
 }
예제 #23
0
 public override void Process(ModelServer Model)
 {
     this.Model = Model;
     Model.ListUsers[num].Rotate = angels;
 }
예제 #24
0
 public static VMServer Create(ModelServer modelServer)
 {
     return(new VMServer(modelServer));
 }
예제 #25
0
 public CStart(ModelServer model)
 {
     this.model = model;
 }
예제 #26
0
 public override void Process(ModelServer Model)
 {
     this.Model = Model;
     Model.ListUsers[num].mouseLocation = mouse;
 }
예제 #27
0
 public CInfoUsers(ModelServer model)
 {
     this.model = model;
 }
예제 #28
0
        public override void Process(ModelServer Model)
        {
            this.Model = Model;
            try
            {
                if (Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] is Weapon && Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] != null)
                {
                    Model.ListUsers[num].flagRecharge = true;
                    Model.ListShoting[num].Abort();
                    Model.ListUsers[num].flagShoting = false;
                    Thread t = new Thread(() =>
                    {
                        int time = 0;
                        while (Model.ListUsers[num].flagRecharge)
                        {
                            time++;
                            Thread.Sleep(100);

                            if (time >= Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].TimeReloading)
                            {
                                switch ((Model.ListUsers[num].Items[Model.ListUsers[num].thisItem] as Weapon).TypeBullets)
                                {
                                case Weapon.typeBullets.Gun:
                                    {
                                        Model.ListUsers[num].GunBullets += Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count;
                                        Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count = Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].MaxCount;
                                        Model.ListUsers[num].GunBullets -= Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].MaxCount;
                                        if (Model.ListUsers[num].GunBullets < 0)
                                        {
                                            Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count += Model.ListUsers[num].GunBullets;
                                            Model.ListUsers[num].GunBullets = 0;
                                        }
                                        break;
                                    }

                                case Weapon.typeBullets.Pistol:
                                    {
                                        Model.ListUsers[num].PistolBullets += Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count;
                                        Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count = Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].MaxCount;
                                        Model.ListUsers[num].PistolBullets -= Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].MaxCount;
                                        if (Model.ListUsers[num].PistolBullets < 0)
                                        {
                                            Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count += Model.ListUsers[num].PistolBullets;
                                            Model.ListUsers[num].PistolBullets = 0;
                                        }
                                        break;
                                    }

                                case Weapon.typeBullets.Shotgun:
                                    {
                                        Model.ListUsers[num].ShotgunBullets += Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count;
                                        Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count = Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].MaxCount;
                                        Model.ListUsers[num].ShotgunBullets -= Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].MaxCount;
                                        if (Model.ListUsers[num].ShotgunBullets < 0)
                                        {
                                            Model.ListUsers[num].Items[Model.ListUsers[num].thisItem].Count += Model.ListUsers[num].ShotgunBullets;
                                            Model.ListUsers[num].ShotgunBullets = 0;
                                        }
                                        break;
                                    }
                                }

                                Model.ListUsers[num].flagRecharge = false;
                            }
                        }
                    });
                    t.Start();
                }
            }
            catch { };
        }
예제 #29
0
 public CMap(ModelServer model)
 {
     this.model = model;
 }
예제 #30
0
 public IActionResult Add(ModelServer _database)
 {
     _repository.Add(_database);
     return(Ok());
 }