Esempio n. 1
0
        public Location(City _city)
        {
            InitializeComponent();

            city = _city;

            idTag.Text = city.Id.ToString();
            idCityName.Text = city.Name;
        }
Esempio n. 2
0
        public Location(City _city, uint location, TcpClient client, Character _character, long _timeDifference, Map _map)
        {
            InitializeComponent();

            city = _city;
            currentLocation = location;
            socket = client.Client;
            character = _character;
            timeDifference = _timeDifference;
            map = _map;

            if (character.Level < city.AccessLevel)
            {
                BtnTravel.IsEnabled = false;
            }

            CityTag.Text = city.Id.ToString();
            CityName.Text = city.Name;
            AccessLevel.Text = city.AccessLevel.ToString();
            _travelTime = GetShortestPath();
            travelTime.Text = _travelTime.ToString();
        }
Esempio n. 3
0
        public Map(TcpClient clientSocket)
        {
            socket = clientSocket.Client;

            uint citiesNumber = 0;
            string[] citiesData;
            Command request = new Command();
            request.Request(ClientCmd.GET_CITIES);
            citiesData = request.Apply(socket, true);

            //obliczenie liczby miast
            citiesNumber = uint.Parse(citiesData[1]);
            for (int i = 2; i < citiesData.Length; i += 6)
            {
                City city = new City(
                    uint.Parse(citiesData[i]),      //id
                    citiesData[i + 1],              //name
                    uint.Parse(citiesData[i + 2]),  //accessLevel
                    uint.Parse(citiesData[i + 3]),  //leftCoordinate
                    uint.Parse(citiesData[i + 4]),  //topCoordinate
                    citiesData[i + 5]               //icon
                    );
                cityData.Add(city);
            }
            //tworzenie buttonów na podstawie danych z bazki
            foreach (City city in cityData)
            {
                //najpierw sam button
                Button btn = new Button();
                //potem stackpanel przechowujący jego zawartość
                StackPanel btnContent = new StackPanel();
                //obrazek, który będzie jego zawartością
                Image btnImage = new Image();
                //i jego źródło
                btnImage.Source = new BitmapImage(new Uri("pack://application:,,,/Images/" + city.Icon + ".png"));
                btnImage.Width = 44;
                btnImage.Height = 60;
                //oraz textblock, który będzie wyświetlał nazwę miasta
                TextBlock btnText = new TextBlock();
                //przypisanie do texblocka nazwy miasta
                btnText.Text = city.Name;
                //szerokość stała na 50 px
                btnText.Width = 50;
                //nazwa kontrolki aby można było dynamicznie zmieniać kolor tekstu w buttonie
                btnText.Name = "city" + city.Id + "Name";
                //wyśrodkowanie tekstu
                btnText.TextAlignment = TextAlignment.Center;
                //ustawienie stackpanelu na 40 szerokości i 75 wysokości (obrazek wtedy sam się zeskaluje)
                btnContent.Width = 50;
                btnContent.Height = 75;

                btnContent.Margin = new Thickness(3, 3, 3, 3);
                //wyśrodkowanie zawartości w pionie do środka
                btnContent.VerticalAlignment = VerticalAlignment.Center;
                //dodanie obrazka i texblocka z nazwą miasta do stackpanelu
                btnContent.Children.Add(btnImage);
                btnContent.Children.Add(btnText);
                //nazwanie buttona miasta
                btn.Name = "city" + city.Id;
                //jego szerokość na 55 px
                btn.Width = 55;
                //cały content wyśrodkowany
                btn.HorizontalAlignment = HorizontalAlignment.Center;
                //przypisanie stackpanelu jako zawartości buttona
                btn.Content = btnContent;
                //dodanie tagu z identyfikatorem miasta
                btn.Tag = city.Id;
                //określenie położenia na mapie
                Canvas.SetLeft(btn, city.LeftCoordinate);
                Canvas.SetTop(btn, city.TopCoordinate);
                //dodanie do listy buttonów mapy
                cityButtons.Add(btn);
            }
        }