Exemplo n.º 1
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}");
                    }
                }
            }
        }