Exemplo n.º 1
0
 private void MoveUser()
 {
     Coordinates <User>[] newMoveCoordinates = _usersMoveCoordinatesOut.ToArray();
     _usersMoveCoordinatesOut.Clear();
     for (int i = 0; i < newMoveCoordinates.Length; i++)
     {
         if (_users.ContainsKey(newMoveCoordinates[i].Model.Id))
         {
             CalculateCoordinates.CalculateCoef(newMoveCoordinates[i],
                                                _usersCoordinates.GetValueOrDefault(newMoveCoordinates[i].Model.Id));
             if (_usersMoveCoordinates.ContainsKey(newMoveCoordinates[i].Model.Id))
             {
                 _usersMoveCoordinates.Remove(newMoveCoordinates[i].Model.Id);
             }
             _usersMoveCoordinates.Add(newMoveCoordinates[i].Model.Id, newMoveCoordinates[i]);
         }
     }
     foreach (var userMoveCoord in _usersMoveCoordinates)
     {
         var userCoord = _usersCoordinates.GetValueOrDefault(userMoveCoord.Key);
         if (DateTime.Now > userCoord.TimeOffset)
         {
             CalculateCoordinates.CalculatePosition(userCoord, userMoveCoord.Value, _map.MoveDistance);
             CalculateCoordinates.CheckBorder(userCoord, userMoveCoord.Value);
             Console.WriteLine($"user {_users.GetValueOrDefault(userMoveCoord.Key).Name} coord x - {userCoord.x}, y {userCoord.y}");
         }
     }
 }
Exemplo n.º 2
0
        private void MoveMonsterObjects()
        {
            foreach (var monsterCoord in _monstersCoordinates)
            {
                Coordinates <Monster> moveMonsterCoord;

                if (!_monstersMoveCoordinates.TryGetValue(monsterCoord.Key, out moveMonsterCoord))
                {
                    //генерим новую точку и считаем переменные направления

                    Coordinates <Monster> moveCoord = new Coordinates <Monster>();

                    CalculateCoordinates.GenerateNewMoveCoord(monsterCoord.Value, moveCoord, _map.Width, _map.Height);
                    _monstersMoveCoordinates.Add(monsterCoord.Key, moveCoord);
                }
                else
                {
                    if (DateTime.Now > monsterCoord.Value.TimeOffset)
                    {
                        CalculateCoordinates.CalculatePosition(monsterCoord.Value, moveMonsterCoord, _map.MoveDistance);
                        if (CalculateCoordinates.CheckBorder(monsterCoord.Value, moveMonsterCoord))
                        {
                            CalculateCoordinates.GenerateNewMoveCoord(monsterCoord.Value, moveMonsterCoord, _map.Width, _map.Height);
                        }
                        Console.WriteLine($"Mapid - {_map.Id} Monster {_monsters.GetValueOrDefault(monsterCoord.Key).Name} coord x - {monsterCoord.Value.x}, y - {monsterCoord.Value.y}");
                    }
                }
            }
        }
Exemplo n.º 3
0
        public void GetMoves()
        {
            try
            {
                Coordinates<User>[] moveCurrentUserCoords = _usersMoveCoordinatesBlockingCollection.ToArray();
                foreach (Coordinates<User> moveCurrentUserCoord in moveCurrentUserCoords)
                {
                    if (moveCurrentUserCoord != null)
                    {
                        _usersCoordinates.TryGetValue(moveCurrentUserCoord.Model.Id, out var currentUserCoor);
                        CalculateCoordinates.CalculateCoef(moveCurrentUserCoord, currentUserCoor);
                        _usersMoveCoordinates.Add(moveCurrentUserCoord.Model.Id, moveCurrentUserCoord);

                    }
                }
            }
            catch (InvalidOperationException) { }

        }
Exemplo n.º 4
0
        public void Distance(double lat1, double lon1, double lat2, double lon2, int fact)
        {
            var value = CalculateCoordinates.DistanceInKmBetweenEarthCoordinates(lat1, lon1, lat2, lon2);

            Assert.Equal(fact, (int)value);
        }