示例#1
0
        //Inform является дочерним классом от двух интерфейсов - вызываем функции этих интерфейсов при помощи многоадресного делегата;
        static void More(IFlat flat, IStreet street)
        {
            Multicast all_in_one = flat.Write_Flat;

            all_in_one += street.Write_Street;
            all_in_one();
        }
示例#2
0
        protected virtual void InitInstance()
        {
            switch (type)
            {
            case EStreetType.ROUTE:
                instance = gameObject.AddComponent <Route>();
                break;

            case EStreetType.STREET:
                instance = gameObject.AddComponent <StreetPath>();
                break;

            default:
                instance = gameObject.AddComponent <StreetPath>();
                break;
            }

            this.Instance.EndPoint   = this.endPoint;
            this.Instance.StartPoint = this.startPoint;
            this.Instance.Costs      = this.cost;

            if (this.Instance is StreetPath street)
            {
                street.Width         = width;
                street.waypointColor = this.waypointColor;
            }
        }
        public void Ok_Pressed()
        {
            IStreet street = this.streetPoint.GetPathByPosition(player.Position, streetPoint.GetGameObject());

            GameEvents.Current.TicketSelection_Approved(null, new TicketEventArgs(player.Data.ID, selectedTicket, street));

            this.gameObject.SetActive(false);
            UnselectAll();
        }
示例#4
0
        private void BtnOkClick(object sender, RoutedEventArgs e)
        {
            var editSession     = operationService.CreateEditSession();
            var streetStub      = editSession.CreateStreet(txtAdd.Text);
            var createdEntities = operationService
                                  .SubmitChanges(operationService.GetCredentials(), editSession);

            CreatedStreet = createdEntities.Get(streetStub);

            Close();
        }
示例#5
0
        /// <summary>
        /// Конструктор
        /// </summary>
        public StreetForm(IStreet street, ICities cities)
        {
            InitializeComponent();                  // Инициализировать компоненты формы

            _street = street;                       // Сохранить улицу в поле
            _cities = cities;                       // Сохранить список городов в поле

            _cityAfterRelinking = street.City;      // Сохранить город, связанный с улицой

            CleanAllData();                         // Очистить все данные формы

            CopyDataFromEntity();                   // Скопировать данные из сущности в компоненты формы
        }
示例#6
0
        /// <summary>
        /// Метод. Связывает дом с выбранной улицей
        /// </summary>
        private void relinkStreetButton_Click(object sender, EventArgs e)
        {
            StreetSelectForm streetSelectForm;                              // Форма выбора улицы

            streetSelectForm = new StreetSelectForm(_streets);              // Создать форму выбора улицы

            streetSelectForm.ShowDialog();                                  // Отобразить форму выбора улицы

            if (streetSelectForm.SelectedStreet != null)                    // Проверить выбранную улицу
            {
                _streetAfterRelinking = streetSelectForm.SelectedStreet;    // Сохранить выбранную улицу в поле
            }

            CopyLinkedDataFromEntity();                                     // Скопировать данные из сущностей, связанных с основной сущностью
        }
示例#7
0
        /// <summary>
        /// Метод. Выбирает улицу из списка улиц, сохраняет в поле и закрывает диалоговое окно
        /// </summary>
        private void selectButton_Click(object sender, EventArgs e)
        {
            DataGridViewRow selectedRow;                                    // Выделенная строка
            int             id;                                             // Идентификатор выделенной улицы

            int rowCount;                                                   // Общее количество строк в списке
            int selectedRowIndex;                                           // Индекс выделенной строки

            rowCount = entitiesDataGridView.Rows.Count;                     // Получить общее количество строк в списке

            if (rowCount > 0)                                               // Проверить общее количество строк
            {
                selectedRow      = entitiesDataGridView.SelectedRows[0];    // Получить выделенную строку
                selectedRowIndex = selectedRow.Index;                       // Получить индекс выделенной строки
                id = Convert.ToInt32(selectedRow.Cells["id"].Value);        // Получить идентификатор улицы в выделенной строке

                _selectedStreet = _streets.GetStreet(id);                   // Получить выделенную улицу
            }

            CloseForm();                                                    // Закрыть диалоговое окно
        }
示例#8
0
        /// <summary>
        /// Метод. Отвязывает дом от связанной улицы
        /// </summary>
        private void unlinkStreetButton_Click(object sender, EventArgs e)
        {
            DialogResult unlinkConfirm;                         // Результат подтверждения сообщения

            unlinkConfirm = MessageBox.Show(                    // Отобразить окно сообщения с подтверждением и сохранить результат подтверждения
                "Вы действительно хотите отвязать улицу?",
                "Подтверждение",
                MessageBoxButtons.YesNo);

            if (unlinkConfirm == DialogResult.Yes)              // Проверить результат подтверждения сообщения
            {
                _streetAfterRelinking = null;                   // Отвязать дом от связанной улицы

                CleanCountryName();                             // Очистить название страны
                CleanRegionName();                              // Очистить название региона
                CleanCityName();                                // Очистить название города
                CleanStreetName();                              // Очистить название улицы

                CopyLinkedDataFromEntity();                     // Скопировать данные из сущностей, связанных с основной сущностью
            }
        }
        private void Current_OnDestinationSelected(object sender, MovementEventArgs e)
        {
            this.player      = e.Player;
            this.streetPoint = e.TargetPosition;

            foreach (TicketButton tb in ticketButtons)
            {
                tb.SetTicketCount(this.player.GetTicketCount(tb.GetTicket()));
            }

            IStreet street = this.streetPoint.GetPathByPosition(player.Position, streetPoint.GetGameObject());
            var     costs  = street.Costs;

            foreach (TicketButton tb in ticketButtons)
            {
                if (tb.gameObject.activeSelf == true && !costs.Contains(tb.GetTicket()))
                {
                    tb.gameObject.SetActive(false);
                }
            }

            this.gameObject.SetActive(true);
        }
示例#10
0
        protected void MoveRandomly()
        {
            // determine street
            StreetPoint       currentPoint = Position.GetComponent <StreetPoint>();
            List <GameObject> targets      = MovementHelper.GetTargets(this);

            if (targets.Count > 0)
            {
                int index = System.Convert.ToInt32(Random.Range(0, targets.Count));

                // pay ticket
                IStreet street = currentPoint.GetPathByPosition(Position, targets[index]);
                var     cost   = street.ReturnTicketCost().Where(c => HasTicket(c)).ToArray();
                RemoveTicket(cost[System.Convert.ToInt32(Random.Range(0, cost.Length))]);

                // move
                StartCoroutine(nameof(Move), street);
            }
            else
            {
                Data.HasLost = true;
                GameEvents.Current.PlayerMoveFinished(this, new PlayerEventArgs(this.Data));
            }
        }
示例#11
0
 public TicketEventArgs(string playerID, ETicket ticket, IStreet street)
 {
     this.PlayerID = playerID;
     this.Ticket   = ticket;
     this.Street   = street;
 }
示例#12
0
 /// <summary>
 /// Статический метод. Преобразует объект типа IStreet в объект типа Street
 /// </summary>
 public static Street IStreetToStreetConverter(IStreet street)
 {
     return((Street)street);
 }
 public IAddress NewAddress(string postalCode, IStreet street, string building, IContact contact, string note)
 {
     throw new System.NotImplementedException();
 }
示例#14
0
 /// <summary>
 /// Метод. Копирует данные сущности в компоненты улицы
 /// </summary>
 private void CopyStreetFromEntity(IStreet street)
 {
     StreetName = street.Name;       // Скопировать название улицы
 }
示例#15
0
 /// <summary>
 /// Метод. Удаляет улицу из набора улиц
 /// </summary>
 public void Remove(IStreet street)
 {
     _streetsDbSet.Remove((Street)street);
     SaveChanges();
 }
示例#16
0
 /// <summary>
 /// Метод. Добавляет улицу в набор улиц
 /// </summary>
 public void Add(IStreet street)
 {
     _streetsDbSet.Add((Street)street);
     SaveChanges();
 }