Example #1
0
        private void UserControl_Drop(object sender, DragEventArgs e)
        {
            e.Handled = true;

            if (TerrainView.UpdateGamePoint(e, this))
            {
                return;
            }

            if (_Unit.Step.Game.SelectedOrder == null || _Unit.Step.Game.SelectedOrder.WCFOrder.OrderType != "Усиление_власти_0_специальный")
            {
                return;
            }

            //только тип юнита
            ExtUnitType dropUnitType = (e.Data.GetData(typeof(ExtUnitType)) as ExtUnitType);

            if (dropUnitType == null)
            {
                return;
            }

            if (_Unit.Step.Game.SelectedOrder.ExtTerrain != _Unit.ExtTerrain)
            {
                App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate5"));
                return;
            }
            if (_Unit.WCFUnit.UnitType != "Пеший_воин")
            {
                App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate6"));
                return;
            }
            if (dropUnitType.WCFUnitType.Name == "Пеший_воин")
            {
                App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate7"));
                return;
            }
            if (dropUnitType.WCFUnitType.Name == "Корабль")
            {
                App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate8"));
                return;
            }

            _Unit.TempUnitType = dropUnitType;

            WCFMarchUnit WCFMarchUnit = _Unit.Step.Game.ClientStep.ExtMarch.WCFMarch.MarchUnit.SingleOrDefault(p => p.Unit == _Unit.WCFUnit.Id);

            if (WCFMarchUnit == null)
            {
                WCFMarchUnit = new WCFMarchUnit();
                _Unit.Step.Game.ClientStep.ExtMarch.WCFMarch.MarchUnit.Add(WCFMarchUnit);
            }

            WCFMarchUnit.Unit     = _Unit.WCFUnit.Id;
            WCFMarchUnit.Terrain  = _Unit.TempTerrain.WCFTerrain.Name;
            WCFMarchUnit.UnitType = _Unit.TempUnitType.WCFUnitType.Name;

            _Unit.Step.Game.ClientStep.ExtMarch.SumCost++;
        }
        private bool TerrainDrop(DragEventArgs e)
        {
            if (TerrainView.UpdateGamePoint(e, this))
            {
                return(false);
            }

            ExtTerrain dropTerrain = e.Data.GetData(typeof(ExtTerrain)) as ExtTerrain;

            if (dropTerrain == null)
            {
                return(false);
            }

            _Terrain.Game.ClientStep.ExtMarch.WCFMarch.MarchUnit.Clear();
            foreach (var item in dropTerrain.Unit)
            {
                ExtTerrain moveTerrain = null;

                if (item.TempTerrain != item.ExtTerrain)
                {
                    moveTerrain = item.TempTerrain;
                }
                if (item.IsSelected)
                {
                    moveTerrain = _Terrain;
                }
                if (moveTerrain == null)
                {
                    continue;
                }

                if (CheckMove(item, moveTerrain))
                {
                    WCFMarchUnit _WCFMarchUnit = new WCFMarchUnit();
                    _WCFMarchUnit.Terrain  = moveTerrain.WCFTerrain.Name;
                    _WCFMarchUnit.Unit     = item.WCFUnit.Id;
                    _WCFMarchUnit.UnitType = item.WCFUnit.UnitType;
                    _Terrain.Game.ClientStep.ExtMarch.WCFMarch.MarchUnit.Add(_WCFMarchUnit);

                    item.TempTerrain = moveTerrain;
                }
                else
                {
                    item.TempTerrain = null;
                }

                item.IsSelected = false;
            }

            if (!HoldTerrain(dropTerrain))
            {
                _Terrain.Game.ClientStep.ExtGameUserInfo.ExtPowerCounter.Remove(dropTerrain.PowerCounter);
                _Terrain.Game.ClientStep.ExtMarch.WCFMarch.IsTerrainHold = false;
                _Terrain.Game.OnPropertyChanged("ViewPowerCounter");
            }

            return(true);
        }
Example #3
0
 private void _Drop(object sender, DragEventArgs e)
 {
     e.Handled = true;
     TerrainView.UpdateGamePoint(e, this);
 }