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); }
private void _Drop(object sender, DragEventArgs e) { e.Handled = true; TerrainView.UpdateGamePoint(e, this); }