public ExtMarchUnit(ExtStep step, WCFMarchUnit wcfMarchUnit) { Step = step; WCFMarchUnit = wcfMarchUnit; ExtUnit = Step.Game.ViewUnit.Single(p => p.WCFUnit.Id == WCFMarchUnit.Unit); }
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 bool UnitTypeDrop(DragEventArgs e) { ExtUnitType dropUnitType = (e.Data.GetData(typeof(ExtUnitType)) as ExtUnitType); if (dropUnitType == null) { return(false); } if (_Terrain.ExtGarrison != null && _Terrain.ExtHolderUser != _Terrain.Game.ClientGameUser) { return(true); } if (dropUnitType.WCFUnitType.Cost > (_Terrain.Game.SelectedOrder.ExtTerrain.WCFTerrain.Strength - _Terrain.Game.ClientStep.ExtMarch.SumCost)) { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate1")); return(true); } if (dropUnitType.WCFUnitType.Name != "Корабль" && _Terrain.Game.SelectedOrder.ExtTerrain != _Terrain) { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate2")); return(true); } if (dropUnitType.WCFUnitType.Name == "Корабль") { if (!_Terrain.Game.SelectedOrder.ExtTerrain.JoinTerrainCol.Contains(_Terrain) || _Terrain.WCFTerrain.TerrainType == "Земля") { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate3")); return(true); } if (_Terrain.ExtHolderUser != null && _Terrain.ExtHolderUser != _Terrain.Game.ClientGameUser) { App.Agot2.errorView.ShowByDispatcher(App.GetResources("text_notify"), App.GetResources("validation_consolidate4")); return(true); } } WCFUnit unit = new WCFUnit(); unit.UnitType = dropUnitType.WCFUnitType.Name; unit.Terrain = _Terrain.WCFTerrain.Name; unit.Step = _Terrain.Game.ClientStep.WCFStep.Id; ExtUnit extUnit = new ExtUnit(_Terrain.Game.ClientStep, unit); if (!CheckMove(extUnit, _Terrain)) { return(true); } WCFMarchUnit wcfMarchUnit = new WCFMarchUnit(); wcfMarchUnit.Unit = extUnit.WCFUnit.Id; wcfMarchUnit.Terrain = extUnit.TempTerrain.WCFTerrain.Name; wcfMarchUnit.UnitType = extUnit.TempUnitType.WCFUnitType.Name; _Terrain.Game.ClientStep.ExtGameUserInfo.ExtUnit.Add(extUnit); _Terrain.Game.ClientStep.ExtMarch.WCFMarch.MarchUnit.Add(wcfMarchUnit); _Terrain.Game.ClientStep.ExtMarch.SumCost += dropUnitType.WCFUnitType.Cost; return(true); }